Присоединиться к зависимости
В теории баз данных зависимость соединения — это ограничение на набор юридических отношений в схеме базы данных. Стол подчиняется зависимости соединения, если всегда можно воссоздать, объединив несколько таблиц, каждая из которых имеет подмножество атрибутов . Если одна из таблиц в объединении имеет все атрибуты таблицы , зависимость соединения называется тривиальной.
Зависимость объединения играет важную роль в пятой нормальной форме (5NF), также известной как нормальная форма объединения проектов , поскольку можно доказать, что если схема разлагается по таблицам к , декомпозиция будет декомпозицией соединения без потерь, если правовые отношения на ограничены зависимостью соединения от называется .
Другой способ описать зависимость соединения — сказать, что отношения в зависимости соединения независимы друг от друга.
В отличие от случая с функциональными зависимостями не существует обоснованной и полной аксиоматизации. , для зависимостей соединения [1] хотя аксиоматизация существует для более выразительных языков зависимостей, таких как полнотипизированные зависимости . [2] : Глава 8 Тем не менее, последствия зависимостей соединения разрешимы. [2] : Теорема 8.4.12
Формальное определение
[ редактировать ]Позволять быть схемой отношений и пусть быть разложением .
Отношение удовлетворяет зависимости соединения
- если
Зависимость соединения тривиальна, если один из является сам. [3]
Зависимости 2-арного соединения называются многозначными зависимостями как исторический артефакт того факта, что они были изучены до общего случая. Более конкретно, если U — набор атрибутов, а R — отношение над ним, то R удовлетворяет условиям тогда и только тогда, когда R удовлетворяет
Пример
[ редактировать ]Дана сеть пиццерий, которая моделирует покупки в таблице Order = {номер-заказа, имя-клиента, название-пиццы, курьер}.Можно вывести следующие отношения:
- имя клиента зависит от номера заказа
- Название пиццы зависит от номера заказа
- курьер зависит от номера заказа
Поскольку отношения независимы, существует зависимость соединения следующим образом: *((номер-заказа, имя-клиента), (номер-заказа, название-пиццы), (номер-заказа, курьер)).
Однако если у каждого клиента есть свой курьер, может возникнуть такая зависимость соединения: *((номер-заказа, имя-клиента), (номер-заказа, название-пиццы), (номер-заказа, курьер), ( имя клиента, курьер)), но *((номер заказа, имя клиента, курьер), (номер заказа, название пиццы)) также будет действительным. Это делает очевидным, что одной только зависимости соединения недостаточно для нормализации схемы базы данных.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Петров, СВ (1989). «Конечная аксиоматизация языков представления свойств систем». Информационные науки . 47 : 339–372. дои : 10.1016/0020-0255(89)90006-6 .
- ^ Jump up to: а б Абитбул; Халл; Виану (1995). Основы баз данных . Аддисон-Уэсли. ISBN 9780201537710 .
- ^ Зильбершац, Корт. Концепции системы баз данных (1-е изд.).