Багатозначні залежності та четверта нормальна форма. Теорема Фейджина



Четверта нормальна форма стосується відношень, у яких є повторювані набори даних. Декомпозиція, заснована на функціональних залежностях, не приводить до виключення такої надлишковості. У цьому випадку використовують декомпозицію, засновану на багатозначних залежностях.

Багатозначна залежність є узагальненням функціональної залежності і розглядає відповідності між множинами значень атрибутів.

Розглянемо наступний приклад. Нехай потрібно обліковувати дані про абітурієнтів, що поступають у ВНЗ. При аналізі предметної області були виділені наступні вимоги:

· Кожен абітурієнт має право здавати іспити на кілька факультетів одночасно.

· Кожен факультет має свій список предметів, що здаються.

· Той самий предмет може здаватися на декількох факультетах.

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

Припустимо, що нам потрібно зберігати дані про те, які предмети повинен здавати кожний абітурієнт. Спробуємо зберігати дані в одному відношенні "Абітурієнти-Факультети-Предмети":

Абитуриент Факультет Предмет
Іванов Математичний Математика
Іванов Математичний Інформатика
Іванов Фізичний Математика
Іванов Фізичний Фізика
Петров Математичний Математика
Петров Математичний Інформатика

Відношення "Абітурієнти-Факультети-Предмети"

У даний момент у відношенні зберігається інформація про те, що абітурієнт Іванов вступає на два факультети (математичний і фізичний), а абітурієнт Петров - тільки на математичний. Крім того, можна зробити висновок, що на математичному факультеті потрібно здавати математику й інформатику, а на фізичному - математику і фізику.

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

Номер Абітурієнта Номер Факультету Номер Предмета
     
     
     
     
     
     

Модифіковане відношення "Абітурієнти-Факультети-Предмети"

Номер Абітурієнта Абітурієнт
  Іванов
  Петров

Відношення "Абітурієнти"

Номер Факультету Факультет
  Математичний
  Фізичний

Відношення "Факультети"

Номер Предмета Предмет
  Математика
  Інформатика
  Фізика

Відношення "Предмети"

Тепер кожне найменування зустрічається тільки в одному місці.

І все-таки як у вихідному, так і в модифікованому відношенні є аномалії оновлення, що виникають при спробі вставити чи видалити кортежі.

Аномалія вставки. При спробі додати у відношення "Абітурієнти-Факультети-Предмети" новий кортеж, наприклад (Ситник, Математичний, Математика), ми зобов'язані додати також і кортеж (Ситник, Математичний, Інформатика), тому що всі абітурієнти математичного факультету зобов'язані мати той самий список предметів, що здаються. Відповідно, при спробі вставити в модифіковане відношення кортеж (3, 1, 1), ми зобов'язані вставити в нього також і кортеж (3, 1, 2).

Аномалія видалення. При спробі видалити кортеж (Іванов, Математичний, Математика), ми зобов'язані видалити також і кортеж (Іванов, Математичний, Інформатика) з тої ж самої причини.

Таким чином, вставка і видалення кортежів не може бути виконана незалежно від інших кортежів відношення.

Крім того, якщо ми видалимо кортеж (Іванов, Фізичний, Математика), а разом з ним і кортеж (Іванов, Фізичний, Фізика), те буде загублена інформація про предмети, що повинні здаватися на фізичному факультеті.

Декомпозиція відношення "Абітурієнти-Факультети-Предмети" для усунення зазначених аномалій не може бути виконана на основі функціональних залежностей, тому що це відношення не містить ніяких функціональних залежностей. Це відношення є цілком ключовим, тобто ключем відносини є вся множина атрибутів. Але ясно, що якийсь взаємозв'язок між атрибутами є. Цей взаємозв'язок описується поняттям багатозначної залежності.

Визначення 2. Нехай R - відношення, і X, Y, Z - деякі з його атрибутів (чи множини атрибутів, що не перетинаються).

Тоді атрибути (множини атрибутів) Y і Z багатозначно залежать від X (позначається X ->-> Y | Z), тоді і тільки тоді, коли з того, що у відношенні R містяться кортежі r1=(x,y,z1) і r2=(x,y1,z) випливає, що у відношенні R міститься також і кортеж r3=(x,y,z).

Іншими словами, у відношенні R (A, B, C) існує багатозначна залежність R.A®®R.B у тому і тільки в тому випадку, якщо множина значень B, що відповідає парі значень A і C, залежить тільки від A і не залежить від С (тобто якщо для кожного значення атрибута R.A існує добре певна множина відповідних значень атрибута R.B).

