1626434760-4c9f92f9ed5188f8fc024fed893742bb (844133), страница 13
Текст из файла (страница 13)
совместимы во всем, кромеимен некоторых атрибутов, то перед выполнением операций этиотношения можно сделать совместимыми путем применения операции8переименования (см. дальше).Реляционная алгебра4. Прямое произведениеНапомним, что в теории множеств прямое произведение двухмножеств A и B (A×B) есть множество C = { <a, b> | a ∈ A, b ∈ B }.Согласно этому определению если A и B – отношения, то их прямоепроизведение дает множество пар кортежей, которое уже неявляется отношением.Поэтому в РА используется специальная форма прямогопроизведения – расширенное прямое произведение отношений.Результатом этой операции являются не пары кортежей, аконкатенации всех кортежей из 1-го операнда со всеми кортежамииз 2-го операнда.Заметим, что мощность результирующего отношения очень великаи к тому же оно не очень осмысленно, поэтому на практике этаоперация самостоятельно не применяется.9Реляционная алгебраКаждое отношение представляется не только набором кортежей(телом), но и своей схемой (заголовком).В случае прямого произведения отношение должно иметькорректно сформированный заголовок, а для этого, отношенияоперанды должны быть совместимы по взятию расширенногопрямого произведения, т.е.
множества имен атрибутов этихотношений не должны пересекаться. (Иначе произойдет потеряэлементов множества, т.к. в нем все элементы должны бытьразличимы.)Любые два отношения могут быть сделаны совместимыми повзятию расширенного прямого произведения путем примененияоперации переименования к одному из этих отношений.10Реляционная алгебра2. Специальные реляционные операцииК специальным реляционным операциям относятся:1) ограничение отношений,2) проекция отношений,3) соединение отношений,4) деление отношений.11Реляционная алгебра1. Ограничение отношенийОперация ограничения отношений (ОО) выполняется над однимоперандом-отношением и включает простое условие ограниченияA WHERE comp,где A – ограничиваемое отношение,comp – простое условие ограничения, имеющее вид:a Θ b, где a и b – имена атрибутов, Θ – операция сравнения(>,<,=,#,...),либоa Θ const, где a – имя атрибута, а const – константа.Результатом выполнения операции ОО является отношение,заголовок которого совпадает с заголовком отношения-операнда, ав тело входят те кортежи отношения-операнда, для которыхзначением условия ограничения является true (истина).Приведем пример операции ограничения отношений:НЕСОВЕРШЕННОЛЕТНИЙ =СТУДЕНТ WHERE СТУДЕНТ.ВОЗРАСТ < 1812Реляционная алгебраПусть comp1 и comp2 – два простых условия ограничения.
Тогда поопределению(1) A WHERE comp1 AND comp2эквивалентно(A WHERE comp1) ∩ (A WHERE comp2);(2) A WHERE comp1 OR comp2эквивалентно(A WHERE comp1) ∪ (A WHERE comp2);(3) A WHERE NOT compэквивалентноA \ (A WHERE comp).Благодаря этому, можно формулировать операции ОО, в которыхусловием ограничения является любое булево выражение,составленное из простых условий с использованием логических13связок AND, OR, NOT и скобок.Реляционная алгебраНа интуитивном уровне операцию ограничения можно представитькак взятие некоторой горизонтальной вырезки отношения-операндаA WHERE comptruetrue14Реляционная алгебра2. Взятие проекцииОперация взятия проекции требует наличия двух операндов:проецируемого отношения A и списка имен атрибутов, входящих вего заголовок.Результатом проекции отношения A по списку атрибутов(a1, a2, ...
am) является новое отношение B с заголовком,определяемым множеством атрибутов (a1, a2, ... am), и телом,состоящим из кортежей вида < a1 : v1, a2 : v2 , ... am : vm >,таких что в отношении A имеется кортеж, атрибут a1 которогоимеет значение v1, a2 – v2, ... am – vm.Тем самым при выполнении операции проекции делаетсявертикальная вырезка отношения-операнда с естественнымуничтожением возникающих кортежей-дубликатов.15Реляционная алгебраОтношениеСЛУЖАЩИЙ (Номер_Сл, Имя_Сл, Номер_Отд, Зарплата, Адрес)проецируется в новое отношениеСЛУЖ (Номер_Сл, Имя_Сл, Номер_Отд, Зарплата)операторомСЛУЖ = П СЛУЖАЩИЙ (Номер_Сл, Имя_Сл,Номер_Отд, Зарплата),где П – операция проекции.Аналогично, отношениеОТДЕЛ (Номер_Отд, Адрес)можно получить с помощью оператораОТДЕЛ = П СЛУЖАЩИЙ (Номер_Отд, Адрес).16СЛУЖАЩИЙНомер_Сл50215022502350245025Имя_СлИвановПетровСидоровОсиповПоповНомер_Отд721721750750721Зарплата12001200150014001300АдресМоскваМоскваПарижПарижМоскваОТДЕЛНомер_Отд721750СЛУЖНомер_Сл50215022502350245025Имя_СлИвановПетровСидоровОсиповПоповНомер_Отд721721750750721Зарплата12001200150014001300АдресМоскваПариж17Реляционная алгебра3.
Соединение отношенийЭта операция имеет три операнда: два из них – соединяемыеотношения, третий – простое условие.Эта операция имеет еще одно название – соединение отношений поусловию:A, B WHERE comp,где A, B – соединяемые отношения,comp – простое условие вида a Θ b или a Θ const, где a, b – именаатрибутов соответственно из A и B, а const – константа.По определению результатом операции соединения являетсяотношение, получаемое путем выполнения операции ограниченияпо условию comp прямого произведения отношений A и B.18Реляционная алгебраЧастными случаями соединений являются эквисоединение иестественное соединение.Эквисоединение – это соединение, где условие соединения имеетвид (a = b), где a и b – атрибуты из разных операндов.(Этот случай имеет важное значение, ибо часто встречается напрактике и имеет эффективные алгоритмы реализации.)Операция естественное соединение применяется к паре отношенийA и B, обладающих общим, возможно составным, атрибутом c(атрибут c имеет одно и то же имя и определен на одном и том жедомене).Пусть ab – объединение заголовков A и B.
Тогда естественноесоединение A и B – это спроецированный на ab результатэквисоединения A и B по A/c и B/c при A/c = B/c.19Реляционная алгебраДля иллюстрации естественного соединения вернемся к примеру,иллюстрирующему проекцию отношения. Только теперь будетрешаться обратная задача: из отношений СЛУЖ и ОТДЕЛ получитьновое отношение СЛУЖАЩИЙ, являющееся их естественнымсоединением.
При этом общим атрибутом будет являтьсяНомер_Отд.Если вспомнить введенное ранее определение внешнего ключа, топонятно, что основный смысл операции естественного соединения– это обеспечение возможности восстановления сложной сущности,декомпозированной(разбитой)попричинетребованиянормализации отношения.В данном примере атрибут Номер_Отд играет роль внешнегоключа и служит для восстановления сущности ОТДЕЛ.20Реляционная алгебра4. Деление отношенийПусть даны два отношения:A с заголовком {a1 , a2 ,... an , b1 , b2 , ...
bm} иB с заголовком {b1 , b2 , ... bm}.Будем считать, что атрибуты bi отношения A и атрибуты biотношения B не только обладают одним и тем же именем, но иопределены на одном и том же домене.Назовем множество атрибутов {a1, a2 ,... an} составным атрибутом a,а множество {b1, b2, ... bm} составным атрибутом b. Тогда можноговорить о реляционном делении бинарного отношения A(a ,b) наунарное отношение B(b).Результатом деления A на B является унарное отношение C(a),состоящее из кортежей <v>, таких что в A имеются кортежи<v, w>, такие что для каждого w в B есть кортеж <w>.21Реляционная алгебраПример.Пусть есть два отношения СОТРУДНИКИ (Имя, Номер_Отд) иИМЕНА (Имя), причем унарное отношение ИМЕНА содержитфамилии всех сотрудников организации, имеющих ученую степень.Тогда в результате деления отношения СОТРУДНИКИ наотношение ИМЕНА получим унарное отношение, содержащееномера отделов, в которых работают сотрудники, чьи фамилиивключены в отношение ИМЕНА.22Реляционная алгебра3.
Дополнительные операцииОперация переименования выполняется над отношением-операндоми имеет результатом новое отношение, тело которого совпадаетс телом операнда, но в заголовке имена атрибутов изменены.Операция присваивания позволяет сохранить результат вычисленияреляционного выражения в существующем отношении базыданных.23Реляционное исчисление1. Основные понятияОсновными понятиями реляционного исчисления являютсяпеременная и правильно построенная формула (далее – ППФ).В зависимости от области определения переменной (далее – ООП)различают исчисление кортежей и исчисление доменов исоответственно кортежные и доменные переменные.В первом случае ООП переменной являются кортежи некоторогоотношения, во втором – домены.Для определения кортежной переменной используется операторRANGE, например,RANGE СОТР IS СОТРУДНИКИ,где СОТР – переменная, СОТРУДНИКИ – отношение, на которомопределена переменная СОТР.В любой момент переменная СОТР представляет некоторый кортежотношения СОТРУДНИКИ.24Реляционное исчислениеПри использовании кортежной переменной в формулах можноссылаться на значения атрибутов переменной, например,СОТР.ИМЯ.Правильно построенная формула служит для выражения условий,накладываемых на кортежные переменные.При построении ППФ используются простые сравнения,логические связки (NOT, AND, OR, IF...THEN), а такжекванторы существования (EXISTS) и всеобщности (FORALL).25Реляционное исчислениеПриведем правила построения ППФ.1)2)Простое сравнение есть ППФ.Если F и Q – формулы, то NOT F, (F AND Q), (F OR Q),(IF F TNEN Q) – тоже формулы.3) Если F – формула, а x – свободная переменная в F,то EXISTS x (F) и FORALL x (F) – формулы.4) Других формул нет.О переменных говорят, что они либо свободные, либо связанные.Переменные, входящие в ППФ без кванторов, являютсясвободными.
Только свободные переменные могут входить врезультирующее отношение.Переменные под квантором являются связанными. Это означает,что такая переменная связана с данной ППФ, т.е. не видна за еепределами. При вычислении значения такой ППФ используется26не одно значение связанной переменной, а вся ее областьопределения.Реляционное исчислениеПример: пусть СОТР1 и СОТР2 – кортежные переменные,определенные на отношении СОТРУДНИКИ, тогда ППФEXISTS СОТР2 (СОТР1.Сотр_Зарп > СОТР2.Сотр_Зарп)для текущего кортежа переменной СОТР1 принимает значениеtrue в том и только том случае, если во всем отношенииСОТРУДНИКИ найдется кортеж такой, что значение егоатрибута Сотр_Зарп удовлетворяет внутреннему условиюсравнения.ФормулаFORALL СОТР2 (СОТР1.Сотр_Зарп > СОТР2.Сотр_Зарп)для текущего кортежа переменной СОТР1 принимает значениеtrue в том и только том случае, если для всех кортежейотношения СОТРУДНИКИ (связанных с переменной СОТР2)значение атрибута Сотр_Зарп удовлетворяет внутреннемуусловию сравнения.27Реляционное исчислениеНа самом деле принято говорить не о свободных и связанныхпеременных, а о свободных и связанных вхожденияхпеременных.Так, если переменная x является связанной в F, то во всех другихППФ она может быть как свободной, так и связанной, но влюбом случае не иметь никакого отношения к вхождению x в F.Рассмотрим следующую формулу:EXISTS СОТР2(СОТР1.Сотр_Отд_Ном = СОТР2.Сотр_Отд_Ном)ANDFORALL СОТР2(СОТР1.Сотр_Зарп > СОТР2.Сотр_Зарп).Здесь мы имеем два связанных вхождения переменной СОТР2 ссовершенно разным смыслом.28Реляционное исчисление2.