Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 6 Нормализация (Укр).doc
Скачиваний:
13
Добавлен:
19.11.2019
Размер:
1.49 Mб
Скачать

Властивості з'єднання без втрат і збереження залежності

Вище було продемонстровано, що відношення Staff_Branch піддане аномаліям відновлення і, щоб уникнути цих аномалій, найкраще виконати його декомпозицію на окремі відносини Staff і Branch. Однак процес декомпозиції має дві важливих властивості, які варто враховувати. Перше з них - це властивість з'єднання без утрат (lossless-join), що дозволяє відновити будь-як кортеж вихідного відношення, використовуючи відповідні кортежі менших відносин, отриманих у результаті декомпозиції. Друге - властивість збереження залежності (dependency preservation), що дозволяє зберегти обмеження, накладені на вихідне відношення, за допомогою накладення деяких обмежень на кожне з менших відносин, отриманих після декомпозиції. Інакше кажучи, у результаті відпадає необхідність виконання з'єднання результуючих відносин з метою перевірки того, чи не порушується обмеження, накладене на вихідне відношення.

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

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

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

Функціональна залежність описує зв'язок між атрибутами відносини. Наприклад, якщо у відношенні R, що містить атрибути А и В, атрибут У функціонально залежить від атрибута А (що позначається як А->У), те кожне значення атрибута А зв'язано тільки з одним значенням атрибута В. (Причому кожний з атрибутів А и В може складатися з одного чи декількох атрибутів). Функціональна залежність є значеннєвим (чи семантичним) властивістю атрибутів відносини. Семантика відносини вказує, як його атрибути можуть бути зв'язані один з одним, а також визначає функціональні залежності між атрибутами у виді обмежень, накладених на деякі атрибути. Розглянемо відношення с. атрибутами А и В, де атрибут У функціонально залежить від атрибута А. Якщо нам відоме значення атрибута А, те при розгляді відносини з такою залежністю, у будь-який момент часу у всіх рядках цього відношення, що містять зазначене значення атрибута А, ми знайдемо те саме значення атрибута В. Таким чином, якщо два рядки мають те саме значення атрибута А, те вони обов'язково мають одне і те ж значення атрибута В. Однак для заданого значення атрибута В може існувати кілька різних значень атрибута А. Залежність між атрибутами А и В можна схематично представити у виді діаграми, показаної на мал. 6.1.

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

При наявності функціональної залежності чи атрибут група атрибутів, розташована на її діаграмі ліворуч від символу -> стрілки, називається детермінантом (determinant). Наприклад, на мал. 6.1 атрибут А є детермінантом атрибута В.

Далі в цій главі ми будемо ігнорувати тривіальні (trivial) функціональні залежності, тобто залежності типу А -> У, де атрибут У залежить від деякої підмножини атрибута А. Розглянемо наступні приклади функціональних залежностей.