нормалізація сутностей
Головна | Про нас | Зворотній зв'язок
ERwin не містить повного алгоритму нормалізації і не може проводити нормалізацію автоматично, тому сутності перед створенням логічної моделі необхідно вручну привести, як мінімум, до 3НФ.
В результаті нормалізації все взаємозв'язку даних стають правильно визначені, виключаються аномалії при маніпулюванні даними, модель даних стає легше підтримувати. Однак часто нормалізація даних не веде до підвищення продуктивності ІС в цілому. Справа в тому, що в результаті нормалізації в моделі даних збільшується число відносин і для виконання багатьох запитів доведеться виконувати операцію зчеплення відносин (JOIN). Час виконання кожного такого запиту велике і показники загальної продуктивності ІС можуть погіршитися.
З метою підвищення продуктивності при переході на фізичний рівень в ряді випадків доводиться свідомо відходити від нормальних форм для того, щоб скористатися наявними можливостями конкретного сервера або ІС в цілому.
На відміну від нормалізації, немає чітко сформульованих правил процесу денормалізації. У кожному конкретному випадку доводиться шукати конкретні рішення, які використовують специфіку ІС і предметної області і не можуть бути загальним керівництвом до дії.
Прикладом денормалізації можуть служити обчислювані атрибути, які є порушенням першої нормальної форми. Так, наприклад, в ряді випадків таке обчислюється дане, як вік людини, зберігають в БД фізично для того, щоб уникнути тривалих обчислень. Інший приклад - атрибути посаду і оклад співробітника доводиться розміщувати в одній сутності, що є грубим порушенням 3НФ і може привести до суперечливості даних при їх оновленні. Однак при зверненні до цього поля потрібно відкривати тільки одну таблицю.
Денормализация, як правило, проводиться на рівні фізичної моделі. ERwin дозволяє зберегти на рівні логічної моделі нормалізовану структуру, при цьому побудувати на рівні фізичної моделі структуру можливо, денормалізованнную. Завдяки цьому, використовуючи особливості конкретної СУБД і бізнес правила предметної області, в ряді випадків забезпечується краща продуктивність ІС.
ERwin має наступну функціональність для підтримки денормалізації:
Таблиці, колонки, домени і індекси можна створювати тільки на уровнефізіческой моделі (опція Physical Only). Наприклад, на рівні лише фізичної моделі може бути створено поле Оклад таблиці СПІВРОБІТНИК. При автоматичному вирішенні зв'язку багато-до-багатьох в логічної моделі створюється нове ставлення тільки на рівні фізичної моделі.
Діаграму моделі можна вивести на принтер за допомогою діалогу Print Model кнопки Друк або команди меню File / Print. Тут можна побачити розташування графічних об'єктів, що виводяться на друк. Кнопки Print All Pages або Print Selected Pages дозволяють роздрукувати всі сторінки моделі або тільки виділені сторінки. Можна встановити масштаб і встановити параметри друку (кнопка Page Setup).
Створення фізичної моделі даних
На фізичному рівні (рівень Physical) об'єкти БД повинні називатися так, як цього вимагають обмеження обраної СУБД. Фізична модель залежить від конкретної СУБД, тому однією і тією ж логічної моделі може відповідати кілька фізичних моделей. ERwin підтримує практично всі поширені СУБД, всього понад 20 реляційних і не реляційних БД.
Тип даних можна вибрати в списку, що розкривається Default Datatype. Він містить типи даних, підтримувані обраним сервером. Цей тип буде за замовчуванням присвоюватися кожному полю таблиці.
Група кнопок Default Non-Key Null Option дозволяє вирішити мул заборонити значення NULL для не ключовий полів.
Вікно вибору Allow special chars in names дозволяє дозволити або заборонити використання спеціальних символів і пробілів в іменах таблиць для тих СУБД, які підтримують використання спеціальних символів.
За замовчуванням ERwin генерує імена таблиць і індексів за шаблоном на основі імен відповідних сутностей і ключів логічної моделі. Вікна Table Name Macro і Index Name Macro дозволяють змінити шаблон генерації імен, заданий за замовчуванням. Надалі імена таблиць і індексів можна змінити вручну.
Кнопка Reset Names викликає діалог Globally Reset DBMS Property. який дозволяє замінити всі імена таблиць, зв'язків, індексів, стовпців і відповідних властивостей, заданих вручну, на значення за замовчуванням.
Кнопка Ri Default викликає діалог, який дозволяє присвоїти кожній зв'язку між таблицями значення посилальної цілісності за замовчуванням.
При зміні СУБД ERwin пропонує автоматично перетворити тип даних, пов'язаний з кожним атрибутом, на найближчий, доступний для нової СУБД. Для автоматичного перетворення слід у відповідь на запит натиснути Yes.