4. Моделі даних типу сутність-зв'язок (ERD-моделі)

Модель сутність-зв'язок (ER Diagramming ER - абревіатура слів Essence - сутність, Relation - зв'язок, відношення) - це логічна модель системи, в якій інформаційні процеси розглядаються з найбільш зага­льної точки зору. Вона відображає логіку обміну інформацією у системі. Це інформаційна модель системи, що відповідає реляційній моделі да­них, тобто в ній прийнято, що дані для кожного типу об' єктів розміщу­ються окремо і між ними встановлюються певного типу зв'язки. У ре-ляційній моделі дані розміщують в окремі таблиці і між ними встанов­люють певні типи зв' язків. Ця модель широко застосовується для аналі­зу інформаційних процесів у системах при вивченні процесів керування в системах, а також при розробці інформаційних систем: керуючих, ін­формаційно-довідкових. Вона знайшла широке практичне використання в реалізації баз даних. Відомі системи керування базами даних, такі як Access, FoxPro, dBASE працюють саме з реляційними базами даних. Реляційні моделі даних студенти вивчають в курсі інформатики [30].

Логічна модель даних є універсальною моделлю. Розроблено ряд програмних продуктів, які використовують цю модель і автоматично можуть за нею побудувати бажану базу даних. Є навіть такі програми, які виконують зворотне перетворення, а саме перетворюють працюючу базу даних в логічну модель сутність-зв' язок. Ця властивість корисна на практиці, коли є програмне забезпечення, створене в одній з раніше розповсюджених СКБД, і його треба обновити для роботи в іншій СКБД. У такому разі будують логічну модель даних сутність - зв' язок, а з неї генерують коди потрібної бази даних. Отже, модель сутність -зв' язок має не тільки велике значення для вивчення інформаційних про­цесів у системі, але і широке практичне застосування.

Діаграми сутність - зв' язок будують в двох різновидах, або двох нотаціях (тобто позначеннях), чи двох методиках, а саме

- IDEF1 х - Integration DEFinition for Inaormation Modeling,

- IE - Information Engineering.

Ці методики склалися історично і використовуються практично однаково. Програмні продукти, створені для побудови моделей сутність - зв' язок на комп' ютері, такі як ERwin та PowerDesinger, мають меха­нізм переходу від однієї методики до іншої. Приклад такого переходу для пакету ERwin показано на рис. 56.

 

Відповідно до вибору методики одержані моделі називають ШЕБ1 - моделями чи ІЕ - моделями.

Головними поняттями моделі сутність - зв'язок, є:

• сутність;

• зв'язки між сутностями.

Крім цих визначальних понять важливими є ще такі:

• атрибути сутності;

• екземпляри сутності;

• ключ сутності, чи ключові атрибути;

• клас приналежності;

• ступінь зв'язку.

Сутність - це об'єкт, що має важне значення в певній предметній області. Під поняттям "сутність" розуміють всі можливі об'єкти в сис­темах, які, як сказано у визначенні, мають важливе значення. Це можуть бути певні люди чи спеціалісти: студенти, водії, продавці і т.п. певні групи людей: студентська група, бригада, нація; певні організації: мага­зин, бібліотека, фабрика; певні предмети; автомобіль, тролейбус, коле­со, гайка , гвинт; певні документи: журнали, заяви, бланки; усні чи пи­сьмові повідомлення та багато іншого.

Назвою сутності є іменник. Наприклад, водій, тролейбус, борто­вий журнал, студент, група і т. п.

Кожна сутність складається з екземплярів сутності, кожний з яких відрізняється певними атрибутами і однозначно ідентифікується. Екземплярами сутності "водій" є, наприклад, Петров, Іванов, Федоров.

Атрибут сутності являє собою одну з характеристик чи властиво -стей сутності, наприклад, прізвище, ім'я, рік народження, тип тролейбу­са, посада, стаж і т. п. Атрибути сутностей також називають іменниками.

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

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

