Процедура нормализации стремится к тому, чтобы все данные были только в одном месте. Другими словами, нормализация заключается в «выкидывании» дублирующихся полей. (Если же мы, наоборот, вставляем дублирующие поля в базу данных, то такой процесс называется денормализацией).
Например, в таблице Остатки жирным курсивом выделены дублирующиеся поля. В данном случае мы применили процедуру денормализации в учебных целях. В реальной базе данных такие поля следует удалять в связи с возможностью возникновения неопределенностей. Именно избежание неопределенностей является основной задачей нормализации данных.
Выделяют две основные причины неопределенностей:
· Неоднозначность (т.е. одни и те же данные располагаются в различных таблицах, при этом изменения внесенные в поле цена /Таблица Перемещение/ не приведут к изменениям в поле цена /Таблица Остатки/; как следствие - один и тот же товар одновременно имеет две различные цены в одной базе данных)
· Противоречивость (чаще всего является результатом неоднозначности; когда, например, по одним данным какой-либо товар находится на складе NN, а по другим – его /товара/ вообще нет).
|
|
Ф. Код выделил существование 5 форм нормализации. Но на практике обычно используют первые три нормальные формы.
Первая нормальная форма.
Первая нормальная форма требует, чтобы на любом пересечении строки и столбца находилось единственное значение, которое должно быть атомарным, то есть оно не может быть разбито на составляющие. Кроме того, в таблице, удовлетворяющей первой нормальной форме, не должно быть повторяющихся групп, а также пустых первичных ключей.
Занимаясь поисками повторяющихся полей, разбейте на компоненты все составные столбцы: например в «отделе кадров» столбец ФИО нужно разбить на два столбца - Фамилия и Имя Отчество, поскольку человек по тем или иным причинам может поменять фамилию. (Возможен вариант отдельного хранения столбцов Имя и Отчество по той же причине, что и Фамилия).