Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике 3 семестр (Базы данных).doc
Скачиваний:
47
Добавлен:
07.12.2018
Размер:
1.28 Mб
Скачать

6.2. Традиционные операции над множествами (теоретико-множественные операторы)

К традиционным операциям реляционной алгебры относят классические операции над множествами, т. е. объединение, пересечение, вычитание и декартово произведение. Рассмот­рим результаты действий данных операций над множествами отношений в реляционной модели данных.

Объединение

Определение. Объединением двух совместимых по типу отно­шений R1 и R2 называется отношение с тем же заголовком, что и у отношений R1 и R2, и телом, состоящим из кортежей, принадлежащих или R1, или R2, или обоим отношениям. Та­ким образом, при выполнении операции объединения двух отношений производится отношение, включающее все кор­тежи, входящие хотя бы в одно из отношений-операндов. Синтаксис операции объединения:

R1 union R2

Замечание.

Объединение, как и любое отношение, не может содержать оди­наковых кортежей. В силу этого, если некоторый кортеж входит и в отношение R1, и в отношение R2, то в объединение он входит только один раз.

Пример. Пусть даны два отношения R1 и R2 с информацией о начислении стипендии студентам (рис. 6.1). Объединение этих отношений будет иметь вид, представленный на рис. 6.2.

Отношение R1 (Начисление стипендии)

Личный номер

Фамилия

Размер стипендии

11

Котова

3000

22

Серов

2500

35

Леонидов

3500

Отношение R2 (Начисление стипендии)

Личный номер

Фамилия

Размер стипендии

11

Котова

3000

22

Данилов

2500

65

Леонидов

2500

Рис. 6.1. Примеры отношений R1 и R2

Отношение R1 union R2

Личный номер

Фамилия

Размер стипендии

11

Котова

3000

22

Серов

2500

35

Леонидов

3500

22

Данилов

2500

65

Леонидов

2500

Рис. 6.2. Результат объединения отношений R1 и R2

Замечание: Реляционные операторы не передают результирующему отношению никаких данных о потенциальных ключах в силу того, что потенциальный ключ является семантическим понятием, отражающим различия объектов предметной области. Наличие потен­циальных ключей не выводится из структуры отношения, а явно задается для каждого отношения, исходя из его смысла. Реляци­онные операторы являются формальными операциями над отно­шениями и выполняются одинаково, независимо от смысла дан­ных, содержащихся в отношениях.

В силу сказанного операция объединения (а также и другие опе­рации реляционной алгебры) не наследует потенциальные клю­чи отношений, входящих в объединение. Поэтому в объедине­нии отношений R1 и R2 атрибут «Личный номер» может содержать дубликаты значений. Следует отметить, что объеди­нение отношений R1 и R2 как и любое отношение, имеет по­тенциальный ключ, например, состоящий из атрибутов (Личный номер, Фамилия).

Пересечение

Определение. Пересечением двух совместимых по типу отно­шений R1 и R2 называется отношение с тем же заголовком, что и у отношений R1 и R2, и телом, состоящим из корте­жей, принадлежащих одновременно обоим отношениям R1 и R2. Таким образом, операция пересечения двух отношений дает отношение, включающее все кортежи, входящие в оба отношения-операнда. Синтаксис операции пересечения:

R1 intersect R2

Пример. Для отношений R1 union R2 (рис.6.1.) результат операции пересечения имеет вид, представленный на рис. 6.3.

Отношение R1 intersect R2

Личный номер

Фамилия

Размер стипендии

11

Котова

3000

Рис. 6.3. Результат пересечения отношений R1 и R2

Вычитание

Определение. Вычитанием двух совместимых по типу отноше­ний R1 и R2 (рис. 6.1) называется отношение с тем же заголовком, что и у отношений R1 и R2, и телом, состоящим из кортежей, принадлежащих отношению R1 и не принадлежащих отно­шению R2. Таким образом, отношение, которое является разностью двух отношений, включает все кортежи, входящие в отношение-первый операнд, такие, что ни один из них не входит в отношение, являющееся вторым операндом. Синтак­сис операции вычитания:

R1 minus R2

Пример. Для отношений R1 и R2 (рис. 6.1) вычи­тание имеет вид, представленный на рис. 6.4.

Отношение R1 minus R2

Личный номер

Фамилия

Размер стипендии

22

Серов

2500

35

Леонидов

3500

Рис. 6.4. Результат операции вычитания для отношений R1 и R2

Декартово произведение

Определение. Декартовым произведением двух отношений R1 (R11, R12, …,R1n), R2,(R21, R22, …,R2m) называется отношение, заголовок которого является сцеплением заголовков отноше­ний R1 и R2:

(R11, R12, …,R1n ,R21, R22, …,R2m),

а тело состоит из кортежей, являющихся сцеплением корте­жей отношений R1 и R2:

(r11, r12, …,r1n ,r21, r22, …,r2m),

таких, что:

(r11, r12, …,r1n) R1 , (r21, r22, …,r2m) R2,

При выполнении прямого произведения двух отношений по­лучается отношение, кортежи которого являются конкатена­цией (сцеплением) кортежей первого и второго операндов. Синтаксис операции декартового произведения:

R1 times R2

Замечание. Мощность произведения R1 times R2 равна произведению мощностей отношений R1 и R2, т. к. каждый кортеж отношения R1 соединяется с каждым кортежем отношения R2.

Если в отношениях R1 и R2 имеются атрибуты с одинаковыми наименованиями, то перед выполнением операции декартового произведения такие атрибуты необходимо переименовать. При перемножении отношений совместимость по типу не требуется.

Пример. Пусть даны два отношения R1 и R2 с информацией о студентах и дисциплинах (рис. 6.5). Декартово произведение отношений R1 и R2 будет иметь вид, представленный на рис. 6.6.

Отношение R1 (Студенты)

Личный номер

Фамилия

11

Котова

22

Серов

35

Леонидов

Отношение R2 (Название дисциплины)

Код дисциплины

Название дисциплины

1

Высшая математика

5

История

11

Иностранный язык

Рис. 6.5. Примеры отношений R1 и R2

Отношение R1 times R2

Личный номер

Фамилия

Код дисциплины

Название дисциплины

11

Котова

1

Высшая математика

11

Котова

5

История

11

Котова

11

Иностранный язык

22

Серов

1

Высшая математика

22

Серов

5

История

22

Серов

11

Иностранный язык

35

Леонидов

1

Высшая математика

35

Леонидов

5

История

35

Леонидов

11

Иностранный язык

Рис. 6.6. Результат операции декартова произведения для отношений R1 и R2

Замечание. Операция декартова произведения непосредственно для реальных запросов не используется, но она важна для выполнения специальных операций [20, С. 55-64].