Присоединиться к зависимости - Join dependency
В области информатики, известной как теория зависимости, а присоединиться к зависимости является ограничением на набор правоотношений по схеме базы данных. Стол подлежит объединению зависимость если всегда можно воссоздать присоединение несколько таблиц, каждая из которых имеет подмножество атрибутов . Если одна из таблиц в объединении имеет все атрибуты таблицы , зависимость соединения называется тривиальной.
Зависимость соединения играет важную роль в Пятая нормальная форма, также известный как обычная форма присоединения к проекту, потому что можно доказать, что если схема раскладывается по таблицам к , разложение будет разложение без потерь если правоотношения по ограничены зависимостью соединения от называется .
Другой способ описать зависимость соединения - сказать, что отношения в зависимости соединения независимы друг от друга.
В отличие от случая функциональные зависимости, здесь нет звук и полный аксиоматизация для зависимостей соединения,[1] хотя аксиоматизация существует для более выразительных языков зависимостей, таких как полные типизированные зависимости.[2]:Глава 8 Тем не менее, последствия зависимостей соединения разрешимы.[2]:Теорема 8.4.12.
Формальное определение
Позволять схема отношения и пусть быть разложением .
Соотношение удовлетворяет зависимость соединения
- если
Зависимость соединения тривиальна, если одна из является сам.[3]
Зависимости 2-го соединения называются многозначная зависимость как исторический артефакт того факта, что они изучались раньше общего случая. В частности, если U это набор атрибутов и р отношение над ним, тогда р удовлетворяет если и только если р удовлетворяет
Пример
Для сети пиццерий, моделирующей покупки в таблице Customer = {order-number, customer-name, pizza-name, courier}. Можно вывести следующие отношения:
- имя клиента зависит от номера заказа
- название пиццы зависит от номера заказа
- курьер зависит от номера заказа
Поскольку отношения независимы, существует следующая зависимость соединения: * ((номер-заказа, имя-клиента), (номер-заказа, имя-пиццы), (номер-заказа, курьер)).
Однако, если у каждого покупателя есть собственный курьер, может существовать такая зависимость присоединения: * ((номер-заказа, имя-клиента), (номер-заказа, имя-пиццы), (номер-заказа, курьер), ( имя-клиента, курьер)), но * ((номер-заказа, имя-клиента, курьер), (номер-заказа, имя-пиццы)) также будет действительным. Это делает очевидным, что просто наличия зависимости соединения недостаточно для нормализации схемы базы данных.
Смотрите также
Рекомендации
- ^ Петров, С. В. (1989). «Конечная аксиоматизация языков для представления свойств системы». Информационные науки. 47: 339–372. Дои:10.1016/0020-0255(89)90006-6.
- ^ а б Абитебул; Корпус; Виану. Основы баз данных.
- ^ Зильбершатц, Корт. Концепции системы баз данных (1-е изд.).