Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD-КН1.doc
Скачиваний:
18
Добавлен:
27.04.2019
Размер:
7.07 Mб
Скачать

Внесення первинного ключа

Первинний ключ вибирається з списка атрибутів. Первинний ключ може бути заданий за допомогою закладки General в діалоговому вікні Attribute Editor.

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

2.3. Встановлення зв’язків в логічній моделі бази даних в erWin

Зв’язок це логічне відношення між об’єктами. На логічному рівні можна встановити ідентифікований зв’язок один-до-багатьох, багато-до-багатьох та неідентифікований зв’язок один-до-багатьох.

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

Ідентифікований зв’язок встановлюється між незалежною (батьківський кінець зв’язку) з залежною (дочірній кінець зв’язку) сутностями. Атрибути первинного ключа батьківської сутності мігрують до області первинного ключа дочірньої сутності. В пакеті ERWin Ідентифікований зв’язок показують на діаграмі cуцільною лінією з товстою крапкою на дочірньому кінці зв’язку.

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

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

Неідентифікований зв’язок слугує для зв’язування незалежних об’єктів. Наприклад:

Відділ <складається> з Співробітників

Екземпляр сутності Співробітник може існувати незалежно від будь-якого екземпляру сутності Відділ , тобто співробітник може працювати в організації не входячи до складу будь-якого відділу. Неідентифікований зв’язок показують на діаграмі пунктиром.

Кожен зв’язок повинен іменуватися дієсловом або дієслівною фразою (Rilationship Verb Phrases). Ім’я зв’язку відображує деяке обмеження чи бізнес-правило і допомагає читанню діаграми, наприклад:

  • Кожен Клієнт <розміщує> Замовлення;

  • Кожне Замовлення <виконує> Співробітник

Зв’язок показує, які замовлення розмістив клієнт і який конкретно співробітник їх виконує.

Тип зв'язку багато-до-багатьох можливий тільки на рівні логічної моделі даних. На рис. 2.1 показано приклад зв'язку багато-до-багатьох. Лікар може приймати багато пациентів, пацієнт може лікуватися у кількох лікарів. Такий зв'язок зображують безперевною лінією з крапками на кінцях.

Лікар Пацієнт

приймає/лікується

Рис. 2.1. Зв'язок багато -до-багатьох

Зв'язок багато-до-багатьох має наіменування, що складається з двох фраз і може читатися в обидва боки: в нашому прикладі "приймає/лікується". Це полегшує читання діаграми. Зв'язок на рис. 2.1 слід читати: "Лікар <приймає> Пацієнта" та "Пацієнт <лікується> у Лікаря".

Під час перетворення моделі логічного рівня до трансформаційної моделі фізичного рівня, ERwin автоматично розв‘язує зв'язок багато-до-багатьох, шляхом створення проміжної таблиці (рис. 2.2). При чому ім'я новій таблиці надається автоматично як "Ім'я 1"& "Ім'я 2"

Лікар Лікар-Пацієнт Пацієнт

Рис. 2.2. Ілюстрація розв‘язку залежності багато -до-багатьох на рівні физичної моделі

Автоматичного рішення проблеми зв'язку багато-до-багатьох не завжди виявляється достатньою. В прикладі таблиця Doctor Patient має сенс візита до лікаря, тому її слід переіменувати згідно бізнес-логики у Visit. Один и той же пацієнт може багато разів відвідувати лікаря, тому для того, щоб ідентифікувати візит, необхідно у склад первинного ключа таблиці Visit додати додаткову колонку, наприклад дату- час відвідування (Visit Date time, рис. 2.3).

Doctor Visit Patient

Рис. 2.3. Вид моделі зв'язку багато -до-багатьох на рівні физичної моделі

Слід зауважити, що після внесення додаткової колонки на физичному рівні на логічному рівні представлення моделі не зміниться, діаграма буде виглядати так, як на рис.2.1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]