Тема_4 (1122340), страница 3
Текст из файла (страница 3)
Кузнецов. Базы данных.РеляционАлгебра Кодда (27)Специальные реляционные операции (14)СОТРУДНИКИ НОМЕРА_ПРОЕКТОВСОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРППРО_НОМПРО_НОМ2934Иванов11,40012935Петров14,400112936Сидоров9,20012937Федоров11,00012938Иванова11,00012934Иванов11,40022935Петров14,40022939Сидоренко9,20022940Федоренко11,00022941Иваненко11,00022СОТРУДНИКИ DIVIDE BY НОМЕРА_ПРОЕКТОВСОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРП2934Иванов11,4002935Петров14,400 Сотрудники, участвующие во всех проектах08.10.201034С.Д.
Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (1)Формальные определения (1)Пусть r – отношение, A – имя атрибута r, T – имясоответствующего типа (т.е. типа, или доменаатрибута A), v – значение типа T. Тогда:Заголовком Hr отношения r называется множествоатрибутов, упорядоченных пар вида <A, T>.По определению никакие два атрибута в этом множестве немогут содержать одно и то же имя атрибута AКортеж tr, соответствующий заголовку Hr, – это множествоупорядоченных триплетов вида <A, T, v>, по одному такомутриплету для каждого атрибута в HrТело Br отношения r – это множество кортежей tr.Заметим, что (в общем случае) могут существовать такиекортежи tr, которые соответствуют Hr, но не входят в Br08.10.201035С.Д. Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (2)Формальные определения (2)Заголовок – это множество (пар вида <A, T>), тело –это множество (кортежей tr) и кортеж – это множество(упорядоченных триплетов вида <A, T, v>)Элемент заголовка – это атрибут (т.е.
упорядоченнаяпара вида <A,T>); элемент тела – это кортеж; элементкортежа – это упорядоченный триплет вида <A, T, v>Любое подмножество заголовка – это заголовок,любое подмножество тела – это тело, илюбое подмножество кортежа – это кортежОпределим несколько основных операцийКаждое определение состоит изформальной спецификации ограничений (если они имеются),применимых к операндам соответствующей операции,формальной спецификации заголовка результата этойоперации; формальной спецификации тела этого результатаинеформального обсуждения формальных спецификаций08.10.201036С.Д. Кузнецов.
Базы данных.РеляционАлгебра A Дейта и Дарвена (3)Базовые операции Алгебры A (1)ДополнениеПусть s обозначает результат операции ◄NOT► r. Тогда: Hs = Hr (заголовок результата совпадает сзаголовком операнда) Bs = { ts : exists tr( tr ∉ Br andts = tr ) }в тело результата входят все кортежи,соответствующие заголовку и не входящие в телооперандаОперация <NOT> производит дополнение s заданногоотношения rЗаголовком s является заголовок rТело s включает все кортежи, соответствующие этомузаголовку и не входящие в тело r08.10.201037С.Д.
Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (4)Базовые операции Алгебры A (2) Предположим, что в состав доменаДОПУСТИМЫЕ_НОМЕРА_ПРОЕКТОВ, на котором определен атрибутПРО_НОМ отношения НОМЕРА_ПРОЕКТОВ, входит всего пять значений{1, 2, 3, 4, 5}ПРОЕКТЫ<NOT> ПРОЕКТЫПРО_НОМПРО_НОМ1324508.10.201038С.Д. Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (5)Базовые операции Алгебры A (3)Удаление атрибутовПусть s обозначает результат операции r ◄REMOVE► AДля обеспечения возможности выполнения операции требуется,чтобы существовал некоторый тип (или домен) T такой, что <A, T>∈ Hr (т.е.
в состав заголовка отношения r должен входит атрибут A)Тогда:Hs = Hr minus { <A, T> }, т.е. заголовок результата получается иззаголовка операнда изъятием атрибута ABs = { ts : exists tr exists v( tr ∈ Brandv∈Tand<A,T,v> ∈ tr andts = tr minus { <A,T,v> } ) },т.е. в тело результата входят все кортежи операнда, из которых удаленозначение атрибута A08.10.201039С.Д. Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (6)Базовые операции Алгебры A (4)Операция ◄REMOVE► производит отношение s,формируемое путем удаления указанного атрибута Aиз заданного отношения rОперация эквивалентна взятию проекции r на всеатрибуты, кроме AЗаголовок s получается вычитанием из заголовка rмножества {<A, T>}Тело s состоит из таких кортежей, которыесоответствуют заголовку s, и каждый из которыхявляется подмножеством некоторого кортежаотношения r08.10.201040С.Д.
Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (7)Базовые операции Алгебры A (5)СОТРУДНИКИ ◄REMOVE► ПРО_НОМСОТРУДНИКИСОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРППРО_НОМСОТР_НОМЕРСОТР_ИМЯСОТР_ЗАРП2934Иванов11,40012934Иванов11,4002935Петров14,40012935Петров14,4002936Сидоров9,20012936Сидоров9,2002937Федоров11,00012938Иванова11,00012937Федоров11,0002934Иванов11,40022938Иванова11,0002935Петров14,40022939Сидоренко9,2002939Сидоренко9,20022940Федоренко11,0002940Федоренко11,00022941Иваненко11,0002941Иваненко11,000208.10.201041С.Д. Кузнецов.
Базы данных.РеляционАлгебра A Дейта и Дарвена (8)Базовые операции Алгебры A (6)Переименование атрибутовПусть s обозначает результат операции r ◄RENAME► (A, B)Для обеспечения возможности выполнения операции требуется, чтобысуществовал некоторый тип T такой, что <A, T> ∈ Hr, и чтобы несуществовал какой-либо тип T такой, что <B, T> ∈ HrДругими словами. в схеме отношения r должен присутствовать атрибутA, и не должен присутствовать атрибут BТогда:Hs = ( Hr minus { <A, T> } ) union {<B, T> }, т.е.
в схеме результата B заменяет ABs = { ts : exists tr exists v( tr ∈ Brandv∈Tand<A, T, v> ∈ tr andts = ( tr minus {<A, T, v> } ) union { <B, T, v> } ) },т.е. в кортежах тела результата имя значений атрибута A меняется на B08.10.201042С.Д. Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (9)Базовые операции Алгебры A (7)Операция ◄RENAME► производит отношение s,которое отличается от заданного отношения r толькоименем одного его атрибута, которое изменяется с Aна BЗаголовок s такой же, как заголовок r за исключениемтого, что пара <B, T> заменяет пару <A, T>Тело s включает все кортежи тела r, но в каждом изэтих кортежей триплет <B, T, v> заменяет триплет<A, T, v>08.10.201043С.Д.
Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (10)Базовые операции Алгебры A (8)Реляционная конъюнкцияПусть s обозначает результат операции r1 ◄AND► r2Для обеспечения возможности выполнения операции требуется,чтобы если <A, T1> ∈ Hr1 и <A, T2> ∈ Hr2, то T1=T2Другими словами, если в двух отношениях-операндах имеютсяодноименные атрибуты, то они должны быть определены на одном итом же типе (домене)Тогда:Hs = Hr1 union Hr2, т.е. заголовок результата получается путемобъединения заголовков отношений-операндовBs = { ts : exists tr1 exists tr2( ( tr1 ∈ Br1 and tr2 ∈ Br2 ) andts = tr1 union tr2 ) }08.10.201044С.Д.
Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (11)Базовые операции Алгебры A (9)Кортеж результата определяется как объединениекортежей операндов; поэтому:если схемы отношений-операндов имеют непустоепересечение, то операция ◄AND► работает какестественное соединениеесли пересечение схем операндов пусто, то ◄AND►работает как расширенное декартово произведениеесли схемы отношений полностью совпадают, торезультатом операции является пересечение двухотношений-операндов08.10.201045С.Д. Кузнецов.
Базы данных.РеляционАлгебра A Дейта и Дарвена (12)Базовые операции Алгебры A (10)Операция ◄AND► является реляционнойконъюнкцией, производящей в результатеотношение s, ранее называвшееся естественнымсоединением двух заданных отношений r1 и r2Заголовок s является объединением заголовков r1 иr2Тело s включает каждый кортеж, соответствующийзаголовку s и являющийся надмножествомнекоторого кортежа из тела r1 и некоторого кортежаиз тела r208.10.201046С.Д.
Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (13)Базовые операции Алгебры A (11)Пусть s обозначает результат операции r1 ◄OR► r2Для обеспечения возможности выполнения операциитребуется, чтобы если <A, T1> ∈ Hr1 и <A, T2> ∈ Hr2, то должнобыть T1 = T2Одноименные атрибуты должны быть определены на одном итом же типеТогда:Hs = Hr1 union Hr2 (из схемы результата удаляются атрибутыдубликаты)Bs = { ts : exists tr1 exists tr2( ( tr1 ∈ Br1 or tr2 ∈ Br2 ) andts = tr1 union tr2 ) }08.10.201047С.Д. Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (14)Базовые операции Алгебры A (12)Если у операндов нет общих атрибутов, то в телорезультирующего отношения входят все такие кортежи ts,которые являются объединением кортежей tr1 и tr2,соответствующих схемам отношений-операндов, и хотябы один из этих кортежей принадлежит телу одного изоперандовЕсли у операндов имеются общие атрибуты, то в телорезультирующего отношения входят все такие кортежи ts,которые являются объединением кортежей tr1 и tr2,соответствующих схемам отношений-операндов, еслихотя бы один из этих кортежей принадлежит телу одногоиз операндов, и значения общих атрибутов tr1 и tr2совпадаютЕсли же схемы отношений-операндов совпадают, то телоотношения-результата является объединением телоперандов08.10.201048С.Д.
Кузнецов. Базы данных.РеляционАлгебра A Дейта и Дарвена (15)Базовые операции Алгебры A (13)Операция ◄OR► является реляционнойдизъюнкцией, являясь обобщением того, что ранееназывалось объединениемЗаголовок s есть объединение заголовков r1 и r2Тело s состоит из всех кортежей, соответствующихзаголовку s и являющихся надмножеством либонекоторого кортежа из тела r1, либо некоторогокортежа из тела r208.10.201049С.Д.