Інтернет Windows Android

Зв'язок один до багатьох erwin. Встановлення зв'язків між сутностями

Мобільний зв'язок - це функціональна залежність між двома сутностями (зокрема, можливий зв'язок сутності з самою собою). Наприклад, важливо знати прізвище співробітника, і не менш важливо знати, в якому відділі він працює. Таким чином, між сутностями "відділ" і "співробітник" існує зв'язок "складається з" (відділ складається із співробітників). Мобільний зв'язок - це поняття логічного рівня, якому відповідає зовнішній ключ на фізичному рівні. У ERwin зв'язку представлені п'ятьма основними елементами інформації:

· Тип зв'язку (ідентифікує, неідентіфіцірующей, повна / неповна категорія, неспецифічна зв'язок);

· Батьківська сутність;

· Дочірня (залежна) сутність;

· Потужність зв'язку (cardinality);

· Допустимість порожніх (null) значень.

Зв'язок називається ідентифікуючої, якщо екземпляр дочірньої сутності ідентифікується через її зв'язок з батьківською сутністю. Атрибути, що становлять первинний ключ батьківського суті, при цьому входять в первинний ключ дочірньої сутності. Дочірня сутність при ідентифікує зв'язку завжди є залежною.
Зв'язок називається неидентифицирующей, якщо екземпляр дочірньої сутності ідентифікується інакше, ніж через зв'язок з батьківською сутністю. Атрибути, що становлять первинний ключ батьківського суті, при цьому входять до складу неключових атрибутів дочірньої суті.
Для визначення зв'язків ERwin вибирається тип зв'язку, потім мишею вказується батьківська і дочірня сутність. Идентифицирующая зв'язок зображується суцільною лінією; неідентіфіцірующей - пунктирною лінією. Лінії закінчуються крапкою з боку дочірньої сутності.
При визначенні зв'язку відбувається міграція атрибутів первинного ключа батьківської суті в відповідну область атрибутів дочірньої суті. Тому такі атрибути не вводяться вручну.
Атрибути первинного ключа батьківської суті за замовчуванням мігрують зі своїми іменами. ERwin дозволяє ввести для них ролі, тобто нові імена, під якими мігруючі атрибути будуть представлені в дочірньої сутності. У разі неодноразової міграції атрибута таке перейменування необхідно. Наприклад, сутність "посередницька операція" має атрибут "код підприємства-продавця" та "код підприємства-покупця". В даному випадку первинний ключ сутності "підприємство" ( "код підприємства") має дві ролі в дочірньої сутності.
На фізичному рівні ім'я ролі - це ім'я колонки зовнішнього ключа в дочірній таблиці.
Потужність зв'язку представляє собою відношення кількості примірників батьківської сутності до відповідної кількості примірників дочірньої сутності. Для будь-якого зв'язку, крім неспецифічної, цей зв'язок записується як 1: n.
ERwin відповідно до методології IDEF1X надає 4 варіанти для n, які зображуються додатковим символом у дочірньої сутності: нуль, один або більше (за замовчуванням); нуль або один; рівно N, де N - конкретне число.
Допустимість порожніх (NULL) значень в неідентіфіцірующей зв'язків ERwin зображує порожнім ромбиком на дузі зв'язку з боку батьківської сутності.
Позначення потужності відповідно нуль, один або більше, один або більше, нуль або один в нотації IE приведені на рис. 1.

Рис.1. Позначення потужності зв'язку в нотації IE

Ім'я зв'язку на логічному рівні представляє собою "дієслово", що зв'язує суті. Фізичне ім'я зв'язку (яке може відрізнятися від логічного) для ERwin означає ім'я обмеження (constraint) або індексу.

6. Моделювання в ERwin

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

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

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

Відображення логічного і фізичного рівня моделі даних в ERwin

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

Компоненти діаграми ERwin і основні види уявлень діаграми

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

  • Режим "сутності" - всередині прямокутників відображається ім'я сутності (для логічної моделі) або ім'я таблиці (для фізичного представлення моделі); служить для зручності огляду великий діаграми або розміщення прямокутників сутностей на діаграмі.
  • Режим "визначення сутності" служить для презентації діаграми іншим людям.
  • Режим "атрибути". При переході від предметної області до моделі потрібно вводити інформацію про те, що становить сутність. Ця інформація вводиться шляхом завдання атрибутів (на фізичному рівні - колонок таблиць). В цьому режимі прямокутник-сутність ділиться лінією на дві частини - у верхній частині відображаються атрибути (колонки), що становлять первинний ключ, а в нижній - інші атрибути. Цей режим є основним при проектуванні на логічному і фізичному рівнях.
  • Режим "первинні ключі" - всередині прямокутників - сутностей показуються тільки атрибути / колонки, що становлять первинний ключ.
  • Режим "піктограми". Для презентаційних цілей кожної таблиці може бути поставлена \u200b\u200bу відповідність піктограма (bitmap).
  • Режим "показ дієслівної фрази". На дугах зв'язків показуються дієслівні фрази, що зв'язують суті (для логічного рівня) або імена зовнішніх ключів (для фізичного рівня).

Діаграма може займати більш ніж один екран і більш ніж один лист при друку. Для огляду моделі передбачені, крім прокручувань екрану, режими зменшення / збільшення зображення, відображення всієї моделі, відображення виділеної частини моделі.

Інструменти для створення моделі в ERwin

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

  • редактори, пов'язані з сутністю в цілому (визначення сутності, додаткова інформація, Тригери, індекси, показники таблиці, збережені процедури, пов'язані з таблицею);
  • редактори атрибутів (визначення атрибутів, колонки таблиці у фізичному поданні моделі, репозитарій кошти 4GL, наприклад, розширені атрибути в PowerBuilder).

Ідентифікація сутностей. Суті в ERwin

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

  • атрибути, складові первинний ключ;
  • неключових атрибутів;
  • тип сутності (незалежна / залежна).

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

Зв'язки (relationships) в ERwin

Мобільний зв'язок - це функціональна залежність між двома сутностями (зокрема, можливий зв'язок сутності з самою собою). Наприклад, важливо знати прізвище співробітника, і не менш важливо знати, в якому відділі він працює. Таким чином, між сутностями "відділ" і "співробітник" існує зв'язок "складається з" (відділ складається із співробітників). Мобільний зв'язок - це поняття логічного рівня, якому відповідає зовнішній ключ на фізичному рівні. У ERwin зв'язку представлені п'ятьма основними елементами інформації:

  • тип зв'язку (ідентифікує, неідентіфіцірующей, повна / неповна категорія, неспецифічна зв'язок);
  • батьківська сутність;
  • дочірня (залежна) сутність;
  • потужність зв'язку (cardinality);
  • допустимість порожніх (null) значень.

