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

Реляционная алгебраПродолжаем разговор о реляционных базах данных. В основе реляционных баз данных лежат базовые математические принципы (а если говорить точнее, то — теория множеств). Об этом свидетельствует даже самая первая строка в том фундаментальном документе, в котором Кодд описал свою реляционную модель баз данных, и которая выглядит так:

В этом документе содержится информация о применении элементарной теории отношений к системам, предназначенным для обеспечения общего доступа к большим банкам форматированных данных (E. F. Codd, “A Relational Model of Data for Large Shared Data Banks”, Communications of the ACM, vol. 13, no. 6 (June 1970): 377–87.). 

Реляционная алгебра состоит из ряда операций, позволяющих манипулировать одной и более связей без изменения оригиналов. Ниже перечислены основные операции, которые можно выполнять в реляционной базе данных с использованием реляционной алгебры; эти операции называются унарными, поскольку подразумевают осуществление манипуляций над кортежами в одной единственной связи.

Операция выбора (selection) — позволяет извлекать (или исключать) набор кортежей из связи на основании значений атрибутов этой связи.

Операция проекции (projection) — позволяет извлекать (или исключать) определенный набор столбцов связи.

Помимо этих унарных операций, в реляционной алгебре также поддерживаются и бинарные (binary) или множественные (set) операции, позволяющие манипулировать самими связями. (Вспомните, что каждая связь представляет собой набор кортежей.)

Бинарные операции подразумевают объединение элементов из двух разных связей в одну новую. Выглядят эти операции следующим образом.

Операция объединения (union) — позволяет объединять две связи для создания новой, более крупной.

Операция пересечения (intersection) — позволяет создавать новую связь, содержащую только общие кортежи из двух связей.

Разностная операция (difference) — позволяет создавать новую связь, содержащую только отличающиеся кортежи из двух записей.

Декартово произведение (Cartesian product) — позволяет создавать новую связь, в которой каждый кортеж из отношения A соединяется с каждым кортежем из отношения B. Является лишь одним примером операции соединения (join operation).


Внимание! Операции соединения позволяют объединять две или более связей и тем самым получать одну новую связь на основании идентичных значений из их столбцов (называемых столбцами соединения) и условия, по которому они соединяются. Результирующее отношение считается декартовым произведением в случае включения всех кортежей из обеих связей. Однако обычно требуется только часть декартового произведения, состоящая из тех кортежей обеих связей, которые обладают одинаковым значением в столбце соединения. Соединением, при котором записи из двух отношений A и B объединяются путем объединения всех строк из A и B, имеющих идентичные значения во всех общих атрибутах, называется естественным (natural join), а соединение, при котором записи объединяются на основании произвольного условия — тета-соединением (theta-join).


Выглядит так, будто бы реляционной алгебры, которая базируется на ряде принципов теории множеств, должно вполне хватать для извлечения информации из реляционных баз данных, которые тоже базируются на принципах теории множеств. Недостаток реляционной алгебры состоит в том, что она хотя и базируется на соответствующих математических принципах, применять ее можно только путем использования математического процедурного языка. То есть при желании применять ее для чего-то помимо простейших запросов к базе данных, придется прибегать к сложным и запутанным математическим операциям. Такие операции под силу только высококлассным профессионалам. Поэтому чтобы не сталкиваться с трудностями реляционной алгебры и фокусироваться на запросах, не волнуясь о процедурных деталях, предлагается применять реляционное исчисление.

Данные принципы должен знать каждый программист, который собирается заниматься серьезных приложений баз данных Oracle.

Вас заинтересует / Intresting for you:

Жизненный цикл реляционных баз...
Жизненный цикл реляционных баз... 1279 просмотров Ирина Светлова Tue, 21 Nov 2017, 13:26:01
Основные модели данных: иерарх...
Основные модели данных: иерарх... 7375 просмотров Дэйзи ак-Макарова Sun, 09 Sep 2018, 10:28:33
Альтернативные модели данных и...
Альтернативные модели данных и... 4847 просмотров Дэйзи ак-Макарова Sun, 09 Sep 2018, 10:39:19
Реляционная модель в сравнении...
Реляционная модель в сравнении... 1773 просмотров Дэн Tue, 05 Mar 2019, 07:15:14
Войдите чтобы комментировать

1dz аватар
1dz ответил в теме #7971 23 янв 2017 07:45
Хорошая статья. Абсолютно верно сказано, что для разработки серьезных приложений БД просто необходимо знать основы реляционной алгебры!