[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-bazy-dannykh-kakie-sushchestvuyut-normalnye-formy":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":17,"progress":18,"seo":19},1134,"kakie-sushchestvuyut-normalnye-formy",35,"bazy-dannykh","Базы данных","🗄️","Какие существуют нормальные формы?","Нормальные формы — последовательные уровни требований к структуре отношений, каждый из которых устраняет определённый вид избыточности. Каждая следующая форма включает требования предыдущей.\n\n### Основные нормальные формы\n\n| Форма | Требование | Что устраняет |\n|-------|-----------|---------------|\n| 1NF | Все атрибуты атомарны (неделимы), нет повторяющихся групп | Составные и многозначные атрибуты |\n| 2NF | 1NF + все неключевые атрибуты зависят от ключа целиком, а не от его части | Частичные зависимости от составного ключа |\n| 3NF | 2NF + неключевые атрибуты не зависят друг от друга (нет транзитивных зависимостей) | Транзитивные зависимости |\n| BCNF | Каждый детерминант функциональной зависимости является потенциальным ключом | Зависимости, где детерминант не ключ |\n\n### Примеры\n\nНарушение 1NF (неатомарный атрибут):\n\n| id | name | phones |\n|----|------|--------|\n| 1 | Иванов | +7-111, +7-222 |\n\nИсправление: вынести телефоны в отдельную таблицу.\n\nНарушение 2NF (частичная зависимость):\n\n| student_id | course_id | student_name | grade |\n|------------|-----------|-------------|-------|\n| 1 | 101 | Иванов | 5 |\n\n`student_name` зависит только от `student_id`, а не от полного ключа `(student_id, course_id)`.\n\nНарушение 3NF (транзитивная зависимость):\n\n| id | department_id | department_name |\n|----|--------------|-----------------|\n| 1 | 10 | ИТ |\n\n`department_name` зависит от `department_id`, а не напрямую от `id`.\n\n### Высшие нормальные формы\n\n| Форма | Требование | Применение |\n|-------|-----------|------------|\n| 4NF | Нет независимых многозначных зависимостей | Устранение связей «многие-ко-многим» между независимыми атрибутами |\n| 5NF | Каждая нетривиальная зависимость соединения определяется потенциальным ключом | Теоретический предел декомпозиции без потерь |\n| 6NF | Отношение неприводимо (не может быть разбито без потерь) | Хронологические (темпоральные) базы данных |\n| DKNF | Все ограничения являются следствием ограничений доменов и ключей | Теоретический идеал |\n\nНа практике для большинства систем достаточно 3NF или BCNF. Формы выше 3NF применяются редко и в специфических случаях.\n\n> **На собеседовании:** интервьюер ожидает уверенного объяснения 1NF-3NF с примерами. Формы выше 3NF — бонус. Частая ошибка — заучить определения, но не суметь привести пример нарушения каждой формы.","","middle",[15,16],"databases","architecture",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":35,"featuredSnippetReady":36},"Какие существуют нормальные формы (1NF-6NF, BCNF) — Gymterview","Нормальные формы БД: 1NF (атомарность), 2NF (нет частичных зависимостей), 3NF (нет транзитивных зависимостей), BCNF, 4NF-6NF. Примеры нарушений каждой формы.","Нормальные формы: 1NF, 2NF, 3NF, BCNF и высшие формы — Gymterview","Обзор нормальных форм от 1NF до 6NF с примерами нарушений. Подготовка к Java-собеседованию.",[25,26,27,28,29,30,31,32,33,34],"нормальные формы","1NF","2NF","3NF","BCNF","4NF","5NF","нормализация","функциональная зависимость","SQL","Основные нормальные формы: 1NF (атомарные атрибуты, нет повторяющихся групп), 2NF (нет частичных зависимостей от составного ключа), 3NF (нет транзитивных зависимостей между неключевыми атрибутами), BCNF (каждый детерминант — потенциальный ключ). Высшие формы (4NF-6NF, DKNF) применяются редко. На практике достаточно 3NF или BCNF.",true]