Тема_4 (1122340), страница 2
Текст из файла (страница 2)
Тогда результатом операции R1 TIMES R2 являетсяотношение R { a1, a2, …, an,, b1, b2, …, bm }, тело которогоявляется множеством кортежей вида {ra1, ra2, …, ran, rb1, rb2, …, rbm}таких, что { ra1, ra2, …, ran } входит в тело R1, а { rb1, rb2, …, rbm }08.10.201016Реляционвходит в тело R2 С.Д. Кузнецов. Базы данных.Алгебра Кодда (11)Теоретико-множественные операции (6)Как получить корректно сформированный заголовокотношения-результата?Проблемой может быть именование атрибутоврезультирующего отношения, если отношения-операндыобладают одноименными атрибутамиДва отношения совместимы по взятию расширенногодекартова произведения в том и только в том случае,если схемы этих отношений не пересекаютсяЛюбые два отношения всегда могут быть сделанысовместимыми по взятию декартова произведения путемприменения операции переименования к одному из этихотношений08.10.201017С.Д.
Кузнецов. Базы данных.РеляционАлгебра Кодда (12)Теоретико-множественные операции (7)СОТРУДНИКИ_В_ПРОЕКТЕ_1СОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРПСОТР_ОТД_НОМЕР2934Иванов11,2003102935Петров14,4003102936Сидоров9,2003132937Федоров11,0003102938Иванова11,200315ПРОЕКТЫ08.10.2010ПРОЕКТ_НАЗВПРОЕКТ_РУКПРОЕКТ 1ИвановПРОЕКТ 2Иваненко18С.Д. Кузнецов.
Базы данных.РеляционАлгебра Кодда (13)Теоретико-множественные операции (8)08.10.201019С.Д. Кузнецов. Базы данных.РеляционАлгебра Кодда (14)Теоретико-множественные операции (9)Операция взятия декартова произведения не являетсяосмысленной на практике мощность тела ее результата очень велика даже придопустимых мощностях операндов результат операции не более информативен, чемвзятые в совокупности операндыСмысл включения операции состоит в том, что на ееоснове определяется операция соединенияВсе четыре операции являются ассоциативными:(A OP B) OP C = A (B OP C)Все операции, кроме взятия разности, являютсякоммутативными, т.е.
A OP B = B OP A08.10.201020С.Д. Кузнецов. Базы данных.РеляционАлгебра Кодда (14)Специальные реляционные операции (1)Операция ограничения требует наличия двух операндов:ограничиваемого отношения и простого условия ограниченияПростое условие ограничения может иметь вид:(a comp-op b), где а и b – имена атрибутов ограничиваемогоотношения, для которых осмысленна операция сравнения comp-op(a comp-op const), где a – имя атрибута ограничиваемогоотношения, а const – литерально заданная константаПроизводится отношение, заголовок которого совпадает сзаголовком отношения-операнда, а в тело входят те кортежиотношения-операнда, для которых значением условияограничения является trueДля обозначения вызова операции ограничения будемиспользовать конструкцию A WHERE comp, где A –ограничиваемое отношение, а comp - простое условиесравнения08.10.201021С.Д.
Кузнецов. Базы данных.РеляционАлгебра Кодда (15)Специальные реляционные операции (2)Пусть comp1 и comp2 – два простых условия ограничения.Тогда по определению:A WHERE (comp1 AND comp2) обозначает то же самое, что и (AWHERE comp1) INTERSECT (A WHERE comp2)A WHERE (comp1 OR comp2) обозначает то же самое, что и (AWHERE comp1) UNION (A WHERE comp2)A WHERE NOT comp1 обозначает то же самое, что и A MINUS (AWHERE comp1)Эти определения позволяют использовать операцииограничения, в которых условием ограничения являетсяпроизвольное булевское выражение, составленное из простыхусловий с использованием логических связок AND, OR, NOT искобок08.10.201022С.Д. Кузнецов.
Базы данных.РеляционАлгебра Кодда (16)Специальные реляционные операции (3)СОТРУДНИКИ_В_ПРОЕКТЕ_1СОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРПСОТР_ОТД_НОМЕР2934Иванов11,2003102935Петров14,4003102936Сидоров9,2003132937Федоров11,0003102938Иванова11,200315СОТРУДНИКИ_В_ПРОЕКТЕ_1 WHERE(СОТР_ЗАРП > 11,000 AND (СОТР_ОТД_НОМ = 310 OR СОТР_ОТД_НОМ = 315))СОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРПСОТР_ОТД_НОМЕР2934Иванов11,2003102935Петров14,4003102938Иванова11,20031508.10.201023С.Д.
Кузнецов. Базы данных.РеляционАлгебра Кодда (17)Специальные реляционные операции (4)Операция взятия проекции требует наличия двух операндов –проецируемого отношения A и подмножества множества именатрибутов, входящих в заголовок отношения AРезультатом проекции отношения A на множество атрибутов{a1, a2, ..., an} (PROJECT A { a1, a2, ..., an }) является отношениес заголовком, определяемым множеством атрибутов {a1, a2, ..., an }, ис телом, состоящим из кортежей вида <a1:v1, a2:v2, ..., an:vn> таких,что в отношении A имеется кортеж, атрибут a1 которого имеетзначение v1, атрибут a2 имеет значение v2, ..., атрибут an имеетзначение vnПри выполнении операции проекции выделяется «вертикальная»вырезка отношения-операнда с естественным уничтожениемпотенциально возникающих кортежей-дубликатов08.10.201024С.Д.
Кузнецов. Базы данных.РеляционАлгебра Кодда (18)Специальные реляционные операции (5)СОТРУДНИКИ_В_ПРОЕКТЕ_1СОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРПСОТР_ОТД_НОМЕР2934Иванов11,2003102935Петров14,4003102936Сидоров9,2003132937Федоров11,0003102938Иванова11,200315PROJECT СОТРУДНИКИ_В_ПРОЕКТЕ_1 { СОТР_ОТД_НОМ }СОТР_ОТД_НОМЕР31031331508.10.201025С.Д. Кузнецов.
Базы данных.РеляционАлгебра Кодда (19)Специальные реляционные операции (6)Общая операция соединения (называемая такжесоединением по условию) требует наличия двухоперандов – соединяемых отношений и третьегооперанда – простого условияПусть соединяются отношения A и B. Как и в случаеоперации ограничения, условие соединения comp имеетвидлибо (a comp-op b),либо (a comp-op const),где a и b – имена атрибутов отношений A и B, const –литерально заданная константа, и comp-op – допустимаяв данном контексте операция сравнения По определению результатом операции соединенияотношений A и B является отношение, получаемое путемвыполнения операции ограничения по условию compрасширенного декартова произведения отношений A и B08.10.201026 comp) РеляционКузнецов.Базы(A JOIN B WHEREС.Д.comp≡ (A TIMESB) данных.WHEREАлгебра Кодда (20)Специальные реляционные операции (7)В общем случае применение условия соединениясущественно уменьшит мощность результатапромежуточного декартова произведения отношенийоперандов только в том случае, когда условиесоединения имеет вид (a comp-op b), где a и b –имена атрибутов разных отношений-операндовНа практике обычно считают реальными операциямисоединения именно те операции, которыеосновываются на условии соединения приведенноговида08.10.201027С.Д.
Кузнецов. Базы данных.РеляционАлгебра Кодда (21)Специальные реляционные операции (8)СОТРУДНИКИПРОЕКТЫСОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРППРО_НОМПРО_НОМПРОЕКТ_РУКПРО_ЗАРП2934Иванов11,4001Иванов11,4002935Петров14,400112Иваненко11,4002936Сидоров9,20012937Федоров11,00012938Иванова11,00012934Иванов11,40022935Петров14,40022939Сидоренко9,20022940Федоренко11,00022941Иваненко11,0002СОТРУДНИКИ JOIN ПРОЕКТЫWHERE (СОТРУДНИКИ.ПРО_НОМ=ПРОЕКТЫ.ПРО_НОМ AND СОТР_ЗАРП > ПРО_ЗАРП)СОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРППРО_НОМПРО_НОМ2935Петров14,40012935Петров14,400208.10.20101ПРОЕКТ_РУКИвановПРО_ЗАРП11,4002Иваненко11,40028С.Д. Кузнецов.
Базы данных.РеляционАлгебра Кодда (22)Специальные реляционные операции (9)Хотя операция соединения в нашей интерпретациине является примитивной, в силу особойпрактической важности она включается в базовыйнабор операций реляционной алгебрыИмеются важный частный случай соединения –эквисоединение (EQUIJOIN) и простое, но важноерасширение операции эквисоединения –естественное соединение (NATURAL JOIN) Операция соединения называется операциейэквисоединения, если условие соединения имеет вид(a = b), где a и b – атрибуты разных операндовсоединения Этот случай наиболее часто встречается напрактике, и для него существуют наиболееэффективные алгоритмы реализации08.10.201029С.Д.
Кузнецов. Базы данных.РеляционАлгебра Кодда (23)Специальные реляционные операции (10)Операция естественного соединения применяется кпаре отношений A и B, обладающих (возможносоставным) общим атрибутом c (т.е. атрибутом содним и тем же именем и определенным на одном итом же домене)Пусть ab обозначает объединение заголовковотношений A и B. Тогда естественное соединение Aи B – это спроецированный на ab результатэквисоединения A и B по условию A.c = B.cХотя операция естественного соединениявыражается через операции переименования,соединения общего вида и проекции, для нее обычноиспользуется сокращенная форма, называемаяNATURAL JOIN08.10.201030С.Д. Кузнецов. Базы данных.РеляционАлгебра Кодда (24)Специальные реляционные операции (11)ЭквисоединениеСОТРУДНИКИПРОЕКТЫСОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРППРО_НОМПРО_НОМПРОЕКТ_РУКПРО_ЗАРП2934Иванов11,4001Иванов11,4002935Петров14,400112Иваненко11,4002936Сидоров9,20012937Федоров11,00012938Иванова11,00012934Иванов11,40022935Петров14,40022939Сидоренко9,20022940Федоренко11,00022941Иваненко11,0002СОТРУДНИКИ JOIN (ПРОЕКТЫ RENAME (ПРО_НОМ, ПРО_НОМ1)) WHERE (СОТР_ЗАРП = ПРО_ЗАРП)СОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРППРО_НОМПРО_НОМ12934Иванов11,40011Иванов11,4002934Иванов11,40022Иваненко11,40008.10.2010ПРОЕКТ_РУК31С.Д.
Кузнецов. Базы данных.ПРО_ЗАРПРеляционАлгебра Кодда (25)Специальные реляционные операции (12)СОТРУДНИКИ NATURAL JOIN ПРОЕКТЫСОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРППРО_НОМПРОЕКТ_РУКПРО_ЗАРП2934Иванов11,4001Иванов11,4002935Петров14,4001Иванов11,4002936Сидоров9,2001Иванов11,4002937Федоров11,0001Иванов11,4002938Иванова11,0001Иванов11,4002934Иванов11,4002Иваненко11,4002935Петров14,4002Иваненко11,4002939Сидоренко9,2002Иваненко11,4002940Федоренко11,0002Иваненко11,4002941Иваненко11,0002Иваненко11,400 Основной смысл операции естественного соединения состоит ввозможности восстановления сложной сущности, декомпозированной попричине требования первой нормальной формы08.10.201032С.Д.
Кузнецов. Базы данных.РеляционАлгебра Кодда (26)Специальные реляционные операции (13)Пусть заданы два отношения – A с заголовком {a1, a2, ...,an, b1, b2, ..., bm} и B с заголовком {b1, b2, ..., bm}. Будемсчитать, что атрибут bi отношения A и атрибут bi (i = 1, 2,…, m) отношения B не только обладают одним и тем жеименем, но и определены на одном и том же доменеНазовем множество атрибутов {aj} составным атрибутомa, а множество атрибутов {bj} – составным атрибутом b.После этого будем говорить о реляционном делениибинарного отношения A {a, b} на унарное отношение B {b}Результатом деления A на B (A DIVIDE BY B) являетсяунарное отношение C {a}, тело которого состоит изкортежей v таких, что в теле отношения A содержатсякортежи <v, w> такие, что множество значений {w}включает множество значений атрибута b в отношении B08.10.201033С.Д.