Базы данных

Операции над множествами


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

Rental (accountld, videold, dateRented, dateDue, cost)

PreviousRental (accountld, videold, dateRented, dateReturned, cost)

Шаблоном этих таблиц является кортеж, состоящий из атрибутов следующих типов: (text, text, datetime, datetime, currency). Названия четвертых атрибутов в таблицах отличаются, но это не имеет значения для операторов работы с множествами.

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

В 6.4 представлены некоторые строки результата объединения Rental и PreviousRental. В действительности в результате получится 15 строк — 7 из отношения Rental и 8 из отношения PreviousRental. Имена атрибутов взяты из отношения Rental. Невозможно сказать, какому исходному отношению какой кортеж принадлежал. В 6.4 представлены все случаи проката, и текущие и предшествующие. При анализе работы по прокату может быть полезно рассматривать все предоставления напрокат, даже те, когда кассеты еще не возвращены.

Комментарии закрыты