Материал: BD шпорки

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
  1. Операции реляционной алгебры. Базовые реляционные операции

Реляционная алгебра базируется на понятиях теории множеств и математической логике. Каждая операция реляционной алгебры использует одну или несколько сущностей в качестве операндов и продуцирует в результате некоторую новую сущность S=f( , , … , ) , где f – операция реляционной алгебры,

а , , … , – сущности.

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

S=f ( , , … , ), , , … , ), …)

Т.о. допускается использовать вложение выражения произвольной сложности.

Существует 8 базовых реляционных операций, которые разбиваются на 2 подгруппы:

  1. Теоретико-множественные;

  2. Специальные.

К теоретико-множественным относятся операции объединения, пересечения, разности и декартово произведение. Они несколько модифицированы т.к. их операндами являются сущности, а не множества.

К специальным относятся операции селекции, проекции, соединения и деления.

Общие замечания к основным операциям реляционной алгебры:

  1. Не все операции реляционной алгебры примитивны, т.е независимы от других операций. Некоторые из них … определены в терминалах других операций. Так операции пересечения выражается через операцию разности: S INTERSECT R = S MINUS (S MINUS R) = R MINUS(R MINUS S)

Операция деления через разность,декартово произведение и проекцию S DEVIDEBY R = S[A] MINUS((S[A] TIMES R)MINUS S)[A]

Где А={A1,…,An}

Операция соединения определяется через функцию декартова произведения и селекции. Для операции естественного соединения добавляется ещё операция проекции. Остальные операции(объединение, разность, декартово произведение, проекция ,селекция)являются примитивными операциями и не определяются друг через друга.

  1. Ни одна из реляционных операций не передает результирующую сущность никаких сведений об возможных ключах. Это объясняется тем, что возможный ключ – понятие самостоятельное, отражающее различимость экземпляров объектов предметной области. Поэтому возможные случаи не выводятся из структуры сущности, а определяются на основе анализа её свойства.

Заключительный пример:

Код поставщика

Имя поставщика

1

2

3

МП «Темп»

ИП «Орион»

ГП «Калибр»

Код поставщика

Номер детали

1

1

1

2

2

3

1

2

3

1

2

1

((Поставщик JOIN Поставка) WHERE номер детали =2) [Имя поставщика]

((Поставка WHERE) WHERE номер детали =2) JOIN Поставщик) [Имя поставщика]

Поставщик детали №2

Имя поставщика

МП «Темп»

ИП «Орион»

2. Найти поставщиков, не поставляющих вторую деталь.

Поставщик без детали №2

Имя поставщика

ГП «Калибр»

Поставщик [Имя поставщика] MINUS Поставщик детали №2 // если есть 1 с-ть по ст. дет. №2

((Поставщик [Код поставщика] MINUS ((Поставка WHERE номер детали =2) JOIN Поставщик) [Код поставщика]) JOIN Поставщик) [Имя поставщика]

Подводя итог можно сказать, что модель является реляционной, если:

  1. Данные представляются как сущности.

  2. Любые операции над сущностями приводят к генерации новой сущности из старой.

  1. Теоретико-множественные реляционные операции. Свойства реляционной операции декартова произведения

К теоретико-множественным относятся операции объединения, пересечения, разности и декартово произведение. Они несколько модифицированы т.к. их операндами являются сущности, а не множества.

Объединение: объединением 2-ух совместимых по типу сущностей , называется сущность с тем же заголовком, что и сущности , и телом, содержащим все кортежи сущности и все кортежи сущности .

Синтаксис операции объединения: UNION .

Замечание: объединение, как и для любой сущности не может содержать одинаковых кортежей, поэтому если какой-то кортеж принадлежит сущностям , , то в объединение он включается только один раз.

Пересечение : пересечение двух совместимых по типу сущностей , называется сущность с тем же заголовком, что и у сущностей , и телом, состоящим из всех кортежей, принадлежащих одновременно двум сущностям , .

Синтаксис операции пересечения: INTERSECT .

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

Синтаксис операции пересечения: MINUS .

Замечание: операция разности в отличие от операций объединения и пересечения не является коммутативной операцией(т.е. операнды нельзя переставлять) и не является ассоциативной.

Декартово произведение: декартовым произведением двух сущностей S и R c

заголовками { , , … , } { , , … , } соответственно, называется сущность с

заголовком { , , … , , , , … , } и телом, состоящим из множества кортежей вида:

( , , … , , , , … , ), таких что ( , , … , ) принадлежит сущности S и , , … , ) принадлежит сущности R.

Синтаксис: S TIMES R.

Замечание:

1. степень декартова произведения равна сумме степеней сущностей, а мощность – произведению их мощностей, т.к. каждый кортеж сущности S соединяется с каждым кортежем сущности R.

