С.Д. Кузнецов - Основы баз данных (1121716), страница 18
Текст из файла (страница 18)
Операция <АЫО> является реляционной канеюнкцией, в некоторых случаях выдающей в результате отношение в, ранее называвшееся естественным соединением двух заданных отношений г1 и г2. Заголовок в является обьединением заголовков .г1 и г2.
Тело в включает каждый кортеж, соответствующий заголовку э и являющийся надмножеством некоторого кортежа из тела г1 и некоторого кортежа из тела г2. Для иллюстрации воспользуемся примерными отношениями, показанными на рис. 4.3, которые мы уже использовали в примерах предыдущей лекции. На рис. 4.4(а) у отношений СЛУЖАЩИЕ и ПРОЕКТЫ имеется общий атрибут ЛРо ном. Поэтому операция <АЫО> работает как операция естественного соединения. На рис. 4.4(Ь) пересечение заголовков отношений СЛУЖАЩИЕ В ПРОЕКТЕ 1 и ГРОЕКты пусто, и поэтому в результате реляционной конъюнкции производится расширенное декартово произведение этих отношений. Наконец, на рис. 4.4(с) схемы отношений СЛУЖАЩИЕ В ПРОЕКТЕ 1 и СЛУЖАЩИЕ В ПРОЕКТЕ 2 совпадают, и телом операции <Ало> является пересечение тел отношений-операндов.
Операция реляционной дизъюнкции Пусть в обозначает результат операции г1 <ОК> г2. Для обеспечения возможности выполнения операции требуется, чтобы если <А, т1>е нг1 78 Алгебра А Дейта и Дарвеиа Лекция 4 СЛУЖАЩИЕ В ПРОЛЕТЕ 1 СЛУЖАЩИЕ В ПРОЕЕТЕ 2 ПРОЛЕТЫ Рис. 4.3. Примерные отношения лля иллюстрации операции <АНО> 79 Основы баз данных Курс (а) Результат операции слукавив <лнп> ВРОВВти (Ц Результат операции спуввщвв в пвовктв 1 <ьнп> пвовкты (с) результат операции спужаввв в провктв 2 <лнп> СЛУВАЩВВ В ПРОВКТВ 2 Рис. 4.4. Иллюстрации операции реляционной конъюнкции 80 Алгебра А Дейта и Деревца Лекция 4 и <А, Т2>бн«2, то должно быть т1 = т2 (одноименные атрибуты должны быть определены на одном и том же типе).
Тогда: ° нз = н«1 цп(оп н«2 (из схемы результата удаляются атрибуты-дубликаты); ° Вз = ( «з: ехтегэ Г«1 ех1зсе Г«2 ( (««1ЕВ«1 о«Г«2ЕВ«2) апс( Се = Г«1 цптоп г«2) ); очевидно„что при этом: ° если у операндов нет общих атрибутов, то в тело результирующего отношения входят все такие кортежи гз, которые являются объединением кортежей ««1 и г«2, соответствующих заголовкам отношений-операндов, и хотя бы один из этих кортежей принадлежит телу одного из операндов; ° если у операндов имеются общие атрибуты, то в тело результирующего отношения входят все такие кортежи ге, которые являются объединением кортежей с«1 и с«2, соответствующих заголовкам отношений-операндов, если хотя бы один из этих кортежей принадлежит телу одного из операндов, и значения общих атрибутов с«1 и ««2 совпадают; ° если же схемы отношений-операндов совпадают, то тело отношения-результата является объединением тел операндов.
Операция <Он> является реляционной дизьюнкцией и обобщением того, что ранее называлось объединением. Заголовок з есть объединение заголовков «1 и «2. Тело з состоит из всех кортежей, соответствующих заголовку з и являющихся надмножеством либо некоторого кортежа из тела «1, либо некоторого кортежа из тела «2. Предположим, у нас имеются отношения ПРОЕКТЫ 1 (ПРОЕКТ НАЗВ, проект РУк) и номеРА пРоектов (пРО ном) (рис. 4.5). предположим также, что домен атрибута проект НАЗВ включает значения ПРОЕКТ 1, ПРОЕКТ 2, пРОект 3, домен атрибута пРОект РУК ограничен значениями Нванов, Ннаненко, а доменом атрибута ПРО ном является множество (1, 2, 3).
Результат операции пРОекты <Он> номеРА ПРОектов показан на рис. 4.5. Как показано на рис. 4.5, операция <ое> при наличии операндов с несовпадающими схемами производит результат, гораздо более мощный, чем результат операции взятия расширенного декартова произведения из лекции 3, и еще менее осмысленный с практической точки зрения. Для иллюстрации операции <ОН> над операндами, схемы которых имеют непустое пересечение, воспользуемся отношением ПРОЕКТЫ 2 (пРО ном, пРОект Рук) (рис.4.6)иунарнымотношениемномеРА пгоектов, схема и тело которого показаны на рис.
4.5. Будем предполагать, что множества значений доменов атрибутов такие же, как в предыдущем примере. Результат операции ПРОЕКТЫ 2 <Ок> нОНЕРА пРОектОв показан на рис. 4.6. 81 Основы баз данных Курс ПРОЕКТЫ 1 нОмеРА пвоектов Результат операции пвоекты <ОН> ЕОМЕРА ПРОЕКРОВ Рис. 4.5. Результат операции <ОН> над операндами без общих атрибутов Как уже отмечалось, при совпадении схем отношений-операндов результатом выполнения над ними операции <ок> является объединение отношений. Это непосредственно следует из спецификации операции. Если этот факт кажется неочевидным, еше раз внимательно посмотрите на спецификацию.
Иллюстрирующий пример мы приводить не будем. 82 Алгебра А Дейта и Деревне Лекция 4 Рис. 4.6. Резулыат операции <ок> над операндами, схемы которых частично пересекаются Полнота Алгебры А Покажем, что Алгебра А является полной, т. е. на основе введенных операций выражаются все операции алгебры Кодла, рассмотренной в предыдущей лекции, К настоящему моменту в состав базовых операций Алгебры А входят операция <квмоттв> в качестве аналога операции гкогвст, а также операция переименования атрибутов <лвнлмв>. питон является частным случаем операции <ОК>, ттМКВ, тмтВКВВСт и Нлтпвлв гстм — частные случаи операции <Амо>. Нам осталось показать, что через операции Алгебры А выражаются операции взятия разности мпжБ, ограничения (инвкв), соединения общего вида (готц) и реляционного деления (оггтов ву).
Выводимость операции взятия разности Покажем, что операция мтнов выражается через другие операции Алгебры А. Для наглядности снова воспользуемся отношениями служлщив в провктв 1 и служлщив в прокктв 2 срис.4.3(для удобства повторим его в верхней части рис. 4.7). Для простоты (хотя это несущественно) будем предполагать, что множества значений доменов, на которых определены атрибуты слу номвр, слу имя, слу злрп и СЛУ Отд Номвр, ограничены значениями, содержащимися в телах отношений. Также для удобства покажем результат операции служлщмк В ПрОВКтк 1 мтмов служйщик В прОвктв 2 на рис. 4.7а. Заметим, что тело результата содержит все кортежи первого операнда, кроме кортежей Иванова и Петрова, поскольку они входят и в тело второго операнда.
вз Алгебра А Дейта и Дараена Лекция 4 Рис. 4.7. Выразимость операции мтмок через операции <нот> И <Амо> Посмотрим теперь, что является телом результата операции <ИОт> служАщик в пкокктк 2 (рис.4.7ь). Внеговходятвсе кортежи,соответствующие схеме отношения служАщие В ЛРокктк 2 (и схеме отношения служлщик в пкокктк 1), которые не входят в тело отношения служАщие В пкокктк 2. В том числе в тело результата атой операции входят и кортежи Сидорова, Федорова и Ивановой из тела отношения СЛУЖАЩИЕ В ПРОЕКТЕ 1. Тогда очевидно, что результат операции служАЩик В ПРОВКТК 1 <АМВ> <мот> служАщик В проекте 2 (пересечениетела первогооперандастелом результата операции <мот>) является в точности тем же, что и результат операции служлщик в ЛРокктк 1 мтмок служлщие в ЛРокктк 2 (рис.
4.7с). В общем случае нетрудно доказать, что если отношения г1 и г2 совместимы по объединению, то г1мтнок г2 = г1 <Амо> <кот> г2. Интерпретация операции ограничения В лекции 3 мы определяли операцию ограничения г ипеке совр, где г — отношение, а сои — простое условие ограничения вида (а совр-ср Ь), где а и Ь вЂ” имена атрибутов ограничиваемого отношения, для которых осмыслена операция сравнения соир-ср, либо вида (а ссгар-ор сопас), где а — имя атрибута ограничиваемого отношения, а сспас — литерально за- Основы баз данных Курс данная константа. Операцией сравнения сощр-ор может быть «=», «е», «>», «<», «>», «<».
Покажем на нескольких примерах, как можно выразить операцию ограничения с помощью базовых операций Алгебры Алла всех простых допустимых условий. Для иллюстрации будем использовать отношение СлужАщиЕ 1 (СЛУ НОМЕР, СЛУ ИМЯ, СЛУ ЗАРП, РУК НОМ) (рис. 4.8). Атрибут РУК НОМ содержит уникальныс номера служащих, являющихся руководителями проектов, и определен на том же домене, что и слу нОмеР.
Мы снова предположим (для упрощения примеров), что множества значений доменов, на которых определены атрибуты отношения СЛУжлщИЕ 1, ограничены значениями, содержащимися в теле зтого отношения. Начнем с обсуждения операции МНене с условием вида а сошр-ор сопаг. Предположим, что мы хотим найти всех служащих с заработной платой, равной 20000.00 руб. Возьмем отношение ЗЛРП 20000 (СЛУ ЗЛРП1". Мы видим, что результат операции СЛУЖАЩИЕ 1 <АМО> ЗАРП 20000 в точности совпадает с результатом операции служлщие 1 ннене сл у злрп 20000.