Зв'язок називається ідентифікуючої, якщо екземпляр дочірньої сутності ідентифікується через її зв'язок з батьківською сутністю. Атрибути, що становлять первинний ключ батьківського суті, при цьому входять в первинний ключ дочірньої сутності. Дочірня сутність при ідентифікує зв'язку завжди є залежною.
Зв'язок називається неидентифицирующей, якщо екземпляр дочірньої сутності ідентифікується інакше, ніж через зв'язок з батьківською сутністю. Атрибути, що становлять первинний ключ батьківського суті, при цьому входять до складу неключових атрибутів дочірньої суті.
Для визначення зв'язків ERwin вибирається тип зв'язку, потім мишею вказується батьківська і дочірня сутність. Идентифицирующая зв'язок зображується суцільною лінією; неідентіфіцірующей - пунктирною лінією. Лінії закінчуються крапкою з боку дочірньої сутності.
При визначенні зв'язку відбувається міграція атрибутів первинного ключа батьківської суті в відповідну область атрибутів дочірньої суті. Тому такі атрибути не вводяться вручну.
Атрибути первинного ключа батьківської суті за замовчуванням мігрують зі своїми іменами. ERwin дозволяє ввести для них ролі, тобто нові імена, під якими мігруючі атрибути будуть представлені в дочірньої сутності. У разі неодноразової міграції атрибута таке перейменування необхідно. Наприклад, сутність "посередницька операція" має атрибут "код підприємства-продавця" та "код підприємства-покупця". В даному випадку первинний ключ сутності "підприємство" ( "код підприємства") має дві ролі в дочірньої сутності.
На фізичному рівні ім'я ролі - це ім'я колонки зовнішнього ключа в дочірній таблиці.
Потужність зв'язку представляє собою відношення кількості примірників батьківської сутності до відповідної кількості примірників дочірньої сутності. Для будь-якого зв'язку, крім неспецифічної, цей зв'язок записується як 1: n.
ERwin відповідно до методології IDEF1X надає 4 варіанти для n, які зображуються додатковим символом у дочірньої сутності: нуль, один або більше (за замовчуванням); нуль або один; рівно N, де N - конкретне число.
Допустимість порожніх (NULL) значень в неідентіфіцірующей зв'язків ERwin зображує порожнім ромбиком на дузі зв'язку з боку батьківської сутності.
Позначення потужності відповідно нуль, один або більше, один або більше, нуль або один в нотації IE приведені на рис. 1.

Рис.1. Позначення потужності зв'язку в нотації IE

Ім'я зв'язку на логічному рівні представляє собою "дієслово", що зв'язує суті. Фізичне ім'я зв'язку (яке може відрізнятися від логічного) для ERwin означає ім'я обмеження (constraint) або індексу.

Графічне редагування моделі

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

win, Зверніться до керівництва по методам ERwin Methods Guide.

У цьому розділі Ви дізнаєтеся, як:

Створювати нову зв'язок Переносити зовнішні ключі на залежні сутності Входити в редактор Relationship Входити в редактор Relationship Definition Коригувати розташування "вигину" зв'язку

Існує певний базовий обсяг інформації, яку Ви повинні знати, перш ніж Ви почнете малювати зв'язку.

Що таке зв'язокЯк входити в потрібні редактори Які інструменти з toolbox Вам знадобляться

анатомія зв'язку

Дані, що відносяться до зв'язків, дуже важливі і часто є критичними даними, які ми використовуємо в повсякденному бізнесі. Наприклад, важливо знати про якомусь типі інструменту, але знання того, до кого належить конкретний інструмент (зв'язок між людиною і інструментом) може мати критичну важливість. зв'язок- це співвідношення або між двома сутностями, або між сутністю і цієї ж сутністю. Зв'язок - "логічний" об'єкт, представлений одним або декількома атрибутами - зовнішніми ключами. Зв'язок в ER

win зазвичай містить п'ять типів інформації: тип зв'язку, батьківський кінець зв'язку, дочірній кінець зв'язку, знак "обов'язковості" зв'язку і кардинальність зв'язку.

Як показати на екрані меню Editor

поставляється з рядком меню, в якій відсутній меню Editor. Ви завжди можете увійти в меню Display і Editor натисканням правої кнопки миші. Вказуючи стрілкою курсору на діаграму, ви викликаєте на екран меню Display, а вказуючи курсором на об'єкт, викликаєте меню, що містить всі редактори, пов'язані з цим об'єктом. Разом з тим Ви можете показати меню Editor в рядку меню або прибрати його звідти.

1. Дайте команду перемикача "Show Editor Menu" в меню Option для того, щоб показати меню Editor в рядку меню.

2. Для того, щоб прибрати меню Editor з рядка меню, повторіть цю команду.

Підтримка зв'язків в Toolbox

