Урок 16 Інформатика 11
Модель «сутність-зв’язок» предметної області. Поняття відношення, атрибута, ключа, зв’язку. Правила побудови моделі даних предметної області. Класифікація зв’язків за множинністю.
Мета.
Навчальна. Ввести поняття моделі «сутність-зв’язок» предметної області; поняття сутності, атрибута, ключа, зв’язку; ознайомити з правилами побудови моделі даних предметної області; з класифікацією зв’язків за множинністю.
Розвиваюча. Розвивати логічне та алгоритмічне мислення.
Виховна. Виховувати культуру мовлення.
Тип уроку. Урок засвоєння нових знань.
Учні повинні знати:
Учні повинні уміти:
Матеріали для роботи з учнями:
План
Хід уроку
1. Організація початку уроку.
3. Актуалізація опорних знань.
Тестування “Основи баз даних”
4. Мотивація навчальної діяльності.
Із попереднього розділу ви знаєте, що база даних відображає стан об’єктів певної предметної області та зв’язки між ними. Розробник бази даних, проектуючи її схему, встановлює, які параметри мають ці об’єкти. Крім того, він має визначити, які зв’язки можуть існувати між об’єктами. Інакше кажучи, розробник будує модель предметної області, яку в теорії баз даних називають моделлю «сутність зв'язок». Це найперше завдання, яке виконують ще до того, як схема бази даних буде створена в СКБД, і саме над ним ми працюватимемо сьогодні.
5. Вивчення нового матеріалу.
Вчені запевняють, що зберігання великих обсягів даних виправдано тільки за умови, якщо пошук потрібних даних здійснюється швидко і подаються вони в доступній для розуміння формі. Ці умови забезпечують сучасні технології зберігання даних. Основою цих технологій є комп’ютеризовані бази даних (БД).
База даних – це впорядкований за певними правилами набір взаємопов’язаних даних.
Перш ніж створювати базу даних потрібно вивчається предметна область, розробляється модель предметної області, для якої створюється ця БД. У ній указуються типи об’єктів, що будуть включені до бази даних, і зв’язки між ними. Для наочності таку модель можна подати у графічному вигляді.
Розглянемо приклад моделі предметної області Бібліотека в школі (рис. 1).
У прямокутниках записані назви типів об’єктів (груп об’єктів) предметної області, стрілки вказують на зв’язки між ними, а написи біля стрілок описують ці зв’язки. Бібліотекар заздалегідь опрацьовує книги і організовує видачу книг учням. Учні під керівництвом бібліотекаря отримують книгу. Учні належать до певного класу.
Тип об’єкта предметної області називають сутністю. Сутностями розглянутої вище предметної області є Книги, Бібліотекар, Учень, Клас, Формуляр. Сутність – це сукупність однотипних об’єктів (рис.1). Окремі об’єкти сутності називаються екземплярами сутності.
Сутність предметної області – це тип реального або уявного об’єкта предметної області (рис.2).
Рис. 2. Класифікація типів зв’язків.
Модель предметної області називають моделлю «сутність–зв’язок», або ER-моделлю, або ER-діаграмою. Під час створення ER-моделі використовуються спеціальні позначення типів сутності, властивостей екземплярів сутностей, зв’язків та ін. Набір таких умовних позначень називають нотацією.
Таблиця 1
Основні елементи ER-діаграми
Умовне позначення | Що позначає |
сутність предметної області | |
властивість екземпляра сутності | |
зв’язок | |
лінія обов’язкового зв’язку | |
лінія необов’язкового зв’язку |
База даних є досить складним за своєю структурою об’єктом, то перед створенням вона заздалегідь проектується – створюється модель даних (рис.3).
Під час створення моделі даних використовують ту чи іншу модель даних (рис.4).
Рядок таблиці реляційної бази даних називають записом, або кортежем.
Стовпець таблиці реляційної бази даних називають полем, або атрибутом. Поле має ім’я, яке відображає назву властивості. Поле містить множину значень однієї властивості всіх екземплярів сутності. Дані, що містяться в кожному полі таблиці, є однотипними. Для кожного поля під час проектування таблиці бази даних встановлюється тип даних.
У таблиці реляційної бази даних в одному з полів не повинні повторюватися дані. Таке поле називають ключовим, або ключем таблиці або ідентифікатором.
Об’єкти, сутності, зв’язки
Як уже наголошувалося, будь-яка предметна область містить об’єкти. Наприклад, у предметній області «школа» об’єктами можуть бути учителі Михайлюк Дмитро Семенович та Петрова Ніна Володимирівна, класи 10А і 11Б тощо. При цьому класи 10А і 11Б є однотипними об’єктами (оскільки вони обидва є класами), а клас 10А і учитель Михайлюк Дмитро Семенович — об’єктами різного типу. Замість фрази «однотипні об’єкти» кажуть також, що об’єкти належать до однакової сутності, наприклад учителі Михайлюк Дмитро Семенович та Петрова Ніна Володимирівна належать до сутності «учитель», а класи 10А та 11Б — до сутності «клас». Критерій того, чи належать об’єкти до однієї сутності, дуже простий: такі об’єкти повинні мати однаковий набір параметрів.
Сутність у предметній області — це множина об’єктів, які мають однаковий набір параметрів.
Об’єкти, що належать до однієї сутності, мають не лише однаковий набір параметрів, а й однотипні зв’язки з об’єктами інших сутностей. Наприклад, будь-який клас може бути зв’язаний з учнем зв’язком «учень вчиться у класі», а з учителем — зв’язком «учитель викладає у класі». Тому можна казати, що зв’язки властиві не лише об’єктам, а і сутностям. Твердження «учень вчиться у класі» та «учитель навчає клас» — приклади зв’язків саме між сутностями. (Прикладом зв’язку між об’єктами є твердження «учень Шпак Максим вчиться у 10А класі».) Так само можна казати, що не лише об’єкт, а й сама сутність має певний набір параметрів. Наприклад, сутність «учень» має такі параметри, як прізвище, ім’я, стать, зріст, дату народження тощо.
Тепер ми готові точно визначити призначення моделі «сутність- зв’язок».
Модель «сутність-зв’язок» призначено для графічного зображення сутностей певної предметної області, їх параметрів та зв’язків між ними.
Для допитливих.
Модель «сутність-зв’язок» називають також ЕR-моделлю (від англ. Еntity-Relashionship), а процес її побудови — ЕR-моделювання, або семантичним моделюванням.. «Семантичний» означає «змістовий», і це слово підкреслює, що під час ЕR-моделювання ми виявляємо зміст сутностей у предметній області та зв’язків між ними.
Завдання 2.1
Назвіть кілька сутностей з предметних областей «залізниця», «адміністративний устрій», «водопостачання». Які параметри мають ці сутності? Які між ними можуть існувати зв’язки?
Графічні позначення в моделі «сутність-зв’язок»
Сутності в моделі «сутність-зв’язок» позначаються прямокутниками, всередині яких записуються їхні назви. Назви параметрів сутностей (у теорії реляційних баз даних їх називають атрибутами) записуються під прямокутниками сутностей і підкреслюються. Від прямокутника сутності проводять вертикальну лінію вздовж усіх атрибутів. Як приклад на рис. 2.1 зображено сутність Учитель із атрибутами паспорт, прізвище, ім'я, по батькові, стать та спеціальність.
Зв’язки між сутностями позначаються ромбами, що з’єднуються з прямокутниками. Всередині ромба записують дієслово або словосполучення, що визначає зміст зв’язку. Якщо записано лише дієслово, над ним часто малюють стрілку, що показує, в якому порядку дієслово сполучає іменники-сутності. Так, на рис. 2.2 зображено зв’язок між сутностями Учитель та Клас. Стрілка означає, що саме учитель навчає клас, а не клас навчає учителя.
Різновиди зв’язків
Поставимо просте запитання: скільки учнів може бути в одному класі? Очевидно, відповідь на нього — «багато». Тепер поставимо зворотне запитання: у скількох класах може навчатися кожен учень? Відповідь також очевидна: в одному. Все це означає, що клас зв’язано з учнем зв’язком «один-до-багатьох».
На моделі «сутність-зв’язок» позначимо цей зв’язок словом «вчиться»: учень вчиться у класі. Біля лінії, що з’єднує ромб зв’язку з прямокутником «Клас», ми маємо записати символ «1», адже учень вчиться в одному класі. А біля лінії, що з’єднує ромб зв’язку з прямокутником «Учень», ми маємо записати символ «» (нескінченність, багато), адже у класі вчиться багато учнів (рис. 2.3).
Загалом зв’язки між сутностями бувають трьох типів:
Щоб зв’язок між сутностями А і В віднести до одного з цих трьох типів, слід відповісти на два запитання:
Як відповіді на ці запитання визначають типи зв’язків і як ці зв’язки позначаються графічно, стане зрозуміло після уважного розгляду табл. 2.1.
Таблиця 2.1. Різновиди зв’язків
Віднесення зв’язку до одного з трьох розглянутих типів називають класифікацією зв’язку за множинністю, а самі позначення «один» та «багато» — множинностями зв’язку з того чи іншого боку. Є й інші способи класифікації зв’язків, деякі з котрих ми розглянемо в наступному розділі. А зараз наведемо приклади зв’язків різної множинності.
Зв’язок «учитель навчає клас». У кожному класі можуть викладати багато вчителів. З іншого боку, кожен учитель може викладати в багатьох класах. Таким чином, зв’язок «учитель навчає клас» має тип «багато-до-багатьох» (рис. 2.4).
Рис. 2.4. Зображення зв’язку «багато-до-багатьох»
Зв’язок «учитель є класним керівником». Учитель може керувати лише одним класом, а у класі може бути тільки один класний керівник. Таким чином, зв’язок «учитель є класним керівником» має тип «один-до-одного» (рис. 2.5).
Для допитливих.
Крім трьох розглянутих типів множинності бувають й інші. Наприклад, батьки зв’язані з дітьми зв’язком типу «два-до-багатьох»: кожна дитина має двох батьків, а в кожного батька може бути скільки завгодно дітей.
Завдання 2.2.
Визначте типи зв’язків та зобразіть зв’язки графічно:
Ключові атрибути
Якщо ви відкриваєте рахунок у банку, купляєте квиток на літак або вступаєте у вищий навчальний заклад, вас неодмінно попросять вказати номер і серію свого паспорта. Чому саме так, чому недостатньо, скажімо, назвати своє прізвище, ім’я та по батькові? Річ у тім, що номер та серія паспорта однозначно ідентифікують особу, оскільки ніколи не повторюються. Про ім’я, прізвище та по батькові цього не можна сказати, і в принципі можлива ситуація, коли Іванчук Дмитро Васильович прийде до банку і забажає зняти кошти з рахунку іншого Іванчука Дмитра Васильовича. Якби особа, якій належить рахунок, визначалася за прізвищем, ім’ям та по батькові, в описаний спосіб можна було б вкрасти гроші.
Атрибут, значення якого не може повторюватися, називають ключовим або просто ключем. Ключі відіграють у базах даних украй важливу роль, адже саме за їх допомогою СКБД ідентифікує об’єкти. Ви вже зрозуміли, що для сутності Учитель таким атрибутом може бути номер та серія паспорту (назвемо його просто паспорт). Об’єкти сутності Клас у предметній області «школа» можна ідентифікувати за атрибутом назва, адже в одній школі не може бути двох класів з однаковою назвою.
Зазначимо, що ключові атрибути на моделі «сутність-зв’язок» позначаються символом «*» (рис. 2.6).
Дещо складніша ситуація з ключем сутності Учень. Більшість учнів не мають паспорта, а прізвище та ім’я в різних учнів можуть бути однаковими. Можна припустити, що в одній школі не може бути двох учнів з однаковим гірізви щем та ім’ям, які народилися в один день, — тоді ключ сутності Учень складатиметься з трьох атрибутів: прізвище, ім'я, дата народження (рис. 2.7, а). Коли ключ складається з кількох атрибутів, окремі значення кожного з них можуть повторюватися, а комбінації значень усіх ключових атрибутів — ні.
Проте в дуже рідкісних випадках припущення про неіснування двох учнів з однаковим прізвищем та ім’ям, що народилися в один день, може не справджуватися і, крім того, оперувати в СКБД з ключем, який містить три атрибути, незручно. Тому часто вихід знаходять у додаванні штучного ключового атрибута, який можна назвати код (рис. 2.7, б). У такому випадку учні школи в базі даних ідентифікуватимуться за спеціальним, штучно створеним, кодом.
Після назв сутностей у дужках вказано їхні атрибути. Визначте, які ключі мають ці сутності. Якщо з наведених атрибутів утворити ключ неможливо, вкажіть, які атрибути слід додати.
Побудова моделі «сутність-зв’язок»
У попередніх підрозділах розділу 17 ми фактично побудували модель «сутність-зв’язок» для предметної області «школа». Опишемо детально ту частину предметної області, якої стосується ця модель.
Про учнів певної школи відомі їхні імена, прізвища, дати народження та стать. Кожен учень вчиться у певному класі. У класах викладають вчителі. Потрібно зберігати відомості про номер та серію паспорта, прізвище, ім*я та по батькові, а також про спеціальність вчителів. Деякі вчителі є класними керівниками.
Модель «сутність-зв’язок» описаної частини предметної області подано на рис. 2.8.
Зауважте, що в розглянутій частині предметної області «школа», на додаток до трьох зображених зв’язків між сутностями, можна виявити й інші, зокрема «учитель навчає учня». Проте зображувати цей зв’язок на моделі «сутність-зв’язок» неможна, оскільки він є наслідком вже показаних зв’язків: які вчителі навчають того чи іншого учня, зрозуміло з того, у якому класі цей учень вчиться та які вчителі в цьому класі викладають.
Щоб краще зрозуміти, чому зв’язок «учитель навчає учня» зайвий, припустимо, що ми його створили. Припустимо також, що учитель Петрова Ніна Володимирівна викладає у класах 10А і 11А, тобто зв’язана з ними зв’язком «учитель викладає в класі». Нам нічого не завадить, однак, зв’язати цього вчителя і з учнями 11Б класу через новостворений зв’язок «учитель навчає учня». Вийде, що вчитель навчає учнів того класу, у якому не викладає, що суперечить здоровому глузду. Якщо ж модель «сутність-зв’язок» має такий вигляд, як на рис. 2.8, то описана ситуація неможлива в принципі.
Зазначимо, що додатковий зв’язок між учителем і учнем стане доцільним, якщо ми забажаємо відображувати відомості про індивідуальні позакласні заняття. Однак у наведеному вище описі предметної області про це нічого не сказано.
Головний принцип семантичного моделювання
Міркування, подібні до наведених у попередньому підрозділі, дозволяють сформулювати головний принцип, якому має відповідати правильно побудована модель «сутність-зв’язок» предметної області, або, інакше кажучи, головний принцип семантичного моделювання. Але перш ніж його формулювати, зробимо одне важливе зауваження. А саме, зазначимо, що в будь- якій базі даних зберігаються не просто відомості, а факти. Наприклад, той факт, що вчитель із паспортом СН 410268 має прізвище Михайлюк, ім’я Дмитро, по батькові Семенович, стать чоловічу та спеціальність математик, може зберігатися в таблиці Учителі, а той факт, що Михайлюк Дмитро Семенович викладає в 11А класі, зберігатиметься завдяки зв’язку «учитель викладає у класі».
З описаної точки зору модель «сутність-зв’язок» встановлює правила збереження фактів у базі даних і головний критерій якості цієї моделі є таким.
Головний принцип семантичного моделювання.
Модель “сутність-зв’язок” повинна дозволяти зберігання будь-якого факту лише в одному місці.
Зауважимо, що введення до зображеної на рис. 2.8 моделі зв’язку «учитель навчає учня» порушить цей принцип: той факт, що певний учитель навчає певного учня, зберігатиметься і в цьому зв’язку, і у зв’язках «учитель викладає в класі» та «учень навчається в класі», разом узятих.
Для допитливих. Головний принцип семантичного моделювання дуже вдало формулюється через поняття надлишково- сті інформації (згадайте матеріал 9-го класу): модель «сутність-зв’язок» потрібно проектувати так, щоб інформація, яка зберігатиметься у спроектованих за цією моделлю БД, мала якомога меншу надлишковість.
6. Висновки
7. Завдання для самостійного виконання
Побудуйте моделі «сутність-зв’язок» для описаних далі предметних областей. Визначте:
ВКАЗІВКА. У моделі «сутність-зв’язок» цієї предметної області одна з сутностей буде зв’язана сама з собою.
ВКАЗІВКА. У моделі «сутність-зв’язок» цієї предметної області між двома тими самими сутностями потрібно буде створити два різних зв’язки.
ВКАЗІВКА. У моделі «сутність-зв’язок» цієї предметної області варто використати зв’язок типу «два-до-багатьох», а також два різних зв’язки між двома тими самими сут- ностями.
ВКАЗІВКА. Для адекватного моделювання цієї предметної області потрібно створити зв’язок відразу між трьома сут- ностями. Спробуйте самостійно здогадатися, які бувають типи зв’язків між трьома сутностями та за яким критерієм ці типи визначати.
ВКАЗІВКА. Якщо кожну з сутностей Лінія, Коло, Прямокутник і т. д. зв’язувати із сутностями Зображення та Група, модель вийде надто захаращеною зв’язками, а в сутностях фігур повторюватимуться ті самі атрибути. Натомість краще створити сутність Фігура. Подумайте, якою буде множинність її зв’язків з сутностями Лінія, Коло, Прямокутник тощо.
8. Питання для роздумів
9. Домашнє завдання