Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основные сведения о создании баз данных.doc
Скачиваний:
1
Добавлен:
08.05.2019
Размер:
486.91 Кб
Скачать

Применение правил нормализации

Следующим этапом создания базы данных может стать применение правил нормализации данных (или просто правил нормализации). Эти правила позволяют проверить правильность структуры таблиц. Процесс применения этих правил к структуре базы данных называется нормализацией базы данных или просто нормализацией.

Нормализацию рекомендуется выполнять после внесения в базу данных всех элементов данных и создания предварительной структуры. Цель этого процесса — проверить правильность распределения элементов данных по таблицам. Однако нормализация не позволяет проверить правильность самих элементов данных.

Применение правил нормализации выполняется последовательно; на каждом этапе проверяется соответствие базы данных одной из т. н. "нормальных форм". Существует пять нормальных форм. В этой статье описываются первые три формы, поскольку их достаточно для большинства баз данных.

Первая нормальная форма

Первая нормальная форма содержит правило о том, что на пересечении строки и столбца в таблице должно содержаться одно значение, а не список значений. Например, поле "Цена" должно содержать лишь одно значение цены. Если представить каждое пересечение строки и столбца в виде ячейки, эта ячейка должна содержать лишь одно значение.

Вторая нормальная форма

Вторая нормальная форма содержит требование о том, что каждый столбец, не входящий в ключ, должен находиться в зависимости от всего ключевого столбца, а не от его части. Это правило применимо в том случае, если первичный ключ состоит из нескольких столбцов. Предположим, что таблица, в которой первичный ключ состоит из столбцов с кодом заказа и кодом продукта, содержит перечисленные ниже столбцы, причем "Код заказа" и "Код продукта" являются первичными ключами.

  • Код заказа (первичный ключ)

  • Код продукта (первичный ключ)

  • Имя продукта

Такая структура не соответствует второй обычной форме, т. к. имя продукта зависит от кода продукта, но не зависит от кода заказа; следовательно, этот столбец зависит лишь от части первичного ключа. Столбец "Имя продукта" следует удалить из таблицы. Он должен входить в другую таблицу ("Продукты").

Третья нормальная форма

Третья нормальная форма содержит требование о том, что столбцы, не являющиеся ключевыми, должны не только зависеть от всего первичного ключа, но и быть независимыми друг от друга.

Другими словами, каждый столбец, не являющийся ключевым, должен зависеть только от первичного ключа. Предположим, что таблица содержит перечисленные ниже столбцы.

  • Код продукта (первичный ключ)

  • Имя

  • Рекомендуемая розничная цена

  • Скидка

Предположим, что скидка зависит от рекомендуемой розничной цены. В этом случае таблица не соответствует требованию третьей обычной формы, т. к. столбец "Скидка", не являющийся ключевым, зависит от другого столбца, не являющегося ключевым (столбца "Рекомендуемая розничная цена"). Требование о независимости столбцов друг от друга означает, что изменение любого неключевого столбца не должно влиять на другие столбцы. Но при изменении значения в поле "Рекомендуемая розничная цена" значение скидки изменялось бы соответствующим образом, нарушая правило. Поэтому в данном случае столбец "Скидка" следует перенести в другую таблицу, в которой столбец розничной цены является ключевым.