Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л6 Структурний підхід до проектування ІС.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
384 Кб
Скачать

6.32.4.3. Підхід, що використовується в case-засобі Vantage Team Builder

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

Мал. 2.36. Позначення сутностей і зв'язків

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

  • необов'язковий зв'язок (optional);

  • слабий зв'язок (weak).

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

Мал. 2.37. Необов'язковий зв'язок

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

Обов'язковий (mandatory) зв'язок описує зв'язок між "незалежним і "залежним" сутностями". Всі екземпляри залежного ("обов'язкової") сутностей можуть існувати тільки за наявності екземплярів незалежного ("необов'язкової") сутностей, тобто екземпляр "обов'язкового сутностей" може існувати тільки за умови існування певного екземпляра "необов'язкового сутностей".

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

Мал. 2.38. Обов'язковий зв'язок

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

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

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

Мал. 2.39. Слабий зв'язок

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

Мал. 2.40. Зв'язок "супертип-підтип"

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

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

Мал. 2.41. Асоціативний зв'язок

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

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

  • кожна сутність, кожний атрибут і кожний зв'язок повинні мати ім'я (зв'язок супертипу або асоціативний зв'язок може не мати імені);

  • ім'я сутностей повинне бути унікальним в рамках моделі даних;

  • ім'я атрибута повинне бути унікальним в рамках сутностей;

  • ім'я зв'язку повинне бути унікальним, якщо для неї генерується таблиця БД;

  • кожний атрибут повинен мати визначення типу даних;

  • сутність в необов'язковому зв'язку повинне мати ключовий атрибут. Те ж саме відноситься до сильних сутностей в слабому зв'язку, супертипу в зв'язку "супертип-підтип" і необов'язкових сутностей в обов'язковому (повному) зв'язку;

  • підтип в зв'язку "супертип-підтип" не може мати ключового атрибута;

  • в асоціативному або слабому зв'язку може бути тільки одна асоціативна (слаба) сутність;

  • зв'язок не може бути одночасно обов'язковий, "супертип-підтип" або асоціативним.