ж зменшення або збільшення фізичного обсягу бази даних. Кінцевою метою нормалізації є зменшення потенційної суперечливості збереженої в базі даних інформації. Як зазначає К. Дейт, загальне призначення процесу нормалізації полягає в наступному:
· виключення деяких типів надмірності;
· усунення деяких аномалій оновлення;
· розробка проекту бази даних, який є досить «якісним» представленням реального світу, інтуїтивно зрозумілий і може служити хорошою основою для подальшого розширення;
· спрощення процедури застосування необхідних обмежень цілісності.
Усунення надмірності виробляється, як правило, за рахунок декомпозиції відносин таким чином, щоб у кожному відношенні зберігалися тільки первинні факти (тобто факти, не виведені з інших збережених фактів).
Роль нормалізації в проектуванні реляційних баз даних
Притому, що ідеї нормалізації досить корисні для проектування баз даних, вони аж ніяк не є універсальним або вичерпним засобом підвищення якості проекту БД. Це пов'язано з тим, що існує занадто велика різноманітність можливих помилок і недоліків у структурі БД, які нормалізацією усуваються. Незважаючи на ці міркування, теорія нормалізації є дуже цінним досягненням реляційної теорії і практики, оскільки вона дає науково строгі і обгрунтовані критерії якості проекту БД і формальні методи для удосконалення цієї якості. Цим теорія нормалізації різко виділяється на тлі чисто емпіричних підходів до проектування, які пропонуються в інших моделях даних. Більше того, можна стверджувати, що в усій сфері інформаційних технологій практично відсутні методи оцінки та покращення проектних рішень, зіставні з теорією нормалізації реляційних баз даних за рівнем формальної строгості.
Нормалізацію іноді дорікають на тій підставі, що «це просто здоровий глузд», а будь-який компетентний професіонал і сам «природним чином» спроектує повністю нормалізовану БД без необхідності застосовувати теорію залежностей. Однак, як вказує К. Дейт, нормалізація в точності і є тими принципами здорового глузду, якими керується у своїй свідомості зрілий проектувальник, тобто принципи нормалізації - це формалізований здоровий глузд. Тим часом, ідентифікувати і формалізувати принципи здорового глузду - вельми важке завдання, і успіх в її рішенні є істотним досягненням.
Нормальні форми
Перша нормальна форма (1NF)
Змінна відносини знаходиться в першій нормальній формі (1НФ) тоді і тільки тоді, коли в будь-якому допустимому значенні відносини кожен його кортеж містить тільки одне значення для кожного з атрибутів.
У реляційної моделі ставлення завжди знаходиться в першій нормальній формі за визначенням поняття відношення. Що ж стосується різних таблиць, то вони можуть не бути правильними уявленнями відносин і, відповідно, можуть не перебувати в 1НФ.
Друга нормальна форма (2NF)
Змінна відносини знаходиться в другій нормальній формі тоді і тільки тоді, коли вона знаходиться в першій нормальній формі, і кожен неключових атрибут неприводимого (функціонально повно) залежить від її потенційного ключа.
Третя нормальна форма (3NF)
Змінна відносини знаходиться в третій нормальній формі тоді і тільки тоді, коли вона знаходиться в другій нормальній формі, і відсутні транзитивні функціональні залежності неключових атрибутів від ключових.
Четверта нормальна форма (4NF)
Змінна відносини знаходиться в четвертій нормальній формі, якщо вона знаходиться в нормальній формі Бойса - Кодда і не містить нетривіальних багатозначних залежностей.
П'ята нормальна форма (5NF)
Змінна відносини знаходиться в п'ятій нормальній формі (інакше - в проекційно-сполучної нормальній формі) тоді і тільки тоді, коли кожна нетривіальна залежність з'єднання в ній визначається потенційним ключем (ключами) цього відношення.
Домен-ключова нормальна форма (DKNF)
Змінна відносини знаходиться в ДКНФ тоді і тільки тоді, коли кожне накладене на неї обмеження є логічним наслідком обмежень доменів і обмежень ключів, накладених на дану змінну відносини.
Обмеження домену - обмеження, предпісивающее використовувати для певного атрибута значення тільки з деякого заданого домена. Обмеження за своєю суттю є завданням переліку (або логічного еквівалента переліку) допустимих значень типу та оголошенням про те, що вказаний атрибут має даний тип.
Обмеження ключа - обмеження, яке стверджує, що деякий атрибут аб...