Розкажіть про нормальні форми (1НФ, 2НФ, 3НФ)
Нормальні форми - це правила організації таблиць у реляційній базі даних, які допомагають зменшити дублювання даних і підвищити їхню цілісність. Основні з них - 1NF, 2NF і 3NF.
1NF (Перша нормальна форма)
- Правило: усі поля таблиці мають бути атомарними, тобто не ділитися на частини, і кожен запис унікальний.
- Що це означає на практиці: не можна зберігати в одному полі кілька значень, наприклад, "Телефони = 12345, 67890". Кожне значення має бути окремим записом.
- Приклад порушення 1NF:
| ID | Ім'я | Телефони |
|---|---|---|
| 1 | Іван | 12345, 67890 |
- Правильно (1NF): створити окрему таблицю
Телефониз полямиСпівробітникIDіТелефон.
2NF (Друга нормальна форма)
- Правило: таблиця має бути в 1NF, і кожне поле має повністю залежати від первинного ключа, а не від його частини (важливо для складеного ключа).
- Що це означає на практиці: якщо первинний ключ складається з двох колонок, не можна, щоб окрема колонка залежала лише від однієї з них.
- Приклад порушення 2NF:
Таблиця з ключем
(СтудентID, КурсID)і полемІмяСтудента. ПолеІмяСтудентазалежить лише відСтудентID, а не від усього ключа. - Виправлення: винести
СтудентIDіІмяСтудентав окрему таблицюСтуденти.
3NF (Третя нормальна форма)
- Правило: таблиця має бути в 2NF, і немає транзитивної залежності, тобто поле не повинне залежати від іншого поля, крім первинного ключа.
- Що це означає на практиці: не можна зберігати дані, які можна обчислити чи знайти через інше поле.
- Приклад порушення 3NF:
| СпівробітникID | ВідділID | НазваВідділу |
Поле
НазваВідділузалежить відВідділID, а не напряму відСпівробітникID. - Виправлення: створити таблицю
ВідділизВідділIDіНазваВідділу, а в таблиціСпівробітникизберігати лишеВідділID.
Простіше кажучи:
- 1NF - поля атомарні, немає повторюваних груп.
- 2NF - кожне поле повністю залежить від первинного ключа.
- 3NF - немає залежності поля від іншого неключового поля.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.