Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture.doc
Скачиваний:
2
Добавлен:
26.08.2019
Размер:
2.61 Mб
Скачать

2.4. Моделювання даних

2.4.1. Case-метод Баркера

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

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

Нотація ERD була вперше введена П. Ченом (Chen) і одержала подальший розвиток у роботах Баркера [8]. Метод Баркера буде викладатися на прикладі моделювання діяльності компанії з торгівлі автомобілями. Нижче наведені уривки з інтерв'ю, проведеного з персоналом компанії.

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

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

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

Перший крок моделювання - вибірка інформації з інтерв'ю й виділення сутностей.

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

Рис. 2.18. Графічне зображення сутності

Кожна сутність повинна мати унікальний ідентифікатор. Кожен екземпляр сутності повинен однозначно ідентифікуватися й відрізнятися від всіх інших екземплярів даного типу сутності. Кожна сутність повинна мати деякі властивості:

  • кожна сутність повинна мати унікальне ім'я, і до одного і того самого імені повинна завжди застосовуватися одна і та ж сама інтерпретація. Та сама інтерпретація не може застосовуватися до різних імен, якщо тільки вони не є псевдонімами;

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

  • сутність володіє одним або декількома атрибутами, які однозначно ідентифікують кожен екземпляр сутності;

  • кожна сутність може мати будь-яку кількість зв'язків з іншими сутностями моделі.

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

Рис. 2.19.

Наступним кроком моделювання є ідентифікація зв'язків.

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

Зв'язку може даватися ім'я, що виражається граматичним зворотом дієслова, і поміщається біля лінії зв'язку. Ім'я кожного зв'язку між двома даними сутностями повинне бути унікальним, але імена зв'язків у моделі не обов’язково мають бути унікальними. Ім'я зв'язку завжди формується з точки зору батька, так що словосполучення може бути утворено поєднанням імені сутності-батька, імені зв'язку, вираження ступеня та імені сутності-нащадка.

Наприклад, зв'язок продавця з контрактом може бути виражений в такий спосіб:

  • продавець може одержати винагороду за 1 або більше контрактів;

  • контракт повинен бути ініційований рівно одним продавцем.

Ступінь зв'язку й обов'язковість графічно зображуються в такий спосіб (рисунок 2.20).

Рис. 2.20.

Таким чином, 2 пропозиції, що описують зв'язок продавця з контрактом, графічно будуть виражені в такий спосіб (рисунок 2.21).

Описавши також зв'язки інших сутностей, одержимо наступну схему (рисунок 2.22).

Останнім кроком моделювання є ідентифікація атрибутів.

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

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

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

Рис. 2.23.

Рис. 2.24.

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

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

З урахуванням наявної інформації доповнимо побудовану раніше діаграму (рисунок 2.25).

Крім перерахованих основних конструкцій модель даних може містити ряд додаткових.

Підтипи й супертипи: одна сутність є узагальнюючим поняттям для групи подібних сутностей (рисунок 2.26).

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

Рис. 2.25.

Рис. 2.26. Підтипи й супертипи

Рис. 2.27. Взаємовиключаючі зв'язки

Рекурсивний зв'язок: сутність може бути зв'язана сама із собою (рисунок 2.28).

Непереміщувані (non-transferrable) зв'язки: екземпляр сутності не може бути перенесений з одного екземпляра зв'язка в іншій (рисунок 2.29).

Рис. 2.28. Рекурсивний зв'язок

Рис. 2.29. Непереміщуваний зв'язок

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