Вінницький
державний технічний
університет містить море(!)
аналітичної інформації |
---|
Розробка ER-моделі предметної області
2.6 Розробка ER–моделі предметної області
Заключна фаза аналiзу предметної областi складається з розробки її iнформацiйної структури (або концептуальної схеми).
В звичайних випадках для побудови концептуальної схеми використовуються традицiйнi методи агрегацiї та узагальнення. При агрегацiї декiлька iнформацiйних об'єктiв (елементiв даних) об'єднується в один у вiдповiдностi з семантичними зв'язками мiж об'єктами. При побудові інфологічних моделей можна використовувати мову ER-діаграм (від англ. Entity-Relationship, "сутність-зв'язок"). В них сутності зображуються позначеними прямокутниками, асоціації - позначеними ромбами або шестикутниками, атрибути - позначеними овалами, а зв'язки між ними - ненаправленими ребрами, над якими може проставлятися ступінь зв'язку (1 або буква, що заміняє слово "БАГАТО") і необхідне пояснення.
Розглянемо деякі риси моделі "сутність-зв'язок" (ER-моделі).
На використанні різновидів ER-моделі реалізується більшість сучасних підходів до проектування баз даних. Модель була запропонована Ченом (Chen) у 1976 р. Моделювання предметної області базується на використанні графічних діаграм, що включають невелике число різнорідних компонентів. У зв'язку з наочністю уявлення концептуальних схем баз даних ER-моделі знайшли широке застосування в системах CASE,
Таблиця 2.1 - Початковий перелік атрибутів для формування
Універсального відношення бази даних читального залу
Шифр книги | Cod_book | Кожна книга має унікальний шифр. |
Код розділу | Cod_rozdil | Кожен предметний розділ має унікальний шифр |
Назва розділу | Name_rozdil | Назва предметного розділу |
Назва твору | Name | Кожен твір має назву |
Автор | Author | Письменник, що написав твір. |
Дата створення | Data_write | Дата, коли письменник закінчив писати твір. |
Дата видання | Year_publish | Дата, коли книгу надрукували. |
Видавництво | Publisher | Видавництво, що надрукувало книгу. |
Кількість сторінок | Page | Кількість сторінок, що займає книга. |
Код користувача | Cod_client | Код користувача, що займає книгу. |
Користувач | FIO | Прізвище, ім'я та по батькові. |
Адреса | Address | Адреса користувача. |
Телефон | Telephone | Номер телефона користувача. |
Паспорт | №_pasp | Паспортні дані користувача. |
Освіта | Culture | Освіта, яку має користувач. |
Професія | Profession | Професія користувача. |
що підтримують автоматизоване проектування реляційних баз даних.
Головними поняттями ER-моделі є сутність, зв'язок і атрибут. У діаграмах ER-моделі сутність подається у вигляді прямокутника, що містить ім'я сутності. При цьому ім'я сутності - це ім'я типу, а не деякого конкретного екземпляра цього типу. Для кращого розуміння ім'я сутності може супроводжуватися прикладами конкретних об'єктів цього типу. Сутність АЕРОПОРТ із об'єктами Шереметьєво і Хітроу зображена на рис.2.8.
Кожний екземпляр сутності повинен відрізнятися від будь-якого іншого екземпляра тієї ж сутності (ця вимога до повної міри аналогічна вимозі відсутності кортежів-дублікатів у реляційних таблицях).
Зв'язок - це асоціація, що графічно зображується та установлюється між двома сутностями. Ця асоціація завжди є бінарною і може існувати між двома різними сутностями або між сутністю і нею ж самою (рекурсивний зв'язок). У будь-якому зв'язку виділяються два кінці (відповідно до існуючої пари сутностей, що зв'язуються), на кожному з яких вказується ім'я кінця зв'язку, ступінь кінця зв'язку (скільки екземплярів даної сутності зв'язується), обов'язковість зв'язку (тобто чи будь-який екземпляр даної сутності повинен брати участь у даному зв'язку). Зв'язок подається у вигляді лінії, що зв'язує дві сутності або веде від сутності до неї ж самої. Про це в місці "стикування" зв'язку із сутністю вказує триточковий вхід у прямокутник сутності, якщо для цієї сутності в зв'язку можуть використовуватися багато (many) екземплярів сутності, і одноточковий вхід, якщо в зв'язку може брати участь тільки один екземпляр сутності. Обов'язковий кінець зв'язку зображується суцільною лінією, а необов'язковий - переривчастою лінією.
Розглянемо приклад зв'язку між сутностями КВИТОК і ПАСАЖИР (рис.2.9). При цьому кінець сутності з ім'ям "для" дозволяє зв'язувати з одним пасажиром більше одного квитка, причому кожний квиток повинен бути пов'язаний із яким-небудь пасажиром. Кінець сутності з ім'ям "має" означає, що кожний квиток може належати тільки одному пасажиру, причому пасажир зобов'язаний мати не менше одного квитка. Трактування зображеної діаграми (рис.2.9) таке:
Рисунок 2.8 - Зображення сутності АЕРОПОРТ із об'єктами Шереметьєво і Хітроу
Рисунок 2.9 - Зображення зв'язку між сутностями КВИТОК та ПАСАЖИР
Рисунок 2.10 - Зображення рекурсивного зв'язку
Книга має Твір
Книга 1 *------------------------------------------------- Твір2
Книга 2 *--------------------------------------------------Твір 3
Книга 3 *------------------------------------------------- Твір 4
. . . . . .
Книга n *-------------------------------------------------Твір n
КП: ОБОВ'ЯЗК. ТИП ЗВ'ЯЗКУ Б:Б КП: ОБОВ'ЯЗК
Рисунок 2.11 - Зображення зв’язку КНИГА – ТВІР
На рис.2.10 приведено приклад зображення рекурсивного зв'язку, що зв'язує сутність ЛЮДИНА з нею ж самою.
Кінець зв'язку з ім'ям СИН визначає той факт, що в одного батька може бути більше ніж один син. Кінець зв'язку з ім'ям БАТЬКО означає, що не в кожної людини можуть бути СИНИ.
Трактування зображеної діаграми (рис.2.10 ) таке:
Атрибутом сутності є будь-яка деталь, що служить для уточнення, ідентифікації, класифікації, числової характеристики або вираження стану сутності. Імена атрибутів заносяться в прямокутник, що зображує сутність, під ім'ям сутності і зображуються малими буквами, можливо, із прикладами. Наприклад, унікальним ідентифікатором сутності є атрибут, комбінація атрибутів, комбінація зв'язків або комбінація зв'язків і атрибутів, що унікально відрізняє будь-який екземпляр сутності від інших екземплярів сутності того ж типу.
Таким чином, зв'язки можуть представлятися рiзними способами, з яких ми будем використовувати тiльки два: дiаграма ER-екземплярiв i дiаграма ER-типiв. Дiаграми ER-екземплярiв вiдображають зв'язки мiж екземплярами сутностей. Дiаграми ER-типiв вiдображають зв'язки мiж типами сутностей.
Отже, першою задачою, яку необхiдно розв'язати при розробцi ER-моделi, є формування сутностей, що необхiднi для описання предметної областi. Iншими словами, необхiдно вказати тi типи об'єктiв (тобто набори подiбних об'єктiв), про якi в системi повинна накопичуватися iнформацiя. Це означає, що за пiдсумками аналiзу предметної областi потрiбно мати повну або достатньо повну уяву про реалiзованi в системi запити. Разом з тим необхiдно врахувати, що при квалiфiкованiй експлуатацii системи у бiльшостi випадкiв у користувача виникає бажання розширити систему запитiв. У зв'язку з цим, при розробцi ER-схеми, з одного боку зручно твердо прив'язатися до обраної в результатi аналiзу предметної областi системи запитiв, а з iншого боку, бажано розглядати задачу в бiльш широкому планi, з врахуванням перспектив подальшого нарощування можливостей системи. Приведемо приклад для таких об'єктiв: КНИГА, ТВІР, КОРИСТУВАЧ, РОЗДІЛ. Для кожної сутностi необхiдно обрати атрибут, що її однозначно iдентифiкує або сукупнiсть атрибутiв, якi будуть виступати ключем вiдповiдного вiдношення. Необхiдно врахувати, що ключ повинен не тiльки виконувати задачу iдентифiкацiї, але i по можливостi, включати в свiй склад мiнімальне число атрибутiв. У зв'язку з цим в процесi проектування вибранi в якостi ключiв атрибути можуть переглядатися. Наприклад, виберемо в якостi ключових такi атрибути:
КНИГА --> Cod_book (шифр книги);
ТВІР --> Cod_book (шифр книги), Name_tvir (назва твору);
РОЗДІЛ --> Cod_rozdil (код предметної області).
Необхідність введення складеного ключа для сутності ТВІР обумовлено тим, що в читальному залі може бути кілька однакових творів, написаних одним автором, але входять вони до складу різних книг. Тепер виявимо залежностi, що iснують мiж визначеними нами сутностями, а також визначимо характеристики кожного зв'язку. Зв’язок КНИГА – ТВІР приведено на рис.2.11.
З рис.2.11 видно, що клас належності обох сутностей є обов'язковим, оскільки книги та твори, яких немає в читальному залі не повинні заноситись в базу даних.
Тип зв'язку – Б:Б: декілька творів можуть входити до складу однієї
книги, та один і той самий твір може знаходитись в декількох книгах. Зв’язок КНИГА – РОЗДІЛ приведено на рис.2.12.
З рис.2.12 видно, що клас належності обох сутностей є обов'язковим, оскільки книги, яких немає в читальному залі не повинні заноситись в базу даних, та розділи з предметних областей, що не мають книг, не заносять до бази даних.
Тип зв'язку – Б:1: декілька творів можуть входити до складу одного предметного розділу, але одна книга не може міститися в більше ніж одному розділі.
У реальному життi часто зустрiчаються ситуацiї, якi неможливо описати бiнарними зв'язками. Тобто, в цих випадках зв'язок об'єднує одночасно не двi, а бiльше сутностей, як правило - три. ER–діаграма, що ілюструє тристоронні зв'язки РОЗДІЛ–КНИГА–ТВІР приведена на рис 2.13). Розмiрковуючи аналогiчним чином побудуємо ER-модель предметної областi "Читальний зал". В якостi сутностей оберемо такi об'єкти предметної областi (з перерахуванням ключових атрибутiв кожної сутностi) :
КНИГАа <Cod_book(шифр книги)>,Cod_client,Publisher,Year_publish, Page.
ТВІР а <Cod_book (шифр книги), Name_tvir (назва твору)>, Author, Data_write;
РОЗДІЛ а Cod_rozdil (код предметної області), Name_rozdil.
КОРИСТУВАЧ а Cod_client (шифр користувача), FIO, Address, Telephone, №_pasp, Culture, Profession.
Характеристики зв'язків виділених сутностей приведені в табл.2.2, а ER-модель предметної області “Читальний зал”, що побудована на їх основі, показана на рис.2.14.
До числа більш складних елементів моделі відносяться такі:
Книга належить Розділ
Книга 1 *-------------------------------------------------Розділ 1
Книга 2 *
Книга 3 *-------------------------------------------------Розділ 2
. . . . . .
Книга n *------------------------------------------------Розділ n
КП: ОБОВ'ЯЗК. ТИП ЗВ'ЯЗКУ Б:1 КП: ОБОВ'ЯЗК
Рисунок 2.12 - Зображення зв’язку КНИГА – РОЗДІЛ
Таблиця 2.2 - Характеристики зв'язкiв предметної областi "Читальний зал"
Ім'я Сутностi 1 |
Ім'я сутностi 2 |
Ім'я зв’язку | Тип зв'язку |
Клас належностi |
Книга |
Розділ |
Належить |
N : 1 |
Обов'язк., Обов'язк. |
Книга |
Твір |
Має |
N : M |
Обов'язк., Обов'язк. |
Книга |
Користувач |
Читає |
N : 1 |
Необов'язк., Необов'язк. |
Ці й інші більш складні елементи моделі даних "сутність-зв'язок" роблять її більш потужною, але одночасно в певній мірі ускладнюють її використання. Звичайно, при реальному використанні ER-діаграм для проектування баз даних необхідно ознайомитися з усіма можливостями.
Copyright ©VSTU
Created: November 16, 2000