Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент





Модель "сутність-зв'язок" баз даних

Модель "сутність-зв'язок" баз даних

План

1. Сутності

2. Зв'язки

3. Атрибути

4. Потужність зв'язків

5. Сильні і слабкі зв'язки

6. Атрибути зв'язків

7. Обов'язкові і необов'язкові зв'язки

8. Слабкі сутності

9. Складні зв'язки

10. Рекурсивні зв'язки

З концептуального проектування починається створення концептуальної схеми БД, в основі якої лежить концептуальна модель даних. Концептуальна модель представляє загальний погляд на дані. Розрізняють два головних підходи до моделювання даних при концептуальному проектуванні:

- семантичні моделі;

- об'єктні моделі.

Семантичні моделі головну увагу приділяють структурі даних. Найбільш поширеною семантичною моделлю є модель "сутність - зв'язок" (Entity Relationship model, ER-модель). ER-модель складається із сутностей, зв'язків, атрибутів, доменів атрибутів, ключів. Моделювання даних відображає логічну структуру даних, так само, як блок-схеми алгоритмів відображають логічну структуру програми.

Об'єктні моделі головну увагу приділяють поведінці об'єктів даних і засобам маніпуляції даними. Головне поняття таких моделей - об'єкт, тобто сутність, яка має стан і поведінку. Стан об'єкта визначається сукупністю його атрибутів, а поведінка об'єкта визначається сукупністю операцій специфікованих для нього.

Зближення цих моделей реалізується в розширеному ER- моделюванні (Extended Entity Relationship model, EER-модель).

Модель "сутність-зв'язок"

ER-моделювання являє собою низхідний підхід до проектування БД, який починається з визначення найбільш важливих даних, які називаються сутностями (entities), і зв'язків (relationships) між даними, які повинні бути представлені в моделі. Потім в модель заноситься інформація про властивості сутностей і зв'язків, яка називається атрибутами (attributes), а також всі обмеження, які відносяться до сутностей, зв'язків і атрибутів. ER-модель дає графічне представлення логічних об'єктів і їх відношень в структурі БД. Послідовність проведення ER-моделювання показана на рис. 5.1.

Вперше поняття ER-моделі запровадив П.Чен. Підхід П.Чена дозволив концептуальне моделювання перевести в практичну площину проектування БД. У подальшому діаграми Чена набули розвитку у багатьох інших роботах з ER- моделювання. До них належать такі моделі:

- "пташина лапка", розроблена К.М. Бахманом;

- IDEF1X, розроблена Т.Ремеєм;

- на основі UML;

- модель Баркера і багато інших моделей.

Сутності

Сутність дозволяє моделювати клас однотипних об'єктів. Сутність має унікальне ім'я у межах системи, що моделюється. Оскільки сутність відповідає деякому класу однотипних об'єктів, то передбачається, що в системі існує багато екземплярів даної сутності. Об'єкт, якому відповідає сутність, має набір атрибутів, які характеризують його властивості. При цьому набір атрибутів повинен бути таким, щоби можна було розрізняти конкретні екземпляри сутності.

Приклад. Сутність Викладач може мати такі атрибути: Табельний номер, Прізвище, Ім'я, По батькові, Посада, Вчений ступінь.

Набір атрибутів, що однозначно ідентифікує конкретний екземпляр сутності, називають ключовим. У наведеному прикладі для сутності Викладач ключем буде Табельний номер, оскільки для всіх викладачів табельні номери різні. Екземпляром сутності Викладач буде опис конкретного викладача. Загальноприйняте позначення сутності - прямокутник (рис. 5.2).

Зв'язки

Між сутностями встановлюються зв'язки, які вказують яким чином сутності співвідносяться або взаємодіють між собою. Розрізняють такі зв'язки:

