Підхід

 

У CASE-засобі Vantage Team Builder (Westmount I-CASE) [14] використовується один з варіантів нотації П. Чена. На ER-діаграмах сутність позначається прямокутником, що містить ім’я сутності (малюнок 2.36), а зв’язок – ромбом, пов’язаних лінією з кожної з взаємодіючих сутностей. Числа над лініями означають ступінь зв’язку.

Рис. 2.36. Позначення сутностей і зв’язків

Зв’язку є багатонаправленого і можуть мати атрибути (за винятком ключових). Виділяють два види зв’язків:


В необов’язковою зв’язку (Малюнок 2.37) можуть брати участь не всі екземпляри сутності.

Рис. 2.37. Необов’язкова зв’язок

На відміну від необов’язковою зв’язку в повної (total) зв’язку беруть участь всі примірники хоча б однієї з сутностей. Це означає, що примірники такий зв’язки існують тільки за умови існування екземплярів іншої сутності. Повна зв’язок може мати один з 4-х видів: обов’язкова зв’язок, слабкий зв’язок, зв’язок “супертіп-підтип” і асоціативний зв’язок.

Обов’язкова (mandatory) зв’язок описує зв’язок між “незалежної” і “залежною” сутностями. Усі примірники залежною (“обов’язкової”) сутності можуть існувати тільки при наявності екземплярів незалежної (“необов’язковою”) сутності, тобто екземпляр “обов’язкової” сутності може існувати тільки за умови існування певного примірника “необов’язковою” сутності.

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

Рис. 2.38. Обов’язкова зв’язок

В слабкою зв’язку існування однієї з сутностей, що належить деякому безлічі (“слабкою”) залежить від існування певної сутності, яка належить іншій безлічі (“сильної”), тобто екземпляр “слабкою” сутності може бути ідентифікований тільки за допомогою примірника “сильною” сутності. Ключ “сильною” сутності є частиною складного ключа “слабкою” сутності.

Слабкий зв’язок завжди є бінарною і має на увазі обов’язкову зв’язок для “слабкою” сутності. Сутність може бути “слабкою” в одній зв’язку і “сильною” в інший, але не може бути “слабкою” більше, ніж в одній зв’язку. Слабкий зв’язок може не мати атрибутів.

Приклад на малюнку 2.39: ключ (номер) рядка в документі може не бути унікальним і має бути доповнений ключем документа.

Рис. 2.39. Слабкий зв’язок

Зв’язок “супертіп-підтип” зображена на малюнку 2.40. Загальні характеристики (атрибути) типу визначаються по суті-супертіп, сутність-підтип успадковує всі характеристики супертіпа. Примірник підтипу існує тільки за умови існування певного примірника супертіпа. Підтип не може мати ключа (він імпортує ключ з супертіпа). Сутність, яка є супертіп в одній зв’язку, може бути підтипом в іншого зв’язку. Зв’язок супертіпа не може мати атрибутів.

Рис. 2.40. Зв’язок “супертіп-підтип”

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

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

Рис. 2.41. Асоціативний зв’язок

Первинний ключ кожного типу сутності позначається зірочкою (*).

ER-діаграма має підпорядковуватися наступних правил:

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


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

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

Ваш отзыв

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

*

*