Что такое нормализация и зачем она нам нужна
Вы уже знаете, как составлять логическую ER-модель в разных нотациях, но на этом работа с ней не заканчивается. Логическая ER-модель детальнее концептуальной, и нужно проверить, не попали ли в неё лишние данные. Для этого вам понадобится нормализация.
Нормализация — это процесс, при котором системный аналитик проверяет логическую ER-модель по определённым правилам, чтобы понять, качественно ли она составлена.
Нормализация позволяет обнаружить в ER-модели некорректно представленные сущности (то есть те, где слишком много атрибутов) или новые сущности, которые можно выделить из уже имеющихся. Нормализация помогает системному аналитику повысить качество логической ER-модели.
Что такое нормальные формы
Чтобы нормализовать ER-модель, при её составлении нужно придерживаться нормальных форм.
Нормальная форма — это набор правил и критериев, которым должна соответствовать логическая ER-модель.
Существует девять нормальных форм. Как уровни требований и уровни ER-модели, они идут последовательно:
- Нулевая нормальная форма (0НФ), или ненормализованная форма
- Первая нормальная форма (1НФ)
- Вторая нормальная форма (2НФ)
- Третья нормальная форма (3НФ)
- Нормальная форма Бойса-Кодда (НФБК)
- Четвёртая нормальная форма (4НФ)
- Пятая нормальная форма (5НФ)
- Доменно-ключевая нормальная форма (ДКНФ)
- Шестая нормальная форма (6НФ)
С каждой новой формой критерии, которым должна соответствовать ER-модель, становятся строже. Перед тем как привести модель данных к следующей нормальной форме, нужно, чтобы сначала она находилась в предыдущей.
Нормализацию логической ER-модели можно сравнить с прохождением компьютерной игры. Чтобы перейти на следующий уровень, вам обязательно нужно пройти предыдущий. При этом с каждым новым уровнем игра становится сложнее. То же происходит с каждой следующей нормальной формой.
В системном анализе нужно соблюдать первые три нормальные формы. Бывают модели данных, нормализованные до 4НФ, но модели, приведённые к дальнейшим формам, практически не встречаются. Так происходит потому, что с каждой следующей нормализацией в модели данных появляется больше сущностей, а значит, её сложнее читать и актуализировать. Поэтому обычно модели данных нормализуют до 3НФ, поддерживая таким образом баланс — модель данных должна учитывать важные детали, не превращаясь в нечитабельное полотно.
Как нормализовать логическую ER-модель данных
Вы можете начать нормализацию с выделения одной сущности и её атрибутов, которые необходимы для того, чтобы составить логическую модель. В процессе приведения к 1НФ, а затем 2НФ и 3НФ модель будет разрастаться — в ней появится больше сущностей. До начала нормализации логическая ER-модель находится в ненормализованной форме или 0НФ.