Етап 2 Концептуальне проектування предметної області, Побудова ER–діаграми, Проектування баз даних, ВНТУ
« Назад2.2 Етап 2. Концептуальне проектування предметної області, Побудова ER–діаграмиМета:. познайомитися з методикою ER–діаграм для концептуального проектування баз даних, навчитися будувати коректні ER–діаграми. Попередні відомості: 2.2.1 Об’єкти та їх властивостіДамо визначення основних понять семантичного моделювання: Сутність (entity) – збірне поняття, деяка абстракція об'єкта, процесу або явища, що реально існує і про який необхідно зберігати інформацію в базі даних. У семантичному моделюванні застосовують не просто поняття "сутність", а говорять "тип сутностей": Тип сутностей визначає набір об'єктів із тим самим набором властивостей. Екземпляр типу сутності – конкретний об'єкт у наборі. Приклад 1. Якщо ми хочемо описати всіх співробітників підприємства, то всі ті загальні властивості, що властиві всім співробітникам (це може бути "ім'я", "прізвище", "посада", "зарплата"), сформують тип сутності СПІВРОБІТНИК. Тоді всі окремі співробітники є екземплярами типу сутності СПІВРОБІТНИК. Вибір типів сутностей залежить від мети створення бази даних. Якщо в базі даних відділу кадрів СПІВРОБІТНИК – окремий тип сутностей із своїми характеристиками, то в базі даних проектного відділу співробітник – усього лише прізвище відповідального за проект, тобто характеристика ПРОЕКТУ як типу сутностей. Кожен тип сутності має набір властивостей (характеристик), притаманних всім екземплярам даного типу. Властивість (attribute, атрибут) – пойменована характеристика типу сутностей, що приймає значення з деякої множини значень (домену). Приклад 2. Усі співробітники повинні мати: ім'я, прізвище, табельний_номер, дату_надходження_на_роботу, спеціальність, дату_народження. Ці характеристики є атрибутами типу сутностей СПІВРОБІТНИК. Кожен тип сутностей повинен відрізнятися від всіх інших. Унікальність типу сутностей визначається наявністю унікальних, таких, що ідентифікують тільки цей тип, властивостей. Кожен тип сутності повинен мати унікальні властивості, властиві тільки деяким об'єктам предметної області. Приклад 3. Розглянемо всіх співробітників навчального закладу. Очевидно, що є різні групи співробітників – викладачі, програмісти, і т.д. Для того щоб цим групам відповідали свої типи сутностей, необхідно виділити унікальні для кожної групи співробітників властивості. ВИКЛАДАЧІ відрізняються від всіх інших співробітників тим, що мають такі унікальні властивості: "учена_ступінь", "звання". ПРОГРАМІСТИ відрізняються такими властивостями: "спеціалізація" (бази даних, системне програмування, комп'ютерна графіка і т.д.), "мови_програмування", якою вони володіють. Для ідентифікації екземпляра типу сутностей використовуються спеціальні властивості. Це може бути одна або декілька властивостей, значення яких дозволяють однозначно відрізняти один екземпляр типу сутностей від іншого. Цей набір спеціальних властивостей називається первинним ключем. Приклад 4. Будь–який екземпляр СПІВРОБІТНИКА має унікальний "ідентифікаційний код податкової інспекції". Ця властивість може бути первинним ключем, оскільки значення такого коду ніколи не повторюються, і в однієї людини може бути тільки один такий код. 11 Аналіз властивостей різних об'єктів показав, що властивості бувають: а) одиничні і множинні Одинична властивість — кожний екземпляр типу сутності має єдине значення цієї властивості. Множинна властивість — кожний екземпляр типу сутності має більш одного значення цієї властивості. Приклад 6. Тип сутностей “ДЕТАЛЬ”: властивість “назва” – одиничне: Гайка, Болт, Гвинт, Шуруп. Властивість “діаметр” – множинне: деталь Гайка (один з екземплярів ДЕТАЛІ) може бути різних діаметрів. б) статичні і динамічні Статична властивість не змінюється з часом, на відміну від динамічної властивості. Приклад 7. Тип сутностей “ОСОБИСТІСТЬ”: властивість ”рік_народження” – статичне, властивість “учений_ступінь” – динамічне. в) обов'язкові й умовні властивості Властивість обов'язкова, якщо воно повиннео бути присутнім у всіх екземплярів даного типу сутностей. Властивість умовна, якщо воно може відсутньому в деяких екземплярів даного типу сутностей. Приклад 8. Тип сутностей “ОСОБИСТІСТЬ”: властивість “учений ступінь” – умовна, тому що його присутність необов’язкова у екземплярів ОСОБИСТОСТЕЙ (таких як секретар–референт, асистент), а властивість “прізвище” – обов'язкова. г) складені властивості Приклад 9. Тип сутностей “ОСОБИСТІСТЬ”: властивість "адреса" складена: "адреса" = "місто" + "вулиця" + "будинок" + "квартира", де символ "+" означає "конкатенація рядків" Властивість "дата_народження" = "рік" + "місяць" + "день" – теж складена. 2.2.2 Взаємовідносини об'єктів: зв'язкиОб'єкти, процеси, явища існують не просто самі по собі, а знаходяться у взаємозв'язку один з одним. Приклад 10. У предметної області "Концерти артистів естради" можна знайти такі взаємодії: є тип сутностей "СПОНСОР" (із властивостями: "прізвище", "адреса", "телефон") і тип сутностей "КОНЦЕРТ" (із властивостями: "назва_концерту", "виконавець", "кількість_номерів_у програмі", "місце_проведення"). Кожен СПОНСОР цілком може фінансувати декілька КОНЦЕРТІВ, у той же час кожен КОНЦЕРТ може бути організований одночасно декількома СПОНСОРАМИ. Взаємодії між двома типами сутностей подані фразами "може фінансувати декілька" і "може бути організований декількома". Говорять, що в предметної області об'єкти взаємодіють один з одним за допомогою зв'язків (relationships). У зв'язку може брати участь два і більш об'єкти. Зв'язки, у яких беруть участь два об'єкти, називаються бінарними. Зв'язки, у яких беруть участь три об'єкти – тернарні, і т.д. Розрізняють такі типи зв'язків: "один до одного"(1:1), "один до багатьох" (1: M), "багато до багатьох" (M : N). Зв'язок "один до одного" означає, що кожному екземпляру одного типу сутностей відповідає максимум 1 екземпляр іншого типу сутностей, і навпаки (див. рис.1.1) Рисунок 1.1 – Відповідність екземплярів при зв’язку 1:1. Приклад 11.“ОСОБИСТІСТЬ” і“ДНК" У кожної особистості є унікальний код ДНК. Тип сутностей "ДНК" у такому випадку може мати єдину властивість: "код_ДНК" Зв'язок "один до багатьох" означає, що кожному екземпляру одного типу сутностей (А) відповідає 1 або більш екземплярів іншого типу сутностей (В), однак кожному екземпляру типу В відповідає тільки один екземпляр типу А (див. рис.1.2). Рисунок 1.2 – Відповідність екземплярів при зв’язку 1:М Приклад 12. Зв'язок "1:M": "КЕРІВНИК" "відповідає за декілька" “ПРОЕКТІВ”, у той час як у кожного "ПРОЕКТУ" тільки один відповідальний "КЕРІВНИК". "ВЛАСНИК" "має декілька" "АВТОМОБІЛІВ", але у кожного "АВТОМОБІЛЯ" тільки один "ВЛАСНИК". "МІСТО" "складається з декількох" "РАЙОНІВ", але кожний "РАЙОН" знаходиться тільки в одному "МІСТІ". Зв'язок "багато до багатьох" означає, що кожному екземпляру одного типу сутностей (А) відповідає 1 або більш екземплярів іншого типу сутностей (В), і навпаки (див. рис.1.3) Приклад 13. Зв'язок "N:M": "СТУДЕНТ" "вивчає декілька" "ДИСЦИПЛІН", і навпаки "ДИСЦИПЛІНУ" "вивчають багато" " СТУДЕНТІВ" "ДЕТАЛЬ" "поставляють декілька" "ПОСТАЧАЛЬНИКІВ", і навпаки Рисунок 1.3 – Відповідність екземплярів при зв’язку N:М Важливою характеристикою будь–якого зв'язку є її клас приналежності. Клас приналежності показує, чи обов'язковий зв'язок між екземплярами цих типів сутностей чи ні. Приклад 14. Зв'язок обов'язковий: кожний "СТУДЕНТ" повинен прослухати декілька "ДИСЦИПЛІН" (зв'язок 1:M), обов'язкова з боку "СТУДЕНТА" і необов'язкова з боку "ДИСЦИПЛІНИ". Зв'язок необов'язковий із боку "ОСОБИСТОСТІ": "ОСОБИСТІСТЬ" "може мати максимум один" "АВТОМОБІЛЬ" (зв'язок 0:1) Зв'язок обов'язковий із двох боків: "ОСОБИСТІСТЬ" "повинна мати" "ДНК" (зв'язок 1:1). Для повного визначення зв’язку використовується поняття потужності зв’язку. Потужність зв'язку – кількість екземплярів одного об'єкта, зв'язаних з одним екземпляром іншого об'єкта. Для зв'язків визначаються мінімальні і максимальні потужності. Якщо А і В – типи сутностей, і між ними існує зв'язок АВ, то формат специфікації зв'язку такий: (mB, MB):(mA, MA) де mB - мін. кількість екземплярів В, зв’язаних з одним екземпляром А ; MB - макс. кількість екземплярів В, зв’язаних з одним екземпляром А ; mA - мін. кількість екземплярів А, зв’язаних з одним екземпляром B ; MA - макс. кількість екземплярів А, зв’язаних з одним екземпляром B . Виконуються такі нерівності: mA £ MA, mB £ MB, значення mA, mB Î{1,0}, а MA, MB Î{1,M}. Приклад 15. Якщо у фірмі є правило: "кожний співробітник може брати участь принаймні в однім проекті, але максимум у 5 різних проектах", то зв'язок між "СПІВРОБІТНИКОМ" і "ПРОЕКТОМ" буде виражений як "(1,5) : (1,N)", оскільки над кожним "ПРОЕКТОМ" може працювати від 1 до N "СПІВРОБІТНИКІВ". Зв'язки, так само як і типи сутностей, можуть мати властивості. Приклад 16. Зв'язок між "СПОНСОРОМ" і "КОНЦЕРТОМ" може мати властивості "обсяг фінансування" (скільки грошей вкладає спонсор у конкретний концерт) і "тип підтримки" (інформаційна, транспортна, загальна). 2.2.3 «Слабкі» типи сутностейІноді усіх властивостей одного типу сутностей буває недостатньо для того, щоб однозначно вказувати екземпляр. Тоді використовують техніку зовнішніх ідентифікаторів. Слабкий тип сутностей (weak entity type) – такий тип сутностей, первинний ключ якого складається (цілком або частково) із властивостей іншого типу сутностей. Інакше, слабкий тип сутностей називається залежним від інших. Приклад 17. Розглянемо предметну область «Користувачі електронної пошти». Кожний користувач описується “ім'ям” і “паролем”, ім'я і пароль вибираються для кожного поштового серверу, на якому цей користувач тримає поштову скриньку. vasya@zsu.zp.ua, пароль gfhjkm, і vasya@mail.ru, пароль gfccdjhl У свою чергу, кожний поштовий сервер характеризується властивостями “адреса поштового серверу”, “розмір поштової скриньки”, і т д. Це дозволяє виділити два типи сутностей, КОРИСТУВАЧ і СЕРВЕР. Однак усіх властивостей типу сутностей КОРИСТУВАЧ буде недостатньо, і необхідно використовувати властивість “адреса поштового серверу”, що є ключем типу сутностей СЕРВЕР. Таким чином, КОРИСТУВАЧ буде слабкою сутністю. 2.2.4 Складні типи сутностейНарешті, розрізняють такі типи сутностей: прості, тобто неподільні, і складні. Складні типи сутностей бувають: а) складені – відповідають відображенню “ціле – частина”; б) узагальнені – відповідає відображенню ”род–вид” або “супертип–підтип” в) агреговані – відповідає звичайно якому процесу, у якому беруть участь інші об'єкти. Приклад 18. Складений об'єкт “КОМП'ЮТЕР”: його частини “ПРОЦЕСОР”, ”ОЗП”, ”ЖОРСТКИЙ_ДИСК”, ”ВІДЕОКАРТА”, і т.д. Узагальнений об'єкт “СПІВРОБІТНИК”: його підтипи – ”МЕНЕДЖЕР”, ”ПРОГРАМІСТ”, ”ДИСПЕТЧЕР”. Агрегований об'єкт “ПОСТАВКА”: у поставці беруть участь ”ПОКУПЕЦЬ”, ”ПОСТАЧАЛЬНИК”, ”ТОВАР”. 2.2.5 Проведення етапу концептуального проектування системи баз данихОпишемо тепер сам процес концептуального проектування по кроках. Крок 1. Моделювання зовнішніх уявлень користувачів про предметну область. Кожна група користувачів дає свої відомості про предметну область, такі як: вхідні дані і вихідні дані, їхні формати, допоміжні дані, необхідні в процесі роботи, і інші відомості (наприклад, вимоги безпеки). Крок 2. Неформальний опис предметної області з погляду конкретної групи користувачів. Крок 2.1. Розбір опису з метою відокремлення типів сутностей і їхніх властивостей. Для будь–якого зовнішнього уявлення потрібно виділити типи сутностей, що необхідні для його опису. В окремих випадках це зробити складно, тому що інформація про предметну область може бути подана або як тип сутностей, або як властивість, або зв'язок. Тут на допомогу може прийти інтуїція і досвід розроблювача. Приклад 19. "ДЕТАЛЬ" і "ВИРІБ" можна представити як окремі типи сутностей, або як тип сутностей "ВИРІБ" з атрибутом "ДЕТАЛЬ". Для кожного обраного типу сутностей визначаються набори властивостей, і вибирається первинний ключ (або декілька альтернативних ключів). Крок 2.2. Розбір опису з метою виявлення зв'язків, що існують між об'єктами в предметної області і важливих для даної інформаційної системи. Визначення типів зв'язків. Виявляються залежності між сутностями, визначаються властивості залежностей. Крок 2.3. Визначення обмежень на значення властивостей, на типи зв'язків. Для властивостей визначається область їхніх значень, наприклад, область значень властивості "прізвище_співробітника" є текстовий рядок довжиною не більше 50 символів. Крок 2.4. Визначення тих основних операцій над даними, що буде виконувати конкретна група користувачів. Як правило, для кожної групи користувачів існує декілька типових операцій, що будуть виконуватися в процесі роботи із системою баз даних. Крок 2.5. Формалізація результатів кроків 1–5 і створення зовнішньої схеми БД для цієї групи користувачів. На цьому кроці створюються формальні специфікації зовнішнього уявлення, наприклад, у виді графічних діаграм (див. п.2.6). Крок 3. Об'єднання зовнішніх уявлень у єдине концептуальне уявлення При об'єднанні зовнішніх схем можуть створюватися конструкції, що є похідними стосовно конструкцій у зовнішніх схемах. Такі конструкції називаються абстракціями. Абстракція – модель системи, у якій заздалегідь опущені деякі деталі. Цілі введення абстракцій частіше усього такі: - об'єднати розрізнені по різних зовнішніх уявленнях користувачів властивості одного типу сутностей в один тип; - лишається відзначити, що етап концептуального проектування виконується не один раз, а декілька разів, із поступовим уточненням усіх характеристик майбутньої системи баз даних. Цей етап вважається найважливішим, оскільки помилки, допущені на цьому етапі, виявляються надалі в некоректній або незручній логічній структурі бази даних, у надмірності даних, і як наслідок, у поганій фізичній організації збереження даних, у втраті продуктивності, у витратах на перепроектування структур даних і прикладних програм у складі інформаційної системи. 2.2.6. ER-діаграмиДля досягнення наочності в представленні концептуальної і зовнішніх схем бази даних було розроблені і зараз активно використовуються графічні моделі. Графічні семантичні моделі надають можливість формального і разом з тим наочного опису предметної області. Найбільш відомою є модель графічного подання концептуальної схеми бази даних, створена Пітером Ченом. Вона має назву "модель "Сутність-Зв’язок" (Entity-Relationship model, ER-model). Частини предметної області, що відповідають об’єктам, властивостям і зв’язкам зображуються у вигляді діаграм. Основні графічні примітиви ER-діаграм представлені у рис. 1.4. Рисунок 1.4 – Графічні примітиви ER-діаграм З повагою ІЦ "KURSOVIKS"! |