бами, може проводитися денормализация - композиція декількох відносин (таблиць) в одну, яка, як правило, знаходиться в другій, але не в третій нормальній формі. Нове ставлення фактично є збереженим результатом операції з'єднання вихідних відносин. p align="justify"> За рахунок такого перепроектування операція з'єднання при вибірці стає непотрібною і запити вибірки, які раніше вимагали з'єднання, працюють швидше.
Слід пам'ятати, що денормализация завжди виконується за рахунок підвищення ризику порушення цілісності даних при операціях модифікації.
Крім того, слід врахувати, що прискорення одних запитів на денормалізованной БД може супроводжуватися уповільненням інших запитів, які раніше виконувалися окремо на нормалізованих відносинах.
Для процесу денормалізації не існує стандартного алгоритму, тому в кожному конкретному випадку доводиться шукати своє рішення. Денормализация зазвичай проводиться на фізичному рівні моделі. ERWin має такі можливості з підтримки процесу денормалізації:
В· Сутності, атрибути, групи ключів і домени можна створювати тільки на логічному рівні моделі.
В· У ERWin існує можливість виділення елементів логічної моделі таким чином, щоб вони не з'являлися на фізичному рівні.
В· Таблиці, стовпці, індекси та домени можна створювати тільки на фізичному рівні.
В· У ERWin існує можливість виділення елементів моделі таким чином, щоб вони не з'являлися на логічному рівні. Ця можливість прямо підтримує денормализация фізичної моделі, тому що дозволяє проектувальнику включати таблиці, стовпці та індекси у фізичну модель, орієнтовану на конкретну СУБД.
В· Дозвіл зв'язків "багато-до-багатьох". При вирішенні цих зв'язків в логічної моделі ERWin додає асоційовані сутності і дозволяє додати в них атрибути. При вирішенні зв'язків в логічній моделі автоматично дозволені зв'язку та у фізичній моделі.
Ось приклад ситуації, коли в моделі даних необхідна денормализация.
У запитах до повністю нормалізованої базі нерідко доводиться з'єднувати до десятка, а то й більше, таблиць. А кожне з'єднання - операція вельми ресурсномістка. Як наслідок, такі запити їдять ресурси сервера і виконуються повільно. p align="justify"> У такій ситуації може допомогти:
В· денормалізації шляхом скорочення кількості таблиць. Краще об'єднувати в одну кілька таблиць, які мають невеликий розмір, що містять рідко змінювану (як часто кажуть, умовно-постійну, або нормативно-довідкову) інформацію, причому інформацію, за змістом тісно пов'язану між собою.