logo
Lection_6_7_8

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

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

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

Означена вище функціональна залежність позначається як . Якщо належність А і В відношенню R відома апріорі, то пишеться Формально функціональна залежність означується так:

Поняття функціональної залежності може бути звужене на той випадок, коли А і В є окремими атрибутами.

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

Набір К атрибутів відношення R називається можливим ключем, або квазіключем відношення R, якщо:

а) кожний атрибут відношення R функціонально залежить від К;

б) жоден атрибут з набору К не може бути видалений так, щоб не порушувалась властивість (а).

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

Символ вказує на те, що функціональна залежність відсутня.

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

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

Множина атрибутів, що містить можливий ключ, називається суперключем. Атрибути, які входять до складу можливого ключа відношення, називаються ключовими; атрибути, які належать первинному ключу, — первинними, решта — непервинними, або вторинними.

Стосовно заданого реляційного відношення R ми можемо розглядати множину функціональних залежностей F, які визначені на ньому.

Як довів У. Армстронг, множина функціональних залежностей F має певні властивості, що перелічені в табл. У лівому стовпці таблиці згадані властивості записані в аналітичному вигляді, у правому — в графічному. Більшість тверджень тут наведено у формі «якщо ... , то ... », яку слід розуміти так: якщо деякі функціональні залежності належать множині F, то цій множині належать і ті залежності, що вказані після слова «то».

Не всі з наведених властивостей є незалежними, а саме властивості (4)-(8) виводяться з (1), (2), (3), які утворюють повну систему аксіом функціональних залежностей.

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

Наприклад, якщо R = (А,В,С) і множина F складається з залежності , то з F логічно випливають такі залежності:

– за властивістю продовження;

– за властивістю поповнення.

Припустимо, що на відношенні R задано множину функціональних залежностей F. Множина всіх функціональних залежностей, кожна з яких є логічним наслідком F, називається логічним замиканням F, вона позначається як . Очевидно, що

Усі функціональні залежності, що належать замиканню, можуть бути отримані з початкової множини F застосуванням властивостей (1), (2), (3), тому ці властивості іноді називають правилами виведення.

Множина функціональних залежностей F є повною, якщо F = F*.

Дві множини залежностей F і G називаються логічно еквівалентними, якщо

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