|
Программирование >> Реляционные базы данных
Пример 4.5. Рассмотрим абстрактный пример омерамии декартова произведения. Пусть R и S имеют схемы и кортежи, показанные на рис. 4.3, Тогда произведение Лх 5 состоит из шести кортежей. Обратите внимание на го, как соединяются в пары каждый из двух кортежей Л с каждым из трех кортежей S. Поскольку В входит в обе схемы, и схеме fix S используются R.B и S.B. Другие атрибуты безопасны, и их имена входят в результирующую схему без изменений. □ 4.1.5 Натяфалыюе соединение Произведение двух отношений требуется далеко не всегда. Чаще нужно соединить их, создавая пары только из тех кортежей, которые по каким-то параметрам соответствуют друг другу. Просгейшим видом соответствия является натуральное соединение двух кортежей Л и 5, обозначаемое RtxS, в котором соединяются кортежи R и S, совпадающие по любым атрибутам, входящим и в Л, и в 5. Пусть А-,.....атрибуты, входящие и в схему Л, и в схему S. Тогда кортеж г из Л и кортеж S из S соединяются в пару, если и только если гч s совпадают по каждому из атрибутов Af, А,А . Р.сли кортежи г и S успешно соединены в объединении RtS, результатом является кортеж, называемыГ! соединенным кортежем, с компонентами для каждого из атрибутов в объединении схем R н 5. Соединенный кортеж совпадает с кортежем по каждому атрибуту из схемы R и совшиает с 5 по каждому атрибуту, входящему в схему S. Поскольку г и .? успешно соединены, они совпадают по атрибутам, входящим II в схему Л, и в схему 5. Значит, соединенный кортеж может совпадать с г и .V но атрибутам, входящим в обе схемы. Конструкция соединенного кортежа показана на рнс. 4.4. СоеднненныЁ кортеж Рис. 4.4. Соединение кортежей Заметим, что эта операция соединения совпадает с той, которая применялась в разделе 3.7.6 для воссоединения отношений, проецированных на два подмножества атрибутов. Гам соединение использовалось для объяснения смысла декомпозиции BCNF. В разделе 4.1.7 будет показано другое применение натурального соединения - комбинирование двух отношений, позволяющее написать запрос, относящийся к атрнбута.м каждого из них. Пример 4.Л. Натуральное соединение отношений R ч S из рнс. 4.3: Здесь В - единстоенный общий для Я и 5 атрибут. Поэтому лля успешного соедине ния кортежи должны совпадать только по компонентам В. В этом случае результирующий кортеж имеет компоненты для атрибутов А (из Л), В (из R или S) и Diva S). В этом примере первый кортеж Л успешно соединяется только с первым кортежем S; их общий атрибут В имеет значение 2. Так получается первый кортеж результата (I, 2,5, 6). Второй кортеж Л успешно соединяется только со вторым кортежем S. В резулыэте получается кортеж (3, 4, 7, 8). Заметам, что третий кортеж J не соединяется ни с одним кортежем Л и не оказывает никакого влияния на результат RxxS. Кортеж, который невозможно соединить ни с каким кортежем другого отношения, иногда называется висящим кортежем. □ Пример 4.7. Предыдущий пример не иллюстрирует всех возможностей натурального объединения. В нем каждый кортеж успешно соединяется только с одним кортежем и две схемы опюшений имеют только один общий атрибут. На рис 4.5 показаны отношения u и с двумя общими атрибутами В и С. В этом случае один кортеж соединяется с несколькими кортежами. Для успешного соединения кортежи должны совпадать по компонентам В и С. Значит, первый кортеж u успешно соединяется с двумя первыми кортежами у, а второй и третий кортежи U-q третьим кортежем К Результат этих операций тоже показан на рис. 45. □ Отношение U Отношение V Результат t/ix V Рис. 4.5. Нотурольное соединение отношений 4.1.6 Тета-соединения Натуральное соединение вынуждает соединять кортежи только при одном специфическом условии Хотя совпадение атрибутов - это наиболее общий базис объединения отношений, иногда желательно соединять кортежи двух отношений на другом основании. Для этой цели и служит понятие тета-соедииение. Тета означает произвольное условие, которое мы будем обозначать буквой С, а не 8. Тета-соеаиненио отношений Л и .S, основанное на усповии С, обозначайся как Лм- S. Результат этой операции получается следующим образом. 1. Берется произведение Л и S. 2. Из полученного произведения выбираются только те кортежи, которые удовлетворяют условию С. Как н при операиии произведения, схема результата - это объединение схем Л н 5, и котором префиксы R. и S. испмьзуются, чтобы указать, из какой схемы взят данный атри6)т. Пример 4.8. Рассмотрим операцию Utxo К где Un V- отношения из рис. 4.5. Необходимо рассмотреть все девять пар кортежей и проверить, действительно ли компонент А кортежа из U меньше компонента D кортежа из К Компонент А первого кортежа нз U равен 1 н успешно соединяется с каждым кортежем из К Однако второй и третий кортежи из С/ с компонентами А, равными 6 и 9, успешно соединяются только с последним кортежем К Значит, результат содержит только пять кортежей, построенных с помошью пяти успешных соединений в пары. Это отношение показано иа рис. 4.6. □ Рис. 4.6. Результат t/txj V Заметим, что схема результата содсрж1гг все шесть атрибутов. Префиксы Uk V позволяют раз.пич1ггь соответствующие им вхождения атрибутов В и С. Таким образом, тета-соелнненне отличается от натурального соединения, так как в последнем общие атрибуты смешаны в одной копии. Конечно, в натуральном соединении это умесшо, поскольку кортежи не соеднггяются, еслн они не совпадают по общим атрибутам. В случае тгта-соелннекия нет гарантии, что сравниваемые атрибуты в результате совпадут, так как оператором сравнения необязательно является =. Пример 4.9. Рассмотрим тета-соединение отношений U к Ус более сложным условием: -хд Амсь:в.г.в Для успешного соелнненая в пары требуется не только, чтобы компонент А из кортежа U ьт меньше компонента D из кортежа У, но и чтобы два кортежа различались по своим компонентам, соответствующим В. Обоим этим условиям удовлетворяет только один кортеж, поэтому результатом такого тета-соединения будет отношение А I U.B ас з ус I о в I 10
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |