С.Д. Кузнецов - Основы баз данных (1121716), страница 15
Текст из файла (страница 15)
3.5. Отношение ЛРОекты и результат операции СЛУЖАЩИЕ В ПРОЕКТЕ 1 Т1МЕЯ ПРОЕКТЫ 04 дов, а, во-вторых, результат операции не более информативен, чем взятые в совокупности операнды. Как будет показано далее, основной смысл включения операции расширенного декартова произведения в состав реляционной алгебры Кодла состоит в том, что на ее основе определяется действительно полезная операция соединения. По поводу теоретико-множественных операций реляционной алгебры следует еще заметить, что все четыре операции являются ассоциативными.
Т. е. если обозначить через ОР любую из четырех операций, то Реляционная алгебра Колла Лекция 3 (А ОР В) ОР С = А (В ОР С), и, следовательно, без внесениядвусмысленности можно писать А оР в ор с(А, ни с — отношения, обладаюшие свойствами, необходимыми для корректного выполнения соответствуюшей операции). Все операции, кроме взятия разности, являются коммутативными, т. е.
А ОР В = В ОР А. Специальные реляционные операции В этом разделе мы несколько подробнее рассмотрим специальные реляционные операции реляционной алгебры, такие, как ограничение, проекция, соединение и деление. Операция ограничения Операция ограничения хнеее требует наличия двух операндоьс о~ раничиваемого отношения и простого условия ограничения. Простое условие ограничения может иметь: ° внд (а совр-ор Ь), где а и Ь вЂ” имена атрибутов ограничиваемого отношения; атрибуты а и Ь должны быть определены на одном и том же домене, для значений базового типа данных которого поддерживается операция сравнения совр ор, или на базовых типах данных, над значениями которых можно выполнять эту операцию сравнения; ° или вид (а саар-ор солас), где а — имя атрибута ограничиваемого отношения, а сопас — литерально заданная константа; атрибут а должен быть определен на домене или базовом типе, для значений которого поддерживается операция сравнения совр ор.
Операцией сравнения совр-ор могут быть «=», «»», «>», «>», «<», ««», Простые условия вычисляются в трехзначной логике (см. разд. «Реляционная модель данных», лекция 2), и в результате выполнения операции ограничения производится отношение, заголовок которого совпадает с заголовком отношения-операнда, а в тело входят те кортежи отношения- операнда, для которых значением условия ограничения является гп»е. Тем самым, если в некоторых кортежах содержатся неопределенные значения, и по данной причине вычисление простого условия дает значение ил/«лоха, то эти кортежи не войдут в результируюшее отношение.
Для обозначения вызова операции ограничения будем использовать конструкцию А хнеее сожр, где А — ограничиваемое отношение, а совр — простое условие сравнения, Пусть согар1 и соар2 — два простых условия ограничения. Тогда по определению: ° А ХНЕЕЕ (сслр1 Анр сожр2) обозначает тоже самое, что и ~А ХНЕЕЕ соглр11 1НТЕЕЕЕСТ (А ХНЕНЕ сотр2П 65 Основы баз данных курс ° А хневе (сотр1 ОВ сотр2) обозначает то же самое, что и (А хл(епе сотр1 ) ОН1ОН (А ХНЕРЕ сотр2); ° А ХМЕЛЕ НОТ сотр1 обозначает то же самое, что н А М1НПЯ (А ХНЕЕЕ сотр1).
Эти соглашения позволяют задействовать операции ограничения, в которых условием ограничения является произвольное булевское выражение, составленное из простых условий с использованием логических связок АХП, ОВ, НОТ и скобок. Результат выполнения операции служдщие в пРОекте 1 хнеее (СЛУ ЗАРП > 20000.00 АНО (СЛУ ОТД НОМ = 310 ОЕ СЛУ ОТД НОМ = 315)) (получить данные из отношения СЛУжАЛ(Ие В ПРОекте 1 о Служащих, работающих в отделах 310 и 315 и получающих зарплату, превышающую 20000.00 руб.) показан на рис. З.б.
Рис. 3.6. Результат операции СЛУЖА)Лие В ПРОекте 1 хнеВЕ (СЛУ ЗАРП > 20000.00 АХР (СЛУ ОТД НОМ = 310 ОВ СЛУ ОТД НОМ = 315)) На интуитивном уровне операцию ограничения лучше всего представлять как взятие некоторой «горизонтальной» вырезки из отношения- операнда (выборки некоторых строк из таблицы). Операция взятия проекции Операция взятия проекции также требует наличия двух операндов— проецируемого отношения А и подмножества множества имен атрибутов, входящих в заголовок отношения А. Результатом проекции отношения А на множество атрибутов (а„а„..., а„) (РВО,ТЕСТ А (ао а,, ..., а,)) ЯВЛЯЕтСЯОтНОШЕНИЕС заголовком, определяемым множеством атрибутов (а;, а„..., а„), и с телом, состоящим из кортежей вида <а,: у„а, ся«, ..., а.: у„> таких, что в отношении А имеетсЯ коРтеж, атРибУт а, котоРого имеет значение Ун атрибут а; имеет значение ~х„..., атрибуг а, имеет значение у„.
Тем самым, при выполнении операции проекции выделяется «вертикальная» вырезка отношения-операнда с естественным уничтожением потенциально возникавших кортежей-дубликатов. Реляционная алгебра Кодла Лекция 3 Заметим, что потенциальная потребность удаления дубликатов очень сильно усложняет реализацию операции проекции, поскольку в общем случае для удаления дубликатов требуется сортировка промежугочного результата операции. Основная сложность состоит в том, что этот промежуточный результат в общем случае может быть очень большим, и для сортировки требуется применять дорогостоящие алгоритмы виегиией сорлгировки, выполняемые с применением обменов с внешней памятью.
(Под «стоимостью» действия понимается время его выполнения.) Результатоперации Рнозест служАЩие в ЛРОекте 1 (слУ Отд нОИ) (в каких отделах работают служащие, данные о которых содержатся в отношении СЛУЖАЩИЕ В ПРОЕКТЕ 17) показан на рис. 3.7. Рис. 3.7. Результат выполнения операции РКОПЕСТ СЛУЖАЩИЕ В ПРОЕКТЕ 1 (СЛУ ОТД НОМ) Операция соединения отношений Общая операция соединения (называемая также соединением по условию) требует наличия двух операндов — соединяемых отношений и третьего операнда — простого условия.
Пусть соединяются отношения А и В. Как и в случае операции ограничения, условие соединения солгр имеет вид либо(а согар-ор Ь),либо(а соар-ор сопас), где а и Ь- имена атрибутов отношений А и В, солвс — литерально заданная константа, и соар-ор — допустимая в данном контексте операция сравнения. Тогда по определению результатом операции соединения А ЛО1нт в ХЛВНе совр совместимых по взятию расширенного декартова произведения отношений А и В является отношение, получаемое путем выполнения операции ограничения по условию сояр расширенного декартова произведенияогношенийли(А ООТНТ В ННЕНЕ солр = (А ТТНЕВ В) ННЕНЕ со р). Если тщательно осмыслить это определение, то станет ясно, что в общем случае применение условия соединения существенно уменьшит мощность результата промежуточного декартова произведения отношений-операндов только в том случае, если условие соединения имеет вид (а солгр-ор Ь), где а и Ь вЂ” имена атрибутов разных отношений-операндов.
Поэтому на практике обычно считают реальными операциями со- 67 курс Основы баа данных единения именно те операции, которые основываются на условии соединения приведенного вида. В подразделе, касаюшемся операции ограничения, мы определили трактовку использования в качестве ограничиваюшего условия произвольного булевского выражения, которое составлено из простых условий над атрибутами отношения-операнда и литерапьными константами. Конечно же, и в операции соединения может задаваться произвольное логическое выражение, составленное из простых условий над атрибутами отношений- операндов и константами.
Операцию соединения с таким условием совр разумно считать операцией дейсввиглельно соединения, если оно имеет вид (нли может быть преобразовано к виду) солр2 АМП (а сопр-ор Ь), где а и Ь вЂ” имена атрибутов разных отношений-операндов. Для иллюстрации операций соединения мы немного изменим заголовки и тела отношений, которые использовались ранее в примерах этой лекции. Пусть теперь имеются отношения слУжАЩие (слУ номеР, СЛУ ИМЯ, СЛУ ЗАРП, ПРО НОМ) (атрибут ПРО НОМ содержит номера проектов, в которых участвует каждый служаший) и ПРОЕКТЫ (ПРО НОМ, пРоект Рук, ЛРО ЗАРЛ) (ЛРО НОм — номер проекта, пРоект Рук — имя служашего-руководителя проекта, ЛРО зАРЛ вЂ” средняя заработная плата служаших, участвующих в проекте). Примерное содержимое тел отношений служАЩие и ЛРОекты показано на рис. 3.8.
Тогда осмысленной операцией соединения общего вида будет СЛУЖАЩИЕ ЛОТЫ ПРОЕКТЫ ННЕЕЕ (СЛУ ЗАРП > ПРО ЗАРП) (выдатьданные о служащих, получаюших заработную плату, превышаюшую среднюю заработную плату любого проекта). Результаты этого запроса показаны на рис. 3.9. Хотя операция соединения в приведенной интерпретации не является примитивной (поскольку определяется с использованием операций декартова произведения и проекции), в силу особой практической важности она включается в базовый набор операций реляционной апгебры Кодла. Заметим также, что в практических реализациях соединение обычно не выполняется именно как ограничение декартова произведения.
Имеются более эффективные алгоритмы, гарантируюшие получение такого же результата. Сушествует важный частный случай соединения — эквисоединение (Е(ЯЛ)0!)х)) и простое, но важное расширение операции эквнсоединения — естественное соединение ()МАТ13ВА1.