Створення логічної моделі БД

Структура процесу моделювання в ERwin

У ERwin використовуються два рівні представлення моделі даних: логічний і фізичний (що відповідає концептуальному і логічному рівню, прийнятим в теорії БД). На логічному рівні не розглядається використання конкретної СУБД, не визначаються типи даних (наприклад, ціле або речове число) і не визначаються індекси для таблиць. Цільова СУБД, імена об'єктів і типи даних, індекси складають другий (фізичний) рівень моделі ERwin.

ERwin надає можливості створювати і управляти цими двома різними рівнями представлення однієї діаграми (моделі), так само як і мати багато варіантів відображення на кожному рівні.

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

1. Створення логічної моделі даних:

- визначення суті;

- визначення залежностей між суттю;

- завдання первинних і альтернативних ключів;

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

2. Перехід до фізичного опису моделі:

- призначення відповідностей ім'я суті - ім'я таблиці, атрибут суті - атрибут таблиці;

- завдання трігерів, процедур, що зберігаються, і обмежень.

3. Генерація бази даних.

З погляду користувача ERwin, процес створення логічної моделі даних полягає у візуальному редагуванні ER-диаграммы. Діаграма ERwin будується з трьох основних блоків: суті, атрибутів і зв'язків.

На діаграмі суть зображається прямокутником. Залежно від режиму представлення діаграми прямокутник може містити ім'я сутності, її опис, список її атрибутів і інші відомості. Основна інформація, що описує сутність, включає:

  1. атрибути, складові первинний ключ;
  2. неключові атрибути;
  3. тип суті (независимая/зависимая).

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

  1. первинний ключ не повинен приймати порожні (NULL) значення;
  2. первинний ключ не повинен змінюватися протягом часу;
  3. розмір первинного ключа повинен бути як можна меншим.

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

У 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 представляє наступні варіанти обробки цих подій:

  1. відсутність перевірки;
  2. перевірка допустимості;
  3. заборона операції;
  4. каскадне виконання операції (DELETE/UPDATE);
  5. установка порожнього (NULL-значения) або заданого значення за умовчанням.

 

 

Контрольні питання:

1. Дати перелік інструментам моделювання даних і поясніть різницю.***

2. З яких етапів складається процес побудови інформаційної моделі.**

3. З чого складається інформація, що описує сутність.*

4. Поясніть різницю між первиним та альтернативними ключами.***

 

 

Література:

  1. Ситник В.Ф. Основі інформацийних систем: Навчальній посібник. – Київ: КНЕУ, 2001 – 420 с.
  2. Береза А.М. Основі створювання інформаційних систем: Навчальній посібник. – Київ: КНЕУ, 2001 – 214 с.
  3. Ситник В.Ф. Основі інформацийних систем: Навчальній посібник. – 1997. – 252 с