Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
praktychna_1.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
402 Кб
Скачать
☆

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, то вони з'єднуються однією лінією.

Рис. 2.2 Приклад графічної побудови зв’язку один-до-одного

Іншою важливою характеристикою зв'язку крім його степені є клас належності сутностей які до нього входять. Оскільки у кожному відділі обов'язково повинен бути керівник, то кожній сутності "ВІДДІЛ" неодмінно повинна відповідати сутність "СПІВРОБІТНИК". Проте, не кожний співробітник є керівником відділу, відповідно у даному зв'язку не кожна сутність "СПІВРОБІТНИК" має асоційовану з нею сутність "ВІДДІЛ".

Таким чином, говорять, що сутність "СПІВРОБІТНИК" має обов'язковий клас належності (цей факт є також вказівкою інтервалу кількості можливих входжень сутності у зв'язок, у даному випадку це 1,1), а сутність "ВІДДІЛ" має необов'язковий клас належності (0,1). Тепер даний зв'язок ми можемо описати як 0,1:1,1. Надалі клас належності бінарних зв'язків степені 1 будемо позначати наступним чином:

Рис. 2.3 Приклад позначення бінарних зв’язків степені 1

  • один до багатьох (1:n). У даному випадку сутності з однією роллю може відповідати будь-яка кількість сутностей з іншою роллю. Таким є зв'язок ВІДДІЛ-СПІВРОБІТНИК. У кожному відділі може працювати довільна кількість співробітників, але співробітник може працювати лише в одному відділі. Графічно степінь зв'язку n відображається "деревоподібною” лінією, як це зроблено на Рис 2.4.

Рис. 2.4 Приклад графічної побудови зв’язку один-до-багатьох

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

Тут також необхідно враховувати клас належності сутностей. Кожний співробітник повинен працювати у якому-небудь відділі, але не обов’язково кожний відділ (наприклад, щойно сформований) повинен включати хоча б одного співробітника. Тому сутність "ВІДДІЛ" має обов'язковий, а сутність "СПІВРОБІТНИК" необов'язковий класи належності. Степінь зв’язку бінарних зв'язків степені n будемо позначати наступним чином:

Рис. 2.5 Приклад позначення бінарних зв’язків степені n

  • багато до одного (n:1). Цей зв'язок аналогічний відображенню 1:n. Припустимо, що представлення нами підприємство будує свою діяльність на підставі контрактів, що підприємство, яке ми розглядаємо, будує свою діяльність на основі контрактів, які укладаються із замовниками. Цей факт відображається у моделі "сутність-зв'язок” (Рис.2.5) за допомогою зв'язку КОНТРАКТ-замовник, який об'єднує сутності КОНТРАКТ(НОМЕР, ТЕРМІН_ВИКОНАННЯ, СУМА) і ЗАМОВНИК(НАЗВА, АДРЕСА). Оскільки з одним замовником може бути укладено більше одного контракту, то зв'язок КОНТРАКТ-замовник між цими сутностями матиме степінь n:1.

Рис. 2.5 Приклад графічної побудови зв’язку багато-до-одного

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

  • багато до багатьох (n:n). У цьому випадку кожне з асоційованих сутностей може бути представлена будь-якою кількістю екземплярів. Нехай на підприємстві для виконання кожного контракту створюється робоча група, у яку входять співробітники різних відділів. Оскільки кожний співробітник може входити в кілька (у тому числі і в жодну) робочих груп, а кожна група повинна включати не менше одного співробітника, то зв'язок між сутностями СПІВРОБІТНИК і РОБОЧА_ГРУПА має степінь n:n (Рис.2.6.).

Рис. 2.6 Приклад графічної побудови зв’язку багато -до-багатьох

Визначення 1.9 Якщо існування сутності x залежить від існування сутності у, то x називається залежною сутністю (інколи сутність x називають "слабкою", а сутність у – “сильною”).

Приклад 1.5 Розглянемо зв'язок між раніше описаними сутностями РОБОЧА_ГРУПА і КОНТРАКТ. Робоча група створюється лише після того, як буде підписаний контракт із замовником, і припиняє своє існування по виконанню контракту. Таким чином, сутність РОБОЧА_ГРУПА є залежною від сутності КОНТРАКТ. Залежна сутність позначається подвійним прямокутником, а її зв'язок із сильною сутністю лінією із стрілкою:

Рис. 2.7 Приклад графічної побудови сильної та залежної сутності та зв’язок між ними.

Зауваження 1.4 Степінь зв'язку для сильної сутності завжди буде (1,1). Клас належності і степінь зв'язку для залежної сутності можуть бути будь-якими. Припустимо, наприклад, що розглянуте нами підприємство користується декількома банківськими кредитами, які представляються набором сутностей КРЕДИТ(НОМЕР_ДОГОВОРА, СУМА, ТЕРМІН_ПОГАШЕННЯ, БАНК). По кожному кредиту повинні здійснюватися виплати процентів і платежі у рахунок його погашення. Цей факт представляється набором сутностей ПЛАТІЖ(ДАТА, СУМА) і набором зв'язків "здійснюється по". У тому випадку, коли отримання запланованого кредиту відміняється, інформація про нього повинна бути видалена з бази даних. Відповідно, повинні бути видалені і всі відомості про планові платежі по цьому кредиту. Таким чином, сутність ПЛАТІЖ залежить від сутності КРЕДИТ.

Рис. 2.8 Приклад графічного представлення залежності сутностей

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]