Денормализация в ERwin
В результате нормализации все взаимосвязи данных становятся правильно определены, исключаются аномалии при оперировании с данными, модель данных становится легче поддерживать. Однако часто нормализация данных не ведет к повышению производительности БД.
Пример. Производные атрибуты, ведущие к нарушению первой НФ. Сотрудник= {Таб номер, Фамилия, …, Код Должности} Должность= {Код Должности, Название должности, Оклад} Связь необязательная один ко многим
Денормализуем - будет работать быстрее Сотрудник= {Таб номер, Фамилия, …, Должность, Оклад} Должность= { Должность, Оклад} Рис. 6.20 – Нормализованная модель данных
Рис. 6.21 – Денормализованная модель данных
Аномалии обновления: если меняется оклад по должности - нужно менять оклад у всех сотрудников. Решение: обновлять только в таблице «Должность», выбирать данные - только из таблицы «Сотрудник». Нужна процедура синхронизации таблиц (триггер). Ответственность за механизм поддержания целостности данных ложится на разработчика БД.
|