- •Міністерство освіти й науки україни
- •Методичні рекомендації
- •Херсон 2014
- •Завдання на курсовий проект
- •Методичні рекомендації
- •Рекомендації до виконання розділу «концептуальне проектування бази даних» Елементи моделі «сутність-зв’язок»
- •Основні поняття er-діаграм
- •Приклад розробки простої er-моделі
- •Висновки
- •Варіанти завдань
- •1. Бібліотека
- •2. Університет
- •Концептуальні й фізичні er-моделі
- •3. Оптова база
- •4. Виробництво
- •5. Мережа магазинів
- •6. Авторемонтні майстерні
- •7. Деканат
- •8. Договірна діяльність організації
- •9. Поліклініка
- •10. Телефонна станція
- •11. Спорт
- •12. Сільськогосподарські роботи
- •13. Міський транспорт
- •14. Географія
- •15. Домоуправління
- •16. Аеропорт
- •17. Персональні комп’ютери
- •18. Особисті дані про студентів.
- •19. Зоопарк
- •20. Шахи
- •21. Судноплавство.
- •22. Наукові конференції.
- •23. Програмні продукти.
- •24. Операційна система
- •25. Видобуток корисних копалин
- •26. Автотранспортне підприємство
- •27. Театр
- •28. Довідкова аптек
- •29. Кулінарія
- •30. Вивчення студентами дисциплін на вибір.
- •Організація проектування і порядок захисту курсового проекту
- •Рекомендована література
Приклад розробки простої er-моделі
При розробці ER-моделей необхідно отримати наступну інформацію про предметну область:
Список сутностей предметної області.
Список атрибутів сутностей.
Опис взаємозв'язків між сутностями.
ER-діаграми зручні тим, що процес виділення сутностей, атрибутів і зв'язків є ітераційним. Розробивши перший наближений варіант діаграм, ми уточнюємо їх, опитуючи експертів предметної області. При цьому документацією, в якій фіксуються результати бесід, є самі ER-діаграми.
Припустимо, що стоїть завдання розробити інформаційну систему на замовлення деякої оптової торгової фірми. У першу чергу треба вивчити предметну область і процеси, що відбуваються в ній. Для цього проводиться опитування співробітників фірми, читається документація, вивчаються форми замовлень, накладних тощо.
Наприклад, в ході бесіди з менеджером з продажу, з'ясувалося, що він (менеджер) вважає, що проектована система повинна виконувати наступні дії:
Зберігати інформацію про покупців.
Друкувати накладні на відпущені товари.
Стежити за наявністю товарів на складі.
Виділимо всі іменники в цих пропозиціях - це будуть потенційні кандидати на сутності й атрибути, і проаналізуємо їх (незрозумілі терміни будемо виділяти знаком питання):
Покупець - явний кандидат на сутність.
Накладна - явний кандидат на сутність.
Товар - явний кандидат на сутність
(?) Склад - а взагалі, скільки складів має фірма? Якщо декілька, то це буде кандидатом на нову сутність.
(?) Наявність товару - це, швидше за все, атрибут, але атрибут якої сутності?
Одразу виникає очевидний зв'язок між сутностями - "покупці можуть купувати багато товарів" і "товари можуть продаватися багатьом покупцям". Перший варіант діаграми виглядає так:

Рисунок 7
Після додаткових питань менеджерові з'ясувалося, що фірма має кілька складів. При цьому, кожен товар може зберігатися на декількох складах і бути проданим з будь-якого складу.
Куди помістити сутності "Накладна" і "Склад" і з чим їх зв'язати? Задамо питання, як пов'язані ці сутності між собою і з сутностями "Покупець" і "Товар"? Покупці купують товари, отримуючи при цьому накладні, до яких внесено дані про кількість і ціну купленого товару. Кожен покупець може отримати декілька накладних. Кожна накладна зобов'язана виписуватися на одного покупця. Кожна накладна повинна містити кілька товарів (не буває порожніх накладних). Кожен товар, у свою чергу, може бути проданий декільком покупцям через кілька накладних. Крім того, кожна накладна повинна бути виписана з певного складу, і з будь-якого складу може бути виписано багато накладних. Таким чином, після уточнення, діаграма буде виглядати так:

Рисунок 8
Пора подумати про атрибути сутностей. В ході розмови зі співробітниками фірми, з'ясувалося наступне:
Кожен покупець є юридичною особою і має найменування, адресу, банківські реквізити.
Кожен товар має найменування, ціну, а також характеризується одиницями вимірювання.
Кожна накладна має унікальний номер, дату виписки, список товарів з кількостями і цінами, а також загальну суму накладної. Накладна виписується з певного складу і на певного покупця.
Кожен склад має своє найменування.
Знову випишемо всі іменники, які будуть потенційними атрибутами, і проаналізуємо їх:
Юридична особа - термін риторичний, ми не працюємо з фізичними особами. Не звертаємо уваги.
Найменування покупця - явна характеристика покупця.
Адреса - явна характеристика покупця.
Банківські реквізити - явна характеристика покупця.
Назва товару - явна характеристика товару.
(?) Ціна товару - схоже, що це характеристика товару. Чи відрізняється ця характеристика від ціни в накладній?
Одиниця виміру - явна характеристика товару.
Номер накладної - явна унікальна характеристика накладної.
Дата накладної - явна характеристика накладної.
(?) Список товарів в накладній - список не може бути атрибутом. Ймовірно, потрібно виділити цей список в окрему сутність.
(?) Кількість товару в накладній - це явна характеристика, але характеристика чого? Це характеристика не просто "товару", а "товару в накладній".
(?) Ціна товару в накладній - знову ж таки це має бути не просто характеристика товару, а характеристика товару в накладній. Але ціна товару вже зустрічалася вище - це одне і те ж?
Сума накладної - явна характеристика накладної. Ця характеристика не є незалежною. Сума накладної дорівнює сумі вартостей усіх товарів, що входять в накладну.
Найменування складу - явна характеристика складу.
У ході додаткової бесіди з менеджером вдалося прояснити різні поняття цін. Виявилося, що кожен товар має деяку поточну ціну. Ця ціна, за якою товар продається в даний момент. Природно, що ця ціна може змінюватися з часом. Ціна одного і того ж товару в різних накладних, виписаних в різний час, може бути різною. Таким чином, є дві ціни - ціна товару в накладній і поточна ціна товару.
З виникаючим поняттям "Список товарів в накладній" все доволі ясно. Сутності "Накладна" і "Товар" пов'язані один з одним відношенням типу багато-до-багатьох. Такий зв'язок, як ми зазначали раніше, повинен бути розщеплений на два зв'язки типу один-до-багатьох. Для цього потрібна додаткова сутність. Цією сутністю і буде сутність "Список товарів в накладній". Зв'язок її з сутностями "Накладна" і "Товар" характеризується наступними фразами - "кожна накладна повинна мати кілька записів зі списку товарів в накладній", "кожен запис із списку товарів в накладній повинен включатися рівно в одну накладну", "кожен товар може включатися у кілька записів зі списку товарів в накладній ", "кожен запис зі списку товарів в накладній має бути пов'язаний рівно з одним товаром". Атрибути "Кількість товару в накладній" і "Ціна товару в накладній" є атрибутами сутності "Список товарів в накладній".
Так само вчинимо зі зв'язком, що з'єднує сутності "Склад" і "Товар". Введемо додаткову сутність "Товар на складі". Атрибутом цієї сутності буде "Кількість товару на складі". Таким чином, товар буде значитися на будь-якому складі і кількість його на кожному складі буде своя.
Тепер можна внести все це в діаграму:

Рисунок 9