Ступінь зв'язку (потужність зв'язку) може бути один до одного (1:1) один до багатьох (1:М, чи 1:°о), багато до одного (М:1, чи чи

багато до багатьох (М:М, чи Наприклад за водієм закріплений

автомобіль - такий зв'язок має ступінь 1:1. У депо може бути так, що за тролейбусом закріплюють 2 чи 3 водії, але кожен водій закріплений тільки за одним тролейбусом. Такий зв'язок має ступінь (1:Л») . Можли­ва інша ситуація, коли за кожним водієм закріплюють не один, а декіль­ка тролейбусів, і для тролейбуса призначають декілька водіїв одночасно

(для роботи в різні зміни). Такий зв'язок матиме ступінь

Зв'язки можуть бути обов'язковими і необов'язковими Клас при­належності визначає обов'язковим є зв'язок чи ні. Обов'язковий клас приналежності відповідає такому зв' язку, при якому кожен екземплярсутності обов' язково повинен брати участь у зв' язку, необов' язковий клас приналежності - деякі екземпляри сутності можуть не брати участі в зв' язку. Наприклад, обов' язковий клас приналежності: господар авто­мобіля має автомобіль, тобто кожен автомобіль належить певному гос­подарю. Ще один приклад: за кожним водієм в депо обов'язково закріп­лений тролейбус. Приклади необов' язкового класу приналежності: гро­мадянин має свій автомобіль, не обов' язково кожен громадянин має автомобіль. У депо можуть бути підмінні водії, за якими не закріплено жодного тролейбуса.

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

У моделі ГОЕР1х під час встановлення зв'язку розрізняють також залежні й незалежні сутності. Для залежних сутностей визначається батьківська і дочірня сутність. Наприклад, "клієнт" і "замовлення". Клі­єнт зробив замовлення і сутність "замовлення" є залежною сутністю, її деколи називають дочірньою сутністю, а "клієнта" - батьківською.

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

Розглянемо позначення, прийняті у стандартах ГОЕР1 (її удоско­налений варіант ШЕР1х) та в ІЕ моделі. Вони в основному співпадають і головні відмінності тільки в зображеннях зв' язків. У даних стандартах сутності позначають прямокутниками (як виняток дочірні сутності поз­начають прямокутником із закругленими кутами), а зв' язки між сутнос-тями - лініями. Назви сутностей записують зверху безпосередньо над сутністю, атрибути сутності записують в середині прямокутника сутно­сті. Для залежних (дочірніх) сутностей в позначенні прямокутника краї округляють. Приклад позначення сутності показано на рис.57.

У прямокутнику сутності виділяють ключ (ключовий атрибут) і записують його зверху, відділяючи лінією від решти атрибутів. Якщо ключ складний, то відділяють декілька атрибутів, що складають ключ, як показано на рис. 58.

Рис. 57 - Приклад позначення сутності "Тролейбус"

Водій

Прізвище Ім'я

По батькові

Рік народження

Д ата по стугтення на р о б оту

Класність

Бригада

Рис. 58 - Приклад сутності із складним ключем

Зв'язки між сутностями зображують лініями. Ідентифікуючий зв'язок показують суцільною лінією, яку проводять від батьківської до дочірньої сутності. Неідентифікуючий зв'язок показують пунктирною лінією. Дочірній кінець зв'язку позначають жирною точкою. Оскільки у випадку ідентифікуючого зв'язку сутності є залежними, одна з них ба­тьківська, а друга дочірня, то в дочірній сутності закругляють краї. Як­що діаграма виконується за допомогою комп'ютера, то програмне за­безпечення автоматично змінює зображення сутностей відповідно до типу зв' язку, наприклад, як показано на рис. 59.

Як видно з рис. 59 під час встановлення зв'язку комп'ютерна програма змінює сутності. На рис. 59 а) показано сутності між якими зв' язок не встановлений.

На рис. 59 б) встановлений ідентифікаційний зв'язок. Змінилася форма зображення сутності - рамка із закругленими краями вказує, що сутність "замовлення" є дочірня. Крім цього в сутності з'явився новий ключ "Персональний номер". При встановленні ідентифікаційногозв'язку ключ батьківської діаграми автоматично переноситься (мігрує) до складу ключа дочірньої діаграми. Це відображає той факт, що у за­мовленні повинно бути вказано, який клієнт зробив його. Адже в іншо­му разі виконати замовлення не можна. Такий ключ називається зовні­шнім ключем і позначається літерами (БК).

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

