Багатозначна залежність
В теорії баз даних, багатозначна залежність — повне обмеження між двома множинами атрибутів у відношенні.
На відміну від функціональної залежності, багатозначна залежність вимагає наявність певних кортежів у відношенні. Отже, багатозначна залежність це особливий випадок кортеж-твірної залежності. Поняття багатозначної залежності використовується при визначенні четвертої нормальної форми.
Зміст |
Формальне визначення [ред.]
Формальне визначення наступне. [1]
Нехай
схема відношення і нехай
і
(підмножини). Багатозначна залежність
(що можна прочитати якбагатовизначає
) виконується на
якщо, в будь-якому допустимому віднощенні
, для всіх пар кортежів
і
в
таких, що
, існують кортежі
і
в
таких, що
Простіше попередні умови можна виразити так: якщо ми позначимо
кортеж із значеннями для
рівними
відповідно тоді, коли кортежі
і
існують в
, кортежі
і
мають також існувати в
.
Приклад [ред.]
Уявімо такий приклад бази даних курсів, книжки рекомендовані для кожного курсу, викладачі, які читають курс:
| Курс | Книга | Викладач |
|---|---|---|
| МатАн | Фіхтенгольц | Паламарчук Д |
| МатАн | Пасічник | Сироватка І |
| МатАн | Фіхтенгольц | Сироватка І |
| МатАн | Пасічник | Паламарчук Д |
| МатАн | Фіхтенгольц | Негода В |
| МатАн | Пасічник | Негода В |
| Дискретка | Нікольський | Паламарчук Д |
| Дискретка | Нікольський | Сироватка І |
Через те, що викладачі прикріплені до курсу і книги прикріплені до курсу незалежні між собою, такий дизайн бази даних містить багатозначну залежність; якщо б нам довелось додати книгу до курсу МатАн, ми мали б по одному запису для кожного викладача цього кусу і навпаки, це і є повна залежність.
Скажемо формально, тут присутні дві багатозначні залежності: {курс}
{книга} і тотожно {курс}
{викладач}.
Бази даних з багатозначними залежностіми виявляють надлишковість. При нормалізації баз даних, четверта нормальна форма вимагає, щоб або кожна багатозначна залежність X
Y, була тривіальною залежністю, або для кожної нетривіальної багатозначної залежності X
Y, X — суперключ.
Оптимальним розв'язком проблеми буде декомпозиція відношення на два із заголовками {Курс , Книга} и {Курс , Викладач}. Така декомпозиція буде знаходитися в 4НФ. Допустимість декомпозиції встановлює теорема Феджина.
Цікаві властивості [ред.]
- Якщо
, тоді
(див. лему Феджина) - Якщо
i
, тоді 
- Якщо
i
, тоді 
Наступні також залучають функціональну залежність:
- Якщо
, тоді 
- Якщо
i
, тоді 
Застосування [ред.]
Декомпозиція відношень [ред.]
Лема Фейджина [ред.]
У відношенні
виконується багатозначна залежність
тоді і тільки тоді, коли вірно
.
Теорема Фейджина [ред.]
Нехай дане відношення
. Відношення
дорівнює поєднанн. його проекцій будет равно соединению его проекций
і
тоді і тільки тоді, коли для відношення
виконується нетривіальна багатозначна залежність
.
Ця теорема є суворішою версією теореми Хіта.
Визначення [ред.]
повне обмеження (англ. full constraint):
- Обмеження, яке виражає що-небудь про всі атрибути в базі даних. (На відміну від вбудованого обмеження (англ. embedded constraint).) Те, що багатозначні залежності є повними обмеженнями випливає з його визначення, бо воно каже щось про атрибути
.
кортеж-твірна залежність (англ. tuple-generating dependency):
- Залежність, що явно вимагає присутність певних кортежів у відношенні.
- Наприклад, розглянемо такі відношення:

- І таке обмеження цілісності: кожен студент, що бере участь в якомусь курсі отримує оцінку. Це приклад залежності включення (англ. inclusion dependency); позначимо її як
![ENROLLS[studentId, course]\subseteq PERFORM[studentId, course].](//upload.wikimedia.org/math/e/2/c/e2cd99dd218b46da6058788057333c28.png)
- Тотожною до нашого обмеження цілісності формулою реляційного числення буде:
це приклад кортеж-твірної залежності.
тривіальна багатозначна залежність 1 (англ. trivial multivalued dependency):
- Багатозначна залежність, що залучає всі атрибути відношення тобто
. Тривіальна багатозначна залежність означає, для кортежів
і
, кортежі
і
дорівнюють
і
.
тривіальна багатозначна залежність 2
- Багатозначна залежність для якої
.
Примітки [ред.]
- ↑ Silberschatz, Abraham; Korth, Sudarshan (2006). Database System Concepts (вид. 5th). McGraw-Hill. с. 295. ISBN 007-124476-X.
Посилання [ред.]
- Multivalued dependencies and a new Normal form for Relational Databases (PDF) - Ronald Fagin, IBM Research Lab

схема відношення і нехай
і
(підмножини). Багатозначна залежність
багатовизначає
) виконується на
, для всіх пар кортежів
і
в
, існують кортежі
і
в ![t _1[\alpha] = t _2 [\alpha] = t _3 [\alpha] = t _4 [\alpha]](http://upload.wikimedia.org/math/8/5/d/85dfa6c14b7eddaacd959fe36645bb7e.png)
![t _3[\beta] = t _1 [\beta]](http://upload.wikimedia.org/math/c/a/7/ca736f7724f1a97d2399cf73db719652.png)
![t _3[R - \beta] = t _2 [R - \beta]](http://upload.wikimedia.org/math/f/c/b/fcbff7e18df9591c9c1ed09355ea6014.png)
![t _4[\beta] = t _2 [\beta]](http://upload.wikimedia.org/math/a/1/2/a12ea64b17943932a37ad5453f927e86.png)
![t _4[R - \beta] = t _1 [R - \beta]](http://upload.wikimedia.org/math/0/b/5/0b5bda4e4851fe2b567c8be94ac569cc.png)
(див. лему Феджина)
, тоді 
, тоді 
, тоді
, тоді 
![\left( r\left( A,B,C \right)=r\left[ A,B \right]\ \text{JOIN}\ r\left[ A,C \right] \right)\Leftrightarrow \left( A\twoheadrightarrow B|C \right)](http://upload.wikimedia.org/math/8/e/4/8e45f89cfe338993d3c82eeff8762d63.png)
.

![ENROLLS[studentId, course]\subseteq PERFORM[studentId, course].](http://upload.wikimedia.org/math/e/2/c/e2cd99dd218b46da6058788057333c28.png)
це приклад кортеж-твірної залежності.
. Тривіальна багатозначна залежність означає, для кортежів
.