2. Если в сущности S и R имеются атрибуты с одинаковыми именами, то перед выполнением операции декартова произведения их необходимо переименовать так, чтобы каждое имя встречалось только один раз.

3. Перемножать можно любые 2 сущности, т.к. совместимости их по типу не требуется.

Объединение (union)(возвращает отношение, содержащее все кортежи, которые принадлежат одному из двух определенных отношений или обоим),

Пересечение (intersect)(возвращает отношение, содержащее все кортежи, которые принадлежат одновременно двум определенным отношениям),

вычитание (-) (minus)(возвращает отношение, содержащее все кортежи, которые принадлежат первому из двух определенных отношений и не принадлежат второму),

декартово произведение (*) (times)(возвращает отношение, содержащее все кортежи, которые являются сочетанием двух кортежей, принадлежащих соответственно двум определенным отношениям).

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

К специальным относятся операции селекции, проекции, соединения и деления.

Операции селекции(сокращения)

Селекции сущности S по условию P называется сущность с тем же заголовком, что и у сущности S и телом, состоящим из тех кортежей сущности S, которые удовлетворяют условию P. Условие P – это предикат, т.е. выражение логического типа, которое может принимать одно их двух значений: истина или ложь. Предикат задаёт условие отбора кортежей сущности S: те кортежи, для которых значение предиката есть истина будут включены в результирующую сущность. Данный предикат принято называть условием сокращения.

Проекцией сущности S по подмножеству её атрибутов { }, с заголовком { } и телом, состоящим из множества кортежей вида { }, таких, для каждого из которых сущности S найдётся кортеж со значением атрибута = , и т.д.

Операция соединения является одной из важнейших реляционных операций и имеет 4 разновидности:

  1. Общая операция соединения

  2. Тэта-соединение

  3. Экви-соединение

  4. Естественное соединение

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

Операция деления.

Пусть даны сущность S с заголовком {A1, … An, B1,…, Bm} и сущность R с заголовком {B1,…,Bm,C1,…,Cp} при этом заголовки содержат одинаковые атрибуты B1,…, Bm, тогда делением сущностей S на R называется сущность с заголовком {A1, … An} и телом (a1,…,an), таких, что для любого кортежа (b1,…,bm) принадлежащего R ,существует кортеж (a1,…,an, b1,…,bm) принадлежащий S. Сущность S в роли делимого, а R – делитель. Деление сущностей похоже на деление целых чисел с отбрасыванием остатка.

  1. Реляционные операции селекции и проекции

Операции селекции(сокращения)

Селекции сущности S по условию P называется сущность с тем же заголовком, что и у сущности S и телом, состоящим из тех кортежей сущности S, которые удовлетворяют условию P. Условие P – это предикат, т.е. выражение логического типа, которое может принимать одно их двух значений: истина или ложь. Предикат задаёт условие отбора кортежей сущности S: те кортежи, для которых значение предиката есть истина будут включены в результирующую сущность. Данный предикат принято называть условием сокращения.

Синтаксис: S WHERE P

Обычно предикаты строятся с использование имён атрибутов, констант, арифметических операций, операторов сравнения (=, ≠, <, > и тд) и логических связок (AND, OR, NOT) соответственно (И, ИЛИ, НЕ).

Например:

студент WHERE N_группы=473602

Студент WHERE Год поступления> ГодРождения +20

Заслуживает внимания следующих эквивалент выраж.

S WHERE P1 OR P2 ≡ (S WHERE P1) UNION (S WHERE P2)

S WHERE P1 AND P2 ≡ (S WHERE P1) INTERSECT (S WHERE P2)

S WHERE NOT(P) ≡ S MINUS (S WHERE P)

Принято говорить, что операция селекции позволяет получить «горизонтальный» срез сущности. Т.е. подмножество кортежей заданной сущности для которых удовлетворяются некоторые указанные условия

Операции проекции

Проекцией сущности S по подмножеству её атрибутов { }, с заголовком { } и телом, состоящим из множества кортежей вида { }, таких, для каждого из которых сущности S найдётся кортеж со значением атрибута = , и т.д.

Синтаксис: S[ ]

Замечание

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

Принято говорить, что операция проекции позволяет получить «вертикальный» срез сущности, т.е. сущность без тех атрибутов, имена которых не указаны в заданном списке её атрибутов.

  1. Реляционная операция соединения. Ее разновидности

Эта операция является одной из важнейших реляционных операций и имеет 4 разновидности:

  1. Общая операция соединения

  2. Тэта-соединение

  3. Экви-соединение

  4. Естественное соединение

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

Общая операция соединения

..сущностей S and R по условию Ф позволяет получить сущность (S TIMES R) WHERE P, где предикат P может включать в себя имена атрибутов и сущностей S.

Т.о. общая операция соединения есть результат последовательного применения операций декартового произведения и селекции

Тэта-соединение (ϴ)

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