Відмінність стандарту зображень ІЕ від стандарту ГОЕР1 полягає в умовних зображеннях зв'язків. Діаграма у стандарті ІЕ матиме вигляд, показаний на рис. 60.

Клієнт Замовлення

 

 

 

 

 

 

Персональний номер

І 1 пі<ґ

Номер замовлення Персональний номер (ТК)

Прізвище Ім'я

По батькові Адреса

Перепік товарів Дата поставки Ціна замовлення

1 ' ^

Рис. 60 - Зображення ідентифікуючого зв'язку в стандарті IE (Informa­tion Engineering).

Порядок побудови логічної моделі такий:

1) виділяємо сутності;

2) визначаємо зв'язки між сутностями;

3) описуємо атрибути сутностей, визначаємо ключові атрибути;

4) уточнюємо типи зв'язків;

5) виконуємо нормалізацію логічної моделі даних. Процедури побудови логічної моделі даних системи за номерами

1 - 4 розглянуті вище і в певній мірі є зрозумілі. Необхідно ще дати по­яснення процедури нормалізації.

Нормалізація логічної моделі - це процес редагування сутностей та їх атрибутів з метою задоволення вимог до бажаної структурної орга­нізації даних.

Процес нормалізації полягає в послідовному приведенні структу­ри даних до якомога вищої нормальної форми.

Структурна даних охоплює питання, де і як розміщена інформа­ція, Вона повинна задовольняти певним вимогам, а саме, щоб інформа­ція про кожен об' єкт зберігалась тільки в одному місці, мала мінімаль­ний обсяг, і були відсутні аномалії в організації даних. Структура даних визначає, як виконуються операції внесення, видалення і зміни даних. Питання організації даних і роботи з ними надзвичайно складні. Візь­мемо, наприклад, зміну назви населеного пункту. Ми вже знаємо, що така зміна потребує затрати значних коштів. На що вони витрачаються? Роботи і витрат тут багато. Потрібно змінити всі вивіски, які є в населе­ному пункті, вивіски на шосейних дорогах і залізницях. Необхідно про­інформувати населення про зміни, змінити поштову індексацію і внести зміни у всі почтові довідники. Необхідно змінити і внести зміни в розк­лади руху поїздів, автобусів. Треба внести зміни у всі довідники, щовидаються різними організаціями не тільки своєї країни, але й інших країн. Треба змінити географічні карти, атласи. Отже, як бачимо, робота з даними є досить складною. Складності виникають не тільки при зміні даних, а також при введенні нових даних або вилученні існуючих. Тому організація даних, їх структура відіграють важливу роль у всякій систе­мі і відображаються в логічній моделі [30].

Відомо шість нормальних форм організації даних, а саме 1НФ, 2НФ, 3НФ, підсилена 3НФ, 4НФ і 5НФ. Ці нормальні форми даних роз­глядають в курсі інформатики під час вивчення реляційних баз даних. Ці ж нормальні форми відносяться і до логічної моделі даних. Розгля­немо їх докладніше. Нормальні форми даних основані на понятті функ­ціональної залежності.

Перша нормальна форма. Сутність знаходиться в першій нор­мальній формі (1 НФ) тоді, коли всі атрибути сутності є атомарними (простими) і немає груп атрибутів, що повторюються. Для приведення сутності до 1 НФ треба:

1) розділити складні атрибути на прості;

2) виділити усі атрибути, які повторяються;

3) створити нову сутність;

4) перенести в нову сутність атрибути, що повторялись;

5) встановити ідентифікаційний зв' язок від початкової сутності до створених.

Наприклад, привести сутність, показану на рис. 61, до першої но­рмальної форми.

Сшвр о бітник

Табельний номер 1

Прізвище, ім'я, по батькові 1 Кафедра, посада 1 Назва предмету який веде 1 Оклад І Телефон І Дата зачислення і звільнення 1

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

