Залежність з'єднання

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Залежність з'єднання — обмеження на множину можливих вірних відношень над схемою бази даних. Таблиця T є об'єктом залежності з'єднання, якщо T може бути відтворене з'єднанням декількох таблиць, кожна з яких містить підмножину атрибутів T. Якщо одна з таблиць у з'єднанні містить всі атрибути T, залежність з'єднання називається тривіальною.

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

Формальна визначення[ред. | ред. код]

Нехай це схема відношення і нехай це декомпозиція .
Відношення задовільняє залежності з'єднання , якщо .
Залежність з'єднання тривіальна, якщо одне з це сама .

[1]

Приклад[ред. | ред. код]

Розглянемо відношення Користувач, яке відтворює купівлі: { номер-замовлення, ім'я-користувача, назва-піци, ім'я-розношувача }. Вочевидь, ми можемо отримати наступні три відношення:

  • ім'я-користувача залежить від номер-замовлення
  • назва-піци залежить від номер-замовлення
  • ім'я-розношувача залежить від номер-замовлення

Через те, що зв'язки незалежні можна сказати, що тут є наступна залежність з'єднання: *((номер-замовлення, ім'я-користувача), (номер-замовлення, назва-піци), (номер-замовлення, ім'я-розношувача)).

Однак, якщо кожний користувач має особистого розношувача, можна отримати наступну залежність з'єднання : *((номер-замовлення, ім'я-користувача), (номер-замовлення, ім'я-розношувача), (ім'я-користувача, ім'я-розношувача), (номер-замовлення, назва-піци)), хоча *((номер-замовлення, ім'я-користувача, ім'я-розношувача), (номер-замовлення, назва-піци)) буде вірною також. Звідси видно, що наявність залежності з'єднання недостатня умова нормалізації схеми бази даних.

Примітки[ред. | ред. код]

  1. Silberschatz, Korth. Database System Concepts, 1st Edition