1. МЕТА РОБОТИ
Мета роботи – ознайомитися та оволодіти інструментом уніфікованого представлення даних - моделлю "сутність-зв’язок”.
2. КОРОТКІ ТЕОРЕТИЧНI ВIДОМОСТI
1. Призначення сутнісної моделі.
Перш, ніж приступати до створення системи автоматизованої обробки інформації, розробник повинен сформувати поняття про предмети, факти і події, якими оперуватиме розроблювана система. Для того, щоб представлення ці поняття до однієї або іншої моделі даних, необхідно замінити їх інформаційними представленнями. Одним із найзручніших інструментів уніфікованого представлення даних, незалежного програмного забезпечення яке його реалізує, є модель "сутність-зв’язок” (entity - relationship model, ER - model).
Призначення сутнісної моделі — у компактному і не створюючому різночитань представленні описати структуру предметної області. У даному випадку під структурою предметної області розуміється набір понять (об'єктів) предметної області і зв'язків між цими поняттями (об'єктами).
Зауваження 1.1 Модель сутність-зв'язок не є моделлю даних оскільки не визначає операцій над даними і обмежується описом лише їхньої логічної структури.
Модель "сутність-зв'язок була запропонована в 1976 р. Ченом (Chen) і отримала подальший розвиток у роботах Баркера (Barker). Нотація Чена надає багатий набір засобів моделювання даних, включаючи власне ERD, а також діаграми атрибутів і діаграми декомпозиції.
1.2 Степінь точності сутнісної моделі
Критерієм виявлення "достатньої глибини" опису предметної області, тобто "значущості" концептуальних понять і/або фізичних об'єктів (основний/не основний), є критерій точності, що висувається до проектованої системи. Зв'язок між "глибиною" опису і критерієм точності лінійний: чим вищим є критерій точності, тим більша глибина опису, отже, тим вища відповідність сутнісної моделі і предметної області.
Під критерім точності розуміється ступінь адекватності (точність) сутнісної моделі і предметної області, описуваною цією моделлю. Отже критерій точності, що пред'являється до проектованої системи, найефективныше все працює на етапі сутнісного моделювання.
У процесі проектування і розробки інформаційної системи мають місце два види факторів, які впливають на критерій точності, — це технічні і політичні фактори.
До технічних факторів звичайно відносять:
Функціональні і технічні вимоги до проектованої системи; технічні вимоги, такі як тимчасові і кількісні обмеження; або функціональні вимоги, такі як обмеження точності.
Досвід фахівця, задіяного у проектування системи: чим вище досвід, тим "відчуття" достатньої адекватності проектованої моделі і предметної області.
Зауваження 1.2 Предметна область є частиною довкілля і тому носить аналоговий характер: повністю завершити процес декомпозиції фізичних об'єктів або концептуальних понять, як правило, не представляється можливим. Але, головне, подібна гіпердекомпозиція не має практичного сенсу, оскільки у результаті уточнення моделі зведеться до опису настільки дрібних об'єктів, що модель втратить свій первинний смисл — бути компактною.
До політичних факторів звичайно відносять:
Планований життєвий цикл (ЖЦ) проектованої системи: тривалість і траєкторія планованого ЖЦ напряму визначається планами компанії відносно проектованої системи, що у свою чергу впливає на характер бюджету проекту.
Бюджет проекту, який має три складові: людські, часові і фінансові ресурси; бюджет проекту значно впливає на величину критерію точності.
На величину критерію точності нелінійно впливають всі вищеперелічені фактори: збільшення кількості якого-небудь з них, як правило, підвищує критерій точності і навпаки, зменшення — знижує його, а підвищення критерію точності до проектованої системи автоматично тягне за собою підвищення витрат на розробку. Виходячи з цього можна констатувати нелінійний зв'язок між підвищенням критерію точності і вартістю розробки: зростання витрат перевищує зростання критерію точності.
Характер зв'язку між вартістю розробки і критерієм точності у загальному випадку формально визначити не вдалося, але, як правило, в експертних оцінках різних методологів мовиться про експоненціальний характер даного зв'язку.
1.3 Елементи моделі.
Будь-який фрагмент предметної області може бути представлений як множина сутностей, між якими існує певна множина зв'язків.
ER-діаграма предметної області представляється множиною сутностей, атрибутів та зв’язків. Елементи кожної з цих множин представляються вузлами графа для яких ми використовуємо спеціальні форми для визначення їхнього виду:
Множина сутностей представляється прямокутниками.
Атрибути представляються овалами.
Зв’язки представляються ромбами.
Приклад 1.1 На Рис.2.1 представлена ER-діаграма, яка зображає просту базу даних про працівників. Набори сутностей - це Працівник, Посада і Відділ.

Рис. 2.1 Діаграма “сутність-зв’язок” для бази даних працівників
Визначення 1.1 Сутність (entity) є безліччю множин реальних або абстрактних об'єктів (людей, подій, станів, ідей, предметів тощо), що володіють загальними атрибутами або характеристиками. Будь-який об'єкт системи може бути представлений лише однією сутністю, яка повинна бути унікально ідентифікована. При цьому ім'я сутності повинне відображати тип або клас об'єкту, а не його конкретний екземпляр (наприклад, МІСТО, а не ЛЬВІВ).
Визначення 1.2 Набір сутностей (entity set) - множина сутностей одного типу (володіють однаковими властивостями). Приклади: всі люди, підприємства, свята тощо. Набори сутностей не обов'язково повинні не перетинатися. Наприклад, сутність, що належить до набору ЧОЛОВІКИ, також належить набору ЛЮДИ.
Сутність фактично представляє з себе безліч атрибутів, які описують властивості всіх членів даного набору сутностей.
Приклад 1.2 Розглянемо множину співробітників певного відділу. Кожного працівника можна описати за допомогою характеристик табельний номер, прізвище, вік. Тому сутність ПРАЦІВНИК має атрибути ТАБЕЛЬНИЙ_НОМЕР, ПРІЗВИЩЕ, ВІК. Використовуючи нотацію мови Pascal цей факт можна представити наступним чином:
type employe = record
number : string[6];
name : string[50];
age : integer;
end;
Надалі для визначення сутності та її атрибутів використовуватимемо позначення наступного вигляду:
ПРАЦІВНИК (ТАБЕЛЬНИЙ_НОМЕР, ПРІЗВИЩЕ, ВІК).
Визначення 1.3 Множина значень (область визначення) атрибута називається доменом. Наприклад, для атрибута ВІК домен (назвемо його КІЛЬКІСТЬ_РОКІВ) задається інтервалом цілих чисел більших за нуль, оскільки людей з від’ємним віком не буває.
Визначення 1.4 Звідси визначається ключ сутності - група атрибутів, така, що відображення набору сутностей у відповідну групу наборів значень є взаємооднозначним відображенням. Іншими словами: ключ сутності - це один або більше атрибутів які унікально визначають дану сутність. У нашому випадку ключем сутності СПІВРОБІТНИК є атрибут ТАБЕЛЬНИЙ_НОМЕР (звичайно, лише у тому випадку, якщо всі табельні номери на підприємстві унікальні).
Визначення 1.5 Зв'язок (relationship) - це асоціація, встановлена між декількома сутностями.
Приклад 1.3:
оскільки кожний співробітник працює у якому-небудь відділі, між сутностями СПІВРОБІТНИК і ВІДДІЛ існує зв'язок "працює в" або ВІДДІЛ-ПРАЦІВНИК;
оскільки один з працівників відділу є його керівником, то між сутностями СПІВРОБІТНИК і ВІДДІЛ існує зв'язок "керує" або ВІДДІЛ-КЕРІВНИК;
можуть існувати і зв'язки між сутностями одного типу, наприклад зв'язок БАТЬКО - НАЩАДОК між двома сутностями ЛЮДИНА;
Зауваження 1.3 У методиці проектування баз даних є своєрідне правило хорошого тону, згідно з яким сутності позначаються за допомогою іменників, а зв'язки - дієслівними формами.
Зв'язок може мати атрибути. Наприклад, для зв'язку ВІДДІЛ-ПРАЦІВНИК можна задати атрибут СТАЖ_РОБОТИ_У_ВІДДІЛІ.
Визначення 1.6 Роль сутності у зв'язку - функція, яку виконує сутність у даному зв'язку. Наприклад, у зв'язку БАТЬКО-НАЩАДОК сутність ЛЮДИНА може мати ролі "батько" і "нащадок". Вказання ролей у моделі "сутність-зв'язок не є обов'язковою і служить для уточнення семантики зв'язку.
Визначення 1.7 Набір зв'язків (relationship set) - це відношення між n (причому n не менше 2) сутностями, кожна з яких відноситься до деякого набору сутностей.
Приклад 1.4
сутність набори сутностей
---------- ----------------
t1 належить T1
t2 належить T2
. . .
tn належить Tn
тоді [t1,t2...,tn] - набір зв'язків R
Поняття "зв'язок" і "набір зв'язків" різні (перша є елементом другого), їх, проте, часто вживають для позначення одного і того самого. Не претендуючи на академічну строгість, надалі також часто користуватимемося термінами "зв'язок" маючи на увазі "набір зв'язків" і "сутність" маючи на увазі "набір сутностей".
У випадку n=2, тобто коли зв'язок об'єднує дві сутності, він називається бінарним. Доведено, що n-арний набір зв'язків (n>2) завжди можна замінити безліччю бінарних, проте перші краще відображають семантику предметної області.
Визначення 1.8 Кількість сутностей, які можна асоціювати через набір зв'язків з іншим сутностями, називають степінню зв'язку.
Розгляд степенів особливо корисно для бінарних зв'язків. Можуть існувати наступні степені бінарних зв'язків:
один до одного (позначається 1:1). Це означає, що в такому зв'язку сутності з однією роллю завжди відповідає не більше однієї сутності з іншою роллю. У розглянутому прикладі це зв'язок "керує", оскільки у кожному відділі може бути лише один начальник, а співробітник може керувати лише в одному відділі. Даний факт представлений на Рис. 2.2, де прямокутники позначають сутності, а ромб - зв'язок. Оскільки степінь зв'язку для кожної сутності дорівнює 1, то вони з'єднуються однією лінією.