Співробітник

Табельний номер

Прізвище Ім'я

По батькові Дата зачислення Кафедра Посада Оклад

Предмет який веде 1 Предмет який веде 2 Предмет який веде З Телефон 1 Тепефон2 Дата звільнення

Рис. 62 - Сутність після першого кроку приведення до 1НФ

Сутність після першого кроку приведення до 1НФ показана на рис. 62. Тут всі атрибути є простими (атомарними). Але є дві групи ат­рибутів, що майже співпадають: це предмети, які веде співробітник, і номери телефонів. Співробітник може вести не три, а інше число пред­метів, він же може мати не два телефони (мобільний і звичайний), а ще телефон у родичів, де він часто буває. На наступних кроках приведення до 1 НФ потрібно ввести нові сутності. Результат такого приведення по­казний на рис. 63. Крім сутності "Співробітник", створені ще дві сутно­сті - "Предмет" і "Телефон".

Предмет

Співробітник Табельний номер

Прізвище Ім'я

По батькові Дата зарахування Кафедра Посада Оклад

Дата звільнення

Рис. 63 - Сутність "Співробітник", приведена до 1НФ

Друга нормальна форма. Сутність знаходиться у другій норма­льній формі (2НФ) тоді, коли вона знаходиться в 1НФ і всі неключові атрибути функціонально повністю залежать від первинного ключа. Мо­жливі випадки, коли в сутності є складний ключ і деякі атрибути зале­жать тільки від одного чи декількох, але не всіх одночасно атрибутів ключа. У цьому випадку для приведення до 2НФ потрібно:

1) виділити атрибути, що залежать тільки від частини первинно­го ключа;

2) створити нову сутність і помістити в них виділені атрибути;

3) установити ідентифікаційний зв'язок від початкової сутності до створених.

Цей приклад показано на рис. 64, 65.

ГоспдогоЕІрна тема

Номер теми 1 Табельний номер керівника 1

Назва теми 1

Дата початку 1

Дата закінчення 1

Прізвище керівника 1

Ім'я І

По батькові 1

Рис. 64 - Приклад сутності "Госпдоговірна тема"

Тут прізвище керівника, його ім'я і по батькові залежать тільки від частини ключа, а саме - табельного номера, сутність не відповідає 2НФ. Результат приведення до 2НФ показано на рис. 65. Із сутності "Госпдоговірна тема" виділена сутність - керівник теми.

Керівник теми_ Госпдоговірна тема_

Номер теми І Табельний номер керівника (ТК) і

Назва теми 1 Дата початку І ^Датазакінчания_J

Рис. 65 - Сутність "Госпдоговірна тема", приведена до 2НФ

Третя нормальна форма. Сутність знаходиться в 3НФ, якщо во­на знаходиться в 2НФ і ніякий неключовий атрибут не залежить від

Табепьний номер керівника

Прізвище керівника Ім'я

По батьковішого неключового атрибута. Наприклад, на рис.63 у сутності "Співробі­тник" оклад залежить від посади і надбавки за вислугу років, тобто від двох неключових атрибутів, а саме - посади й дати зарахування. Для приведення сутності в 3НФ потрібно:

1) створити нову сутність і перенести в неї атрибути, що мають одну і ту ж залежність від неключового атрибута;

2) використати атрибути, що визначають залежність, як ключі нової сутності;

3) встановити неідентифікуючий зв'язок від нової сутності до

старої.

Співр о бітник_ Предмет

 

Рис. 66 - Приклад приведення сутності "Співробітник" до 3НФ

Приклад приведення до 3НФ показаний на рис. 66. Атрибут "Оклад" з даної сутності виведено. Оскільки оклад складається з тариф­ної ставки і доплати за стаж, то створена нова сутність, що визначає оклад працівника. Після цього сутність "Співробітник" приведена до

3НФ.

Четверта нормальна форма 4НФ вимагає, щоб була відсутня багатозначна залежність між атрибутами. Як правило, в багатьох випад­ках обмежуються третьою нормальною формою.