В теорії баз даних, багатозначна залежність — повне обмеження між двома множинами атрибутів у відношенні.
На відміну від функціональної залежності, багатозначна залежність вимагає наявність певних кортежів у відношенні. Отже, багатозначна залежність це особливий випадок кортеж-твірної залежності. Поняття багатозначної залежності використовується при визначенні четвертої нормальної форми.
Формальне визначення
Формальне визначення наступне.
[1]
Нехай
схема відношення і нехай
і
(підмножини). Багатозначна залежність

(що можна прочитати як
багатовизначає
) виконується на
якщо, в будь-якому допустимому віднощенні
, для всіх пар кортежів
і
в
таких, що
, існують кортежі
і
в
такі, що
![{\displaystyle t_{1}[\alpha ]=t_{2}[\alpha ]=t_{3}[\alpha ]=t_{4}[\alpha ]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/28dac8a6ce01ff0c0eaf97e47cb4a6164574697c)
![{\displaystyle t_{3}[\beta ]=t_{1}[\beta ]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c1b8c3ff8a5122951ed0c3bde30a0fefa12a4694)
![{\displaystyle t_{3}[R-\beta ]=t_{2}[R-\beta ]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a1e9b0508d473b6a2493d6ec5ac93e89bbb5e9ad)
![{\displaystyle t_{4}[\beta ]=t_{2}[\beta ]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c67b160b10368214f2b99a092517b35567f6628f)
![{\displaystyle t_{4}[R-\beta ]=t_{1}[R-\beta ]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2c618b583226ae1529c8f844517fedf41d2550b3)
Простіше попередні умови можна виразити так: якщо ми позначимо
кортеж із значеннями для
рівними
відповідно тоді, коли кортежі
і
існують в
, кортежі
і
мають також існувати в
.
Приклад
Уявімо такий приклад бази даних курсів, книжки рекомендовані для кожного курсу, викладачі, які читають курс:
Викладання
Курс |
Книга |
Викладач
|
МатАн |
Фіхтенгольц |
Паламарчук Д
|
МатАн |
Пасічник |
Сироватка І
|
МатАн |
Фіхтенгольц |
Сироватка І
|
МатАн |
Пасічник |
Паламарчук Д
|
МатАн |
Фіхтенгольц |
Негода В
|
МатАн |
Пасічник |
Негода В
|
Дискретка |
Нікольський |
Паламарчук Д
|
Дискретка |
Нікольський |
Сироватка І
|
Через те, що викладачі прикріплені до курсу і книги прикріплені до курсу незалежні між собою, такий дизайн бази даних містить багатозначну залежність; якщо б нам довелось додати книгу до курсу МатАн, ми мали б по одному запису для кожного викладача цього кусу і навпаки, це і є повна залежність.
Скажемо формально, тут присутні дві багатозначні залежності: {курс}
{книга} і тотожно {курс}
{викладач}.
Бази даних з багатозначними залежностіми виявляють надлишковість. При нормалізації баз даних, четверта нормальна форма вимагає, щоб або кожна багатозначна залежність X
Y, була тривіальною залежністю, або для кожної нетривіальної багатозначної залежності X
Y, X — суперключ.
Оптимальним розв'язком проблеми буде декомпозиція відношення на два із заголовками {Курс , Книга} и {Курс , Викладач}. Така декомпозиція буде знаходитися в 4НФ. Допустимість декомпозиції встановлює теорема Феджина.
Цікаві властивості
- Якщо
, тоді
(див. лему Феджина)
- Якщо
i
, тоді 
- Якщо
i
, тоді 
Наступні також залучають функціональну залежність:
- Якщо
, тоді 
- Якщо
i
, тоді 
Застосування
Декомпозиція відношень
Лема Фейджина
У відношенні
виконується багатозначна залежність
тоді і тільки тоді, коли виконується
.
Теорема Фейджина
Хай дане відношення
. Відношення
дорівнює поєднанню його проєкцій
і
тоді і тільки тоді, коли для відношення
виконується нетривіальна багатозначна залежність
.
![{\displaystyle \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)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/80c49d8feb0edfc7284d7d6802901d11cf22d98e)
Ця теорема є суворішою версією теореми Хіта.
Визначення
повне обмеження (англ. full constraint):
- Це обмеження, що виражає що-небудь про всі атрибути в базі даних (на відміну від вбудованого обмеження (англ. embedded constraint)). Те, що багатозначні залежності є повними обмеженнями випливає з його визначення, оскільки воно стверджує дещо про атрибути
.
кортеж-твірна залежність (англ. tuple-generating dependency):
- Залежність, що явно вимагає присутність певних кортежів у відношенні.
- Наприклад, розглянемо такі відношення:

- І таке обмеження цілісності: кожен студент, що бере участь в якомусь курсі отримує оцінку. Це приклад залежності включення (англ. inclusion dependency); позначимо її як
![{\displaystyle ENROLLS[studentId,course]\subseteq PERFORM[studentId,course].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/215b00199b27ec3f1754c525f52496421bc5154c)
- Тотожною до нашого обмеження цілісності формулою реляційного числення буде:
, що є прикладом кортеж-твірної залежності.
тривіальна багатозначна залежність 1 (англ. trivial multivalued dependency):
- Багатозначна залежність, що залучає всі атрибути відношення, тобто
. Тривіальна багатозначна залежність означає, що для кортежів
і
, кортежі
і
дорівнюють
і
.
тривіальна багатозначна залежність 2
- Багатозначна залежність для якої
.
Примітки
Посилання