Схемой базы данных называется структура связей между полями и таблицами.
Определение:
Нормализацией схемы базы данных называется процедура, производимая над базой данных с целью удаления в ней избыточности.
Нормализация несет с собой немало преимуществ. Очевидно, что в нормализованной базе данных уменьшается вероятность возникновения ошибок, она занимает меньше места на жестком диске и т.д.
Для того, чтобы лучше уяснить приведенное определение нормализации, рассмотрим следующий пример. Ниже показана таблица, в которой указаны фамилии сотрудников и их профессии:
Таблица 3. Пример избыточности в таблицах базы данных Профессия Сотрудник
"Инженер" Гусев И.К.
"Инженер" Иванов П.В.
"Рабочий" Иванов К.Л.
"Рабочий" Дружков П.К.
"Рабочий" Фомичев В.М.
Эта таблица избыточна - для каждого из сотрудников повторяются одинаковые названия профессий. Т.е. схема такой базы данных не нормализована. Для небольшой базы данных это не критично, но в больших по объёму базах данных это скажется на размере базы и, в конечном счёте, на скорости доступа. Для нормализации необходимо разбить эту таблицу на две - для профессий (см. табл. 4) и для фамилий сотрудников (см. табл. 5).
Таблица 4. Таблица профессий Профессия Первичный ключ
"Инженер" 1
"Рабочий" 2
Таблица 5. Таблица сотрудников Профессия (внешний ключ) Сотрудник
1 Гусев И.К.
1 Иванов П.В.
2 Иванов К.Л.
2 Дружков П.К.
2 Фомичев В.М.
Теперь каждый тип профессии обозначен уникальным числом, и строка в базе данных присутствует только в единственном экземпляре: в таблице профессий. Размер поля "профессия" уменьшился, так как строка занимает больше памяти, чем число.
Замечание
В теории баз данных говорится о том, что схема базы данных должна быть полностью нормализована. При работе с полностью нормализованными базами данных необходимо применять весьма сложные SQL-запросы, что приводит к обратному эффекту - замедлению работы базы данных. Поэтому иногда для упрощения запросов даже прибегают к обратной процедуре - денормализации.
[Warning] [/Warning]
|