Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД вопросы 1-15.docx
Скачиваний:
9
Добавлен:
01.04.2025
Размер:
248.72 Кб
Скачать
  1. Операции над множествами

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

Объединение

Результатом является новое отношение, в которое входят все кортежи первого отношения и недостающие кортежи второго (дубликаты исключаются).

Реляционное объединение (relational union) - это результат выполнения операции конкатенации над двумя наборами записей. Эту операцию можно представить как реляционную «версию» сложения. Результат операции объединения набора записей А и набора записей В - простое добавление всех записей из набора А в набор В.

Синтаксис операции объединения:

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

SELECT CoiripanyName AS Name, Address, City.PostalCode

FROM Customers

UNION

SELECT [FirstName] & " " & [LastName] AS Name,

Address, City.PostalCode

FROM Employees

ORDER BY Name;

Пересечение

Результатом является новое отношение, в которое входят все кортежи первого отношения, которые есть во втором.

Операция пересечения (intersection operator) возвращает записи, общие для двух наборов. Очевидно, что пересечение можно использовать для поиска повторяющихся записей, что и происходит чаще всего. Пересечение реализуется при помощи внешних соединений.

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

SELECT DuplicateCustoners1

FROM DuplicateCustomers1

LEFT JOIN DuplicateCustoniers2

ON (DuplicateCustoners1.CustomerID = DuplicateCustomers2.CustomerID)

AND (DuplicateCustomers1.CompanyName = DuplicateCustomers2.CompariyName)

WHERE (((DuplicateCustomers2.CustomerlD) IS NOT NULL));

Разность

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

Операция нахождения разности используется для поиска утерянных (осиротевших) строк. Реляционная разность (relational difference) для двух наборов записей будет содержать все записи, которые принадлежат к одному набору записей, но не принадлежат к другому.

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

SELECT DuplicateCustomers1.*

FROM DuplicateCustomers1

LEFT JOIN DuplicateCustoraers2

ON (DuplicateCiJStomers1.CustomerID = DuplicateCustomers2.CustomerID)

AND (DuplicateCustomers1.CompariyName = DuplicateCustomers2.CompanyName)

MERE (DuplicateCustomers2.CustonierID IS NULL);

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

Соединяет каждый кортеж первого отношения с каждым кортежем второго. Результатом является новое отношения, число кортежей в котором (мощность отношения) равно произведению мощностей исходных отношений, а число атрибутов (степень)— сумме их степеней.

Декартово произведение двух наборов записей представляет собой соединение каждой записи из одного набора записей с каждой записью из другого набора.

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

SELECT CustomerName, CSRName

FROM Customer, СSRs;