У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


декілька відносин таким чином: ті атрибути, які залежать від частини складного ключа виносяться в окреме відношення разом з цією частиною ключа. В початковому відношенні залишаються всі ключові атрибути:

Початкове відношення: .

Ключ: - складний.

Функціональні залежності:

- залежність всіх атрибутів від ключа відношення.

- залежність деяких атрибутів від частини складного ключа.

Декомпозірованниє відносини:

- залишок від початкового відношення. Ключ .

- атрибути, винесені з початкового відношення разом з частиною складного ключа. Ключ .

Крок 3 (Приведення до 3НФ). Якщо в деяких відносинах знайдена залежність деяких неключових атрибутів інших неключових атрибутів, то проводимо декомпозицію цих відносин таким чином: ті неключові атрибути, які залежать інших неключових атрибутів виносяться в окреме відношення. В новому відношенні ключем стає детермінант функціональної залежності:

Початкове відношення: .

Ключ: .

Функціональні залежності:

- залежність всіх атрибутів від ключа відношення.

- залежність деяких неключових атрибутів інших неключових атрибутів.

Декомпозірованниє відносини:

- залишок від початкового відношення. Ключ .

- атрибути, винесені з початкового відношення разом з детермінантом функціональної залежності. Ключ .

Зауваження. На практиці, при створенні логічної моделі даних, як правило, не слідують прямо приведеному алгоритму нормалізації. Досвідчені розробники звичайно відразу будують відносини в 3НФ. Крім того, основним засобом розробки логічних моделей даних є різні варіанти ER-діаграм. Особливість цих діаграм в тому, що вони відразу дозволяють створювати відносини в 3НФ. Проте, приведений алгоритм важливий з двох причин. По-перше, цей алгоритм показує, які проблеми виникають при розробці слабо нормалізованих відносин. По-друге, як правило, модель предметної області не буває ніколи правильно розроблена з першого кроку. Експерти предметної області можуть забути про що-небудь згадати, розробник може неправильно зрозуміти експерта, під час розробки можуть змінитися правила, прийняті в предметній області, і т.д. Все це може привести до появи нових залежностей, які були відсутні в первинній моделі предметної області. Тут якраз і необхідно використовувати алгоритм нормалізації хоча б для того, щоб переконатися, що відносини залишилися в 3НФ і логічна модель не погіршилася.

Аналіз критеріїв для нормалізованих і ненормалізованих моделей даних

Порівняння нормалізованих і ненормалізованих моделей

Зберемо воєдино результати аналізу критеріїв, по яких ми хотіли оцінити вплив логічного моделювання даних на якість фізичних моделей даних і продуктивність бази даних:

Критерій | Відношення слабо нормалізовані
(1НФ, 2НФ) | Відношення сильно нормалізовані

(3НФ)

Адекватність бази даних предметній області | ГІРШЕ (-) | КРАЩЕ (+)

Легкість розробки і супроводу бази даних | СКЛАДНІШЕ (-) | ЛЕГШЕ (+)

Швидкість виконання вставки, обновлення, видалення | ПОВІЛЬНІШЕ (-) | ШВИДШЕ (+)

Швидкість виконання вибірки даних | ШВИДШЕ (+) | ПОВІЛЬНІШЕ (-)

Як видно з таблиці, більш сильно нормалізовані відносини виявляються краще спроектовані (три плюси, один мінус). Вони більше відповідають предметній області, легше в розробці, для них швидше виконуються операції модифікації бази даних. Правда, це досягається ціною деякого уповільнення виконання операцій вибірки даних.

Біля слабо нормалізованих відносин єдина перевага - якщо до бази даних поводитися тільки із запитами на вибірку даних, то для слабо нормалізованих відносин такі запити виконуються швидше. Це зв'язано з тим, що в таких відносинах вже як би проведено з'єднання відносин і на це не витрачається час при вибірці даних.

Таким чином, вибір ступеня нормалізації відносин залежить від характеру запитів, з якими частіше за все звертаються до бази даних.

OLTP і OLAP-системи

Можна виділити деякі класи систем, для яких більше підходять сильно або слабо нормалізовані моделі даних.

Сильно нормалізовані моделі даних добре підходять для так званих OLTP-додатків (On-Line Transaction Processing (OLTP) - оперативна обробка транзакцій). Типовими прикладами OLTP-додатків є системи складського обліку, системи замовлень квитків, банківські системи, що виконують операції по перекладу грошей, і т.п. Основна функція подібних систем полягає у виконанні великої кількості коротких транзакцій. Самі транзакції виглядають відносно просто, наприклад, "зняти суму грошей з рахунку А, додати цю суму на рахунок В". Проблема полягає в тому, що, по-перше, транзакцій дуже багато, по-друге, виконуються вони одночасно (до системи може бути підключено декілька тисяч одночасно працюючих користувачів), по-третє, при виникненні помилки, транзакція повинна цілком відкататися і повернути систему до полягання, яке було до початку транзакції (не повинно бути ситуації, коли гроші зняті з рахунку А, але не поступили на рахунок В). Практично всі запити до бази даних в OLTP-додатках складаються з команд вставки, оновлення, видалення. Запити на вибірку в основному призначені для надання користувачам можливості вибору з різних довідників. Велика частина запитів, таким чином, відома наперед ще на етапі проектування системи. Таким чином, критичним для OLTP-додатків є швидкість і надійність виконання коротких операцій оновлення даних. Чим вище рівень нормалізації даних в OLTP-додатку, тим воно, як правило, швидше і надійніше. Відступи від цього правила можуть відбуватися тоді, коли вже на етапі розробки відомі деякі часто виникаючі запити, що вимагають з'єднання відносин і від швидкості виконання яких істотно залежить робота додатків. В цьому випадку можна пожертвувати нормалізацією для прискорення виконання подібних запитів.

Іншим типом додатків є так звані OLAP-додатки (On-Line Analitical Processing (OLAP) - оперативна аналітична обробка даних). Це узагальнений термін, що характеризує принципи побудови систем підтримки ухвалення рішень (Decision Support System - DSS), сховищ даних (Data Warehouse), систем інтелектуального аналізу даних (Data Mining). Такі системи призначені для знаходження залежностей між даними (наприклад, можна спробувати визначити, який зв'язаний об'єм продажів товарів з характеристиками потенційних покупців), для проведення аналізу "що якщо.". OLAP-додатки оперують з великими масивами даних, вже накопиченими в OLTP-додатках, узятими їх електронних таблиць або з


Сторінки: 1 2 3 4 5 6 7 8 9