win Toolbox є п'ять типів зв'язків: ідентифікує, неідентіфіцірующей, повний кластер підтипів, неповний кластер підтипів, невизначена (зв'язок "багато-до-багатьох"). Идентифицирующая зв'язок -такий зв'язок, при якій екземпляр дочірньої сутності ідентифікується через свою асоціацію з батьківської сутністю. Атрибути первинного ключа батьківської суті стають атрибутами первинного ключа дочірньої. Неідентіфіцірующей зв'язок -це такий зв'язок, при якій екземпляр дочірньої суті не ідентифікується через свою асоціацію з родітельсой сутністю. Атрибути первинного ключа батьківської суті стають неключових атрибутами дочірньої. Див. Також гл. 9, Зв'язки: можливості підвищеного рівня складності,розд. "Завдання неідентіфіцірующей зв'язків" і "Створення зв'язків підтипів".

1. Встановіть курсор на той інструмент, який Вам потрібен, і натисніть ліву кнопку миші.

ідентифікує зв'язок неідентіфіцірующей зв'язок

2. Клацніть по батьківській, а потім по дочірньої сутності для створення зв'язку.

Використання pop-up меню Editor для зв'язків

містить спеціальну скорочену версію меню Editor для зв'язків. Якщо Ви клацнете правою кнопкою миші по зв'язку, що знаходиться у вікні діаграми, то ERwin виведе на екран скорочений, контекстно-чутливий варіант меню Editor, яке містить тільки редактори, орієнтовані на зв'язку.
Див. Гл. 3, Сутності й атрибути в
ER win , Розд. "Використання редакторів ERwin".

Якщо Ви встановите курсор на лінію зв'язку, натиснете SHIFT і двічі клацнете лівою кнопкою миші, то з'явиться вікно-діалог, в якому ERwin запитає Вас, чи хочете Ви відкрити активний редактор для батьківської або для дочірньої сутності. Виберіть натисканням кнопки миші батьківську або дочірню сутність і натисніть "ОК".

створення зв'язку

Створити зв'язок в ER

win легко. У цьому розділі описується, як створити зв'язок і ввести необхідні дані по ній.

Як створити зв'язок

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

2. Намалюйте зв'язок: клацніть спочатку по батьківській, а потім по дочірньої сутності.

Коли Ви сформуєте зв'язок, то ключ батьківської сутності автоматично з'явиться в якості частини ключа дочірньої (для ідентифікує зв'язку) або в якості неключевого атрибута дочірньої сутності (для неидентифицирующей зв'язку), причому поруч з ним буде стояти (FK), тобто зовнішній ключ, Foreign Key. Ця операція зміни дочірньої сутності внаслідок створення зв'язку називається міграцією ключа

.

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

Робота в редакторі Relationship

Зв'язки, як і сутності, можуть мати імена і мітки. Ці мітки називаються дієслівними фразами, вони повинні описувати, яким чином батьківська сутність пов'язана з дочірньою. Редактор Relationship дозволяє Вам задати глагольную фразу, кардинальність і ставлення до нульових значень для зв'язку.

Ви можете також задати в редакторі Relationship ім'я ролі для атрибута - зовнішнього ключа. Див. Також гл. 8, Сутності й атрибути: можливості підвищеного рівня складності,розд. "Використання імен ролей атрибутів".

Як відкрити редактор Relationship

1. Дайте команду "Relationship" в меню Editor.

2. Двічі клацніть по лінії тієї зв'язку, яку Ви хочете редагувати. Ви ввійдете в редактор Relatio

nship.

Встановіть курсор на лінію зв'язку і клацніть правою кнопкою миші. Ви ввійдете в pop-up меню Editor. Дайте в ньому команду "Relationship".

Як користуватися редактором Relationship

1. Введіть ім'я, яке ідентифікує зв'язок, в вікно "Verb Phrase".

Зазвичай ім'ям зв'язку служить дієслівна фраза (verb phrase). Намагайтеся, щоб імена зв'язків якомога повніше їх описували!Редактор Relationship показує перші чотири рядки дієслівної фрази і дозволяє вводити і переглядати навіть більше число рядків.

Для переходу на новий рядок використовуйте клавішу "Повернення каретки". ER

win зображує глагольную фразу на діаграмі в той самий час, коли Ви вводите її в редакторі.

2. Поруч з областю для введення дієслівної фрази знаходиться список "Foreign Keys", який містить всі зовнішні ключі, які виникли в результаті міграції при завданні поточної зв'язку.

3. Якщо тип зв'язку не встановлено, задайте його натисканням на кнопку вибору: "Identifying" або "Non-Identifying".

4. Натисніть потрібні кнопки вибору в вікнах "Cardinality" і "Nulls" для завдання кардинальності і режиму нульових значень для поточної зв'язку.

5. Якщо Ви хочете зв'язати ім'я ролі із зовнішнім ключем, клацніть по атрибуту у вікні-списку "Foreign Key" і введіть ім'я ролі в текстове вікно "Role Name".

Див. Гл. 8, Сутності та атрибути: можливості підвищеного рівня складності, розд. "Використання імен ролей атрибутів".

Як переглядати вікно VERb Phrase

Ви можете користуватися стрілками для прокручування тексту у вікні "Verb Phrase" для того, щоб переглянути весь текст довгою дієслівної фрази.

Завдання кардинальності зв'язку

кардинальність зв'язку

служить для позначення відношення числа примірників батьківської сутності до числа екземплярів дочірньої. Батьківська сутність може зв'язуватися з дочірньою одним з чотирьох способів. У IDEF1X кардинальність бінарних відносин дорівнює 1: n, де n може приймати значення:0, 1 або більше - позначається "порожнім місцем"
Кожна батьківська сутність пов'язана з 0, 1 або більше примірників дочірньої.
1 або більше - позначається буквою "Р"
Кожна батьківська сутність пов'язана з 1 або більше примірників дочірньої.
0 або 1 - позначається буквою "Z"
Кожна батьківська сутність пов'язана з 0 або 1 екземпляром дочірньої.
рівно n, де "n" - деяке число
Кожна батьківська сутність пов'язана з рівно n екземплярами дочірньої.

Редактор Relationship також дозволяє задавати кардинальність зв'язку.

1. Перебуваючи в редакторі Relationship, натисніть кнопку вибору, що позначає потрібну Вам кардинальність.

2. Якщо Ви натиснули кнопку "Exactly", то необхідно ввести число.

Якщо Ви поставили це режим і не ввели число, то ER

win не дасть Вам вийти з вікна-діалогу.

Як показати кардинальність зв'язку

дозволяє показати кардинальність зв'язку на діаграмі.

Як показати або прибрати кардинальність зв'язку

1. Дайте команду "Cardinality" в меню Display.

2. Для того, щоб прибрати інформацію про кардинальності, повторіть цю команду.

Див. Також гл. 11, Документування правил (Business Rules),розд. "Використання кардинальності зв'язку для вираження правил".

Завдання режиму Null (нульових значень)

У редакторі Relationship Ви можете задати також режим "нульових значень". Він відноситься до випадку, коли значення немає: це порожня множина або "немає колонки". Атрибут, який може приймати нульове значення, вважається "необов'язковим" і на діаграмі зображується як ромб на батьківському кінці зв'язку. Ви можете задати цей режим і в інших місцях, але взагалі кажучи, перша така можливість надається саме в цьому редакторі.

Як задати "обов'язкову" або
"Необов'язкову" зв'язок

1. Перебуваючи в редакторі Relationship, натисніть кнопку "No Nulls" для завдання "обов'язкової" зв'язку (ромб на батьківському кінці відсутня), або натисніть кнопку "Nulls Allowed" для завдання "необов'язковою" зв'язку (з ромбиком на батьківському кінці).

Робота в редакторі Relationship Definition

Ви можете також захотіти дати більш повне визначення Вашої зв'язку для того, щоб в подальшому мати можливість на нього посилатися. Це робиться в редакторі Relanship Definition.

1. Дайте команду "Relationship Definition" в меню Editor, якщо Ви ще її не давали.

2. Двічі клацніть по тій зв'язку, яку Ви хочете відредагувати.

Встановіть курсор на ту зв'язок, яку Ви хочете відредагувати, і натисніть праву кнопку миші. Дайте команду "Relationship Definition" в меню Editor.

Якщо при спробі двічі клацнути по зв'язку Ви отримали повідомлення "Select an Object First", це означає, що Ви клацнули неточно по лінії зв'язку. Натисніть кнопку "ОК" у вікні повідомлення, для того щоб прибрати його з екрану, і спробуйте знову. Постарайтеся клацнути точно по лінії.

Як користуватися редактором Relationship Definition

1. Ім'я зв'язку, якщо воно є, знаходиться в вікні "Verb Phrase". Якщо хочете, можете його відредагувати.

2. Відредагуйте, як потрібно, фізичне ім'я зв'язку "Relationship Physical Name".

3. Введіть визначення в вікно "Rel

ationship Definition ".

4. Після того, як Ви закінчите роботу, натисніть кнопку "ОК" для того, щоб зберегти інформацію і вийти з редактора. Для виходу з редактора без збереження змін натисніть кнопку "Cancel".

корекція зв'язків

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

Як відкоригувати зв'язок

1. Клацніть по тій зв'язку, яку Ви хочете відредагувати. На екрані з'явиться "важіль" зв'язку (темний квадрат). Він визначає місце на лінії зв'язку, яке можна переносити.

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

3. Не відпускаючи лівої кнопки миші, змініть розташування лінії зв'язку відповідно до Вашого смаку і потім відпустіть кнопку миші.

Ніколи не забувайте регулярно зберігати зміни, які Ви вносите в діаграму.

Короткий повторення глави 4

Як показати або прибрати меню Editor

Дайте команду "Show Editor Menu" в меню Option для того, щоб показати меню Editor в рядку меню. Для того, щоб прибрати меню Editor з рядка меню, повторіть цю команду.

Як користуватися інструментами, орієнтованими на зв'язок

Встановіть курсор на потрібний Вам інструмент і клацніть лівою кнопкою миші.

Як створити нову зв'язок

Клацніть по одній з піктограм на Toolbox, що позначають зв'язок, а потім клацніть спочатку по батьківській суті, потім - по дочірньої.

Як зробити міграцію зовнішніх ключів в залежні сутності

Нічого не робіть. ERwin автоматично виробляє міграцію зовнішніх ключів при створенні зв'язку. Ніколи не вводьте зовнішні ключі самостійно.

Як увійти в редактор Relationship

Переконайтеся, що режим "Relationship" активний в меню Editor, а потім двічі клацніть по тій зв'язку, яку Ви хочете відредагувати.

Як задати кардинальність зв'язку

Перебуваючи в редакторі Relationship, натисніть одну з кнопок вибору у вікні "Cardinality" для того, щоб задати кардинальність зв'язку. Якщо Ви натиснули кнопку "Exactly", то необхідно ввести точне значення кардинальності в текстове вікно, розташоване поруч з назвою кнопки.

Як увійти в редактор Relationship Definition

Переконайтеся, що режим "Relationship Definition" активний в меню Editor, а потім двічі клацніть по тій зв'язку, яку Ви хочете відредагувати.

Як відкоригувати форму лінії зв'язку

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

угоди

Приймемо деякі угоди для стислості подальшого викладу:

· Клацання - натискання на ліву кнопку миші.

· Натиснете правою кнопкою миші - натискання на праву кнопку миші.

· Подвійний клік - два послідовних натискання на кнопку миші

· Вибрати - підвести курсор до відповідного об'єкту (елементу діаграми, пункту меню, піктограми) і клацнути лівою кнопкою миші.

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

· Запис типу File / Open означає, що потрібно вибрати пункт меню File, a потім з розкрився меню - пункт Open.

Робочий стіл ERwin

На рис. 1 представлений робочий стіл програмного продукту ERwin фірми Logic Works.

Ріс.1- Робочий стіл Erwin.

На малюнку 1 цифрами позначено:

1 головне меню;

2 панель інструментів;

3 набір спеціальних інструментів;

4 панель шрифтів і квітів;

5 поле діаграми.

Розглянемо докладніше складові частини робочого столу.

Головне меню містить команди загального призначення. Зауважимо, що більшість цих команд дублюються або піктограмами панелі інструментів, або пунктами меню, спливаючого по правому кліку миші. Тому зупинимося зараз на командах, що відносяться до загального вигляду робочого столу. Пункт Window має наступні підпункти:

Toolbar - панель інструментів;

Font & Color Toolbar - панель шрифтів і квітів;

Statusbar - рядок стану;

ERwin Toolbox - набір спеціальних інструментів.

Якщо який-небудь з перерахованих пунктів не відзначений, то відповідний пункт не відображається на робочому столі. Пункти Option / Show Display Menu і Option / Show Editor Menu додають до головного меню додаткові 1гуш; ти: Display і Editor.

Панель інструментів містить такі групи піктограм:

Робота з файлами:

Створити нову діаграму;

Відкрити існуючу діаграму;

Надіслати діаграму на друк.

Зауважимо, що ці піктограми дублюються командами пункту головного меню File.



Рівні представлення моделі:

Рівень сутностей;

Рівень атрибутів;

Рівень опису;

Фізичний рівень (якщо натиснута ця піктограма, то при демонстрації на рівні атрибутів вказуються їх типи).

Ці інструменти дублюються пунктом меню Display. Він містить додаткові рівні уявлення: Primary Key Level - демонструються тільки первинні ключі, Physical Order Level - атрибути не діляться на ключові і неключових.

масштабування:

зменшити;

збільшити;

Без збільшення;

Найбільш дрібний (подальше зменшення призведе до нечитаності схеми);

Переглянути частина (після вибору цього інструменту виділіть на робочому полі фрагмент, який потрібно переглянути).

Всі дії цієї групи дублюються пунктом Display / / Zoom.

Робота з сервером:

Згенерувати скрипт для сервера;

Підключитися до сервера;

Вибрати сервер.

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

Вибір об'єкта;

Маніпулювання атрибутами;

Незалежна сутність;

Залежна сутність;

Повний розбиття на категорії;

Неповне розбиття на категорії;

Идентифицирующая зв'язок «один до багатьох»;

Неідентіцірующая зв'язок «одою до багатьох»;

Зв'язок «багато до багатьох»;

Текстова мітка.

КОНЦЕПТУАЛЬНЕ ПРОЕКТУВАННЯ

створення сутностей

Суті на концептуальну схему можуть бути залежними і незалежними. На діаграмі кожна сутність зображується прямокутником. Над ним розташовується ім'я сутності. Прямокутник розбитий на дві частини: верхня - область первинного ключа; нижня - область інших атрибутів. При побудові суті прямокутник спочатку порожній, а ім'я має вигляд E / n (наприклад, Е / 1, Е / 2 і т.д.).

Щоб побудувати незалежну сутність, потрібно клацнути на відповідній піктограмі з набору спеціальних інструментів, а потім клацнути на полі діаграми в тому місці, де повинна розташовуватися створювана сутність. Для побудови залежною сутності потрібно вибрати інструмент «Залежна сутність» і клацнути на полі діаграми. Зауважимо, що прямокутник, який зображає таку сутність, має закруглені кути. При побудові діаграми практично немає необхідності безпосередньо задавати залежні сутності, так як ERwin перетворює звичайні суті в залежні при організації зв'язків або розбивання на категорії.

Якщо проектувальника не влаштовує становище суті на поле, то потрібно вибрати піктограму «Вказати на об'єкт» з набору спеціальних інструментів і перетягнути сутність на нове місце. Для видалення виділеної суті скористайтеся клавішею Delete на клавіатурі. Змінити розміри прямокутника, що зображує сутність, можна, вибравши пункт головного меню Option / Entity Size. Пункт меню Option / Layout застосовується для впорядкування положення сутностей на поле.

Тепер визначимо ім'я сутності і характерні для неї атрибути. Для цього служить пункт Entity-Attribute з меню, спливаючого по правому кліку миші. В поле Entity Name відкрився редактора вводиться назва суті. Використовуючи перемикач, можна змінити залежність сутності. Поле редагування Primary Key призначене для введення найменувань атрибутів, що становлять первинний ключ. В поле Non-Key Attributes вводяться неключових атрибутів. Зауважимо, що в обох випадках для відділення атрибутів один від одного використовується клавіша Enter на клавіатурі. На рис. 2 наведено приклад незалежної сутності.

Мал. 2 - Незалежна сутність

Для додавання розширеного опису сутності (Definition) і загального перегляду всіх сутностей скористайтеся пунктом Report / Entity Browser.

У ERwin існує можливість маніпулювання окремими атрибутами. Для цього виберіть піктограму «Маніпулювання атрибутами». В такому режимі можна:

· Видалити атрибут. Для цього виділіть окремий атрибут і натисніть Delete на клавіатурі.

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

· Перемістити атрибути між сутностями. Методика цієї дії аналогічна попередній. Якщо при переміщенні атрибута натиснута клавіша Ctrl, То він скопіювали в іншу сутність.

побудова зв'язків

Розглянемо побудову зв'язків типу «один до багатьох». Для цього вибрати з набору спеціальних інструментів відповідну піктограму, потім клацнути послідовно на батьку і нащадку. Идентифицирующая зв'язок зображується суцільною лінією і чорною точкою у прямокутника, що відображає нащадка. Такий зв'язок характеризується перенесенням первинного ключа батька до складу ідентифікатора нащадка. На рис. 3 зображена ідентифікує зв'язок «один до багатьох».

Рис.3. - Идентифицирующая зв'язок

Неідентіфіцірующей зв'язок будується аналогічним чином. Вона зображується пунктирною лінією і ромбом у прямокутника, що відображає батька. Такий ромб означає, що існування батька необов'язково, тобто поле зовнішнього ключа може мати значення nul. Побудова неідентіфіцірущей зв'язку в ERwin характеризується перенесенням первинного ключа батька до складу неключових атрибутів нащадка. На рис.4 наведена неідентіфіцірующей зв'язок.

Мал. 4. - неідентіфіцірующей зв'язок

Як уже зазначалося, проектування зв'язку «багато до багатьох» призводить до виникнення нової сутності. Приклад побудови зв'язку цього типу між сутностями first і second наведено на рис. 5.

Мал. 5. - Зв'язок виду "багато до багатьох"

Переглянути та змінити опис зв'язку можна, використовуючи пункт Relationship з меню, спливаючого по правому кліку миші на зв'язку. У вікні вказуються:

· Назва зв'язку (поле Verb Phrase).

· Тип зв'язку (Relationship Type): ідентифікує (Identifying) або неідентіфіцірующей (Non-Identifying).

· Кардинально зв'язку (Cardinality). ERwin дозволяє задати нижченаведені види зв'язків.

1. Нуль, один або більше. Наявність такої кардинальності не вносить додаткових позначень в діаграму.

2. Один або більше. Подібні зв'язки позначаються літерою Р близько прямокутника, що відображає нащадка.

3. Нуль або один. Кардинальність позначається буквою Z.

4. Задана. У цьому випадку поле Exactly повинно містити число, що характеризує кардинальність. Такий зв'язок позначається числом у прямокутника, що відображає нащадка.

· Можливість існування Null - значень (перемикач Nulls).

· Роль зовнішнього ключа. У цьому випадку назва ролі записується в поле Role Name. При цьому поле Foreign Key редактора містить конструкцію<имя роли>.<имя первичного ключа родителя>.

Якщо на діаграмі не відображені імена або кардинальності зв'язку, то необхідно поставити покажчики навпроти пунктів Display / Verb Phrase і Display / Cardinality.

Для видалення зв'язку потрібно вибрати піктограму «Вказати на об'єкт», клацнути на відповідній зв'язку і натиснути Delete на клавіатурі.

Розбиття сутностей на категорії в ERwin показано на аналогічно рис. 6.

Мал. 6 - Повний розбиття на категорії

Для того щоб побудувати категорії, потрібно виконати наступні дії:

Повністю описати головну сутність;

Побудувати суті-категорії;

Вибрати піктограму повного або неповного розбиття на категорії з набору спеціальних інструментів;

Клацнути на головній суті;

Клацнути на одній з категорій;

Для побудови кожної наступної категорії клацнути на знаку категорії, а потім на відповідній суті.

Для видалення зв'язку однієї з категорій з головною сутністю потрібно виділити відповідну гілку і натиснути Delete на клавіатурі. Якщо необхідно видалити повністю розбиття на категорії, вкажіть на знак категорії і натисніть Delete.

ЛОГІЧНЕ ПРОЕКТУВАННЯ

Логічне проектування починають з вибору моделі даних. Всі СУБД, з якими працює ERwin, є реляційними, це і визначає вибір моделі даних.

Для вибору конкретної СУБД натисніть піктограму «Вибрати сервер». У вікні, помістіть покажчик навпроти обраної СУБД, при необхідності задайте версію. Крім того, потрібно вибрати характеристики полів таблиці (тип і можливість нульового значення) за замовчуванням.

Важливим етапом логічного проектування є визначення стратегії підтримки цілісності інформації. Щоб встановити стратегію за замовчуванням для різних типів зв'язків, натисніть кнопку Referential Integrity Default у вікні вибору СУБД. ERwin пропонує три типи стратегій:

1. Restrict - забороняє. Вона характеризується забороною дій зі зв'язаними сутностями.

2. Cascade - каскадний. Така стратегія полягає в здійсненні каскадних операцій над пов'язаними сутностями.

3. Set Null - нульова. Ця стратегія полягає у встановленні Null - значення поля.

Після вибору СУБД приступимо до опису даних в її термінах. Для цього потрібно вибрати з меню, спливаючого по правому кліку на сутності, пункт<имя выбранной СУБД> Database Schema. У вікні можна задати імена таблиць і їх полів, а також характеристики цих полів.

На практиці часто буває, що не всі зв'язки будь-якого типу визначаються однаковими стратегіями підтримки обмежень цілісності. Для зміни стратегій по конкретній зв'язку скористайтеся пунктом Referential Integrity з меню, спливаючого по правому кліку на зв'язку. Якщо на діаграмі відсутня інформація про вибрані стратегіях, помістіть покажчик навпроти пункту Display / Referenda Integrity.

Щоб побудувати скрипт для обраної СУБД, натисніть піктограму «Згенерувати скрипт для сервера». При цьому ERwin будує схему бази даних згідно з визначеними таблицями. Якщо обрана СУБД підтримує написання тригерів, то вони будуються в залежності від обраних стратегій підтримки обмежень цілісності.

ФІЗИЧНЕ ПРОЕКТУВАННЯ

На цьому етапі проектування додамо додаткові індекси до отриманої схемою. Для цього скористайтеся пунктом<имя СУБД> Index меню, спливаючого по правому кліку на суті. У вікні, натисніть кнопку New для побудови нового індексу, після чого вкажіть атрибут для нього, клацнувши на візуальному зображенні цього атрибута. Зауважимо, що тепер на загальній діаграмі атрибути, за якими побудовані індекси, відзначені буквами АК. Це означає, що вони є альтернативними ключами.

ЗАВДАННЯ

1. Побудувати з використанням ERwin концептуальну схему бази даних для органу з сертифікації. Опис предметної області приведено нижче.

Орган по сертифікації акредитований на видачу сертифікатів по деяких видах продукції. Кожен вид продукції описується кодом (згідно з класифікатором), найменуванням типу (наприклад, молочна продукція) і видом (наприклад, молоко). На кожен вид продукції може існувати кілька нормативних документів, а дія кожного нормативного документа поширюється на кілька видів продукції. Нормативний документ характеризується рівнем (ГОСТ, ОСТ і т.п.), номером і назвою.

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

Клієнт може звернутися до органу з сертифікації з одним з двох видів заяви на сертифікацію: заявкою або декларацією. Залежно від цього оформляються різні види внутрішньої документації і зберігається різна інформація. (Таблиця 1)

Таблиця 1

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

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

2. Перетворити концептуальну схему в таблиці обраної СУБД з використанням ERwin. Побудувати тригери.

3. Створити для бази даних трьох користувачів з наступними правами:

1) «Звіти» - право читання на всю інформацію (інші права відсутні);

