Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
26.05.2014
Размер:
462.34 Кб
Скачать

Реляционная алгебра

Реляционная алгебра похожа на алгебру, которую вы учили в старших классах школы, но с одним важным отличием. В школьной алгебре переменные представля­ли числа, и операторы +, - хи / оперировали численными величинами. В реля­ционной алгебре переменные — это отношения: операторы действуют на отноше­ния, и результатом их действия являются новые отношения. Например, операция объединения комбинирует кортежи одного отношения с кортежами другого от­ношения, в результате чего получается третье отношение. Реляционная алгебра является замкнутой, то есть результаты одной или более реляционных операций всегда представляют собой отношение.

Отношения — это множества. Кортежи отношения можно рассматривать как элементы множества, следовательно, те операции, которые определены для мно­жеств, могут выполняться и над отношениями. Сначала мы продемонстрируем четыре таких оператора из теории множеств, а затем обсудим другие операторы, специфичные для реляционной алгебры. Но прежде мы рассмотрим примеры отношений, которые будут использоваться нами на протяжении этой и следую­щей глав.

Реляционные операторы

На рис. 8.8 показано шесть отношений и определения их атрибутов и доменов. Обратите внимание, что атрибут НазваниеПредмета фигурирует в нескольких отношениях. В связи с этим атрибут НазваниеПредмета в отношении ЗАНЯТИЯ ино­гда обозначается как ЗАНЯТИЯ.НазваниеПредмета.

В ходе дальнейшего изложения символьные значения приводятся в одинар­ных кавычках, а те символы, которые не заключены в кавычки, относятся к име­нам. Так, 'АУДИТОРИЯ' и Аудитория отличаются тем, что 'АУДИТОРИЯ' — это значе­ние, а Аудитория — это, например, имя домена. Что касается числовых данных, то числа, не заключенные в кавычки, представляют собой числовые данные, а числа н кавычках — строки. То есть 123 — это число, а '123' — это строка, составленная из символов Т, '2' и '3'.

Объединение

Объединение (union) двух отношений — это комбинирование кортежей одного от­ношения с кортежами другого отношения, в результате чего получается третье отношение. Порядок, в котором кортежи следуют в результирующем отношении, несуществен, но повторяющиеся строки должны быть удалены. Объединение от­ношений А и В обозначается А + В.

Чтобы данная операция имела смысл, отношения должны быть совместимы по объединению (union compatible), то есть оба отношения должны иметь одина­ковое количество атрибутов, и атрибуты в соответствующих столбцах должны принадлежать одному и тому же домену. Если, например, третий атрибут одного из отношений принадлежит домену Аудитории, то третий атрибут второго отно­шения также должен принадлежать этому домену.

На рис. 8.8 отношения ТРЕТЬЕКУРСНИК и ПОЧЕТНЫЙ_СТУДЕНТ совместимы по объединению, поскольку оба они имеют по три атрибута, и соответствующие атри­буты принадлежат одному и тому же домену. Атрибуты ТРЕТЬЕКУРСНИК.СтНомер и ПОЧЕТНЫЙ_СТУДЕНТ.Номер принадлежат домену ИдентификаторыЛюдей; атрибуты ТРЕТЬЕКУРСНИК.Имя и ПОЧЕТНЫЙ_СТУДЕНТ.Имя принадлежат домену ИменаЛюдей; атрибуты ТРЕТЬЕКУРСНИК.Специальность и ПОЧЕТНЫЙ_СТУДЕНТ.Интересы принадле­жат домену НазванияПредметов. Отношения ТРЕТЬЕКУРСНИК и ЗАНЯТИЯ имеют по три атрибута, но они несовместимы по объединению (union incompatible), посколь­ку их атрибуты происходят из разных доменов.

На рис. 8.9 показано объединение отношений ТРЕТЬЕКУРСНИК и ПОЧЕТНЫЙ. СТУДЕНТ. Обратите внимание, что кортеж [123, ДЖОНС, ИСТОРИЯ], который фигу­рирует в обоих отношениях, не дублируется в объединении.

Разность

Разность (difference) двух отношений — это отношение, содержащее все кортежи, которые присутствуют в первом отношении, но не присутствуют во втором. Отношения должны быть совместимы по объединению. Разность отношений ТРЕТЬЕКУРСНИК и ПОЧЕТНЫЙ_СТУДЕНТ показана на рис. 8.10. Как и в арифметике, при вычитании порядок следования аргументов имеет значение, так что А - В не равняется В - А.

Пересечение

Пересечение (intersection) двух отношений — это отношение, содержащее кор­тежи, которые присутствуют и в первом, и во втором отношении. Отношения должны быть совместимы по объединению. На рис. 8.11 пересечение отношений ТРЕТЬЕКУРСНИК и ПОЧЕТНЫЙ_СТУДЕНТ содержит всего один кортеж [123, ДЖОНС, ИСТОРИЯ], поскольку это единственный кортеж, который присутствует в обоих отношениях.

Произведение

Произведение (product) двух отношений (иногда его называют декартовым произве­дением (Cartesian product)) — это попарная конкатенация всех строк одного отноше­ния со всеми строками другого. Произведение отношения А, имеющего m кортежей, и отношения В, имеющего п кортежей, имеет m х п кортежей. Произведение обозна­чается А х В. На рис. 8.12 отношение СТУДЕНТ имеет четыре кортежа, а отношение

ЗАПИСЬ — три кортежа. Отношение СТУДЕНТ х ЗАПИСЬ имеет, таким образом, две­надцать кортежей (рис. 8.13). (Некоторые кортежи результирующего отношения па рис. 8.13 не имеют смысла. Чтобы извлечь из этого отношения осмысленную информацию, потребуются дополнительные операции, которые будут описаны позднее. Рисунок является не более чем иллюстрацией действия оператора.)

Соседние файлы в папке ИТПРЭС 2008 (Информационные технологии в проектировании РЭС)