Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Г.А.Гайна - Основи проектування баз даних

.pdf
Скачиваний:
545
Добавлен:
17.02.2016
Размер:
1.29 Mб
Скачать

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

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

Атрибут B функціонально залежить від A, якщо кожному значенню A відповідає в точності одне значення B. Математичний запис функціональної залежності (ФЗ): AB

Приклад. Функціональні залежності:

Студент Група; Група Факультет; Викладач, Студент, Дисципліна Оцінка.

Якщо існує ФЗ A B, то це означає, що у всіх кортежах з однаковим значенням атрибуту A атрибут B буде мати також одне й те ж значення. A і B можуть складатися з декількох атрибутів.

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

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

Значення атрибуту вважається атомарним, якщо воно є неподільним у всіх застосуваннях.

Приклад. Представлення даних у таблицях може вважатися як атомарним, так і неатомарним залежно від використання. Засіб представлення визначається необхідним

101

ступенем деталізації і повинен підтримуватися у всіх застосуваннях (табл. 7.5).

Таблиця 7.5

Дата народження

Прізвище

Дата народження

Бойко

 

15 лютого 1991

 

 

 

 

 

 

 

 

 

 

 

Прізвище

Дата і місяць

 

Рік

Бойко

15 лютого

 

1991

 

 

 

 

 

 

 

 

 

 

 

Прізвище

День

 

Місяць

 

Рік

Бойко

15

 

лютий

 

1991

 

 

 

 

 

 

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

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

Приклад. Розглянемо відношення Студент (табл. 7.6).

Таблиця 7.6

Студент

Номер залікової

Прізвище

Група

Дисципліна

Оцінка

книжки

 

 

Бази даних

 

1010

Бойко

ІТП-31

5

 

 

 

 

 

Функціональні залежності:

залік. кн., Дисципліна Прізвище, Група, Оцінка

залік. кн. Прізвище, Група

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

102

умова відновлення вихідного відношення без втрат. Проекції мають такий вигляд (табл. 7.7...7.8).

Таблиця 7.7

Студент

Номер залікової

Дисципліна

Оцінка

 

книжки

 

 

 

 

 

 

1010

Бази даних

 

5

 

 

 

Група

 

 

 

Таблиця 7.8

 

 

 

 

 

Номер залікової

Прізвище

 

Група

 

 

книжки

 

 

 

 

 

 

1010

Бойко

 

ІТП-31

 

 

 

 

 

 

 

 

 

Відсутність втрат при декомпозиції відношення R(x,y,z)

на відношення R1(x,y) і R2(x,z) виконується, якщо від спільного атрибуту двох отриманих відношень (x) залежить хоча б один атрибут з двох, що залишилися (y або z), тобто якщо виконується (x y) або (x z).

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

Атрибут C транзитивно залежить від атрибуту A, якщо для атрибутів A, B, C виконуються такі умови A B і B C, але зворотня залежність відсутня.

Приклад. Розглянемо відношення Студент (табл. 7.9).

 

Студент

 

 

Таблиця 7.9

 

 

 

 

 

Номер залікової

Прізвище

Група

 

Факультет

 

книжки

 

 

 

АІТ

 

1010

Бойко

ІТП-31

 

 

103

Функціональні залежності:

№ залік. кн. Прізвище, Група, Факультет Група Факультет

Між атрибутами існує транзитивна залежність. Для того щоби запобігти цьому необхідно виконати декомпозицію відношення (табл. 7.10, 7.11):

 

Студент

Таблиця 7.10

 

 

 

Номер залікової

 

Прізвище

Група

 

книжки

 

 

 

 

1010

 

Бойко

ІТП-31

 

 

 

 

 

 

 

 

Група

Таблиця 7.11

 

 

 

 

Група

Факультет

 

 

 

ІТП-31

 

АІТ

 

 

 

 

 

 

 

 

Нормальна форма Бойса-Кодда. Відношення знаходить-

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

Приклад. Розглянемо відношення Спеціальність

(табл. 7.12).

Спеціальність

 

Таблиця 7.12

 

 

 

Спеціальність

Дисципліна

 

Викладач

 

ІТП

Бази даних

 

Барко

 

ІУСТ

Бази даних

 

Шевченко

 

 

 

 

 

 

Припустимо, що на кожній спеціальності певну дисципліну може викладати тільки один викладач і кожен викладач викладає тільки одну дисципліну. У цьому випадку мають місце такі залежності:

Спеціальність, Дисципліна Викладач Викладач Дисципліна

104

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

Для того щоби позбутися аномалій необхідно виконати декомпозицію відношення (табл. 7.13, 7.14).

Таблиця 7.13

Спеціальність

Спеціальність

Дисципліна

ІТП

Бази даних

ІУСТ

Бази даних

 

 

Таблиця 7.14

Дисципліна

Викладач

Дисципліна

Барко

Бази даних

Шевченко

Бази даних

 

 

Четверта нормальна форма. Відношення знаходиться в

4НФ тоді і тільки тоді, коли у випадку існування багатозначної залежності A→→B всі інші атрибути відношення функціонально залежать від A.

У відношенні R(A,B,C) існує багатозначна залежність

A→→B в тому і тільки в тому випадку, коли множина значень B, що відповідає парі значень A і C залежить тільки від A і не залежить від C.

Відношення R(A,B,C) можна розбити без втрат інформації на відношення R1(A,B) і R2(A,C) в тому і тільки в тому випадку,

якщо існують багатозначні залежності A→→B і A→→C.

Приклад. Розглянемо відношення Кафедра (табл.7.15).

Таблиця 7.15

Кафедра

Кафедра

Викладач

Група

ІТ

Барко

ІТП-31

ІТ

Барко

ІТП-32

ІТ

Шевченко

ІТП-31

ІТ

Шевченко

ІТП-32

 

 

 

105

У даному відношенні існують дві багатозначні залежності:

Кафедра →→ Викладач Кафедра →→ Група

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

Для того, щоби звести відношення до 4НФ, необхідно виконати його декомпозицію (табл. 7.16, 7.17).

Таблиця 7.16

Кафедра

Кафедра

Викладач

 

ІТ

Барко

 

ІТ

Шевченко

 

 

 

Таблиця 7.17

Група

Кафедра

Група

 

ІТ

ІТП-31

 

ІТ

ІТП-32

 

 

 

 

П'ята нормальна форма. Відношення знаходиться в 5НФ тоді і тільки тоді, коли будь-яка залежність з'єднання у відношенні виходить з існування деякого можливого ключа у відношенні.

Відношення R(X,Y,…,Z) задовольняє залежності з'єднання (X,Y,…,Z) тоді і тільки тоді, коли R відновлюється без втрат інформації шляхом з'єднання своїх проекцій на X, Y,…, Z. Залежність з'єднання є узагальненням функціональної і багатозначної залежностей.

Приклад. Розглянемо відношення Заняття:

Заняття (Студент, Викладач, Дисципліна)

Кожен студент слухає лекції багатьох викладачів, кожен викладач викладає для багатьох студентів, кожен студент вивчає багато дисциплін, кожен викладач викладає багато

106

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

Утворимо такі складені атрибути відношення:

СВ (Студент, Викладач) СД (Студент, Дисципліна) ВД (Викладач, Дисципліна).

Якщо відношення R спроектувати на складені атрибути СВ, СД, ВД, то з'єднання цих проекцій дасть вихідне відношення. Це означає, що у відношенні Заняття існувала залежність з'єднання. Результатом декомпозиції відношення Заняття буде отримання таких відношень: R1(Студент,

Викладач), R2(Студент, Дисципліна), R3(Викладач, Дисципліна).

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

Результати зведення до нормальних форм наведені в табл. 7.18.

Таблиця 7.18

Правила формування нормальних форм

Нормальні

Приклад

форми

 

1НФ

R(ABCD) – відношення

 

A,B,C,D – атомарні атрибути

2НФ

R(ABCD) – відношення, AB – ключ,

 

AB CD, неможливі залежності:

 

A CD, A C, A D,

 

B CD, B C, B D

3НФ

R(ABCD) – відношення, AB – ключ,

 

AB CD, неможливі залежності:

 

C D, D C

 

 

107

 

Закінчення табл. 7.18

Нормальні

Приклад

 

форми

 

 

 

НФБК

R(ABCD) – відношення, AB – ключ,

 

 

AB CD, неможливі залежності:

 

 

C A, CB, D A, DB,

 

 

C AB, D AB

 

4НФ

R(ABC) – відношення,

 

 

A→→B, AC,

 

 

неможливі залежності: A→→C

 

5НФ

R(ABC) – вихідне відношення;

 

 

результат декомпозиції:

 

 

R1(AB), R2(AC), R3(BC)

 

 

 

 

 

7.3. Денормалізація

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

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

утаких випадках:

об'єднання таблиць зі зв'язками "один до одного";

дублювання неключових атрибутів у зв'язках "один до багатьох" для зменшення кількості з'єднань;

дублювання атрибутів зовнішнього ключа у зв'язках "один до багатьох" для зменшення кількості з'єднань;

дублювання атрибутів "багато до багатьох" для зменшення кількості з'єднань;

створення таблиць з даних, що містяться в інших таблицях;

введення груп полів, що повторюються.

108

Застосовуючи денормалізацію слід враховувати, що цей процес має такі негативні наслідки:

призводить до появи аномалій БД;

знижує гнучкість системи;

може зменшити час на відповіді до БД, але при цьому уповільнює операції оновлення даних;

може ускладнити фізичну реалізацію системи.

Контрольні запитання

1.Дати визначення терміну функціональна залежність.

Навести приклади функціональних залежностей.

2.У чому полягає збиткове і незбиткове дублювання даних?

3.Що таке аномалії додавання, оновлення, вилучення?

4.Дати визначення 2НФ. Навести приклад відношення, яке знаходиться в 1НФ, але не знаходиться у 2НФ. Звести його до 2НФ.

5.Дати визначення 3НФ. Навести приклад відношення, яке знаходиться в 2НФ, але не знаходиться у 3НФ. Звести його до 3НФ.

6.Дати визначення НФБК. Навести приклад відношення, яке знаходиться в 3НФ, але не знаходиться у НФБК. Звести його до НФБК.

7.Дати визначення терміну багатозначна залежність.

Навести приклади багатозначних залежностей.

8.Дати визначення 4НФ. Навести приклад відношення, яке знаходиться в НФБК, але не знаходиться у 4НФ. Звести його до 4НФ.

9.Дати визначення 5НФ. Навести приклад 5НФ.

10.Яке місце займає нормалізація в процесі проектування бази даних?

11.Що таке денормалізація бази даних і які її переваги і недоліки?

12.Навести приклади проекту бази даних, коли доцільно виконати денормалізацію.

109

Глава 8. ФІЗИЧНА ОРГАНІЗАЦІЯ БАЗ ДАНИХ

8.1. Організація зберігання інформації

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

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

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

Процес пошуку і представлення даних користувачу виконується в декілька етапів (рис. 8.1).

 

 

Запит

 

Запит

 

Дискова операція

 

 

запису

 

сторінки

 

вводу/виводу

СУБД

 

 

 

 

Диспетчер

 

 

 

 

Диспетчер

 

 

 

База даних

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

файлів

 

 

 

 

 

дисків

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Результат

 

 

Результат

 

 

 

 

 

 

 

 

 

-

 

-

Результат читання

 

 

запис

 

сторінка

 

даних з диску

Рис. 8.1. Організація доступу до даних

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

110