2) «Довідники» - всі права на інформацію про співробітників, клієнтів, продукції і нормативних документах;

3) «Документація» - всі права на інформацію про внутрішньої документації органу з сертифікації і клієнтів; право читання на дані про продукцію і нормативних: документах.

Звіт повинен містити:

Роздруківку концептуальної схеми з ERwin;

Обгрунтування вибору стратегій підтримки обмежень цілісності бази;

Структуру таблиць і тригерів;

Опис засобів створення користувачів бази.

КОНТРОЛЬНІ ПИТАННЯ

1. Які види зв'язків можуть існувати в предметної області?

2. Як усунути зі схеми бази даних зв'язок виду "багато до багатьох»?

3. У чому відмінність ідентифікує і неидентифицирующей зв'язків?

4. В яких випадках виникає необхідність опису ролей зовнішніх ключів?

5. Чим можна обґрунтувати виділення категорій?

6. У чому відмінність повного і неповного поділу на категорії?

7. Які види стратегій підтримки обмежень цілісності застосовувалися при виконанні лабораторної роботи?


Список використаної літератури

1. Дейт К.Дж. Введення в системи баз даних.- Учеб. посібник: Пер.с англ. - 6-е изд. - М.І ін .: Вільямс, 2000. - 846 с.

2. Робінсон С. Microsoft Access 2000: навч. курс: пров. з англ. - СПБ .: Пітер, 2001. - 511 с.

