logo
Разработка автоматизированной информационной системы учета договоров подряда в строительной фирме

2.1.4 Нормализация баз данных

Центральной задачей проектирования базы данных АИС - определение качества отношений и их атрибутивного состава. Группировка атрибутов в отношения допускает множество различных вариантов решений. Рациональные варианты группировки должны учитывать следующие требования:

1) множество отношений должно обеспечивать минимальную избыточность представления информации;

2) корректировка отношений не должна приводить к двусмысленности или потере информации;

3) перестройка набора отношений при добавлении в базу данных новых атрибутов должна быть минимальной.

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

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

Основными свойствами нормальных форм являются:

1) каждая следующая нормальная форма в некотором смысле улучшает свойства предыдущей нормальной формы;

2) при переходе к следующей нормальной форме свойства предыдущих сохраняются.

В теории реляционных баз данных обычно выделяют следующие последовательные нормальные формы (НФ): 1НФ; 2НФ; 3НФ; 4НФ;5НФ. Отношения находятся в некоторой нормальной форме, если оно удовлетворяет свойственному данной форме набору ограничений.

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

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

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

Отношения находятся во 2НФ в том случае, когда это отношение находится в 1НФ, и не содержит неполных функциональных зависимостей. Представление таблицы во второй нормальной форме требует, чтобы все столбцы, не являющиеся первичными ключами (столбцы, описывающие объект, но однозначно не идентифицирующие его), зависели от всего первичного ключа, а не от его отдельных компонентов.

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

Отношение находится в третьей нормальной форме тогда, когда оно находится во 2НФ и ни один не ключевой столбец не зависит от другого не ключевого столбца. Любой не ключевой столбец должен зависеть только от столбца первичного ключа.

Чтоб перейти от 2НФ к 3НФ необходимо:

1) определить все поля (или группу полей), от которых зависят другие поля;

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

3) удалить перемещенные поля из исходной таблицы, оставив лишь те из них, которые станут внешним ключом.

Четвертая и пятая нормальные формы.

Четвертая нормальная форма запрещает независимые отношения типа один-ко-многим между ключевыми и не ключевыми столбцами. Пятая нормальная форма доводит весь процесс нормализации до логического конца, разбивая таблицы на минимально возможные части для устранения в них всей избыточности данных. Нормализованные таким образом таблицы обычно содержат минимальное количество информации, помимо первичного ключа. Таким образом, любой фрагмент не ключевых данных (данных, не являющихся первичным или внешним ключом) встречается в базе данных только один раз, и не возникает никаких проблем при их обновлении. Однако, поскольку каждая таблица в пятой нормальной форме имеет минимальное число столбцов, то в них должны дублироваться одни и те же ключи, обеспечивая возможности для объединения таблиц и получения полезной информации [10].