Не завжди ми моемо подати інформацію користувачеві відповідно до його потреб. Сьогодні ми продовжимо працювати над вирішенням цієї проблеми.
Ієрархічну модель даних важко використовувати для предметної області, у якій об'єкти пов'язані між собою більш складною залежністю, ніж ієрархія.
А використання мережної моделі даних ускладнюється при значному збільшенні кількості об'єктів предметної області й ускладненні зв'язків між цими об'єктами. Проблеми виникають і під час модифікації бази даних: додаванні нових зв'язків, заміні об'єктів, що зв'язані між собою, тощо.
Для спрощення опису об'єктів і зв'язків між ними в 1970 році американським ученим Едгаром Франком Коддом (1923-2003) була запропонована реляційна модель даних. Математик за освітою, він увів у теорію баз даних математичний підхід, що базується на теорії множин.
Вивчення нового матеріалу
Значному поширенню і популярності реляційна модель бази даних завдячує таким перевагам:
1) однорідність подання даних у моделі, що обумовлює простоту сприйняття її конструкцій користувачами БД;
2) наявність розвиненої математичної теорії реляційних БД, що обумовлює коректність її застосування.
Основним об'єктом реляційної бази даних є таблиця. Як і кожна двовимірна таблиця, таблиця реляційної бази даних складається з рядків і стовпців. Для зберігання даних про сутності деякої предметної області може бути використано кілька таблиць, які можуть бути пов'язані між собою.
Сутність у предметній області – це множина об’єктів, які мають однаковий набір параметрів.
Розглянемо предметну область "Гуртки та учні":
Рядок таблиці реляційної бази даних називають записом, або кортежем. Запис містить значення властивостей одного екземпляра сутності.
Стовпець таблиці реляційної бази даних називають полем, або атрибутом. Поле має ім'я, яке відображає назву властивості. Поле містить множину значень однієї властивості всіх екземплярів сутності. Дані, що містяться в кожному полі таблиці, є однотипними.
Наприклад. Таблиця Учень і в ній записи для 20 учнів. Таблиця має назви полів: № п/п, ПІП, Дата народження, Адреса, Телефон.
Це означає, що є сутність Учень і вона складається з 20 екземплярів (записів, кортежів), які мають властивості, які задані атрибутами(полями): № п/п, ПІП, Дата народження, Адреса, Телефон. Для кожного учня вказані його особисті властивості: номер, прізвище, ім’я, по батькові, дата народження, адреса, телефон.
У реляційній моделі даних передбачено обов'язкову вимогу ідентифікації екземплярів сутності за рахунок унікальності набору значень властивостей. Для таблиці реляційної бази даних це означає, що значення в одному з полів не повинні повторюватися. Таке поле називають ключовим, або ключем таблиці. Ключові поля ще називають ідентифікаторами. В окремих реалізаціях реляційних баз даних допускається ідентифікація об'єкта бази даних за набором значень кількох властивостей, тобто ключем буде набір даних з кількох полів, на-приклад трьох полів Прізвище, Ім'я, По батькові.
Таблиця з набором стовпців, кожний з яких містить значення з певної скінченної множини, з точки зору математики, задає відношення між множинами. Тому для опису структури даних Кодд використав термін «геіаііоп» (англ. геіагіоп - відношення), а модель даних стали називати реляційною.
Ключем або ключовим полем називається унікальне значення, яке не повторюється і дозволяє так чи інакше ідентифікувати сутність або частину сутності ПО.
( В попередньому прикладі ключовим полем можна обрати №п/п)
Враховуючи, що таблиця реляційної бази даних складається з елементів певних множин, то для опрацювання даних цієї таблиці використовуються операції над множинами.
Обмеження цілісності в реляційній моделі бази даних передбачає дотримання двох принципів:
1.Обов'язкова можливість ідентифікації об’єкта бази даних за рахунок унікальності набору значень його властивостей, указаних у рядку реляційної таблиці.
2.Обов'язкова коректність зв'язків між таблицями бази даних.
Розробник бази даних, проектуючи її схему, встановлює, які параметри мають об’єкти певної предметної області. Крім того, він має визначити, які зв’язки можуть існувати між об’єктами. Інакше кажучи, розробник будує модель предметної області, яку в теорії баз даних називають моделлю «сутність-зв’язок». Це найперше завдання, яке виконують ще до того, як схема бази даних буде створена в СУБД.
Наприклад (класифікація за множинністю).
Зв’язок 1:1. Сутність Гуртки і сутність Керівники гуртків. Тут одному екземпляру сутності Гуртки відповідає тільки один екземпляр сутності Керівники гуртків (один гурток має тільки одного керівника і, навпаки, коли одна людина може бути керівником тільки одного гуртка.)
Зв’язок 1:М. Сутність Гуртки і сутність Учні. Тут одному екземпляру сутності Гуртки відповідає кілька екземплярів сутності Учні ( один гурток відвідують багато учнів).
Зв’язок М:1. Сутність Гуртки і сутність Учні. Тут багатьом екземплярам сутності Гуртки відповідає один екземпляр сутності Учні ( багато гуртків відвідує один учень).
Зв’язок М:М. Сутність Учні і сутність Гуртки. Тут багатьом екземплярам сутності Учні відповідають багато екземплярів сутності Гуртки ( багато учнів відвідують багато гуртків).
Наведіть приклади. Обговоріть їх.
Наприклад (класифікація за повнотою).
У попередньому прикладі зв’язок 1:1 повинен бути обов’язковим, тому що гурток без керівника існувати не може і, навпаки, керівника гуртка без гуртка бути не може. Усі інші звязки у попередніх прикладах 1:М, М:1, М:М не обов'язкові, тому що учні відвідують гуртки за бажанням. Учень може не відвідувати гуртки, може відвідувати один гурток, а може відвідувати багато гуртків.
Наведіть приклади. Обговоріть їх.
Під час створення ER-моделі використовають спеціальні графічні позначення сутностей, властивостей, зв’язків. Набір таких умовних позначень називають нотацією.
Ще раз зазначимо, що в будь-якій базі даних зберігаються не просто відомості, а факти. Отже, модель «сутність-зв’язок» встановлює правила збереження фактів у базі даних і головний критерій якості цієї моделі є таким:
Виконати завдання:
Визначте, які ключі можуть мати вказані сутності. Якщо з наведених атрибутів утворити ключ неможливо, вкажіть, які атрибути необхідно додати, щоб утворити з них ключі.
- Холодильник (модель, об’єм, рік випуску, серійний номер).
- Ріка (назва, довжина).
- Місто (назва, кількість населення, рік заснування, область, держава).
- Авіарейс (аеропорт відльоту, аеропорт посадки, дата відльоту).
Домашнє завдання
Виконати завдання:
Побудуйте модель «сутність-зв’язок» для описаної далі предметної області.
Визначте:
- сутності;
- атрибути сутностей;
- ключі;
- зв’язки між сутностями;
- типи зв’язків.
Предметна область «Автомобілі». Про кожен автомобіль відомо: його реєстраційний номер в ДАІ, рік випуску, марка, а також хто є власником автомобіля. Про власника відомо: прізвище та ім’я, а також номер прав водія. Щодо кожної марки автомобіля відома її назва, об’єм та потужність двигуна, а також тип автомобіля (седан, хетчбек, джип тощо). На автомобілі виписують страхові поліси, у яких зазначається термін початку та завершення дії, тип страховки, страхова сума та назва компанії-страхувальника. На один автомобіль може бути виписано багато страхових полісів.