При работе с реляционной моделью у нас есть 2 группы операций, которые мы можем использовать. Один из них - реляционная алгебра.
При работе среляционная модель, у нас есть 2 группы операций, которые мы можем использовать.
Первый называетсяреляционная алгебра, и этопроцедурный язык.
Это то, на чем основан SQL, и поэтому очень важно научиться этому, поскольку SQL де-факто является стандартом для работы с реляционными базами данных.
Второй называетсяреляционное исчислениеи вместо того, чтобы быть процедурным, этодекларативный язык. Это фундаментальная разница в том, как мы взаимодействуем с базами данных, потому что вы не сообщаете программному обеспечению баз данныхчто делатьты просто скажи эточто вы хотите, и пусть он разберется в деталях, как это сделать.
Это общее различие между языками программирования. В современном интерфейсе мы говорим, что взаимодействие с DOM в React декларативно. Использование ванильного JavaScript для изменения DOM носит процедурный характер.
Такие языки, какЛог данных,QBEиQUELимеют в основе реляционное исчисление. Я не собираюсь говорить об этом, потому что я считаю, что это гораздо более нишевый способ решения задач по сравнению с более практичным подходом, которому следует SQL, но вы можете взглянуть на него, если хотите.
Учитывая это введение, давайте продолжимреляционная алгебра.
У нас есть 2 типа операций:
- основные операции
- присоединиться к операциям
Основные операции в реляционной алгебре
Основные операции:
- союздля получения данных из двух таблиц, генерируя сумму кортежей, если две таблицы имеют одинаковые столбцы и типы атрибутов (домен).
- разницачтобы получить данные, содержащиеся в первой таблице, но не во второй таблице, создавая разницу кортежей, если две таблицы имеют одинаковые столбцы и типы атрибутов (домен).
- декартово произведениедля получения данных из двух таблиц и создания одной таблицы, объединяющей их данные на основе значения атрибута.
- Выбратьдля извлечения только некоторых кортежей (строк), содержащихся в таблице, на основе определенных критериев.
- проектдля создания новой таблицы, содержащей только один или несколько атрибутов (столбцов) существующей таблицы
- переименоватьиспользуется для переименования атрибута, используется для предотвращения конфликтов, когда несколько таблиц имеют одно и то же имя для разных данных
Операции соединения в реляционной алгебре
Соединения, вероятно, являются наиболее мощными операциями, которые вы можете выполнять с помощью реляционной алгебры. Они построены на основе основных операций и позволяют сопоставлять данные, содержащиеся в разных отношениях (таблицах).
Примечание: я скоро расскажу о объединениях на практике в СУБД, это в основном теория.
У нас есть 2 основных варианта соединения:естественное соединениеитета присоединиться. All the other versions are extracted from those 2.
Естественное соединение
Естественное соединениесопоставляет два отношения (таблицы) и создает новую таблицу на основе тех же значений атрибута.
Сначала нам нужны два отношения с одинаковым именем атрибута (столбец). Затем, если значения атрибутов в отношении A не совпадают в атрибутах в отношении B, строка не является частью результата, она игнорируется.
Пример:
Отношение А
ID сотрудника | Имя |
---|---|
1 | отметка |
2 | Тони |
3 | Рик |
Отношение B
Имя менеджера | ID сотрудника |
---|---|
Тодд | 1 |
Альберт | 2 |
Мы можем выполнить естественное соединение, чтобы получить имя начальника для каждого сотрудника:
ID сотрудника | Имя | Имя менеджера |
---|---|---|
1 | отметка | Тодд |
2 | Тони | Альберт |
Поскольку отношения имеют общее имя атрибута идентификатора сотрудника, оно присутствует в результате только один раз, а не два раза.
Сотрудник № 3, присутствующий в отношении A, Рик, не включен в эту таблицу, потому что нет соответствующей записи в отношении B.
Тета-соединение
Тета-соединение позволяет выполнять соединение на основе любых критериев для сравнения двух столбцов в двух разных отношениях, а не только на равенство, как при естественном соединении.
Он выполняет декартово произведение двух таблиц и фильтрует результаты на основе выбора, который мы хотим сделать.
Equi-join
Экви-соединение - это тета-соединение, где выбор основан на равенстве значений атрибутов в двух разных таблицах.
Отличие от естественного соединения состоит в том, что мы можем выбирать, какие имена атрибутов (столбцы) мы хотим сравнивать.
Мы поговорим о соединениях гораздо больше позже, когда будет введен SQL, чтобы мы могли использовать их на практике.
Больше руководств по базам данных:
- Учебник по основам MongoDB
- Чем MongoDB отличается от базы данных SQL
- Информационные системы, данные и информация
- Модели данных
- Введение в модель данных ER
- Реляционная модель
- Реляционная алгебра
- Реляционные базы данных
- Что такое база данных? А СУБД?
- Введение в SQL
- Как установить PostgreSQL на macOS
- Вам всегда нужна база данных для вашего приложения?
- Как установить SQLite на macOS
- Введение в PostgreSQL
- Разрешения пользователя PostgreSQL
- Как вывести список всех пользователей в PostgreSQL
- Как переключить базу данных с помощью PostgreSQL
- Как вывести список всех баз данных с помощью PostgreSQL
- Как вывести список таблиц в текущей базе данных с помощью PostgreSQL
- Как установить MySQL на macOS
- Создание пользователя в MySQL
- PostgreSQL против MySQL, сравнение
- Разрешения пользователя SQLite
- Разрешения пользователя MySQL
- SQL, создание таблицы
- SQL, добавление данных в таблицу
- SQL, как использовать SELECT
- SQL, обработка пустых ячеек
- SQL, уникальный и первичный ключи
- SQL, как обновить данные
- SQL, как обновить структуру таблицы
- SQL, как удалить данные и таблицы
- Соединения SQL
- Представления SQL
- Как вставить сразу несколько элементов в коллекцию MongoDB
- Как удалить все элементы из коллекции MongoDB