- між двома сутностями (бінарний зв'язок);

- між трьома сутностями (тернарний зв'язок);

- між N сутностями (N-арний зв'язок);

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

яким чином екземпляри сутностей зв'язані між собою. Бінарні зв'язки бувають:

- 1:1 (один до одного);

- 1:M (один до багатьох);

- N:M (багато до багатьох).

На рис. 5.3, 5.4 показані відображення цих зв'язків у різних ER-моделях.

Атрибути

Атрибути являють собою властивості сутності. Значення кожного атрибута вибирають з відповідної множини значень, яка включає всі потенційні значення, які можуть бути присвоєні атрибуту. Ця множина значень називається доменом.

Приклад. Атрибут Оцінка може приймати чотири значення: 2, 3, 4, 5. Ці значення і складають домен цього атрибута.

Атрибути залежно від складності значень, які вони можуть приймати поділяються на певні категорії (табл. 5.1).

Атрибути номер залікової книжки, рік народження є простими.

Атрибути ПІБ і Адреса є складовими. ПІБ може бути поділений на атрибути: прізвище, ім'я, по батькові, а Адреса - на індекс, місто, вулиця, будівля, квартира.

Атрибут Вік є похідним: він обчислюється за значенням атрибута Рік народження (зображається пунктирною лінією).

Атрибут Номер залікової книжки є однозначним: він не може приймати два значення для одного студента.

Атрибут Номер телефону є багатозначним: він може приймати декілька значень для одного студента (зображається подвійною лінією).

Атрибут або набір атрибутів сутності, які застосовуються для ідентифікації екземпляра сутності, називаються потенційним ключем. Сутність може містити декілька потенційних ключів. В прикладі в якості потенційних ключів можуть бути такі атрибути: Номер залікової книжки, Прізвище Ім'я по Батькові.

Потенційний ключ, який вибрано для однозначної ідентифікації кожного екземпляра сутності певного типу, називається первинним ключем. Первинний ключ вибирається за умови гарантії унікальності його значень, а також мінімальної довжини атрибутів, які входять в його склад. В прикладі в якості первинного ключа служить Номер залікової кни^жки.

Потужність зв'язків

Потужність зв'язку (кардинальність) відображає певне число екземплярів сутностей, які зв'язані з одним екземпляром зв'язаної сутності. В моделі Чена потужність зв'язку відображається вказівкою відповідних чисел поруч з сутностями у форматі (x, y). Перше число визначає мінімальне значення потужності зв'язку, а друге - його максимальне значення. Потужність вказує на число екземплярів у зв'язаній сутності.

Відомості про максимальне і мінімальне значення потужності зв'язку може застосовуватися у прикладному програмному забезпеченні або за допомогою тригерів; на рівні таблиць СУБД не може оперувати з потужністю зв'язків.

Приклад. Розглянемо зв'язок Група-Студент (рис. 5.6).

Потужність (1,30) поруч із сутністю Група вказує, що в групі може займатися від 1 до 30 студентів. Потужність (1,1) поруч із сутністю Студент вказує, що студент може займатися тільки в одній групі (мінімум 1, максимум 1). У моделі " пташина лапка" числовий діапазон значень потужності не відображається в ER-діаграмах.

Сильні і слабкі зв'язки

Якщо сутність може існувати незалежно від інших сутностей, то вона є незалежною від існування. Якщо сутність залежить від існування інших сутностей, то вона є залежною від існування. Наприклад, сутності Студент і Група можуть існувати незалежно одна від одної, а сутність Нагорода студента є залежною від сутності Студент й існувати без неї не може.

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

Ідентифікаційний зв'язок або сильний зв'язок має місце у тому випадку, коли одна зв'язана сутність залежить від існування іншої. На ER-діаграмах "пташина лапка" сильний зв'язок відображається суцільною лінією.

Приклад. Розглянемо зв'язки Група-Студент і Студент- Нагорода (рис. 5.7).

Сутність Студент не залежить від сутності Група, в цьому випадку зв'язок між сутностями відображається штриховою лінією, а атрибут Назва групи в сутності Студент є зовнішнім ключем (Foreign Key, FK).

Сутність Нагорода залежить від сутності Студент, в цьому випадку зв'язок між сутностями відображається суцільною лінією, а атрибут Прізвище студента в сутності Нагорода є частиною первинного ключа (Primary Key, PK) і одночасно зовнішнім ключем (FK).

Атрибути зв'язків

Так само як і сутності зв'язки можуть мати атрибути. Приклад. Атрибути День і Аудиторія належать до зв'язку між сутностями Студент і Дисципліна (рис. 5.8).

Обов'язкові і необов'язкові зв'язки

Участь сутності у зв'язку може бути обов'язковою або необов'язковою. Якщо один екземпляр сутності не потребує наявності відповідного екземпляра сутності в окремому зв'язку, то участь сутності у зв'язку є необов'язковою. Наприклад, у зв'язку сутностей Студент-Нагорода - не кожен студент має нагороди. Тобто не кожен екземпляр в таблиці Студент потребує обов'язкової наявності екземпляра сутності в таблиці Нагорода. Сутність Нагорода розглядається як необов'язкова по відношенню до сутності Студент. Необов'язкова сутність позначається невеликим колом з боку необов'язкової сутності. Існування необов'язковості вказує на те, що для необов'язкової сутності мінімальне значення потужності зв'язку дорівнює 0.

Участь сутності у зв'язку буде обов'язковою, якщо кожен екземпляр сутності обов'язково потребує відповідного екземпляра сутності в окремому зв'язку. При обов'язковому зв'язку для обов'язкової сутності мінімальна потужність зв'язку дорівнює 1.

Приклад. Зв'язок між сутностями Студент і Нагорода є необов'язковим (рис. 5.9). Необов'язково кожен студент має нагороду, але якщо є нагорода, то вона обов'язково зв'язана з певним студентом.

Слабкі сутності

Слабкою сутністю називається сутність, яка задовольняє таким умовам:

- залежності від існування сутності з якою вона зв'язана;

- первинний ключ цієї сутності частково або повністю отриман з іншої сутності.

Слабка сутність на діаграмі Чена позначається подвійним прямокутником, а на діаграмі "пташина лапка" невеликими сегментами в кожному з кутів прямокутника.

Приклад. Сутність Нагорода є слабкою по відношенню до сутності Студент: вона залежить від існування цієї сутності і в її первинний ключ входить первинний ключ сутності Студент (рис. 5.10).

Складні зв'язки

Використання зв'язків більш високого порядку дає можливість у багатьох випадках краще відобразити семантику проблемної області.

Приклад. Сутності Викладач, Дисципліна і Екзамен утворюють тернарний зв'язок (рис. 5.11).

Рекурсивні зв'язки

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

Приклад. Розглянемо можливі варіанти рекурсивних зв'язків (рис. 5.12).

Зв'язок 1:1 представляє висловлювання: "викладач може бути одружений тільки з одним співробітником". Зв'язок 1:M представляє таке висловлювання: "викладач, якщо


Сторінки: 1 2