Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование баз данных.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

3.1.2 Теоретико-множественные операторы

Объединением двух совместимых по типу отношений M и N называется отношение с тем же заголовком, что и у M и N, и телом, состоящим из кортежей, принадлежащих или M или N, или обоим отношениям.

Синтаксис: M UNION N

Примечание: объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение M, и отношение N, то в объединение он входит один раз.

Пример 2: Пусть даны два отношения M и N с информацией о сотрудниках (таблицы 3.2 и 3.3).

Таблица 3.2 - Отношение M Таблица 3.3 - Отношение N

ИД_Сотр

Фамилия

Зарплата

ИД_Сотр

Фамилия

Зарплата

1

Андреев

100

1

Андреев

100

2

Поляков

200

2

Танеев

250

3

Сидоров

300

3

Сидоров

300

Результатом объединения отношений M и N будет отношение, представленное в таблице 3.4.

Таблица 3.4 - Объединение отношений M и N

ИД_Сотр

Фамилия

Зарплата

1

Андреев

100

2

Поляков

200

3

Сидоров

300

1

Андреев

100

3

Танеев

250

Примечание: как видно из данного примера, первичные ключи, которые были в отношениях M и N не наследуются объединением этих отношений. Поэтому, в объединении отношений M и N атрибут "ИД_Сотр" может содержать дубликаты значений. Если бы это было не так, и ключи наследовались бы, то это противоречило бы понятию операции объединения как "объединение множеств". Конечно, объединение отношений M и N имеет, как и любое отношение, первичный ключ, например, состоящий из всех атрибутов.

Пересечением двух совместимых по типу отношений M и N называется отношение с тем же заголовком, что и у отношений M и N, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям M и N.

Синтаксис операции пересечения: M INTERSECT N

Пример 3. Для тех же отношений M и N (таблицы 3.2 и 3.3) результатом пересечения будет отношение, представленное в таблице 3.5.

Таблица 3.5. Пересечение отношений M и N

ИД_Сотр

Фамилия

Зарплата

1

Андреев

100

3

Сидоров

300

Примечание: как видно и в этом случае потенциальные ключи в результирующем отношении не наследуются. В целом, надо отметить, что ни одни реляционный оператор не передает в результат данных о ключах. Смысл этого заключается в том, что первичный ключ это понятие, которое позволяет различать один объект от другого. В тоже время, любой реляционный оператор есть операция над отношениями, переданными ему в качестве параметров. А понятие отношения есть множество, в котором отсутствуют механизмы, позволяющие отличать один элемент от другого.

Вычитанием двух совместимых по типу отношений M и N называется отношение с тем же заголовком, что и у отношений M и N, и телом, состоящим из кортежей, принадлежащих отношению M и не принадлежащих отношению N.

Синтаксис операции вычитания: M MINUS N

Пример 4. Для отношений M и N, что и в предыдущем примере (таблицы 3.2 и 3.3) вычитание имеет вид, представленный в таблице 3.6.

Таблица 3.6 - Вычитание отношений M и N

ИД_Сотр

Фамилия

Зарплата

2

Поляков

200

Декартовым произведением двух отношений M(M1, M2,…Mn) и N(N1, N2,…Nm) называется отношение, заголовок которого является сцеплением заголовков отношений M и N: (M1, M2,…Mn, N1, N2,…Nm), а тело состоит из кортежей, являющихся сцеплением кортежей отношений M и N: (m1, m2, …mn, n1, n2,…nm), таких, что (m1, m2, …mn)M, (n1, n2,…nm)N.

Синтаксис операции декартового произведения: M TIMES N

Примечания:

мощность произведения M TIMES N равна произведению мощностей отношений M и N, т.к. каждый кортеж отношения M соединяется с каждым кортежем отношения N;

если в отношения M и N имеются атрибуты с одинаковыми наименованиями, то перед выполнением операции декартового произведения такие атрибуты необходимо переименовать;

перемножать можно любые два отношения, совместимость по типу при этом не требуется.

Пример 5. Пусть даны два отношения A и B с информацией о сотрудниках и о существующих должностях (таблицы 3.7 и 3.8).

Таблица 3.7 - Отношение A (Сотрудники) Таблица 3.8 - Отношение B (Должности)

ИД_Сотр

Фамилия

Стаж

ИД_Д

Должность

Зарплата

1

Иванов

3

1

Профессор

200

2

Поляков

1

2

Доцент

150

3

Сидоров

4

3

Ассистент

100

Декартово произведение отношений A и B будет иметь вид, представленный в таблице 3.9

Таблица 3.9 - Результат декартового произведения отношений A и B

ИД_Сотр

Фамилия

Стаж

Ид_Д

Должность

Зарплата

1

Иванов

3

1

Профессор

200

1

Иванов

3

2

Доцент

150

1

Иванов

3

3

Ассистент

100

2

Поляков

1

1

Профессор

200

2

Поляков

1

2

Доцент

150

2

Поляков

1

3

Ассистент

100

3

Сидоров

4

1

Профессор

200

3

Сидоров

4

2

Доцент

150

3

Сидоров

4

3

Ассистент

100

Примечание: в чистом виде декартово произведение не используется, так как оно не дает никакой новой информации, по сравнению с исходными отношениями. Для реальных запросов эта операция почти никогда не используется. Однако декартово произведение используется при выполнении различных специальных реляционных операций, в которых оно используется.