Реляционная алгебра

При работе с реляционной моделью у нас есть 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, чтобы мы могли использовать их на практике.


Больше руководств по базам данных: