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



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

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

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

У відношенні R атрибут Y функціонально залежить від атрибута X (X і Y можуть бути складеними) у тому і тільки в тому випадку, якщо кожному значенню X відповідає в точності одне значення Y: R.X ->R.Y.

Табельний номер ->Прізвище; Посада ->Зарплата.

Функціональна залежність позначається X -> Y. Відзначимо, що X і Y можуть являти собою не тільки одиничні атрибути, але і групи, складені з декількох атрибутів одного відношення. Можна сказати, що функціональні залежності являють собою зв'язки типу "один до багатьох", що існують усередині відношення.

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

Функціональна залежність R.X -> R.Y називається повною, якщо атрибут Y не залежить функціонально від будь-якої точної підмножини X.

Визначення. Неключовий атрибут.

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

Визначення. Функціонально повна і часткова залежність неключового атрибута від складеного ключа.

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

Відношення:

Читання лекцій (Таб_номер, Назва_курсу, Кількість_годин)

Назва_курсу ->У_годин

Залежність неключового атрибута Кількість_годин від частини складеного ключа говорить про часткову залежність.

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

Функціональна залежність R.X -> R.Y називається транзитивною, якщо існує такий атрибут Z, що існують функціональні залежності R.X -> R.Z і R.Z -> R.Y і відсутня функціональна залежність R.Z ->R.X. (При відсутності останньої вимоги ми мали б "нецікаві" транзитивні залежності в будь-якому відношенні, що має кілька ключів.)

Прізвище ->Офіс ->Телефон.

Визначення. Взаємно незалежні атрибути.

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

У відношенні Читання лекцій:

В_годин ->->Таб_номер;

Таб_номер ->-> Кількість_годин.

 

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

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

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

· між атрибутами не повинно бути небажаних функціональних залежностей і вони повинні забезпечувати мінімальне дублювання даних;

· обраний склад відношень повинен відрізнятися мінімальною надлишковістю атрибутів;

· обрані для відношення первинні ключі повинні бути мінімальними;

· не повинно бути труднощів при виконанні операцій включення, видалення і модифікації (аномалії);

· перебудова набору відношень при введенні нових типів повинна бути мінімальною.

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

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

· не повинні з'являтися раніше відсутнє кортежі;

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


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

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






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