Все шпаргалки / Базы данных / 

Зависимые реляционные операторы

соединенияОператор соединения определяется через операторы декартового произведения и выборки. Для оператора естественного соединения добавляется оператор проекции. Оператор пересеченияОператор пересечения выражается через вычитание следующим образом: Оператор деленияОператор деления выражается через операторы вычитания, декартового произведения и проекции следующим образом: Таким образом показано, что операторы соединения, пересечения и деления можно выразить через другие реляционные операторы, т.е. эти операторы не являются примитивными. СоединениеОперация соединения отношений, наряду с операциями выборки и проекции, является одной из наиболее важных реляционных операций. Обычно рассматривается несколько разновидностей операции соединения: 1Общая операция соединения 2Тэта-соединение (тэта-соединение) 3Экви-соединение 4Естественное соединение Наиболее важным из этих частных случаев является операция естественного соединения. Все разновидности соединения являются частными случаями общей операции соединения. Общая операция соединенияОпределение 8. Соединением отношений А и В по условию с называется отношение с представляет собой логическое выражение, в которое могут входить атрибуты отношений А и В и (или) скалярные выражения. Таким образом, операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях А и В имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать. Тэта-соединениеОпределение 9. Пусть отношение А содержит атрибут Х, отношение В содержит атрибут У, а Тэта - один из операторов сравнения ( и т.д.). Тогда Тэта -соединением отношения А по атрибуту Х с отношением В по атрибуту У называют отношение Экви-соединениеНаиболее важным частным случаем Экви -соединения является случай, когда Экви есть просто равенство. Синтаксис экви-соединения: Недостатком экви-соединения является то, что если соединение происходит по атрибутам с одинаковыми наименованиями (а так чаще всего и происходит!), то в результатирующем отношении появляется два атрибута с одинаковыми значениями Избавиться от этого недостатка можно, взяв проекцию по всем атрибутам, кроме одного из дублирующих. Именно так действует естественное соединение. Естественное соединениеОпределение 10. Пусть даны отношения и , имеющие одинаковые атрибуты (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах). Тогда естественным соединением отношений А и В называется отношение с заголовком и телом, содержащим множество кортежей , таких, что и . Естественное соединение настолько важно, что для него используют специальный синтаксис: Замечание. В синтаксисе естественного соединения не указываются, по каким атрибутам производится соединение. Естественное соединение производится по всем одинаковым атрибутам. Замечание. Естественное соединение эквивалентно следующей последовательности реляционных операций: 1. Переименовать одинаковые атрибуты в отношениях 2. Выполнить декартово произведение отношений 3. Выполнить выборку по совпадающим значениям атрибутов, имевших одинаковые имена 4. Выполнить проекцию, удалив повторяющиеся атрибуты 5. Переименовать атрибуты, вернув им первоначальные имена Замечание. Можно выполнять последовательное естественное соединение нескольких отношений. Нетрудно проверить, что естественное соединение (как, впрочем, и соединение общего вида) обладает свойством ассоциативности, т.е. поэтому такие соединения можно записывать, опуская скобки: ДелениеОпределение 11. Пусть даны отношения и , причем атрибуты - общие для двух отношений. Делением отноше-ний А на В называется отношение с заголовком и телом, содержащим множество кортежей , таких, что для всех кортежей в отношении А найдется кортеж . Отношение А выступает в роли делимого, отношение В выступает в роли делителя. Деление отношений аналогично делению чисел с остатком. Синтаксис операции деления: ПересечениеОпределение 3. Пересечением двух совместимых по типу отношений А и В называется отношение с тем же заголовком, что и у отношений А и В, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям А и В. Синтаксис операции пересечения: Замечание. Казалось бы, что в отличие от операции объединения, потенциальные ключи могли бы наследоваться пересечением отношений. Однако это не так. Вообще, никакие реляционные операторы не передают результатирующему отношению никаких данных о потенциальных ключах. В качестве причины этого можно было бы привести тривиальное соображение, что так получается более просто и симметрично - все операторы устроены одинаково. На самом деле причина более глубока, и заключается в том, что потенциальный ключ - семантическое понятие, отражающее различимость объектов предметной области. Наличие потенциальных ключей не выводится из структуры отношения, а явно задается для каждого отношения, исходя из его смысла. Реляционные же операторы являются формальными операциями над отношениями и выполняются одинаково, независимо от смысла данных, содержащихся в отношениях. Поэтому, реляционные операторы ничего не могут "знать" о смысле данных. Трактовка результата реляционных операций - дело пользователя.