Нормалізація відносин (документація)

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

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


Є. Кодд спочатку визначив три рівні нормалізації, які він назвав першої, другої і третьої нормальними формами. Всі нормалізовані відносини перебувають в першій нормальній формі (1НФ). Деякі відносини 1НФ знаходяться також в другій нормальній формі (2НФ), деякі відносини 2НФ знаходяться в третій нормальній формі (ЗНФ). Р. Фейгін визначив четверту нормальну форму (4НФ), в якій знаходяться деякі відносини ЗНФ. Є механізм, що дозволяє будь-яке відношення перетворити до четвертої нормальної форми. У процесі таких перетворень можуть виділятися нові відносини.


Перша нормальна форма

Визначення. Відношення R знаходиться в 1НФ тоді і тільки тоді, коли всі вхідні в нього значення (домени) містять лише атомарні значення.

Це означає, що будь-яке нормалізоване відношення знаходиться в 1 НФ.

Функціональна залежність. Нехай X і Y – два атрибути деякого відносини. Кажуть, що Y функціонально залежить від X, якщо в будь-який момент часу кожному значенню Х відповідає не більше одного значення атрибуту Y.

Функціональну залежність позначають так X -> У.

Візьмемо ставлення студент S (Ns, Fio, Ngr, Addr, Tel), визначена в. У цьому відношенні кожен з атрибутів Fio, Ngr, Addr, Tel функціонально залежить від атрибуту Ns. Можна уявити функціональні залежності у вигляді діаграми – рис. 2.

Виявлення функціональних залежностей є суттєвою частиною розуміння семантики даних. У відношенні S_P (Ns, Np, Ball), визначеному в, атрибут Ball функціонально залежить від сукупності атрибутів Ns, Np (діаграма представлена на рис. 3).

Отже, у нормалізованому відношенні всі неключові атрибути функціонально залежать від ключа відношення. Ключем відносини S є атрибут Ns, ключем відносини S_P є сукупність атрибутів Ns, Np – складовою ключ.














Функціональні залежності
у відношенні S
Функціональні залежності
щодо S_P
 
   
Рис. 2. Рис. 3.

Неключових атрибут функціонально повно залежить від складеного ключа, якщо він функціонально залежить від ключа, але не знаходиться у функціональній залежності ні від якої частини складеного ключа.


Друга нормальна форма

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

STUD (Ns, Flo, Ngr,Addr, Tel, Np, Ball)

Ставлення STUD знаходиться в 1НФ. Але атрибути Flo, Ngr, Addr, Tel нe знаходяться в повній функціональної залежності від ключа відношення, тому що вони функціонально залежать від частини ключа – Ns. Це призводить до наступної небажаної ситуації. По-перше, має місце дублювання інформації. По-друге, інформація про студента з'явиться тільки тоді, коли він отримає оцінку хоча б з одного предмета.

Визначення. Відношення знаходиться під 2НФ, якщо воно знаходиться в 1НФ і кожен неключових атрибут функціонально повно залежить від складеного ключа.

Щоб ставлення STUD призвести до 2НФ, необхідно:

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

У нашому випадку відношення STUD перетворюється послідовно у відношення S_P і у відношення S. Відносини S, S_P знаходяться під 2НФ.

Транзитивне залежність. Нехай X, Y, Z-атрибути відношення R і Х ~> Y, Y-> Z, але зворотне відповідність відсутня. Тоді кажуть, що Z транвітівно залежить від X.

Побудуємо відношення SS (Ns, Flo, Ngr, Spec, Addr, Tel), де Spec – спеціавьнооть, яка визначається конкретною групою. У цьому відношенні атрибут Spec транзитивній залежить від Ns. Ця транзитивність призводить до труднощі виконання операцій запам'ятовування (редактіровавія). Інформація про спеціальність буде зберігатися тільки тоді, коли в соответствупцей групі буде хоча 6и один студент. Крім того, значення атрибуту Spec дублюється для всіх студентів однієї і тієї яе групи.


Третя нормальна форма

Визначення. Відношення R знаходиться в ЗНФ, якщо воно знаходиться в 2НФ і кожен неключових атрибут нетранзитивно залежить від первинного ключа.

Відношення, що знаходиться в 2НФ і не знаходиться в ЗНФ, завжди може бути перетворено в еквівалентну сукупність відносин 3НФ. Для перетворення ставлення до ЗНФ необхідно побудувати кілька відносин. У нашому випадку відношення SS наводиться до двох відносинам

S(Ns, Flo, Ngr, Addr, Tel),   Spec_S(Ngr, Spec).

Ставлення в ЗНФ називають ставленням в нормальній формі Бойса-Кодда (НФБК), якщо в ньому відсутні залежності ключів від неключових атрибутів.

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

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

Слід зазначити, що визначити функціональні залежності в базі даних може тільки проектувальник БД, тобто той, хто добре анает предметну область. Користь визначень в тому, що побудована в подальшому інформаційна система буде підтримувати для користувача обмеження цілісності. Крім того, завдяки функціональної залежності може існувати більш ефективна реалізація відносини.


Четверта нормальна форма

4НФ застосовується до схем відносин з багатозначними залежностями. 4НФ забороняє зберігати незалежні елементи, коли між цими елементами існує зв'язок типу "багато-до-багатьох". 4НФ вимагає, щоб такі елементи запам'ятовувалися в окремих відносинах.

Визначення. Кажуть, що ставлення R знаходиться в 4НФ, якщо воно знаходиться в НФБК і в ньому відсутні невавісімие багатозначні вавісімості, тобто всі невавісімие багатозначні залежності виділені в окремі відносини з одним і тим же ключем.

Розглянемо відношення R (Pred, Prep, Uch), де Pred – предмет, Prep – викладач, Uch – підручник. Семантика даних наступна:


* Даного предмета може відповідати будь-яку кількість викладачів і будь-яку кількість підручників;
* Викладачі та підручники не залежать один від одного.

У відношенні R атрибут Pred багатозначно визначає атрибут Prep; атрибут Uch багатозначно залежить від Pred, причому ці завівісімості не є функціональними.

Проекції Rl (Pred, Prep) і R2 (Pred, Uch) не містять таких залежностей, тому відносини R1, R2 представляють собою покращення в порівнянні з початковим ставленням R.

Слід зазначити, що поняття 4НФ так само, як і поняття функціональної залежності, стосується семантики (змісту) даних. Тому розробник, що використовує 4НФ, будує модель даних ближчу до реального світу.


Схожі статті:


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

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*