Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
77.59 Кб
Скачать

Базисные операции реляционной алгебры

Предлагаемые языки: 1) Реляционная алгебра 2) Реляционное исчисление. В реализациях субд эти языки почти не используются.

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

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

Операции реляционной алгебры.

  1. Теоретико-множественные операции: Объединение, пересечение, разность и декартово произведение

  2. Специальные реляционные операции: проекция, ограничение, соединение, деление

  3. Дополнительные: присваивание, переименование

Объединение – UNION. Пересечение – INTERSECT. Разность – Except. Декартово произведение – TIMES.

Рассматривается вариант алгебры предложенный Котом, состоящий из 8ми основных, которые делятся на два класса (смотри выше). Кроме того в состав алгебры включается присваивание (“:=”), позволяющее сохранить в БД результаты алгебраических вычислений и операция переименования (“RENAME”), позволяющая корректно сформулировать заголовок.

Общая интерпретация реляционных операций

При объединении двух отношений получается отношение, включающее все картежи входящие хотя бы в одно из отношений операндов. При пересечении двух отношений, получается отношение включающее картежи, входящие в оба отношения операнда. Операция разности двух отношений производит отношение, которое включает все картежи, входящие в первый операнд, такие что ни один из них не входит во второй операнд. При выполнении декартова произведения производится отношение, картежи которого являются конкатенацией картежей первого и второго отношений. Результатом ограничения по некоторому условию (WHERE) является отношение включающее картежи отношения операнда удовлетворяющие этому условию. При выполнении проекции отношения на заданный набор его атрибутов, возникает отношение, картежи которого производятся путем взятия соответствующих значений из картежей отношения операнда (A[атрибуты]). При соединении двух отношений по некоторому условию, образуются результирующие отношения, картежи которого являются конкатенацией картежей первого и второго отношений и удовлетворяют этому условию.

Эквисоединение (JOIN) (приравнивание по всем атрибутам с одинаковыми именами).

У операции реляционного деления два операнда – бинарный (два атрибута A(a1,a2)) и унарный (B(a2)). Результирующее отношение состоит из одно атрибутных отношений включающие значение первого атрибута картежей первого операнда, таких что множества значений второго атрибута совпадают со множеством значений второго операнда.

Операция переименование производит отношение, тело которого совпадает с телом операнда, но имена атрибутов изменены.

Операция позволяет сохранить результат вычисления реляционного отношения в базе данных.

Замкнутость реляционной алгебры и операция переименования

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

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

Теоретика – множественные операции являются коммутативными и ассоциативными за исключением разности.

Специальные реляционные операции

Ограничение. Условие в ограничении, как правило, имеет вид a on const или a on b, где a и b имена атрибутов. Условия могут быть сложными и соединяться союзами and, or, not.

Пример: A WHERE условие1 and условие2. Это эквивалентно следующему: (A WHERE условие1) Intersect (A WHERE условие2). Вместо or можно применить UNION. Not эквивалентно EXCEPT.

Проекция – вертикальная вырезка из множества, а ограничение – горизонтальная.

Операция соединения. Эта операция требует наличие двух операндов – соединяемых отношений, и простого условия. Операция соединение не является примитивной – она может быть выражена через декартово произведение и ограничение. В предлагаемой алгебре мы будем рассматривать частный случай соединения, а именно естественное соединение, которое обозначается JOIN. Естественное соединение – это эквисоединение (a on b) двух отношений по одноименным атрибутам. При естественном соединение одноименные атрибуты в результирующем значении будут присутствовать один раз.

Примеры:

SP

S#

P#

S1

P1

S1

P2

S1

P3

S1

P4

S1

P5

S1

P6

S2

P1

S2

P2

S3

P2

S4

P2

S4

P4

S4

P5

S – летчик, P – виды самолетов. Операции: все летчики умеющие управлять P1 -

P

P#

P1

результат

SP Divide By P

S#

S1

S2