Зауваження. Змінюючи місцями кортежі r1 і r2 у визначенні багатозначної залежності, отримаємо, що у відношенні R повинен міститися також і кортеж r4=(x,y1,z1). Таким чином,атрибути X і Z, багатозначно залежні від X, поводяться "симетрично" стосовно атрибута X. В отношении "Абитуриенты-Факультеты-Предметы" имеется многозначная зависимость Факультет->->Абитуриенты|Предмет.

Тобто в загальному випадку у відношенні R (A,B,C) існує багатозначна залежність R.A ->->R.B у тому і тільки в тому випадку, коли існує багатозначна залежність R.A ->->R.C.

Оскільки багатозначні залежності завжди утворюють зв'язані пари, їх часто позначають

R.A ->->R.B | R.С

Теорема Фейджина (скорочене формулювання). Відношення R (A, B, C) можна спроектувати без втрат у відношення R1(A,B) і R2(A,C) у тому і тільки в тому випадку, коли багатозначні залежності A->B і A->С можуть бути рознесені у відношення R1 і R2.

 

Для нашого прикладу це можна виразити так - для кожного факультету (для кожного значення з X) кожен абітурієнт, що вступає на нього, ( значення з Y) здає той самий список предметів (набір значень з Z), і для кожного факультету (для кожного значення з X) кожний іспит, що здається на факультеті, ( значення з Z) здається тим самим списком абітурієнтів (набір значень з Y). Саме наявність цієї залежності не дозволяє незалежно вставляти і видаляти кортежі. Кортежі зобов'язані вставлятися і видалятися одночасно цілими наборами.

Зауваження. Якщо у відношенні R є не менш трьох атрибутів X, Y, Z і є функціональна залежність X -> Y, то є і багатозначна залежність X ->-> Y | Z.

 

Дійсно, діючи формально відповідно до визначення багатозначної залежності, припустимо, що у відношенні R містяться кортежі r1=(x,y,z1) і r2=(x,y1,z). У силу функціональної залежності X ® Y звідси випливає, що y = y1. Але тоді кортеж r3=(x,y,z) у точності збігається з кортежем r2=(x,y1,z) і, отже, міститься у відношенні R. Таким чином, є багатозначна залежність X ®® Y | Z.

 

Таким чином, поняття багатозначної залежності є узагальненням поняття функціональної залежності.

Визначення 3. Багатозначна залежність X ->-> Y |Z називається нетривіальною багатозначною залежністю, якщо не існує функціональних залежностей X -> Y і X -> Z. У відношенні "Абітурієнти-Факультети-Предмети" є саме нетривіальна багатозначна залежність Факультет->->Абітурієнти|Предмет. У силу нетривіальності цієї залежності ми не можемо скористатися теоремою Хеза для декомпозиції відношення. Однак Р. Фейджином [52] доведена наступна теорема:

Теорема (Фейджина). Нехай X, Y, Z - множини атрибутів відношення R (X,Y,Z), що не перетинаються. Декомпозиція відношення R на проекції R 1=[ X,Y ] і R 2=[ X,Z ] буде декомпозицією без утрат тоді і тільки тоді, коли є багатозначна залежність X ®® Y | Z. Іншими словами, відношення R (X,Y,Z) можна спроектувати без втрат у відносини R 1=[ X,Y ] і R 2=[ X,Z ] у тому і тільки в тому випадку, коли багатозначні залежності X ->-> Y та X ®® Z можуть бути рознесені у відношення R1 і R2.

Нагадаємо, щоповною декомпозицією відношення, або декомпозицією без втрат називають таку сукупність довільної кількості її проекцій, з'єднання яких цілком збігається з вихідним відношенням. Під проектуванням (взяттям поекцій) без втрат розуміється такий спосіб декомпозиції відношення, при якому вихідне відношення цілком і без надлишковості відновлюється шляхом природного з'єднання отриманих відношень.

Зауваження. Якщо залежність X ->-> Y | Z є тривіальною, тобто існує одна з функціональних залежностей X -> Y чи X -> Z, то одержуємо теорему Хеза.

Доведення теореми.

Необхідність. Нехай декомпозиція відношення R на проекції R 1=[ X,Y ] і R 2=[ X,Y ] є

декомпозицією без утрат. Доведемо, що X ->-> Y | Z.

Припустимо, що відношення містить кортежі r1=(x,y,z1) і r2=(x,y1,z). Необхідно довести, що кортеж r3=(x,y,z) також міститься в R. За визначенням проекцій, кортеж r’1=(x,y) міститься в R 1=[ X,Y ], а кортеж r’2=(x,z) міститься в R 2=[ X,Z ]. Тоді кортеж r3=(x,y,z) міститься в природному з'єднанні R1JOINR2, а в силу того, що декомпозиція є декомпозицією без утрат, цей кортеж міститься й у R.

