Міністерство освіти і науки України
ВСП – Технічний коледж НУ «Львівська політехніка»
Системне програмування
Звіт
Лабораторна робота №5
«Моделювання даних за допомогою метода Баркера»
підготувавстудент групи 45КІЛогін Юрій
Львів – 2013
Мета лабораторної роботи: полягає у практичному засвоєнні моделювання даних за допомогою метода Баркера.
Моделювання даних
Case-метод Баркера
Мета моделювання даних полягає в забезпеченні розробника ІС концептуальною схемою бази даних у формі однієї моделі або декількох локальних моделей, які відносно легко можуть бути відображені в будь-яку систему баз даних.
Найбільш поширеним засобом моделювання даних є діаграми "сутність-зв’язок" (ERD) 3 їхньою допомогою визначаються важливі для предметної області об'єкти (сутності), їх властивості (атрибути) і відношення один з одним (зв'язки) ERD безпосередньо використовуються для проектування реляційних баз даних.
Нотація ERD була уперше введена П. Ченом (Chen) і отримала подальший розвиток у роботах Баркера [8]. Метод Баркера буде викладатися на прикладі моделювання діяльності компанії по торгівлі автомобілями. Нижче приведені витримки з інтерв'ю, проведеного з персоналом компанії.
Головний менеджер: один з основних обов'язків ─ утримання автомобільного майна. Він повинен знати, скільки заплачено за машини і які накладні витрати. Володіючи цією інформацією, він може встановити нижню ціну, за якою міг би продати даний примірник. Крім того, він відповідає за продавців і йому потрібно знати, хто що продає і скільки машин продав кожний із них.
Продавець: йому потрібно знати, яку ціну встановлювати і яка нижня ціна, за якою можна здійснити операцію Крім того, йому потрібна основна інформація про машини: рік випуску марка, модель і т.п.
Адміністратор: його задача зводиться до впорядкування контрактів, для чого потрібна інформація про покупця, автомашину і продавця, оскільки саме контракти приносять продавцям винагороди за продукцію.
Перший крок моделювання - витяг інформації з інтерв'ю і виділення сутностей.
Сутність (Entity) ─ реальний або уявний об'єкт, що має суттєве значення для аналізованої предметної області, інформація про який підлягає збереженню (мал. 1).
Мал. 1. Графічне зображення сутності.
Кожна сутність повинна мати унікальний ідентифікатор. Кожний екземпляр сутності повинний однозначно ідентифікуватися і відрізнятися від всіх інших екземплярів даного типу сутності. Кожна сутність повинна мати деякі властивості:
• кожна сутність повинна мати унікальне ім'я, і до того ж самого імені повинна завжди застосовуватися та сама інтерпретація Та сама інтерпретація не може застосовуватися до різноманітних імен, якщо тільки вони не є псевдонімами;
• сутність володіє одним або декількома атрибутами, котрі або належать сутності, або унаслідуються через зв'язок;
• сутність володіє одним або декількома атрибутами, які однозначно ідентифікують кожний екземпляр сутності;
• кожна сутність може мати будь-яку кількість зв'язків з іншими сутностями моделі,
Звертаючись до приведених вище витримкам з інтерв'ю, очевидно, що сутності, які можуть бути ідентифіковані з головним менеджером - це автомашини і продавці. Продавцю потрібні автомашини і пов'язані з їх продажем дані. Для адміністратора важливі покупці, автомашини, продавці і контракти. Виходячи з цього, виділяються 4 сутності (автомашина, продавець, покупець, контракт), що зображаються на діаграмі в такий спосіб (мал. 2)
Мал. 2. Наступним кроком е моделювання.
Зв'язок (Relationship) це проіменована асоціація між двома сутностями, значима для аналізованої предметної області. Зв'язок — це асоціація між сутностями, при якому, як правило, колений екземпляр однієї сутності, що називається батьківською сутністю, асоційований із довільною (у тому числі нульовою) кількістю екземплярів другої сутності, яка називається сутністю-нащадком, а кожний екземпляр сутності-нащадка асоційований у точності з одним екземпляром сутності-батька. Таким чином, екземпляр сутності-нащадка може існувати тільки при існуванні сутності батька.
Зв'язку може даватися ім'я, що виражається граматичним оборотом дієслова і яке розміщується біля лінії зв'язку. Ім'я кожного зв'язку між двома даними сутностями повинно бути унікальним, але імена зв'язків у моделі не зобов'язані бути унікальними. Ім'я зв'язку завжди формується з погляду батька, так що речення може бути утворене з'єднанням імені сутності-батька, імені зв'язку, вираження ступеня й імені сутності-нащадка.
Наприклад, зв'язок продавця з контрактом може бути виражений в такий спосіб
• продавець може одержати винагороду за 1 або більше контрактів;
• контракт повинний бути ініційований рівно одним продавцем.
Ступінь зв'язку й обов'язковість і графічно зображають у такий спосіб (мал. 3).
Мал. 3
Таким чином, 2 речення, що описують зв'язок продавця з контрактом, графічно будуть виражені в такий спосіб (мал. 4).
Мал. 4
Описавши також зв'язки інших сутностей, отримаємо наступну схему (мал. 5).
Мал. 5
Останнім кроком моделювання є ідентифікація атрибутів.
Атрибут - будь-яка характеристика сутності, значима для аналізованої предметної області і призначена для кваліфікації, ідентифікації, класифікації, кількісної характеристики або вираження стану сутності. Атрибут представляє тип характеристик або властивостей, асоційованих із множиною реальних або абстрактних об'єктів (людей, місць, подій, станів, ідей, пар предметів і т. д.). Екземпляр атрибута - це визначена характеристика окремого елемента множини. Екземпляр атрибута визначається типом характеристики і її значенням, що називається значенням атрибута. У ER- моделі атрибути асоціюються з конкретними сутностями. Таким чином, екземпляр сутності повинен мати єдине визначене значення для асоційованого атрибута.
Атрибут може бути або обов'язковим, або необов'язковим (мал. 6). Обов'язковість означає, що атрибут не може приймати невизначених значень (null values). Атрибут може бути або описовим (тобто звичайним дескриптором сутності), або входити до складу унікального ідентифікатора (первинного ключа).
Унікальний ідентифікатор - це атрибут або сукупність атрибутів і/або зв'язків, призначений для унікальної ідентифікації кожного екземпляра даного тип) сутності. У випадку повної ідентифікації кожний екземпляр даного типу сутності цілком ідентифікується своїми власними ключовими атрибутами, у протилежному випадку в його ідентифікації беруть участь також атрибути іншої сутності-батька(мал. 7).
Мал. 6
Мал. 7
Кожний атрибут ідентифікується унікальним ім'ям, яке виражається граматичним оборотом іменника, що описує характеристику, яка представляється атрибутом. Атрибути зображаються у вигляді списку імен всередині блока асоційованої сутності, причому кожний атрибут займає окремий рядок. Атрибути, що визначають первинний ключ, розміщаються нагорі списку і виділяються знаком "#".
Кожна сутність повинна володіти хоча б одним можливим ключем. Можливий ключ сутності - це один або декілька атрибутів, чиї значення однозначно визначають кожний екземпляр сутності. При існуванні декількох можливих ключів один із них позначається в якості первинного ключа, а інші - як альтернативні ключі.
З урахуванням наявної інформації доповнимо побудовану раніше діаграму (мал.8). Крім перерахованих основних конструкцій модель даних може містити ряд додаткових.
Підтипи і супертипи: одна сутність є узагальнюючим поняттям для групи подібних сутностей (мал. 9).
Зв'язки, що виключають один одного: кожний екземпляр сутності бере участь тільки в одному зв'язку з групи зв'язків, що взаємно виключають один одного (мал.10).
Кожній сутності присвоюється унікальне ім'я і номер, що розділяються косою рисою "/" і розміщуються над блоком.
Мал. 9. Підтипи і супертипи.
Мал. 8
Мал. 10. Зв’язки, що виключаються.
Рекурсивний зв'язок: сутність може бути зв'язана сама із собою (мал. 11).
Непересувні зв'язки (non-transfеrrablе): екземпляр сутності не може бути перенесений з одного екземпляра зв'язку в інший (мал. 12).
.
Мал. 11. Рекурсивний зв’язок
Мал. 12. Нерекурсивний зв’язок
.
Методологія IDEF1
Метод IDEF1, розроблений Т. Рeм (Т. Ramey), також заснований на підході П.Чена і дозволяє побудувати модель даних, еквівалентну реляційній моделі в третій нормальній формі. В даний час на основі удосконалювання методології IDEF1 створена її нова версія - методологія 1DEF1X. 1DEF1Х розроблена з урахуванням таких вимог, як простота вивчення і можливість автоматизації. 1DEF1X- діаграми використовуються рядом поширених CASE- засобів (зокрема, ERwin, Design/ IDEF).
Сутність у методології 1DEF1X є незалежною від ідентифікаторів або просто незалежною, якщо кожний екземпляр сутності може бути однозначно ідентифікований без визначення його відношень з іншими сутностями. Сутність називається залежною від ідентифікаторів або просто залежною, якщо однозначна ідентифікація екземпляру сутності залежить від його відношення до іншої сутності (мал. 13)
Мал. 13
Зв'язок може додатково визначатися за допомогою указання ступеня або потужності (кількості екземплярів сутності-нащадка, яке може існувати для кожного екземпляра суті гості-батька). У 1DEF1X можуть бути виражені наступні потужності зв'язків:
• кожний екземпляр сутності-батька може мати нуль, один або більше пов'язаних із ним екземплярів сутності-нащадка;
• кожний екземпляр сутності-батька повинні мати не менше одного пов'язаного з ним екземпляра сутності-нащадка,
• кожний екземпляр сутності-батька повинний мати не більше одного пов'язаного з ним екземпляра сутності-нащадка;
• кожний екземпляр сутності-батька пов'язаний із деяким фіксованим числом екземплярів сутності-нащадка.
Якщо екземпляр сутності-нащадка однозначно визначається своїм зв'язком із сутністю-батьком, то зв'язок називається ідентифікуючим, у протилежному випадку — неідентифікуючим.
Зв'язок зображається лінією, що проведена між сутністю-батьком і сутністю-нащадком із крапкою на кінці лінії в сутності-нащадка. Потужність зв'язку позначається як показано на малюнку 14 (потужність по замовчуванню — N).
Мал. 14. Потужність зв’язку.
Ідентифікуючий зв'язок між сутністю-батьком і сутністю-нащадком зображається суцільною лінією (мал. 15). Сутність-нащадок у ідентифікуючому зв'язку є залежною від ідентифікатора сутністю. Сутність-батько у ідентифікуючому зв'язку може бути як незалежною, так і залежною від ідентифікатора сутністю (це визначається її зв'язками з іншими сутностями).
Мал. 15. Ідентифікуючий зв’язок.
Пунктирна лінія зображає неідентифікуючий зв'язок (мал. 16). Сутність-нащадок у неідентифікуючому зв'язку буде незалежної від ідентифікатора, якщо вона не являється також нащадком деякого ідентифікуючого зв'язку.
Мал. 16. Неідентифікуючий зв’язок.
Атрибути зображають у вигляді списку імен всередині блока сутності. Атрибути, що визначають первинний ключ, розміщаються нагорі списку і відокремлюються Від інших атрибутів горизонтальною рисою (мал. 17).
Мал. 17. Атрибути і первинні ключі.