Что знаешь про нормализацию
Нормализация баз данных повышает производительность и устраняет аномалии
1НФ, когда таблица соответствует реляционным принципам:
- нет дублирующих строк
- в каждой ячейке 1 атомарное значение (не составное)
- в столбце хранятся данные 1 типа
- отсутствуют массивы и списки в любом виде
2НФ, когда указан первичный ключ:
- таблица имеет первичный ключ
- все столбцы таблицы заявятся от первичного ключа
3НФ, таблица должна содержать правильные не ключевые столбцы
- когда нет неотносящихся к первичному ключу столбцов
Например, здесь описание подразделения не относится никак к сотруднику
Имеет смысл выделить подразделение в отдельную таблицу
НФ Бойса-Кодда
- применяется только для составных первичных ключей
- часть составного ключа не должна зависеть от не ключевого столбца
Например, здесь зная куратора мы точно знаем какое направление будет у проекта, в этом столбце нет смысла
Поэтому вынесем куратора в отдельную таблицу, выдадим ему направление и сделаем отдельную таблицу для связи проектов и кураторов
4НФ, когда не содержит многозначных зависимостей:
- Многозначные зависимости плохи тем что их нельзя независимо друг от друга редактировать
- Когда в таблице 3 и более столбцов которые многозначно зависят
Тут у каждого курса может быть разный преподаватель и аудитория, а у преподавателя может быть разный курс и аудитория, а в аудитории может проходить разный курс и вести его может разный преподователь
Поэтому нужно разнести многозначную зависимость по разным таблицам
5НФ, когда можно выполнить декомпозицию без потерь.
- Когда у нас есть 3 таблицы и при JOIN’е всех трех у нас получится таблица со всеми данными из всех трех таблиц без потерь.
Доменно-ключева
Когда каждое наложенное на неё ограничение является логическим следствием ограничений доменов и ограничений ключей, наложенных на данную переменную отношения.
6НФ, когда она удовлетворяет всем нетривиальным зависимостям соединения
- для хронологических баз данных
- декомпозиция до конца (максимально возможная декомпозиция)
Oct. 9, 2023, Источник
Нормализация - это процесс организации данных с целью уменьшения избыточности и обеспечения целостности данных. Процесс включает в себя разделение данных на отдельные таблицы и установление связей между этими таблицами. Основные принципы нормализации определены в нормальных формах.
Вот основные принципы:
1. Первая нормальная форма (1NF):
- Все атрибуты в таблице должны быть атомарными, то есть каждый атрибут должен содержать только одно значение.
- Все повторяющиеся группы атрибутов должны быть удалены.
2. Вторая нормальная форма (2NF):
- Таблица должна находиться в 1NF.
- Каждый нетривиальный атрибут должен быть полностью функционально зависим от первичного ключа, то есть отсутствие частичной функциональной зависимости.
3. Третья нормальная форма (3NF):
- Таблица должна находиться в 2NF.
- Нет зависимостей на основе неключевых атрибутов, то есть отсутствие транзитивных зависимостей.
4. Нормальная форма Бойса-Кодда (BCNF):
- Расширение третьей нормальной формы, в котором дополнительное требование состоит в том, чтобы каждое нетривиальное функциональное зависимость A → B, где B не является ключом, было зависимым только от кандидат-ключа.
5. Четвертая нормальная форма (4NF):
- После разделения данных в 3NF, не должно быть многозначных зависимостей относительно многозначных зависимостей.
6. Пятая нормальная форма (5NF):
- Основная цель - минимизировать избыточные связи между таблицами путем удаления зависимостей и разделения данных.
Применение нормализации в базе данных позволяет уменьшить дублирование данных, уменьшить объем хранимой информации, обеспечить более простой доступ к данным и повысить целостность данных. Однако следует помнить, что избыточная нормализация может привести к увеличению сложности запросов и ухудшению производительности. Поэтому необходимо находить баланс между нормализацией и производительностью системы.
Feb. 18, 2024, easyoffer