Необхідність доведена.

Достатність. Нехай є багатозначна залежність X ®® Y | Z. Доведемо, що декомпозиція відношення R на проекції R 1=[ X,Y ] і R 2=[ X,Z ] є декомпозицією без утрат.

Як і в доказі теореми Хеза, потрібно довести, що R1JOINR2 = R для будь-якого стану відношення R.

Включення R1JOINR2 Ê R доводиться як у теоремі Хеза. Таке включення виконується завжди для будь-якої декомпозиції відношення R.

Доведемо включення R1JOINR2 Í R. Нехай кортеж r=(x,y,z) ÎR1JOINR2. Це означає, що в проекції R 1=[ X,Y ] міститься кортеж r’1=(x,y), а в проекції R 2=[ X,Z ] міститься кортеж r’2=(x,z). За визначенням проекції, знайдеться таке значення z1 атрибута Z, що відношення R містить кортеж r1=(x,y,z1). Аналогічно, знайдеться таке значення y1 атрибута Y, що відношення R містить кортеж r2=(x,y1,z). Тоді за визначенням багатозначної залежності кортеж r=(x,y,z) ÎR. Включення доведене. Достатність доведена. Теорема доведена.

 

Визначення 4. Відношення перебуває в четвертій нормальній формі (4НФ) тоді і тільки тоді, коли відношення знаходиться в НФБК і не містить нетривіальних багатозначних залежностей.

Це можливо тоді і тільки тоді, коли повні декомпозиції двох проекцій, у які рознесені багатозначні залежності, містять можливий ключ. Це означає, що у випадку існування багатозначної залежності A ->->B всі інші атрибути відношення R функціонально залежать від A.

Тобто. відношення знаходиться в 4NF якщо воно знаходиться в BCNF і в ньому відсутні багатозначні залежності, що не є функціональними залежностями

Відношення "Абітурієнти-Факультети-Предмети" знаходиться в НФБК, але не в 4НФ. Відповідно до теореми Фейджина, це відношення можна без утрат декомпонувати на відношення:

 

Факультет Абітурієнт
Математичний Іванов
Фізичний Іванов
Математичний Петров

Відношення "Факультети-Абітурієнти"

Факультет Предмет
Математичний Математика
Математичний Інформатика
Фізичний Математика
Фізичний Фізика

Відношення "Факультети-Предмети"

В отриманих відношеннях усунуті аномалії вставки і видалення, характерні для відношення "Абітурієнти-Факультети-Предмети".

Помітимо, що отримані відношення залишилися цілком ключовими, і в них як і раніше немає функціональних залежностей.

Відношення з нетривіальними багатозначними залежностями виникають, як правило, у результаті природного з'єднання двох відношень по спільному полю, що не є ключовим у жодному з відношень. Фактично цее призводить до спробии зберігатити в одному відношенні інформаціюю про дві незалежні сутності. У якості ще одного приклада можна навести ситуацію, коли співробітник може мати багато робіт і багато дітей. Збереження інформації про роботи і дітей в одному відношенні призводить до виникнення нетривіальної багатозначної залежності Працівник->->Робота|діти.

 

Приклад 2. Розглянемо ще один приклад - приклад наступної схеми відношення:

Проекти (Проект_номер, Таб_номер, Проект_завдання)

Відношення Проекти містить номери проектів, для кожного проекту список співробітників, що можуть виконувати проект, і список завдань, що передбачаються проектом. Співробітники можуть брати участь у декількох проектах, і різні проекти можуть включати однакові завдання.

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

Проект_номер (A) Таб_номер (B) Проект_завдання (C)
П1 C1  
П1 C1  
П1 С2  
П1 С2  
П2 C1  
П2 C1  
П2 C1  
П2 С3  
П2 С3  
П2 С3  

Внаслідок сформульованих вище умов єдиним можливим ключем відношення є складений атрибут Проект_Номер, Таб_номер, Проект_завдання і немає ніяких інших детермінантів. Отже, відношення Проекти знаходиться в BCNF. Але при цьому воно має недоліки: якщо, наприклад, деякий співробітник приєднується до даного проекту, необхідно вставити у відношення Проекти стільки кортежів, скільки завдань у ньому співробітник буде виконувати. Аналогічна ситуація виникає з появою нового проекту.

У відношенні Проекти існують наступні дві багатозначні залежності:

Проект_номер->->Таб_номер;

Проект_номер ->-> Проект_завдання

У нашому прикладі можна зробити декомпозицію відношення Проекти в два відношення Проекти-Співробітники і Проекти-Завдання:


Дата добавления: 2016-01-05; просмотров: 13; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!