|
|
Категории: АстрономияБиология География Другие языки Интернет Информатика История Культура Литература Логика Математика Медицина Механика Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Транспорт Физика Философия Финансы Химия Экология Экономика Электроника |
Головний принцип семантичного моделювання.Хоч би як добре працювала машина, вона зможе розв'язувати всі задачі, Що ставляться перед нею, але сама жодної задачі не придумає. А. Ейнштейн Модель «сутність-зв’язок» предметної області. Поняття сутності, атрибута, ключа, зв’язку. Правила побудови моделі даних предметної області. Класифікація зв’язків за множинністю. Мета. Навчальна.Ввести поняття моделі «сутність-зв’язок» предметної області; поняття сутності, атрибута, ключа, зв’язку; ознайомити з правилами побудови моделі даних предметної області; з класифікацією зв’язків за множинністю. Розвиваюча.Розвивати логічне та алгоритмічне мислення. Виховна.Виховувати культуру мовлення. Тип уроку.Урок засвоєння нових знань. Учні повинні знати: · Учні повинні уміти: · Матеріали для роботи з учнями: · Основи баз даних: Навч. посіб. / І.О.Завадський. - К.: Видавець І.О. Завадський, 2013. · Мультимедійне обладнання; · Презентація “Модель “сутність-зв’язок””. · База даних (Вікіпедія). План 1. Організація початку уроку 2. Правила ТБ при роботі в кабінеті Інформатики. 3. Мотивація навчальної діяльності. 4. Актуалізація опорних знань. 5. Вивчення нового матеріалу. 6. Побудова математичної моделі до задачі. 7. Запитання до уроку. 8. Домашнє завдання. Хід уроку 1. Організація початку уроку. 3. Актуалізація опорних знань. 1. Стан чого відображує база даних? 2. 3 чого складається ’предметна область? 3. Чим відрізняється схема бази даних від її наповнення? 4. Що таке цілісність даних? Тестування “Основи баз даних” 4. Мотивація навчальної діяльності. Із попереднього розділу ви знаєте, що база даних відображає стан об’єктів певної предметної області та зв’язки між ними. Розробник бази даних, проектуючи її схему, встановлює, які параметри мають ці об’єкти. Крім того, він має визначити, які зв’язки можуть існувати між об’єктами. Інакше кажучи, розробник будує модель предметної області, яку в теорії баз даних називають моделлю «сутність зв'язок». Це найперше завдання, яке виконують ще до того, як схема бази даних буде створена в СКБД, і саме над ним ми працюватимемо сьогодні. 5. Вивчення нового матеріалу. Об’єкти, сутності, зв’язки Як уже наголошувалося, будь-яка предметна область містить об’єкти. Наприклад, у предметній області «школа» об’єктами можуть бути учителі Михайлюк Дмитро Семенович та Петрова Ніна Володимирівна, класи 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. Визначте типи зв’язків та зобразіть зв’язки графічно: · курка несе яйця; · у яйці є жовток; · річка протікає територією держави; · у команді 11 футболістів. Ключові атрибути Якщо ви відкриваєте рахунок у банку, купляєте квиток на літак або вступаєте у вищий навчальний заклад, вас неодмінно попросять вказати номер і серію свого паспорта. Чому саме так, чому недостатньо, скажімо, назвати своє прізвище, ім’я та по батькові? Річ у тім, що номер та серія паспорта однозначно ідентифікують особу, оскільки ніколи не повторюються. Про ім’я, прізвище та по батькові цього не можна сказати, і в принципі можлива ситуація, коли Іванчук Дмитро Васильович прийде до банку і забажає зняти кошти з рахунку іншого Іванчука Дмитра Васильовича. Якби особа, якій належить рахунок, визначалася за прізвищем, ім’ям та по батькові, в описаний спосіб можна було б вкрасти гроші. Атрибут, значення якого не може повторюватися, називають ключовим або просто ключем. Ключі відіграють у базах даних украй важливу роль, адже саме за їх допомогою СКБД ідентифікує об’єкти. Ви вже зрозуміли, що для сутності Учитель таким атрибутом може бути номер та серія паспорту (назвемо його просто паспорт). Об’єкти сутності Клас у предметній області «школа» можна ідентифікувати за атрибутомназва, адже в одній школі не може бути двох класів з однаковою назвою. Зазначимо, що ключові атрибути на моделі «сутність-зв’язок» позначаються символом «*» (рис. 2.6). Дещо складніша ситуація з ключем сутності Учень. Більшість учнів не мають паспорта, а прізвище та ім’я в різних учнів можуть бути однаковими. Можна припустити, що в одній школі не може бути двох учнів з однаковим гірізви щем та ім’ям, які народилися в один день, — тоді ключ сутності Учень складатиметься з трьох атрибутів: прізвище, ім'я, дата народження (рис. 2.7, а). Коли ключ складається з кількох атрибутів, окремі значення кожного з них можуть повторюватися, а комбінації значень усіх ключових атрибутів — ні. Проте в дуже рідкісних випадках припущення про неіснування двох учнів з однаковим прізвищем та ім’ям, що народилися в один день, може не справджуватися і, крім того, оперувати в СКБД з ключем, який містить три атрибути, незручно. Тому часто вихід знаходять у додаванні штучного ключового атрибута, який можна назвати код (рис. 2.7, б). У такому випадку учні школи в базі даних ідентифікуватимуться за спеціальним, штучно створеним, кодом. Після назв сутностей у дужках вказано їхні атрибути. Визначте, які ключі мають ці сутності. Якщо з наведених атрибутів утворити ключ неможливо, вкажіть, які атрибути слід додати. · Холодильник (модель, об’єм, рік випуску, серійний номер). · Ріка (назва, довжина). · Місто (назва, кількість населення, рік заснування, область, держава). · Авіарейс (аеропорт відльоту, аеропорт посадки, дата відльоту). Побудова моделі «сутність-зв’язок» У попередніх підрозділах розділу 17 ми фактично побудували модель «сутність-зв’язок» для предметної області «школа». Опишемо детально ту частину предметної області, якої стосується ця модель. Про учнів певної школи відомі їхні імена, прізвища, дати народження та стать. Кожен учень вчиться у певному класі. У класах викладають вчителі. Потрібно зберігати відомості про номер та серію паспорта, прізвище, ім*я та по батькові, а також про спеціальність вчителів. Деякі вчителі є класними керівниками. Модель «сутність-зв’язок» описаної частини предметної області подано на рис. 2.8. Зауважте, що в розглянутій частині предметної області «школа», на додаток до трьох зображених зв’язків між сутностями, можна виявити й інші, зокрема «учитель навчає учня». Проте зображувати цей зв’язок на моделі «сутність-зв’язок» неможна, оскільки він є наслідком вже показаних зв’язків: які вчителі навчають того чи іншого учня, зрозуміло з того, у якому класі цей учень вчиться та які вчителі в цьому класі викладають. Щоб краще зрозуміти, чому зв’язок «учитель навчає учня» зайвий, припустимо, що ми його створили. Припустимо також, що учитель Петрова Ніна Володимирівна викладає у класах 10А і 11А, тобто зв’язана з ними зв’язком «учитель викладає в класі». Нам нічого не завадить, однак, зв’язати цього вчителя і з учнями 11Б класу через новостворений зв’язок «учитель навчає учня». Вийде, що вчитель навчає учнів того класу, у якому не викладає, що суперечить здоровому глузду. Якщо ж модель «сутність-зв’язок» має такий вигляд, як на рис. 2.8, то описана ситуація неможлива в принципі. Зазначимо, що додатковий зв’язок між учителем і учнем стане доцільним, якщо ми забажаємо відображувати відомості про індивідуальні позакласні заняття. Однак у наведеному вище описі предметної області про це нічого не сказано. Головний принцип семантичного моделювання Міркування, подібні до наведених у попередньому підрозділі, дозволяють сформулювати головний принцип, якому має відповідати правильно побудована модель «сутність-зв’язок» предметної області, або, інакше кажучи, головний принцип семантичного моделювання. Але перш ніж його формулювати, зробимо одне важливе зауваження. А саме, зазначимо, що в будь- якій базі даних зберігаються не просто відомості, а факти. Наприклад, той факт, що вчитель із паспортом СН 410268 має прізвище Михайлюк, ім’я Дмитро, по батькові Семенович, стать чоловічу та спеціальність математик, може зберігатися в таблиці Учителі, а той факт, що Михайлюк Дмитро Семенович викладає в 11А класі, зберігатиметься завдяки зв’язку «учитель викладає у класі». З описаної точки зору модель «сутність-зв’язок» встановлює правила збереження фактів у базі даних і головний критерій якості цієї моделі є таким. Головний принцип семантичного моделювання. Модель “сутність-зв’язок” повинна дозволяти зберігання будь-якого факту лише в одному місці. Зауважимо, що введення до зображеної на рис. 2.8 моделі зв’язку «учитель навчає учня» порушить цей принцип: той факт, що певний учитель навчає певного учня, зберігатиметься і в цьому зв’язку, і у зв’язках «учитель викладає в класі» та «учень навчається в класі», разом узятих. Для допитливих. Головний принцип семантичного моделювання дуже вдало формулюється через поняття надлишково- сті інформації (згадайте матеріал 9-го класу): модель «сутність-зв’язок» потрібно проектувати так, щоб інформація, яка зберігатиметься у спроектованих за цією моделлю БД, мала якомога меншу надлишковість. Висновки
7. Завдання для самостійного виконання Побудуйте моделі «сутність-зв’язок» для описаних далі предметних областей. Визначте: · сутності; · атрибути сутностей; · ключі; · зв’язки між сутностями; · типи зв’язків.
ВКАЗІВКА. У моделі «сутність-зв’язок» цієї предметної області одна з сутностей буде зв’язана сама з собою.
ВКАЗІВКА. У моделі «сутність-зв’язок» цієї предметної області між двома тими самими сутностями потрібно буде створити два різних зв’язки.
ВКАЗІВКА. У моделі «сутність-зв’язок» цієї предметної області варто використати зв’язок типу «два-до-багатьох», а також два різних зв’язки між двома тими самими сут- ностями.
ВКАЗІВКА. Для адекватного моделювання цієї предметної області потрібно створити зв’язок відразу між трьома сут- ностями. Спробуйте самостійно здогадатися, які бувають типи зв’язків між трьома сутностями та за яким критерієм ці типи визначати.
ВКАЗІВКА. Якщо кожну з сутностей Лінія, Коло, Прямокутник і т. д. зв’язувати із сутностями Зображення та Група, модель вийде надто захаращеною зв’язками, а в сутностях фігур повторюватимуться ті самі атрибути. Натомість краще створити сутність Фігура.Подумайте, якою буде множинність її зв’язків з сутностями Лінія, Коло, Прямокутник тощо. 8. Питання для роздумів 1. Вкажіть, які ключові атрибути можуть мати сутності Населений пункт, Країна, Автобус, Дачна ділянка, Книжка. 2. Що з переліченого нижче може бути сутністю у предметній області «школа»: класна кімната, номер класної кімнати, директор, навчальна дисципліна, школа? 3. Одним із атрибутів сутності Клас є кількість учнів. Чи варто відображати цей атрибут у моделі «сутність-зв’язок», поданій на рис. 2.8? Відповідь аргументуйте. 4. Які зв’язки в моделях, побудованих у завданнях для самостійного виконання, є обов’язковими? 5. Чи може сутність мати більше одного ключа? Якщо відповідь «так», наведіть приклад, якщо «ні» — аргументуйте. Зауважте, що йдеться не про той випадок, коли до складу одного ключа входить кілька атрибутів, а саме про той, коли є кілька ключів. 6. Чому у завданні для самостійного виконання № 5 недостатньо створити два або три зв’язки, кожен із яких зв’язуватиме лише дві сутності? 9. Домашнє завдання 1. Опрацювати конспект. 2. Виконати завдання згідно своєму варіанту. 3. Підготувтися до тестування. |