- •1. Поняття банку, бази даних та їх складових.
- •2. Поняття субд, її функції та мовні засоби роботи з даними.
- •7. Управління транзакціями.
- •3 Концепція реляційних бд.
- •4. Етапи проектування баз даних.
- •5.Складові інфологічної моделі
- •6.Поняття агрегації та порядок її виконання.
- •7.Представлення запитів в структурованому вигляді відповідним запитальним зв'язком.
- •8. Теорія нормалізації відношень
- •9. Розвиток і загальна характеристика мови sql. Особливості та переваги.
- •Основні переваги мови:
- •10. Групи команд мови sql їх призначення і загальна характеристика.
8. Теорія нормалізації відношень
Нормалізація відношень — це ітераційний зворотний процес декомпозиції початкового відношення на кілька простіших відношень меншої розмірності.
Отриманий в результаті нормалізації склад атрибутів відношень БД повинен відповідати таким вимогам: між атрибутами не має бути небажаних функціональних залежностей, групування атрибутів має забезпечувати мінімальне дублювання даних, їх обробку й поновлення без ускладнень і аномалій.
Апарат нормалізації розробив Е. Ф. Кодд. Кожна нормальна форма обмежує тип допустимих залежностей між атрибутами. Кодд виділив три нормальні форми (скорочена назва — 1НФ, 2НФ і ЗНФ). Найбільш досконала з них — ЗНФ. Зараз вже відомі й визначені 4НФ, 5НФ.
Нормалізацію відношень виконують за кілька кроків. Перша ітерація(перший крок) — зведення відношень до першої нормальної форми (1НФ).
Відношення в 1НФ повинні відповідати таким вимогам:
усі атрибути відношення мають бути унікальними, тобто не допускається їх дублювання, а також атомарними, тобто неподільними;
усі рядки таблиці повинні мати однакову структуру, тобто одну й ту саму кількість атрибутів з іменами, що збігаються;
імена стовпців мають бути різними, а значення однорідними (однакового формату); порядок рядків у таблиці не суттєвий.
На другому кроці нормалізації виявляють ключі відношення і будують діаграму функціональних залежностей не ключових атрибутів від ключів, аналізують ці залежності з метою вилучення неповних функціональних залежностей.
О
рис.1.
Графічно функціональна залежність відображується так: А —>В. Цій залежності відповідає співвідношення 1:1 між атрибутами
Якщо маємо відношення R(A*, В*, С, D), ключ якого складається з двох атрибутів А і В, тобто є складовим (знаком (*) позначено ключові атрибути), то функціональні залежності в такому відношенні можуть мати такий вигляд:(рис 1.)
Тут атрибут С перебуває в повній функціональній залежності, тобто залежить від всього складового ключа, а атрибут D — в неповній, оскільки залежить лише від його складової частини атрибута В.
Означення 2. Атрибут перебуває в повній функціональній залежності, якщо він залежить від всього ключа і не залежить від його складових частин.
Виконавши декомпозицію попереднього відношення R, отримаємо замість одного два відношення, які будуть перебувати в 2НФ:
Отже, відношення перебувають у 2НФ, якщо вони перебувають у 1НФ і кожний не ключовий атрибут функціонально повно залежить від складового ключа.
Третій крок нормалізації — вилучення транзитивних залежностей. Відношення в 2НФ потрібно аналізувати на присутність транзитивних залежностей. Нехай є відношення R(A*, С, D), у якому атрибут D безпосередньо не залежить від ключового атрибута А, а залежить від неключового атрибута С, який залежить від А. Тоді атрибут D транзитивно залежить від А.
На четвертому кроці нормалізації проводиться аналіз на присутність багатозначних залежностей у відношенні. Якщо вони є, виконують декомпозицію відношення. Багатозначна залежність є різновидом функціональної залежності, їй відповідає співвідношення 1:Б між атрибутами. Атрибут А багатозначно визначає атрибут В у відношенні R. (А, В, С), якщо В залежить лише від А при будь-яких його комбінаціях з іншими атрибутами відношення R. Графічно це позначають так: А —» В.
Якщо залежність А —» В єдина у відношенні R, то відношення перебуває в ЗНФ.
Якщо у відношенні присутні А —» В і А —» С, то відношення потрібно розкласти на два інших відношення: R(A, В) і R(A, C).