3. Кузнєцов С.Д. Основи баз даних: Курс лекцій: Учеб. пособіе.М.: Інтернет-ун-т Інформ. технологій, 2005.-484 с.

4. Гофман В.Е., Хомоненко А.Д. Робота з базами даних в Delphi. СПБ.: Dhv, 2002.-656 с.

5. Маклаков С.В. Bpwin і Erwin. Cаse-засоби розробки інформаційних сістем.-М.: Діалог-Міфи, 2003.-254с.

6. Малихіна М.П. Бази даних: основи, проектування, використання: Учеб. посібник для вузов-2-е изд.-СПБ.: БХВ-Петербург, 2006.-517 с.

6. Моделювання в ERwin

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

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

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

Відображення логічного і фізичного рівня моделі даних в ERwin

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

Компоненти діаграми ERwin і основні види уявлень діаграми

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

  • Режим "сутності" - всередині прямокутників відображається ім'я сутності (для логічної моделі) або ім'я таблиці (для фізичного представлення моделі); служить для зручності огляду великий діаграми або розміщення прямокутників сутностей на діаграмі.
  • Режим "визначення сутності" служить для презентації діаграми іншим людям.
  • Режим "атрибути". При переході від предметної області до моделі потрібно вводити інформацію про те, що становить сутність. Ця інформація вводиться шляхом завдання атрибутів (на фізичному рівні - колонок таблиць). В цьому режимі прямокутник-сутність ділиться лінією на дві частини - у верхній частині відображаються атрибути (колонки), що становлять первинний ключ, а в нижній - інші атрибути. Цей режим є основним при проектуванні на логічному і фізичному рівнях.
  • Режим "первинні ключі" - всередині прямокутників - сутностей показуються тільки атрибути / колонки, що становлять первинний ключ.
  • Режим "піктограми". Для презентаційних цілей кожної таблиці може бути поставлена \u200b\u200bу відповідність піктограма (bitmap).
  • Режим "показ дієслівної фрази". На дугах зв'язків показуються дієслівні фрази, що зв'язують суті (для логічного рівня) або імена зовнішніх ключів (для фізичного рівня).

