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