Створення логічної моделі БД
Структура процесу моделювання в ERwin
У ERwin використовуються два рівні представлення моделі даних: логічний і фізичний (що відповідає концептуальному і логічному рівню, прийнятим в теорії БД). На логічному рівні не розглядається використання конкретної СУБД, не визначаються типи даних (наприклад, ціле або речове число) і не визначаються індекси для таблиць. Цільова СУБД, імена об'єктів і типи даних, індекси складають другий (фізичний) рівень моделі ERwin.
ERwin надає можливості створювати і управляти цими двома різними рівнями представлення однієї діаграми (моделі), так само як і мати багато варіантів відображення на кожному рівні.
Процес побудови інформаційної моделі складається з наступних етапів:
1. Створення логічної моделі даних:
- визначення суті;
- визначення залежностей між суттю;
- завдання первинних і альтернативних ключів;
- визначення неключових атрибутів суті.
2. Перехід до фізичного опису моделі:
- призначення відповідностей ім'я суті - ім'я таблиці, атрибут суті - атрибут таблиці;
- завдання трігерів, процедур, що зберігаються, і обмежень.
3. Генерація бази даних.
З погляду користувача ERwin, процес створення логічної моделі даних полягає у візуальному редагуванні ER-диаграммы. Діаграма ERwin будується з трьох основних блоків: суті, атрибутів і зв'язків.
На діаграмі суть зображається прямокутником. Залежно від режиму представлення діаграми прямокутник може містити ім'я сутності, її опис, список її атрибутів і інші відомості. Основна інформація, що описує сутність, включає:
- атрибути, складові первинний ключ;
- неключові атрибути;
- тип суті (независимая/зависимая).
Первинний ключ - це атрибут або набір атрибутів, унікально ідентифікуючий екземпляр суті. Якщо декілька наборів атрибутів можуть унікально ідентифікувати суть, то вибір один з них здійснюється розробником на підставі аналізу наочної області і обліку наступних вимог до первинного ключа.
- первинний ключ не повинен приймати порожні (NULL) значення;
- первинний ключ не повинен змінюватися протягом часу;
- розмір первинного ключа повинен бути як можна меншим.
При цьому якщо розробник вважає, що який-небудь з наборів, що залишилися, часто використовуватиметься для доступу до суті, то він може оголосити його альтернативним ключем.
У ERwin можна також складати групи атрибутів, які не ідентифікують унікально екземпляри суті, але часто використовуються для доступу до даним. Вони отримали назву інверсних входів. Одні і ті ж атрибути суті можуть входити в декілька різних груп ключів.
Розглянемо вище сказане на прикладі сутності СПІВРОБІТНИК (мал.1).
Мал. 1. Приклад сутності
Серед всіх атрибутів даної сутності на роль первинного ключа можуть претендувати "табельний номер" і група атрибутів "прізвище", "і’мя","по-батькові", "дата народження" (останній необхідний, оскільки на підприємстві можуть працювати повні тезки). Очевидно, що по міркуванню розміру як первинний ключ слід вибрати перший з варіантів.
На діаграмі атрибути, складові первинний ключ, розташовуються у верхній частині прямокутника і відділяються від інших (що не входять в первинних ключ) горизонтальною лінією.
Група атрибутів "прізвище", "ім'я", "по батькові", "дата народження" може бути альтернативним ключем. Проте навряд чи хто-небудь, що намагається знайти інформацію про співробітника, знатиме дату його народження. А ось група атрибутів "прізвище", "ім'я", "по батькові", цілком можливо, буде достатньо часто використовуватися для цих цілей. Тому на основі цих атрибутів було б логічне створити інверсний вхід. Інверсний вхід позначається на діаграмі символами IEn, увязненими в дужки.
Приклад використання альтернативного ключа приведений на мал.2. Альтернативний ключ позначається на діаграмі символами АК1 в дужках.
Мал. 2. Приклад альтернативного ключа
Якщо екземпляри суті можуть бути унікально ідентифіковані без визначення її зв'язків з іншою суттю, вона називається незалежною. Інакше суть називають залежною. Залежна суть відображається в ERwin прямокутником із закругленими кутами.
Зв'язок в ERwin трактується як функціональна залежність між двома суттю (зокрема, можливий зв'язок суті з самою собою).
Якщо розглядати діаграму як графічне представлення правил наочної області, то суть є іменниками, а зв'язки -глаголами. Наприклад, між суттю ВІДДІЛ і СПІВРОБІТНИК існує зв'язок "складається з" (ВІДДІЛ складається із СПІВРОБІТНИКІВ).
У ERwin зв'язки представлені п'ятьма основними елементами інформації:
· тип зв'язку;
· батьківська і дочірня (залежна) суть;
· потужність зв'язку;
· допустимість порожніх (null) значень;
· вимоги по забезпеченню посилальної цілісності.
ERwin підтримує наступні основні типи зв'язків: ідентифікуюча, неідентифікуюча, повна категорія, неповна категорія, многие-ко-многим.
Зв'язок називається таким, що ідентифікує, якщо екземпляр дочірньої суті ідентифікується через її зв'язок з батьківською суттю. Атрибути, складові первинний ключ батьківської суті, при цьому входять в первинний ключ дочірньої суті. Дочірня суть при ідентифікуючому зв'язку завжди є залежною.
Зв'язок називається такою, що не ідентифікує, якщо екземпляр дочірньої суті ідентифікується інакше, ніж через зв'язок з батьківською суттю. Атрибути, складові первинний ключ батьківської суті, при цьому входять до складу неключових атрибутів дочірньої суті.
Ідентифікуючий зв'язок зображається суцільною лінією; що не ідентифікує - пунктирною лінією. Лінії закінчуються крапкою з боку дочірньої суті.
При визначенні зв'язку відбувається міграція атрибутів первинного ключа батьківської суті у відповідну область атрибутів дочірньої суті. Тому такі атрибути не вводяться уручну.
На мал. 3. приведений приклад неидентифицируюшей зв'язку. Первинний ключ суті ВІДДІЛ "номер відділу" мігрував в область неключових атрибутів (оскільки зв'язок неидентифицируюшая) суті СПІВРОБІТНИК. На діаграмі атрибути, успадковані від батьківської суті, позначаються символами FK, увязненими в дужки.
Мал.3. Приклад неідентифікуючого зв'язку
Залежна сутність може успадковувати один і той же атрибут більш ніж одній батьківській сутності або від однієї і тієї ж батьківської сутності через декілька зв'язків.
Оскільки атрибути первинного ключа батьківської сутності за умовчанням мігрують зі своїми іменами, ERwin вважає, що в залежній сутності атрибути зовнішнього ключа з'являються тільки один раз. Щоб уникнути цього обмеження, ERwin дозволяє ввести для них ролі, тобто нові імена, під якими мігруючі атрибути будуть представлені в дочірній сутності. У разі неодноразової міграції атрибуту таке перейменування необхідне. Наприклад, при створенні моделі операції по обміну валюти сутності ОПЕРАЦІЯ (мал. 4) повинна мати два різні атрибути для кода проданої і купленої валюти. В даному випадку первинний ключ суті ВАЛЮТА ("код валюти") має дві ролі в дочірній сутності.
Мал. 4. Приклад використання ролей
Ситуація, коли екземпляру однієї сутності відповідає один або декілька екземплярів другої сутності, а екземпляру другої сутності відповідає один або декілька екземплярів першої сутності, відбивається в логічній моделі зв'язком многие-ко-мпогим між даною сутністю. На діаграмі зв'язок зображається суцільною лінією з крапками на кінцях. Наприклад, для укладення оборудки в деякій фірмі клієнт звертається до будь-якого з вільних співробітників цієї фірми. В той же час співробітник фірми може обслуговувати декількох клієнтів. Тому тип зв'язку між суттю КЛІЄНТ і СПІВРОБІТНИК повинні бути багато-до-багатьох (мал. 5).
Мал. 5 Приклад зв'язку многие-ко-мпогим
Відмітимо, що зв'язок типу багато-до-багатьох можливий тільки на логічному рівні. Перетворення зв'язку даного типу на фізичному рівні буде розглянуто в наступному пункті. Проте додамо, що зв'язку багато-до-багатьох рекомендується уникати. У розглянутому прикладі цього можна добитися, якщо ввести додаткову сутність ОПЕРАЦІЯ (мал. 6).
Мал. 6. Приклад усунення зв'язку многие-ко-многим
Деяка суть визначає цілу категорію об'єктів одного типу. У ERwin у такому разі створюється сутність для визначення категорії і для кожного елементу категорії, а потім вводиться для них зв'язок категоризації. Батьківська сутність категорії називається супертипом, а дочерние - підтипом.
Різна частина (наприклад, дані почасової оплати для тимчасових працівників або дані про зарплату і відпустку для штатних працівників) поміщається в суть-підтип. По суті - супертипі вводиться атрибут-дискримінатор, що дозволяє розрізняти конкретні екземпляри суті-підтипу.
Залежно від того, чи вся можлива сутність-підтип включена в модель, категорийная зв'язок є повним або неповним. У ERwin повна категорія зображається колом з двома підкресленнями, а неповна - колом з одним підкресленням.
На мал.7 категорийний зв'язок між сутністю СПІВРОБІТНИК і сутністю ПОСТІЙНИЙ СПІВРОБІТНИК і СУМІСНИК є неповній, якщо припустити, що існує ще один тип співробітників - консультант.
Включення в модель сутність КОНСУЛЬТАНТ приводить до того, що категорийная зв'язок стає повним (мал. 8).
Потужністю зв'язку є відношення кількості екземплярів батьківської сутністі до відповідної кількості екземплярів дочірньої сутністі. Потужність зв'язку визначається тільки для ідентифікуючих і неідентифікуючих зв'язків і записується як l:n. ERwin надає 4 варіанти для п, які зображаються додатковим символом у дочірньої сутністі (мал. 9)
Мал. 7 Приклад неповної категорії
Мал..8 Приклад повної категорії
Мал. 9 Позначення кратності зв'язку
Допустимість порожніх (NULL) значень в неідентифікуючих зв'язках ERwin зображає порожнім ромбом на дузі зв'язку з боку батьківської суті.
В цілях контролю посилальної цілісності (під посилальною цілісністю в ERwin розуміється забезпечення вимоги, щоб значення зовнішнього ключа екземпляра дочірньої суті відповідали значенням первинного ключа в батьківській суті) для кожного зв'язку можуть бути задані вимоги по обробці операцій INSERT/UPDATE/DELETE для батьківської і дочірньої суті. ERwin представляє наступні варіанти обробки цих подій:
- відсутність перевірки;
- перевірка допустимості;
- заборона операції;
- каскадне виконання операції (DELETE/UPDATE);
- установка порожнього (NULL-значения) або заданого значення за умовчанням.
Контрольні питання:
1. Дати перелік інструментам моделювання даних і поясніть різницю.***
2. З яких етапів складається процес побудови інформаційної моделі.**
3. З чого складається інформація, що описує сутність.*
4. Поясніть різницю між первиним та альтернативними ключами.***
Література:
- Ситник В.Ф. Основі інформацийних систем: Навчальній посібник. – Київ: КНЕУ, 2001 – 420 с.
- Береза А.М. Основі створювання інформаційних систем: Навчальній посібник. – Київ: КНЕУ, 2001 – 214 с.
- Ситник В.Ф. Основі інформацийних систем: Навчальній посібник. – 1997. – 252 с