Діаграма може займати більш ніж один екран і більш ніж один лист при друку. Для огляду моделі передбачені, крім прокручувань екрану, режими зменшення / збільшення зображення, відображення всієї моделі, відображення виділеної частини моделі.

Інструменти для створення моделі в ERwin

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

  • редактори, пов'язані з сутністю в цілому (визначення сутності, додаткова інформація, тригери, індекси, показники таблиці, збережені процедури, пов'язані з таблицею);
  • редактори атрибутів (визначення атрибутів, колонки таблиці у фізичному поданні моделі, репозитарій кошти 4GL, наприклад, розширені атрибути в PowerBuilder).

Ідентифікація сутностей. Суті в ERwin

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

  • атрибути, складові первинний ключ;
  • неключових атрибутів;
  • тип сутності (незалежна / залежна).

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

Зв'язки (relationships) в ERwin

Мобільний зв'язок - це функціональна залежність між двома сутностями (зокрема, можливий зв'язок сутності з самою собою). Наприклад, важливо знати прізвище співробітника, і не менш важливо знати, в якому відділі він працює. Таким чином, між сутностями "відділ" і "співробітник" існує зв'язок "складається з" (відділ складається із співробітників). Мобільний зв'язок - це поняття логічного рівня, якому відповідає зовнішній ключ на фізичному рівні. У ERwin зв'язку представлені п'ятьма основними елементами інформації:

  • тип зв'язку (ідентифікує, неідентіфіцірующей, повна / неповна категорія, неспецифічна зв'язок);
  • батьківська сутність;
  • дочірня (залежна) сутність;
  • потужність зв'язку (cardinality);
  • допустимість порожніх (null) значень.

Зв'язок називається ідентифікуючої, якщо екземпляр дочірньої сутності ідентифікується через її зв'язок з батьківською сутністю. Атрибути, що становлять первинний ключ батьківського суті, при цьому входять в первинний ключ дочірньої сутності. Дочірня сутність при ідентифікує зв'язку завжди є залежною.
Зв'язок називається неидентифицирующей, якщо екземпляр дочірньої сутності ідентифікується інакше, ніж через зв'язок з батьківською сутністю. Атрибути, що становлять первинний ключ батьківського суті, при цьому входять до складу неключових атрибутів дочірньої суті.
Для визначення зв'язків ERwin вибирається тип зв'язку, потім мишею вказується батьківська і дочірня сутність. Идентифицирующая зв'язок зображується суцільною лінією; неідентіфіцірующей - пунктирною лінією. Лінії закінчуються крапкою з боку дочірньої сутності.
При визначенні зв'язку відбувається міграція атрибутів первинного ключа батьківської суті в відповідну область атрибутів дочірньої суті. Тому такі атрибути не вводяться вручну.
Атрибути первинного ключа батьківської суті за замовчуванням мігрують зі своїми іменами. ERwin дозволяє ввести для них ролі, тобто нові імена, під якими мігруючі атрибути будуть представлені в дочірньої сутності. У разі неодноразової міграції атрибута таке перейменування необхідно. Наприклад, сутність "посередницька операція" має атрибут "код підприємства-продавця" та "код підприємства-покупця". В даному випадку первинний ключ сутності "підприємство" ( "код підприємства") має дві ролі в дочірньої сутності.
На фізичному рівні ім'я ролі - це ім'я колонки зовнішнього ключа в дочірній таблиці.
Потужність зв'язку представляє собою відношення кількості примірників батьківської сутності до відповідної кількості примірників дочірньої сутності. Для будь-якого зв'язку, крім неспецифічної, цей зв'язок записується як 1: n.
ERwin відповідно до методології IDEF1X надає 4 варіанти для n, які зображуються додатковим символом у дочірньої сутності: нуль, один або більше (за замовчуванням); нуль або один; рівно N, де N - конкретне число.
Допустимість порожніх (NULL) значень в неідентіфіцірующей зв'язків ERwin зображує порожнім ромбиком на дузі зв'язку з боку батьківської сутності.
Позначення потужності відповідно нуль, один або більше, один або більше, нуль або один в нотації IE приведені на рис. 1.

Рис.1. Позначення потужності зв'язку в нотації IE

Ім'я зв'язку на логічному рівні представляє собою "дієслово", що зв'язує суті. Фізичне ім'я зв'язку (яке може відрізнятися від логічного) для ERwin означає ім'я обмеження (constraint) або індексу.

Графічне редагування моделі

