Нормализация баз данных: 1-я нормальная форма
Эта статья следует за Обзором нормализации баз данных.
Изначально структура данных была такой:
- Код местоположения
- Название местоположения
- Номера заводов (1-n, что означает много значений этого поля)
- Названия заводов
- Категории почв
- Описание почв
Это полностью ненормализованная структура — другими словами, она находится в нулевой нормальной форме. Поэтому, чтобы начать процесс нормализации, нужно перейти от нулевой нормальной формы к 1-й нормальной форме.
Таблицы находятся в 1-й нормальной форме, если соблюдаются следующие правила:
- Нет повторяющихся групп.
- Все ключевые атрибуты определены.
- Все атрибуты зависят от первичного ключа.
Это означает, что данные должны помещаться в табличную форму, где каждое поле содержит одно значение. Это также стадия, где определяется первичный ключ. Некоторые источники утверждают, что определение первичного ключа не является необходимым для того, чтобы таблица находилась в первой нормальной форме, но обычно это делается на этом этапе и необходимо перед переходом к следующему этапу. Помимо теоретических дискуссий, вам необходимо определить первичные ключи на данном этапе.
Хотя принцип атомарности не всегда рассматривается как часть определения 1-й нормальной формы, он обычно применяется на этом этапе. Это означает, что все столбцы должны содержать свои наименьшие части или быть неделимыми. Типичный пример — когда кто-то создает поле имя вместо полей имя и фамилия. Обычно они об этом сожалеют позже.
В приведенном примере с заводами пока нет ключей и есть повторяющиеся группы. Чтобы привести его к 1-й нормальной форме, вам нужно определить первичный ключ и изменить структуру так, чтобы не было повторяющихся групп; другими словами, каждая строка/пересечение столбцов содержит одно и только одно значение. Без этого вы не можете поместить данные в обычную двумерную таблицу, которую требуют большинство баз данных. Вы определяете код местоположения и код завода как первичный ключ вместе (ни один из них по отдельности не может однозначно идентифицировать запись), и заменяете повторяющиеся группы атрибутом с единственным значением. После этого вы получаете структуру, показанную в таблице ниже (первичный ключ выделен курсивом):
| Таблица местоположения заводов |
|---|
| Код местоположения |
| Название местоположения |
| Код завода |
| Название завода |
| Категория почв |
| Описание почв |
Теперь эта таблица находится в 1-й нормальной форме. Процесс перехода к 2-й нормальной форме продолжается в следующей статье.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/database-normalization-1st-normal-form/