Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Розкажіть про нормальні форми (1НФ, 2НФ, 3НФ)». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Нормальні форми - правила організації таблиць у реляційній базі даних, які допомагають зменшити дублювання даних і підвищити їхню цілісність: 1NF вимагає, щоб усі поля були атомарними, 2NF - щоб кожне поле повністю залежало від усього первинного ключа, а 3NF - щоб не було транзитивної залежності. **Ключове:** порушення кожної форми виправляється винесенням проблемних полів в окрему таблицю зі своїм ключем - наприклад, повторювані значення в одному полі (1NF), поле, залежне лише від частини складеного ключа (2NF), чи поле, залежне від іншого неключового поля (3NF).Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняНормальні форми - це **правила організації таблиць у реляційній базі даних**, які допомагають зменшити дублювання даних і підвищити їхню цілісність. Основні з них - 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** - немає залежності поля від іншого неключового поля.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.