
- •Основные сведения о создании баз данных
- •Некоторые термины, связанные с базами данных
- •Правильная структура базы данных
- •Процесс разработки
- •Определение цели создания базы данных
- •Поиск и организация необходимых данных
- •Распределение данных по таблицам
- •Преобразование элементов данных в столбцы
- •В приведенном ниже списке содержится несколько советов по созданию столбцов.
- •Задание первичных ключей
- •Создание связей между таблицами
- •Создание отношения "один-ко-многим"
- •Создание отношения "многие-ко-многим"
- •Усовершенствование структуры
- •Усовершенствование структуры таблицы "Продукты"
- •Применение правил нормализации
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
Применение правил нормализации
Следующим этапом создания базы данных может стать применение правил нормализации данных (или просто правил нормализации). Эти правила позволяют проверить правильность структуры таблиц. Процесс применения этих правил к структуре базы данных называется нормализацией базы данных или просто нормализацией.
Нормализацию рекомендуется выполнять после внесения в базу данных всех элементов данных и создания предварительной структуры. Цель этого процесса — проверить правильность распределения элементов данных по таблицам. Однако нормализация не позволяет проверить правильность самих элементов данных.
Применение правил нормализации выполняется последовательно; на каждом этапе проверяется соответствие базы данных одной из т. н. "нормальных форм". Существует пять нормальных форм. В этой статье описываются первые три формы, поскольку их достаточно для большинства баз данных.
Первая нормальная форма
Первая нормальная форма содержит правило о том, что на пересечении строки и столбца в таблице должно содержаться одно значение, а не список значений. Например, поле "Цена" должно содержать лишь одно значение цены. Если представить каждое пересечение строки и столбца в виде ячейки, эта ячейка должна содержать лишь одно значение.
Вторая нормальная форма
Вторая нормальная форма содержит требование о том, что каждый столбец, не входящий в ключ, должен находиться в зависимости от всего ключевого столбца, а не от его части. Это правило применимо в том случае, если первичный ключ состоит из нескольких столбцов. Предположим, что таблица, в которой первичный ключ состоит из столбцов с кодом заказа и кодом продукта, содержит перечисленные ниже столбцы, причем "Код заказа" и "Код продукта" являются первичными ключами.
Код заказа (первичный ключ)
Код продукта (первичный ключ)
Имя продукта
Такая структура не соответствует второй обычной форме, т. к. имя продукта зависит от кода продукта, но не зависит от кода заказа; следовательно, этот столбец зависит лишь от части первичного ключа. Столбец "Имя продукта" следует удалить из таблицы. Он должен входить в другую таблицу ("Продукты").
Третья нормальная форма
Третья нормальная форма содержит требование о том, что столбцы, не являющиеся ключевыми, должны не только зависеть от всего первичного ключа, но и быть независимыми друг от друга.
Другими словами, каждый столбец, не являющийся ключевым, должен зависеть только от первичного ключа. Предположим, что таблица содержит перечисленные ниже столбцы.
Код продукта (первичный ключ)
Имя
Рекомендуемая розничная цена
Скидка
Предположим, что скидка зависит от рекомендуемой розничной цены. В этом случае таблица не соответствует требованию третьей обычной формы, т. к. столбец "Скидка", не являющийся ключевым, зависит от другого столбца, не являющегося ключевым (столбца "Рекомендуемая розничная цена"). Требование о независимости столбцов друг от друга означает, что изменение любого неключевого столбца не должно влиять на другие столбцы. Но при изменении значения в поле "Рекомендуемая розничная цена" значение скидки изменялось бы соответствующим образом, нарушая правило. Поэтому в данном случае столбец "Скидка" следует перенести в другую таблицу, в которой столбец розничной цены является ключевым.