3. Нормалізація баз даних

Нормалізація – це формалізований математично обґрунтований процес декомпозиції відношень (таблиць) бази даних на основі функціональних залежностей їхніх атрибутів. Головною метою нормалізації є усунення надмірності (дублювання) даних, забезпечення цілісності та запобігання аномаліям модифікації [11; 8].

Простіше кажучи, нормалізація – це формальний процес визначення того, які поля мають належати до яких таблиць у реляційній базі даних. Нормалізація ґрунтується на наборі правил, розроблених ще на етапі появи реляційних баз даних. Нормалізована реляційна база даних має низку переваг [14]:

•         Усунення надлишкового зберігання даних.

•         Точне моделювання об'єктів реального світу, процесів та взаємозв'язків між ними.

•         Структурування даних, що забезпечує гнучкість моделі.

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

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

2. Первинний ключ

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

Первинний ключ повинен бути унікальним, обов'язковим і незмінним. Класична помилка, якої припускаються під час навчання створенню реляційних баз даних, - використання мінливого поля як первинного ключа [14].

Правильний підхід до створення первинного ключа передбачає використання унікального та незмінного значення.

З поняттям ключа тісно пов’язана особлива концепція нормалізації – функціональна залежність. Друга та третя нормальні форми дозволяють перевірити правильність функціональних залежностей. То що ж таке «функціональна залежність»? Вона описує, як одне поле (або комбінація полів) визначає інше поле [14].

Принципи нормалізації описуються через низку «нормальних форм», вимоги до яких стають дедалі суворішими. Першу нормальну форму (1НФ) найлегше забезпечити, другу (2НФ) — складніше, і так далі. Існує 5 або 6 нормальних форм, залежно від того, чиїх поглядів дотримуватися. Зручно говорити про нормальні форми, використовуючи їхні традиційні назви, оскільки ця термінологія є загальноприйнятою в галузі реляційних баз даних. Утім, до нормалізації можна підійти й без використання цієї термінології [14].

Перша нормальна форма (1НФ)

Першу нормальну форму легко зрозуміти й застосувати: Таблиця перебуває в першій нормальній формі, тоді і лише тоді, коли всі аотрибути атомарні і ключ не має пустих значень [14].

Друга нормальна форма (2НФ)

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

Відношення перебуває в другій нормальній формі (2НФ) тоді й тільки тоді, коли воно перебуває в 1НФ і кожен неключовий атрибут повністю залежить від первинного ключа.

Іншими словами, таблиця перебуває у 2НФ, якщо:

1. Вона не містить груп, що повторюються. 2. Кожне поле, що не входить до складу ключа, функціонально залежить від усього ключа.

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

Третя нормальна форма (3НФ)

Третя нормальна форма забезпечує додатковий рівень перевірки того, що таблиці не були об’єднані. Таблиця повинна мати поле, яке однозначно ідентифікує кожен її запис, а кожне поле в таблиці має описувати об’єкт, який ця таблиця представляє. Щоб перевірити, чи відповідає таблиця, яка вже перебуває у другій нормальній формі (2NF), також і третій нормальній формі (3NF), слід поставити запитання: «Чи залежать будь-які неключові стовпці від інших неключових стовпців?» [14].

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

Вищі нормальні форми

Існують й інші, вищі нормальні форми, зокрема 4NF, 5NF, BCNF та PJ/NF. Ми обмежимося розглядом 3NF, оскільки її достатньо для більшості практичних потреб.

Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання

Вирівнювання тексту Вирівнювання тексту

Ширина абзацу Ширина абзацу

0