Наступний крок на шляху проектування структури реляційної бази даних - нормалізація таблиць. Нормалізація - це процес організації даних в базі даних, що включає створення таблиць і встановлення відносин між ними відповідно до правил, які забезпечують захист даних і роблять базу даних більш гнучкою, усуваючи надмірність і неузгоджені залежності.
Нормалізація таблиць є послідовна зміна структури таблиць до тих пір, поки вона не буде задовольняти вимогам останньої форми нормалізації. Всього існує шість форм нормалізації: перша нормальна форма, друга нормальна форма, третя нормальна форма, нормальна форма Бойса-Кодда, четверта нормальна форма і п'ята нормальна форма або нормальна форма проекції-з'єднання [6, 8].
Перша нормальна форма: забороняє повторювані стовпці (що містять однакову за змістом інформацію); забороняє множинні стовпці (що містять значення типу списку і т.п.); вимагає визначити первинний ключ для таблиці, тобто той стовпець або комбінацію стовпців, які однозначно визначають кожен рядок.
У таблицях бази даних «Ремонт комп'ютерів» жодне з полів не містить більше одного значення. У таблиці Комп'ютери все неключових атрибути визначаються ключем Код комп'ютера. У таблиці Майстри в якості первинного ключа використовується Код майстра. а в таблиці Діагностика несправностей - Код поломки. Таблиці відповідають вимогам першої нормальної форми.
Друга нормальна форма. Таблиця знаходиться в другій нормальній формі, якщо вона задовольняє вимогам першої нормальної форми і все її поля, що не входять в первинний ключ, пов'язані повної функціональної залежністю з первинним ключем. У випадках, коли таблиця знаходиться в першій нормальній формі і первинний ключ у неї складається з одного стовпця, то вона автоматично знаходиться в другій нормальній формі.
Можна зробити висновок, що таблиці бази даних «Ремонт комп'ютерів» знаходяться в другій нормальній формі.
Третя нормальна форма. Таблиця знаходиться в третій нормальній формі, якщо вона задовольняє визначенню другий нормальної форми і жодне з не ключовий полів не залежить функціонально від будь-якого іншого не ключового поля.
Таблиця Діагностика несправностей не знаходиться в третій нормальній формі, оскільки поле Способи усунення поломки залежить не тільки від ключового поляКод поломки. але і від не ключовим поля Причина поломки. Щоб привести таблицю до третьої нормальної формі, необхідно її розбити на дві таблиці: Діагностика несправностей і Усунення поломки.
Таблиця Діагностика несправностей призначена для введення інформації про причини поломки і містить наступні дані:
Таблиця Усунення поломки призначена для введення інформації про способи усунення поломки. Таблиця включає в себе наступні атрибути:
§ Способи усунення поломки;
Поле Код поломки в таблиці Усунення поломки є первинним ключем і забезпечує зв'язок з таблицями Діагностика несправностей і Ремонт комп'ютерів.
Між таблицями Діагностика несправностей і Усунення поломки встановлено зв'язок «один-ко-многим», оскільки однією поломки відповідає кілька способів її усунення.
На практиці нормалізація таблиць бази даних закінчується третій нормальній формою.
Всі таблиці бази даних «Ремонт комп'ютерів» знаходяться в третій нормальній формі, і подальша нормалізація не потрібно. Відповідно виконуються три основних правила нормалізації:
§ Значення, що знаходяться в полях, не повторюються;
§ Все неключових поля функціонально пов'язані з ключем;
§ Між не ключовим полями немає прихованих залежностей.
Мал. 2. Результат нормалізації