Всі об'єкти моделі ERwin можуть редагуватися засобами, прийнятими в Windows - угруповання, копіювання, видалення, переміщення, використання системного буфера. Установка квітів і шрифтів здійснюється в зручних діалогах.
Компоненти моделі, представлені текстом (імена сутностей, атрибутів, текстові елементи) можуть редагуватися безпосередньо на екрані.

альтернативні ключі

Альтернативний ключ - це атрибут (або група атрибутів), неспівпадаючий з первинним ключем і унікально ідентифікує екземпляр сутності. Наприклад, для сутності службовець (ідентифікатор службовця, прізвище. Ім'я, по батькові) група атрибутів "прізвище", "ім'я", "по батькові" може бути альтернативним ключем (в припущенні, що на підприємстві не працюють повні тезки).
Для альтернативного ключа, як і для первинного, ERwin автоматично створює індекси при генерації БД.

інвертовані індекси

Атрибути, що становлять альтернативний ключ, однозначно (унікально) ідентифікують екземпляри сутності. У ERwin можна також складати групи атрибутів, які не ідентифікують унікально екземпляри сутності, але часто використовуються для доступу до даних. Для кожної такої групи атрибутів ERwin створює неунікальні індекси.
Одні і ті ж атрибути сутності можуть входити в кілька різних груп ключів.

уніфікація атрибутів

Залежна сутність може успадковувати один і той же зовнішній ключ від більш ніж однієї батьківської сутності, або від однієї і тієї ж батьківської сутності через кілька зв'язків. Якщо не введені різні ролі для такого множинного спадкоємства, ERwin вважає, що в залежною сутності атрибути зовнішнього ключа з'являються тільки один раз.
Уніфікація - це об'єднання двох або більше груп атрибутів зовнішніх ключів в один зовнішній ключ (групу атрибутів), в припущенні, що значення однойменних атрибутів в дочірньої сутності завжди однакові.
Розглянемо приклад: сутність "співробітник" має первинний ключ "код співробітника" і пов'язаний ідентифікуючої зв'язком з сутностями "дружина" і "діти". При цьому відбувається міграція первинного ключа в залежні сутності. У свою чергу, сутність "дружина" пов'язана неидентифицирующей зв'язком з сутністю "діти". Є два шляхи міграції ключа, однак по суті "діти" атрибут "код співробітника" з'являється один раз в якості елемента первинного ключа.
Існують випадки, коли уніфікація атрибутів дає невірний з точки зору предметної області результат. Для скасування уніфікації для атрибутів вводяться імена ролей.

Деякі суті визначають цілу категорію об'єктів одного типу. У ERwin в такому випадку створюється сутність для визначення категорії і для кожного елемента категорії, а потім вводиться для них зв'язок категоризації. Батьківська сутність категорії називається супертіп, а дочірні - підтипом.
Наприклад, сутність "співробітник" може містити дані як про штатних працівників, так і про тимчасово найнятих. Перші і другі мають різні, частково перетинаються набори атрибутів (мінімальне перетин підтипів становить первинний ключ). Загальна частина цих атрибутів, включаючи первинний ключ, поміщається в сутність-супертіп "співробітник".
Різна частина (наприклад, дані погодинної оплати для тимчасових працівників і дані про зарплату і відпустці для штатних працівників) поміщається по суті-підтипи.
По суті-супертіпа вводиться атрибут-дискримінатор, що дозволяє розрізняти конкретні екземпляри сутності - підтипу.
Залежно від того, чи всі можливі суті-підтипи включені в модель, категорійну зв'язок є повною або неповною. Продовжуючи приклад, якщо супертіп може містити дані про звільнених співробітників, то цей зв'язок - неповної категоризації, так як для нього не існує запису в сутності - підтипів.
У ERwin повна категорія зображується колом з двома підкресленнями, а неповна - окружністю з одним підкресленням.

Реалізація посилальної цілісності за допомогою ERwin

Посилальна цілісність - це забезпечення вимоги, щоб значення зовнішнього ключа примірника дочірньої сутності відповідали значенням первинного ключа в батьківській суті. Посилальна цілісність може контролюватися при всіх операціях, що змінюють дані (INSERT / UPDATE / DELETE). Засоби контролю посилальної цілісності в ERwin включають автоматичну генерацію тригерів і використання механізмів декларативною посилальної цілісності (для тих СУБД, які підтримують дані механізми).
Для кожної зв'язку на логічному рівні можуть бути задані вимоги по обробці операцій INSERT / UPDATE / DELETE для батьківської та дочірньої сутності. ERwin представляє наступні варіанти обробки цих подій:

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

Відповідно до вибраного варіанта ERwin автоматично створює необхідні тригери на діалекті SQL цільової СУБД. При цьому ERwin користується бібліотекою шаблонів тригерів, які можна модифікувати.
При генерації структури бази даних тригери, що забезпечують кількість посилань цілісність можуть бути перевизначені на трьох рівнях:

  1. Можуть бути перевизначені тригери, що забезпечують правила для всієї моделі.
  2. Можуть бути перевизначені тригери, зазначені для конкретної зв'язку.
  3. Можуть бути перевизначені тригери, зазначені для конкретної таблиці.

Тип перевизначення вказується розробником при генерації схеми бази даних (рис. 6 відповідно RI Type Override, Relationship Override, Entity Override).

Зберігання інформації в моделі ERwin

Зазвичай моделі ERwin зберігаються на диск у вигляді файлу. Є можливість зберігати модель в цільової СУБД. Для цього за допомогою самого ERwin в цільової СУБД створюється метабаза ERwin. У цій базі даних зберігається інформація моделі. В окремому випадку базою даних можуть бути і dBase-файли, з якими ERwin працює через ODBC.

Приклад розробки моделі в ERwin

Розглянемо цикл розробки на прикладі, наведеному в статті Кодда.
Коротко нагадаємо змістовну сторону завдання. Ведеться облік службовців. Для кожного службовця зберігається інформація про дітей і про список займалися цим службовцям посад. Для посад зберігається інформація за встановленими посадовими окладами.
Спочатку створимо логічний рівень моделі. Для цього задамо режим відображення сутностей (Display / Entity Level). Створимо за допомогою лінійки інструментів суті "службовець", "діти", "історія роботи", "історія зарплати". Будемо називати суті російською мовою.
Вибравши кожну сутність, задамо для неї докладний опис російською мовою в редакторі "Entity Definition". Це опис з'явиться в звітах ERwin і може бути відображено на діаграмі.
Зазначимо зв'язку між сутностями. Наприклад, "службовець" пов'язаний ідентифікуючої зв'язком "є батьком" з сутністю "діти". Опис зв'язку вводиться в редакторі "Editor / Relationship".
Результат роботи відображений на діаграмі ERwin (рис. 2).

Мал. 2. Діаграма рівня суті

Тепер перейдемо в режим завдання атрибутів (Display / Atribute Level). У редакторі "Entity / Attribute" задамо російською мовою імена ключових і неключових атрибутів. Зауважимо, що для дочірньої сутності "діти" ключовий атрибут "номер службовця" не вказується вручну. ERwin забезпечує його міграцію з батьківської сутності. Те ж відбувається з іншими дочірніми сутностями.
Для атрибута "ім'я" сутності "службовець" вкажемо, що він є альтернативним ключем (будемо вважати, що у всіх службовців унікальні імена / прізвища). Для цього після імені атрибута помістимо покажчик AK1 в дужках.
Результат роботи відображений на діаграмі ERwin (рис. 3) в нотації IDEF1X.

Мал. 3. Діаграма рівня атрибутів в нотації IDEF1X

Вид тієї ж діаграми в нотації IE (Information Engineering) показаний на рис.4.

Мал. 4. Діаграма рівня атрибутів в нотації IE

Так як імена атрибутів і сутностей задавалися нами російською мовою, для переходу до фізичного рівня моделі слід поставити їм у відповідність ідентифікатори таблиць, колонок і обмежень, що задовольняють правилам цільової СУБД (зазвичай це означає використання латинських букв, цифр і деяких спеціальних символів).
У редакторі "Database Schema" вказуємо для кожної сутності відповідне ім'я таблиці. Потім в редакторі "Attribute Definition" задаємо імена колонок таблиць, відповідні атрибутам сутностей. ERwin і тут забезпечує міграцію імен колонок в підлеглі таблиці.
На цьому етапі можна скористатися і редактором "Extended Attributes" для визначення розширених атрибутів PowerBuilder (формату відображення, маски редагування, правила контролю, вирівнювання, заголовків і коментарів).
У редакторі "Relationship Definitions" вказується фізичне ім'я зв'язку, яке відповідає імені обмеження (constraint), створюваного ERwin в базі даних.
Тепер все готово до створення БД і потрібно вибрати цільову СУБД (якщо цього не було зроблено раніше). Виберемо, наприклад, Sybase System 10.
У редакторі SYBASE Database Schema задаємо типи даних для колонок таблиць.
Діалог, в якому відбувається вибір типу даних, наведено на рис.5.

Мал. 5. Визначення фізичної моделі

Тепер можна перейти до створення бази даних. Для цього виконується команда "Sybase schema generation". ERwin побудує пакет SQL-пропозицій генерації бази даних. На рис.6 показаний діалог вибору параметрів генерації пакета для генерації БД. На малюнку видно, що може бути заданий фільтр (генерація не всіх таблиць), пакет SQL-пропозицій можна переглянути (preview), роздрукувати, зберегти в файл (report), виконати генерацію (generate).

Мал. 6. Вибір параметрів генерації бази даних

7. Розширені функції ERwin

Зворотне проектування (Reverse engineering)

Зворотне проектування, тобто відновлення інформаційної моделі по існуючій базі даних, використовується при виборі оптимальної платформи (rightsizing) для існуючої настільної (desktop) бази даних або бази даних на mainframe, а також при розширенні (або модифікації) існуючої структури, яка була побудована без необхідної супровідної документації. Після завершення процесу відновлення моделі ERwin автоматично "розкладає" таблиці на діаграмі. Тепер можна виконувати модифікації вже з використанням логічної схеми - додавати суті, атрибути, коментарі, зв'язку і т.д. По завершенні змін одна команда - синхронізувати модель з базою даних - актуалізує всі проведені зміни.
Побудова моделі може бути виконано як на підставі даних каталогу бази даних, так і на підставі пакету операторів SQL, за допомогою якого була створена база даних.

Синхронізація з базою даних

В процесі розробки інформаційної системи може виникнути ситуація, коли структура бази даних і інформаційна модель не відповідають один одному. ERwin надає можливість привести їх у відповідність.
Для цього передбачена функція синхронізації з базою даних. Після підключення до СУБД пропонується список невідповідностей між існуючою структурою даних і моделлю. Наприклад, якщо в базі даних створена нова таблиця, то ERwin запропонує провести включення її в модель. Якщо в модель додана нова таблиця, ERwin запропонує створити її в реальній базі даних. Аналогічно, при додаванні колонок в базі даних або в моделі ERwin пропонує провести відповідні операції по синхронізації. Процедура вибору синхронізуються таблиць показана на рис.7.

Мал. 7. Вибір синхронізуються таблиць

ERwin "знає" про такі особливості зберігання даних в окремих СУБД, як сегменти (в Sybase) і табличний простір (в Oracle). Інформація про фізичну розміщенні може бути включена в модель і використана при прямому і зворотному проектуванні.

Інтерфейси до СУБД

ERwin підтримує прямий інтерфейс з основними СУБД: DB2 версії 2 і 3, Informix версій 5.1, 6.0, 7.1, Ingres, NetWare SQL, ORACLE версій 6 і 7, Progress, Rdb версій 4 і 6, SQL / 400 версій 2 і 3, SQLBase версій 5 і 6, SQL Server версій 4 і 6, Sybase версії 4.2, Sybase System 10 і 11, Watcom SQL. Відзначимо, що підтримуються як найсучасніші, так і попередні версії основних СУБД (рис.8).

Мал. 8. Вибір СУБД для створення моделі

ERwin підтримує також настільні (desktop) СУБД: Microsoft Access, FoxPro, Clipper, dBASE III, dBASE IV і Paradox.
Проектування на фізичному рівні виконується в термінах тієї бази даних, яку передбачається використовувати в системі. Важливо, що ERwin "відомі" відповідності між можливостями СУБД різних виробників, внаслідок чого можливе перетворення фізичної схеми, спроектованої для однієї СУБД, в іншу.
Для створення фізичної структури БД може бути запрошена генерація DDL-скрипта (data definition language). При цьому використовується діалект SQL для обраного типу і версії сервера. Хоча згенерований код не потребує модифікації, є можливість його зберегти в файл або роздрукувати.

Підтримка засобів 4GL

ERwin випускається в декількох різних редакціях, орієнтованих на найбільш поширені засоби розробки 4GL. У числі підтримуваних засобів - PowerBuidler фірми Powersoft, SQL Windows фірми Gupta, Visual Basic фірми Microsoft, Oracle * CASE фірми Oracle.
Засоби двонаправленого взаємодії ERwin з базою даних забезпечують управління інформацією, орієнтованої як на серверну, так і на клієнтську частину. Наприклад, для PowerBuilder можна переглядати / редагувати розширені атрибути в редакторах ERwin.
Орієнтація ERwin на кошти 4GL дозволяє задати для майбутніх додатків більшість параметрів, безпосередньо пов'язаних з базою даних, вже на стадії проектування інформаційної моделі.
Покажемо принципи організації такої взаємодії на прикладі PowerBuilder.
PowerBuilder створює в базі даних декілька внутрішніх таблиць для зберігання свого сховища (розширених атрибутів для datawindow). Використання розширених атрибутів гарантує збереження стилю відображення одних і тих же колонок бази даних для всіх додатків, що створюються робочою групою. В розширених атрибутах задаються такі параметри, як формат відображення, стиль редагування, вираз перевірки на коректність, початкове значення, вирівнювання, ширина і висота елемента відображення, мітка для форми редагування, заголовок для табличного відображення.
Для розширених атрибутів допустимі ті ж операції синхронізації, що і для всієї моделі, тобто опису можуть бути завантажені в базу даних і, навпаки, створені з середовища PowerBuilder опису розширених атрибутів можуть бути завантажені з бази даних в ERwin для модифікації.
Приклад визначення розширених атрибутів показаний на рис.9.

Мал. 9. Завдання розширених атрибутів PowerBuilder

Функція ERwin по генерації DataWindow дозволяє згенерувати прототипи вікон даних майбутнього програми вже на стадії створення інформаційної моделі. Для створення Data Windows пропонується Wizard, за допомогою якого вказується стиль вікна і вибрані колонки таблиць.