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

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

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

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

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

Нехай R це схема відношення і нехай R_1, R_2, ..., R_n це декомпозиція R.
Відношення r(R) задовільняє залежності з'єднання *(R_1,R_2,...R_n), якщо \bowtie_{i = 1}^n \Pi_{R_i}(r) = r.
Залежність з'єднання тривіальна, якщо одне з R_i це сама R.

[1]

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

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

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

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

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

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

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