Поняття відносини

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


У наступних розділах будуть висвітлені наступні питання, що стосуються відносин:



На ER діаграмах сутності представляють контейнери для атрибутів, атрибути представляють цікавлять нас факти, а відносини дозволяють вам застосовувати реляційну алгебру для зв'язаних груп атрибутів у відповідність з бізнес-правилами. Давайте тепер розглянемо стосунки – серце реляційної моделі даних.


Що таке стосунки?


Ставлення – це асоціація або "зв'язок" між двома сутностями. Ставлення представляється в моделі лінією, що з'єднує дві сутності і дієслівної конструкцією, яка описує, як дві сутності залежать один від одного. Дієслівна конструкція – механізм опису бізнес-правил, що визначають ставлення. Хороша дієслівна конструкція описує ставлення в термінах бізнесу, а не мовою технічних специфікацій. На Малюнку 4.1 показано відношення між двома сутностями.

Рис. 4.1. На ER діаграмах відносини представляються лінією
між двома сутностями, чи замкнутої на саму сутність.
Тип і властивості відносини представляють бізнес-правила.
Примірник сутності бАнАновиЙ ДЕСЕРТ може мати
один, два, три або жодного примірника сутності
ВЕРХІВКА бАнАновиЙ десерт.
Примірник сутності ВЕРХІВКА бАнАновиЙ ДЕСЕРТИ
може належати одному, і лише одному примірнику
сутності бАнАновиЙ ДЕСЕРТ.


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


Ставлення має такі властивості:









ПРИМІТКА
Важливо мати на увазі, що не всі методології моделювання використовують саме ці терміни для опису відносин, хоча більшість з них підтримують подібні концепції.


Виявлення відносин


Іншим гарним джерелом є корпоративна модель.


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


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








ПРИМІТКА
Рідко в додатку всі сутності пов'язані один з одним відносинами попарно. Якщо в моделі присутня тільки кілька сутностей, то вони всі можуть бути пов'язані відносинами. Однак у більш великих додатках відносинами можуть бути пов'язані не всі сутності.


Читання відносин


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


Споживач купує Суміш


Або


Магазин продає різні сорти Морозива


