Багатозначна залежність

Матеріал з testwiki
Версія від 08:00, 3 липня 2022, створена imported>SalweenBot (правопис)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

В теорії баз даних, багатозначна залежність — повне обмеження між двома множинами атрибутів у відношенні.

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

Формальне визначення

Формальне визначення наступне. [1]

Нехай R схема відношення і нехай αR і βR (підмножини). Багатозначна залежність
αβ
(що можна прочитати як α багатовизначає β) виконується на R якщо, в будь-якому допустимому віднощенні r(R), для всіх пар кортежів t1 і t2 в r таких, що t1[α]=t2[α], існують кортежі t3 і t4 в r такі, що
t1[α]=t2[α]=t3[α]=t4[α]
t3[β]=t1[β]
t3[Rβ]=t2[Rβ]
t4[β]=t2[β]
t4[Rβ]=t1[Rβ]

Простіше попередні умови можна виразити так: якщо ми позначимо (x,y,z) кортеж із значеннями для α, β, Rαβ рівними x, y, z, відповідно тоді, коли кортежі (a,b,c) і (a,d,e) існують в r, кортежі (a,b,e) і (a,d,c) мають також існувати в r.

Приклад

Уявімо такий приклад бази даних курсів, книжки рекомендовані для кожного курсу, викладачі, які читають курс:

Викладання
Курс Книга Викладач
МатАн Фіхтенгольц Паламарчук Д
МатАн Пасічник Сироватка І
МатАн Фіхтенгольц Сироватка І
МатАн Пасічник Паламарчук Д
МатАн Фіхтенгольц Негода В
МатАн Пасічник Негода В
Дискретка Нікольський Паламарчук Д
Дискретка Нікольський Сироватка І

Через те, що викладачі прикріплені до курсу і книги прикріплені до курсу незалежні між собою, такий дизайн бази даних містить багатозначну залежність; якщо б нам довелось додати книгу до курсу МатАн, ми мали б по одному запису для кожного викладача цього кусу і навпаки, це і є повна залежність.

Скажемо формально, тут присутні дві багатозначні залежності: {курс}  {книга} і тотожно {курс}  {викладач}.

Бази даних з багатозначними залежностіми виявляють надлишковість. При нормалізації баз даних, четверта нормальна форма вимагає, щоб або кожна багатозначна залежність X  Y, була тривіальною залежністю, або для кожної нетривіальної багатозначної залежності X  Y, X — суперключ.

Оптимальним розв'язком проблеми буде декомпозиція відношення на два із заголовками {Курс , Книга} и {Курс , Викладач}. Така декомпозиція буде знаходитися в 4НФ. Допустимість декомпозиції встановлює теорема Феджина.

Цікаві властивості

  • Якщо αβ, тоді αRβ (див. лему Феджина)
  • Якщо αβ i γδ, тоді αδβγ
  • Якщо αβ i βγ, тоді αγβ

Наступні також залучають функціональну залежність:

  • Якщо αβ, тоді αβ
  • Якщо αβ i βγ, тоді αγβ

Застосування

Декомпозиція відношень

Лема Фейджина

У відношенні r(A,B,C) виконується багатозначна залежність AB тоді і тільки тоді, коли виконується AC.

Теорема Фейджина

Хай дане відношення r(A,B,C). Відношення r дорівнює поєднанню його проєкцій r[A,B] і r[A,C] тоді і тільки тоді, коли для відношення r виконується нетривіальна багатозначна залежність AB|C.

(r(A,B,C)=r[A,B] JOIN r[A,C])(AB|C)

Ця теорема є суворішою версією теореми Хіта.

Визначення

повне обмеження (Шаблон:Lang-en):

Це обмеження, що виражає що-небудь про всі атрибути в базі даних (на відміну від вбудованого обмеження (Шаблон:Lang-en)). Те, що багатозначні залежності є повними обмеженнями випливає з його визначення, оскільки воно стверджує дещо про атрибути Rβ.

кортеж-твірна залежність (Шаблон:Lang-en):

Залежність, що явно вимагає присутність певних кортежів у відношенні.
Наприклад, розглянемо такі відношення: ENROLLS(studentId,name,course), PERFORM(studentId,course,grade).
І таке обмеження цілісності: кожен студент, що бере участь в якомусь курсі отримує оцінку. Це приклад залежності включення (Шаблон:Lang-en); позначимо її як ENROLLS[studentId,course]PERFORM[studentId,course].
Тотожною до нашого обмеження цілісності формулою реляційного числення буде:
x,y,z(ENROLLS(x,y,z))wPERFORM(x,z,w)), що є прикладом кортеж-твірної залежності.

тривіальна багатозначна залежність 1 (Шаблон:Lang-en):

Багатозначна залежність, що залучає всі атрибути відношення, тобто R=αβ. Тривіальна багатозначна залежність означає, що для кортежів t1 і t2, кортежі t3 і t4 дорівнюють t1 і t2.

тривіальна багатозначна залежність 2

Багатозначна залежність для якої βα.

Примітки

Шаблон:Reflist

Посилання