Присоединиться к зависимости - Join dependency

В области информатики, известной как теория зависимости, а присоединиться к зависимости является ограничением на набор правоотношений по схеме базы данных. Стол подлежит объединению зависимость если всегда можно воссоздать присоединение несколько таблиц, каждая из которых имеет подмножество атрибутов . Если одна из таблиц в объединении имеет все атрибуты таблицы , зависимость соединения называется тривиальной.

Зависимость соединения играет важную роль в Пятая нормальная форма, также известный как обычная форма присоединения к проекту, потому что можно доказать, что если схема раскладывается по таблицам к , разложение будет разложение без потерь если правоотношения по ограничены зависимостью соединения от называется .

Другой способ описать зависимость соединения - сказать, что отношения в зависимости соединения независимы друг от друга.

В отличие от случая функциональные зависимости, здесь нет звук и полный аксиоматизация для зависимостей соединения,[1] хотя аксиоматизация существует для более выразительных языков зависимостей, таких как полные типизированные зависимости.[2]:Глава 8 Тем не менее, последствия зависимостей соединения разрешимы.[2]:Теорема 8.4.12.

Формальное определение

Позволять схема отношения и пусть быть разложением .

Соотношение удовлетворяет зависимость соединения

если

Зависимость соединения тривиальна, если одна из является сам.[3]

Зависимости 2-го соединения называются многозначная зависимость как исторический артефакт того факта, что они изучались раньше общего случая. В частности, если U это набор атрибутов и р отношение над ним, тогда р удовлетворяет если и только если р удовлетворяет

Пример

Для сети пиццерий, моделирующей покупки в таблице Customer = {order-number, customer-name, pizza-name, courier}. Можно вывести следующие отношения:

  • имя клиента зависит от номера заказа
  • название пиццы зависит от номера заказа
  • курьер зависит от номера заказа

Поскольку отношения независимы, существует следующая зависимость соединения: * ((номер-заказа, имя-клиента), (номер-заказа, имя-пиццы), (номер-заказа, курьер)).

Однако, если у каждого покупателя есть собственный курьер, может существовать такая зависимость присоединения: * ((номер-заказа, имя-клиента), (номер-заказа, имя-пиццы), (номер-заказа, курьер), ( имя-клиента, курьер)), но * ((номер-заказа, имя-клиента, курьер), (номер-заказа, имя-пиццы)) также будет действительным. Это делает очевидным, что просто наличия зависимости соединения недостаточно для нормализации схемы базы данных.

Смотрите также

Рекомендации

  1. ^ Петров, С. В. (1989). «Конечная аксиоматизация языков для представления свойств системы». Информационные науки. 47: 339–372. Дои:10.1016/0020-0255(89)90006-6.
  2. ^ а б Абитебул; Корпус; Виану. Основы баз данных.
  3. ^ Зильбершатц, Корт. Концепции системы баз данных (1-е изд.).