Читання відносин на основі використання цієї структури – сутність – відношення – сутність (іноді званої парна зв'язок сутностей) – є корисним механізмом для подання відносин партнерам по бізнесу. Парні зв'язку сутностей двунаправлени. Так що сутності пов'язані в обох напрямках. Таким чином, Споживач купує Суміші те ж саме, що і Суміші продаються Споживачу.


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


Ступінь відносини


Ступінь відносини є число сутностей, асоційованих зі ставленням. В основному, відносини мають ступінь одиниця (унарні відносини) або двійка (бінарні відносини). Унарні, або рекурсивні відносини представляють випадки, коли екземпляр сутності пов'язаний з іншим примірником тієї ж самої сутності. Бінарні відносини представляють випадки, коли одна сутність пов'язана з іншою. Бінарні відносини відображають найбільш поширені взаємозв'язку, присутні в реальному світі. Фактично, більшість розробників моделей розглядають унарні або рекурсивні відносини як бінарні рекурсивні відносини, зв'язують примірник сутності з іншим її екземпляром. Наприклад, вислів "Деякими співробітниками керують інші співробітники" представляє відношення між екземплярами сутності СПІВРОБІТНИК.








ПРИМІТКА
У деяких методологіях існують n-арні відносини (n представляє ступінь відношення). У n-арних відносинах беруть участь більше двох сутностей. Наприклад, "Споживач купує Суміш у Магазині" є тернарние (ступені три) ставленням, які залучають три сутності. Однак більшість методологій оперують тільки бінарними відношеннями і перетворять все n-арні відносини в бінарні.


Спрямованість відносини


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


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


Визначення типів відносин


У ERwin відношення між двома сутностями, чи сутності самої з собою, може належати до одного з наступних типів:



Кожен тип відносин визначає поведінку атрибутів первинного ключа, коли вони мігрують з батьківської сутності в підлеглу. У наступних розділах будуть описані особливості кожного з типів відносин.


Ідентифікують відносини

Ідентифікує є відношення між двома сутностями, в якому кожен примірник підпорядкованої сутності ідентифікується значеннями атрибутів батьківського сутності. Це означає, що екземпляр підпорядкованої сутності залежить від батьківської сутності і не може існувати без примірника батьківського сутності. У ідентифікуючий відношенні єдиний екземпляр батьківського суті пов'язаний з безліччю екземплярів підлеглої. Атрибути первинного ключа батьківського сутності мігрують в атрибути підлеглої, щоб стати там атрибутами первинного ключа. На Малюнку 4.2 представлено ідентифікує відношення між сутностями смакові добавки і МОРОЗИВО. Зауважте, що атрибути первинного ключа батьківського сутності Смакові добавки мігрували в сутність МОРОЗИВО і стали там первинним ключем.

Рис. 4.2. Ідентифікує відношення між сутностями
МОРОЗИВО і смакові добавки.


Примірник сутності МОРОЗИВО не існує до тих пір, поки не з'явиться примірник батьківського сутності смакові добавки. Зверніть увагу на безперервну лінію між двома сутностями.


Неидентифицирующей відносини


Неидентифицирующей є відношення між двома сутностями, в якому кожен примірник підпорядкованої суті не залежить від значень атрибутів батьківського сутності. Це означає, що екземпляр підпорядкованої суті не залежить від батьківської сутності і може існувати без примірника батьківського сутності. У неидентифицирующей відношенні єдиний екземпляр батьківського суті пов'язаний з безліччю екземплярів підлеглої. Атрибути первинного ключа батьківського сутності мігрують в підлеглу, щоб стати там не ключовими атрибутами. На малюнку 4.3 представлено неидентифицирующей відношення між сутностями СУМІШ та сталі СУМІШІ. Зверніть увагу, що атрибути первинного ключа батьківського сутності СУМІШ мігрували в підлеглу сутність ТИП СУМІШІ і стали там неключових атрибутами.

Рис. 4.7. Приклади реалізації рекурсивних відносин
з використанням назви ролі і без нього по суті ПЕРСОНА.


Зауважте, що без назви ролі ERwin комбінує атрибути зовнішнього та первинного ключів.


Кількість елементів відносини


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



Один-до-одного


У відношенні один-до-одного один і тільки один екземпляр сутності пов'язаний з одним і тільки одним примірником іншої сутності.


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








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


Малюнок 4.8 демонструє відношення один-до-одного між сутностями ПЕРСОНА та АДРЕСА ПЕРСОНИ.

Рис. 4.8 Приклад відносини один-до-одного
між сутностями ПЕРСОНА та АДРЕСА ПЕРСОНИ.


Представлене бізнес-правило стверджує, що екземпляр сутності ПЕРСОНА може мати рівно одну адресу. Як і багато інші відносини один-до-одного, це відношення в дійсності є некоректно представленим в моделі ставленням один-до-багатьох.


Один-до-багатьох


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








ПРИМІТКА
Більшість розробників моделей згодні з думкою, що логічна модель має містити тільки відносини один-до-багатьох.


Ці стосунки часто є результатом нормалізації, коли атрибути повторюваної групи переносяться в залежну сутність. На Малюнку 4.9 показано відношення між сутностями ПЕРСОНА та АДРЕСА ПЕРСОНИ, коректно представлене в моделі у вигляді відношення один-до-багатьох.

Рис. 4.9. Приклад відносини один-до-багатьох
між сутностями ПЕРСОНА та АДРЕСА ПЕРСОНИ.


Представлене бізнес-правило стверджує, що екземпляр сутності ПЕРСОНА може мати більше одного адреси. Це ставлення один-до-багатьох виправляє раніше (неправильно) представлене в моделі ставлення один-до-одного.


Багато-до-багатьох


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


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








ЗАСТЕРЕЖЕННЯ
Відносини багато-до-багатьох є логічними і не можуть бути представлені у фізичній моделі в ERwin. ERwin автоматично створює асоціативні сутності для дозволу відносин багато-до-багатьох коли модель перетвориться з логічної у фізичну.


Малюнок 4.10 показує відношення між сутностями ПЕРСОНА та АДРЕСА ПЕРСОНИ, представлене в моделі у вигляді відношення багато-до-багатьох.

Рис. 4.10. Приклад відносини багато-до-багатьох
між сутностями ПЕРСОНА та АДРЕСА ПЕРСОНИ.


Це дозволяє екземпляру сутності ПЕРСОНА мати більш однієї адреси. У свою чергу примірник сутності АДРЕСА ПЕРСОНИ може мати більше однієї персони, що живе за цією адресою.


Обов'язковість відносини


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


Приймаючи рішення про обов'язковість відносини, визначте, чи повинен примірник однієї сутності завжди присутні, для того щоб інша сутність брала участь у відношенні. Якщо так – ставлення обов'язково. Так твердження "Кожен співробітник повинен мати одного керівника" – приклад обов'язкового відносини. Якщо екземпляр сутності не потрібно – ставлення необов'язково. Наприклад, твердження "Деякі з співробітників можуть мати одного керівника "- задає необов'язкове ставлення.


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

Рис. 4.11. Обов'язкове відношення між сутностями
ПЕРСОНА та АДРЕСА ПЕРСОНИ.


Представлене бізнес-правило стверджує, що екземпляр сутності ПЕРСОНА повинен мати хоча б одну адресу. Зверніть увагу, що в нотації IE системи ERwin термінальна точка відносини не включає символ нуль (гурток) в основі "пташиною лапки" – символу множинності.


У необов'язковому неидентифицирующей відношенні атрибути, що мігрували в неключових область підпорядкованої суті, не є обов'язковими для підлеглої сутності. Це означає, що значення зовнішнього ключа може бути порожнім. Малюнок 4.12 демонструє необов'язкове відношення між сутностями ПЕРСОНА та АДРЕСА ПЕРСОНИ.

Рис. 4.12. Необов'язкове відношення між сутностями
ПЕРСОНА та АДРЕСА ПЕРСОНИ.


Представлене бізнес-правило стверджує, що екземпляр сутності ПЕРСОНА не потребує в адресі. Зверніть увагу, що в нотації IE системи ERwin термінальна точка відносини включає символ нуль (гурток) в основі "пташиною лапки" – символу множинності.


Поширені помилки, пов'язані з відносинами


Цей розділ, присвячений поширених помилок при моделюванні відносин, не претендує на повноту. У ньому описані деякі помилки, які зустрічаються у розробників моделей.


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


Непотрібні відносини


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


Відносини один-до-одного


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


Відносини багато-до-багатьох


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


Дозвіл відносини багато-до-багатьох означає перетворення його в два відносини: один-до-багатьох і багато-до-одного. Між двома вихідними створюється нова сутність, і ця нова сутність називається асоціативної сутністю або перетином. Додавання цієї сутності дозволяє створити екземпляр для кожного можливого відповідності між двома іншими сутностями. Іноді асоціативна сутність визначає кордону або крапку в часі.


Необхідність або необов'язковість


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


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


Висновок


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


Відносини визначаються в термінах ступеня, спрямованості, типу, кількості елементів і обов'язковості. Ступінь визначає число сутностей, що беруть участь у відношенні. За ступенем можна виділити унарні, бінарні і n-арні відносини. Унарним є відношення між екземплярами однієї й тієї ж сутності. Бінарні відносини пов'язують дві сутності. N-арні відносини – це відносини між n сутностями, де n є числом більше двох. Найбільш часто використовуються бінарні відносини. Напрямок відносини визначається від вихідної, чи батьківської, сутності, до завершальної, або підлеглої, сутності.


Тип ставлення визначає поведінку мігруючих вторинних ключів. У ERwin тип ставлення може бути одним з наступних:



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


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


Кількість елементів задає максимальне число примірників сутності, що беруть участь у відношенні. Необов'язковість задає мінімальне число. Кількість елементів виражається термінами один або багато. Необов'язковість виражається термінами нуль чи один.


Поняття сутності, атрибута і відносин між ними виключно важливі для ефективного використання ERwin. У наступній статті "З чого почати роботу з ERwin" буде описана інсталяція ERwin, настройка середовища моделювання, а також буде представлено деякі розширені режими відображення в ERwin.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*