logo
Лекція_1_Проектування БД

6. Метод нормальних форм

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

Нормальні форми

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

Виділяють наступну послідовність нормальних форм:

• четверта нормальна форма (4НФ);

• п'ята нормальна форма (5НФ).

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

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

Основною операцією методу є операція проекції. Пояснимо її на прикладі. Припустимо, що у відношенні R(A,B,C,D,E,...) усунення функціональної залежності С->D дозволить перевести його в наступну нормальну форму. Для рішення цієї задачі виконаємо декомпозицію відношення R на два нових відношення R1(A,B,C,E,...) і R2(C,D). Відношення R2 є проекцією відношення R на атрибути С и D.

Вихідне відношення ВИКЛАДАЧ, використовуване для іллюстрації метода, має складений ключ ФИО.Предм.Група й перебуває в 1 НФ. оскільки всі його атрибути прості.

Щодо цього відповідно до мал. 2.15 можна виділити часткову залежність атрибутів Стаж, Д_Стаж, Каф, Должн, Оклад від ключа - зазначені атрибути перебувають у функціональній залежності від атрибута ФИО, що є частиною складеного ключа.

Ця часткова залежність від ключа приводить до наступного:

1. У відношенні присутнє явне й неявне надлишкове дублювання даних, наприклад:

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

Частина надмірності усувається при переході відношення в 2НФ.

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

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

У результаті одержимо дві відношення R1 і R2 в 2НФ (рис. 2.13).

У відношенні R1 первинний ключ є складовим і складається з атрибутів ФИО.Предм.Група. Нагадаємо, що даний ключ у відношенні R1 отриманий у припущенні, що кожний викладач в одній групі по одному предмету може або читати лекції, або проводити практичні заняття. У відношенні R2 ключ ФИО.

R1

ФИО

Предм

Група

ВидЗан

Іванов И. М.

СУБД

256

Практ

Іванов И. М.

ПЛ/1

123

Практ

Петров М. И.

СУБД

256

Лекція

Петров М. И.

Паскаль

256

Практ

Сидоров Н. Г.

ПЛ/1

123

Лекція

Сидоров Н. Г.

Паскаль

256

Лекція

Егоров В. В.

ПЭВМ

244

Лекція

R2

ФИО

Должн

Оклад

Стаж

Д_Стаж

Каф

Іванов И. М.

преп

500

5

100

25

Петров М. И.

ст.преп

800

7

100

25

Сидоров Н.Г

преп

500

10

150

25

Егоров В. В.

преп

500

5

100

24

Рис. 2.13. Відношення БД у 2НФ

Дослідження відносин R1 і R2 показує, що перехід до 2НФ дозволив виключити явну надмірність даних у таблиці R2 - повторення рядків з відомостями про викладачів. В R2 як і раніше має місце неявне дублювання даних.

Для подальшого вдосконалювання відношень необхідно перетворити його в ЗНФ.

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

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

Існує й альтернативне визначення.

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

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

Якщо у відношенні R1 транзитивні залежності відсутні, то у відношенні R2 вони є:

ФИО—>Должн—>Оклад,

ФИО—>Оклад—> Должн,

ФИО—>Стаж—> Д_Стаж

Транзитивні залежності також породжують надлишкове дублювання інформації у відношенні. Усунемо їх. Для цього використовуючи операцію проекції на атрибути, що є причиною транзитивних залежностей, перетворимо відношення R2, одержавши при цьому відношення R3, R4 і R5, кожне з яких перебуває в ЗНФ (рис, 2.14а). Графічно ці відношення представлені на рис. 2.14б. Помітимо, що відношення R2 можна перетворити по-іншому, а саме: у відношенні R3 замість атрибута Должн взяти атрибут Оклад.

а) б)

R 3

ФИО

Должн

Стаж

Каф

Іванов И. М.

преп

5

25

Петров М. И.

ст.преп

7

25

Сидоров Н.Г

преп

10

25

Егоров В. В.

преп

5

24

R4

Должн

Оклад

Преп

500

ст.преп

800

R5

Стаж

Д_стаж

5

100

7

100

10

150

Рис. 2.14. Відношення БД у ЗНФ

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

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

Посилена ЗНФ або нормальна форма Бойса - Кодда (БКНФ).

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

18