Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcii_OBD.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.87 Mб
Скачать

5.3.Нормалізація.

Процес нормалізації, як етап проектування БД, був уперше запропонований Э. Ф. Коддом (Codd, 1972, б).

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

Його метою є створення набору відношень із заданими властивостями на основі вимог до даних, встановлених у деякій предметній області.

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

Першим його кроком є встановлення зв'язків між атрибутами відношення (виявлення функціональних залежностей).

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

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

5.3.1.Функціональні залежності. Визначення функціональної залежності.

Теорія нормалізації основана на наявності тої чи іншої залежності між полями таблиці. Визначають два типи такої залежності: функціональна та багатозначна.

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

Якщо два кортежі одного відношення R мають однакове значення атрибута А, який функціонально визначає атрибут B, то і атрибут B в цих кортежах також буде мати однакове значення:

Відношення R

A

B

Атрибут B функціонально залежить від A:

R.А -> R.B

1

Сенсорний комутатор

...

2

Сенсорний комутатор

....

Розрізняють повну та часткову залежності.

5.3.2.Процес нормалізації.

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

Ненормалізована форма (ННФ) - таблиця, що містить одну або кілька повторюваних груп даних/

Перша нормальна форма (1НФ)

Для перетворення ненормалізованої таблиці в першу нормальну форму (1НФ) у вихідній таблиці(ННФ) необхідно знайти й усунути всі повторювані групи даних.

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

Друга нормальна форма (2НФ)

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

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

Відповідно, функціональна залежність А B є повною, якщо видалення будь якого атрибута з А призводить до втрати цієї залежності. Якщо залежність зберігається, то має місце часткова функціональна залежність А B.

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

Це означає, що ключ однозначно визначає неключовий атрибут, тобто одному значенню ключа відповідає одне значення неключового атрибута. Якщо ключ складний, то залежність повинна виконуватись на рівні всього ключа, а не якої-небудь його частини.

Нормалізація 1НФ-відношення з утворенням 2НФ-відношень полягає в усунені часткових залежностей.

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

Приклад відношення Оренда, що знаходиться в 1НФ.

Особистий № орендаря

№ об’єкта оренди

Прізвище орендаря

Адреса об’єкта оренди

Дата початку оренди обєкта

Дата закінчення терміну оренди

Рента,

грн..

Особистий № власника об’єкта оренди

Прізвище власника

ONOR

NOO

PIBO

ADR

PDAT

KDAT

SR

ONV

PIBV

1.Виявляємо всі функціональні залежності fz1-fz6 для відношення Оренда з парою атрибутів ONOR, NOO в якості первинного ключа:

fz1: ONOR, NOO  PDAT, KDAT (Повна залежність)

fz2: ONOR  PIBO (Часткова залежність)

fz3: NOO  ONV, PIBV, ADR, SR (Часткова залежність)

fz4: ONV  PIBV (Транзитивна залежність)

fz5: ONOR, PDAT  NOO, ADR, SR (Потенційний ключ)

fz6: NOO, PDAT  ONom, PIBO, KDAT (Потенційний ключ)

2.Перевіряємо приналежність до другої нормальної форми.

Їй має відповідати відсутність часткової залежності від ключа. Але fz2 та fz3 вказують на 2 випадки її присутності. Це означає, що дане відношення не знаходиться в 2НФ.

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

Застосування цього правила в нашому випадку приведе до створення трьох нових відношень – Орендар, Власники_Нерухомості, Облік_оренди:

Особистий № орендаря

Прізвище орендаря

ONOR

PIBO

Власники нерухомості

№ об’єкта оренди

Адреса об’єкта оренди

Рента,

грн..

Особистий № власника об’єкта оренди

Прізвище власника

NOO

ADR

SR

ONV

PIBV

Облік оренди

Особистий № орендарря

№ об’єкта оренди

Дата початку оренди обєкта

Дата закінчення терміну оренди

ONOR

NOO

PDAT

KDAT

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

Третя нормальна форма (3НФ)

Хоча 2НФ-відношеннях надмірність даних менша, ніж у 1НФ-відношеннях, вони усе ще можуть страждати від аномалій відновлення.

Так, при спробі відновлення імені власника нерухомості PIBV, це необхідно буде зробити у декількох рядках відношення Власники_Нерухомості, якщо він володіє більш, ніж одним обєктом.

Якщо обновити тільки один з цих двох рядків, база даних потрапить у суперечливий стан.

Ця аномалія відновлення викликається транзитивною залежністю, що є присутньою у даному відношенні. Вона може бути усунута шляхом приведення даного відношення до 3НФ.

Якщо для атрибутів А, В і С деякого відношення існують залежності виду А В і В С, то говорять, що атрибут C транзитивно залежить від атрибута А через атрибут B (за умови, що атрибут А функціонально не залежить ні від атрибута В, ні від атрибута С).

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

Приведення 2НФ-відношень до ЗНФ включає усунення транзитивних залежностей.

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

Усі атрибути, що не входять в первинний ключ відношень Облік_Оренди, Орендар функціонально залежні тільки від їхніх первинних ключів. Отже, відношення Облік_Оренди, Орендар не мають транзитивних залежностей, а тому вони вже знаходяться в третій нормальній формі (ЗНФ).

Розглянемо функціональні залежності, що існують у відношені Власники_Нерухомості:

fz3.1 NOO  ADR, SR, ONV, PIBV – усі атрибути функціонально залежать від первинного ключа.

fz3.2 ONV  PIBV – PIBV ще додатково залежить від ONV.

Це вказує на присутність транзитивної залежності, що має місце при наявності залежності від атрибута, що не входить у первинний ключ NOO, атрибута PIBV.

Для перетворення відношення Власники_Нерухомості у 3НФ необхідно видалити згадану вище транзитивну залежність шляхом створення двох нових відношень:

Власність в оренді

№ об’єкта оренди

Адреса об’єкта оренди

Рента,

грн..

Особистий № власника об’єкта оренди

NOO

ADR

SR

ONV

Власник

Особистий № власника об’єкта оренди

Прізвище власника

ONV

PIBV

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]