Из Википедии, бесплатной энциклопедии
  (Перенаправлен из разложения без потерь )
Перейти к навигации Перейти к поиску

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

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

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

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

Формальное определение [ править ]

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

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

если

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

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

Пример [ править ]

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

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

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

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

См. Также [ править ]

Ссылки [ править ]

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