Поглиблене семантичне моделювання
Завантажити презентаціюПрезентація по слайдам:
Спецкурс “Основи баз даних” Розділ 3. Поглиблене семантичне моделювання За підручником І. О. Завадського
Повторення Наведіть приклад зв'язку між об'єктами та зв'язку між сутностями. Які бувають типи зв'язків за множинністю та як ці типи визначати? Сформулюйте головний принцип семантичного моделювання. Який атрибут або набір атрибутів називають ключем сутності?
Мотивація навчання У попередньому розділі ми розглянули 7-8 фундаментальних понять семантичного моделювання, таких як сутність, атрибут, зв'язок між двома сутностями, множинність зв'язку та ін. Загалом під час моделювання предметних областей застосовують більше двох сотень концепцій, лише деякі з котрих можна зобразити графічно. Сьогодні ми навчимося використовувати ще кілька ідей та понять, які за важливістю та частотою застосування можна вважати наступними за фундаментальними. Як приклад продовжимо розглядати предметну область «школа», поступово додаючи до неї нові сутності та розширюючи її на всі школи певного регіону.
Обов'язковість зв'язків Щоб визначити множинність зв’язку, потрібно відповісти на запитання: «Зі скількома об’єктами сутності А може бути зв'язаний об'єкт сутності В?» Слова «може бути» у ньому вжито не випадково, оскільки в загальному випадку наявність зв'язку між сутностями означає, об’єкт лише може, а не повинен бути зв'язаний з іншим об'єктом або об'єктами. Проте інколи об'єкти саме повинні брати участь у зв'язках, і такі зв'язки називають обов'язковими з того чи іншого боку. Наприклад, кожен учень повинен вчитися в певному класі й тому зв'язок «учень вчиться у класі» є обов'язковим з боку сутності Учень. Обов'язковість зв’язку позначається подвійною лінією. Зображення обов'язковості зв'язку в моделі «сутність-зв'язок» Клас Учень вчиться 1
Обов'язковість зв'язків Зв'язок «учитель є класним керівником» обов'язковий для класу, адже немає класів без класних керівників. Можна помітити й інші «обов'язковості»: у класі обов'язково мають бути учні, учитель має обов'язково викладати принаймні в одному класі та в кожному класі обов'язково має викладати принаймні один вчитель. Однак підтримувати три останні вимоги обов'язковості складно з технічної точки зору. Легко реалізувати лише обов'язковість зв'язку «один-до-багатьох» з боку «багато» та зв'язку «один-до-одного» з якогось одного боку. З урахуванням цього обов'язковість зв'язків у моделі предметної області «школа» слід подати так, як показано на рис. Обов'язкові зв'язки у моделі «сутність-зв'язок» для предметної області «школа»
Слабкі сутності Розширимо предметну область з однієї школи на всі школи міста. Тоді у предметній області з'явиться сутність Школа. Її атрибутами можуть бути назва та адреса, причому назва є ключем, оскільки в одному місті назви шкіл не можуть повторюватися. Коли ми розглядали одну школу, вона була не сутністю предметної області, а самою предметною областю і тому на діаграмі «сутність-зв'язок» не відображалася. Очевидно, що між школою та класом існує зв'язок «школа містить клас». Школа може містити багато класів, але кожен клас належить тільки одній школі, тому множинність цього зв'язку — «один-до-багатьох». Звичайно, сутність Школа бере участь і в інших зв'язках, наприклад «учень вчить ся у школі» та «вчитель працює у школі». Але відображення зазначених зв'язків на моделі порушило б головний принцип семантичного моделювання. містить 1 Відображення сутності Школа на моделі «сутність-зв'язок» Назва школи *
Завдання 3.1 Поясніть, чому відображення на моделі «сутність-зв'язок» зв’язків «учень вчиться у школі» та «вчитель працює у школі» порушує головний принцип семантичного моделювання.
Слабкі сутності У результаті Розширення предметної області на кілька шкіл виникає проблема з ключем сутності Клас. Адже тепер об’єктами цієї сутності будуть класи різних шкіл, а в різних шко лах назви класів можуть повторюватися. Тобто сам по собі атрибут Назва вже не є ключем сутності Клас. Однак неважко помітити, що клас однозначно ідентифікує пара атрибутів назва класу + назва школи, адже в межах однієї школи назви класів не повторюються. Хоча атрибут Назва школи не належить сутності Клас, ця сутність може його «запозичити» з метою доповнення ключа.
Слабкі сутності Сутність, якій не вистачає власних атрибутів для утворення ключа, називають слабкою і позначається на моделі «сутність-зв'язок» подвійним прямокутником. Її ключ утворюють з деяких її власних атрибутів, а також ключів інших сутностей. Зв'язки слабкої сутності з тими сутностями, що доповнюють її ключ, називаються підтримувальними та позначаються подвійними ромбами. Слабка сутність і підтримувальний зв'язок
Завдання 3.2 На рис. зображено модель предметної області «галузь промисловості», але без зазначення ключів сутностей. З'ясуйте, яка сутність або сутності слабкі, які їхні зв'язки є підтримувальними та якими атрибутами слід ці сутності доповнити, щоб сформувати їхні ключі. має випускає працює 1 1 1 Модель «сутність-зв'язок» предметної області «галузь промисловості»
Зв'язок «є» Додамо до нашої предметної області сутність Директор. Вона матиме ті самі атрибути, що й сутність Учитель: номер паспорта, прізвище, ім'я, по батькові, стать та спеціальність. Більше того, директор має всі ті зв'язки, що й учитель: він може викладати в класах, а також може бути класним керівником (хоча це трапляється рідко). Така подібність директора до вчителя пояснюється дуже просто, адже директор є вчителем. Інакше кажучи, сутності Учитель та Директор зв'язані специфічним зв'язком «є», який називається також зв'язком «загальний тип-різновид» Директора можна розглядати як різновид учителя, а вчителя вважати більш загальним, ніж директор, типом педагогічного працівника.
Зв'язок «є» Зв'язок «є» на ER-моделі позначається не ромбом, а рівнобедреним трикутником, вершина якого вказує на загальний тип. Множинність будь-якого зв’язку «є» становить «один-до-одного». Справді, кожен директор є одним учителем, а кожен учитель може бути не більш, ніж одним директором. Цей зв'язок завжди обов’язків з боку сутності-різновиду і необов’язковий з боку загального типу. У нашому прикладі кожен директор обов’язково повинен бути вчителем, але не кожен учитель повинен бути директором. Директор 1 1 є Зв'язок «є»
Завдання 3.3 Нижче перелічено пари сутностей. Вкажіть, у яких парах існують зв'язки «є» та зобразіть їх графічно. керівник та підлеглий; тварина і ссавець; книга і журнал; носій інформації та флешка; трамвай і пасажир; автомобіль і колесо; автомобіль і транспортний засіб.
Зв'язок між кількома сутностями Тепер додамо до предметної області «школи» сутність Предмет. Зрозуміло, що вона буде зв'язана з сутністю Учитель, адже вчителі викладають предмети, та Класи, оскільки класи предмети вивчають. Легко побачити, що множинність обох цих зв'язків буде «багато-до-багатьох», а отже на моделі «сутність-зв'язок» вони відображатимуться так, як показано на рис. а. Однак така модель є недосконалою. Річ у тім, що вона не дозволяє з'ясувати, який учитель у якому класі який предмет викладає. Справді, припустимо, що Сошко Катерина Миколаївна є вчителем біології та хімії, але в 10 А класі вона викладає тільки біологію і цей факт нам потрібно зберігати в базі даних. Зв'язок «учитель викладає предмет» дає змогу вказати, що ця вчителька викладає біологію та хімію, зв'язок «клас вивчає предмет» - те, що 10А клас вивчає біологію, хімію та інші предмети, а зв‘язок «учитель навчає клас» — те, що К.М. Сошко веде заняття в 10 А та інших класах. Чи випливає з цих трьох фактів те, що Катерина Миколаївна Сошко викладає біологію 10 А класу? По міркуйте добре над цим запитанням. Відповідь буде негативною, оскільки жоден факт не вказує на те, що вчителька Сошко ви кладає 10 А класу саме біологію, а не хімію.
Зв'язок між кількома сутностями Таким чином, для адекватного відображення предметної області недостатньо трьох зв'язків, кожен з яких з'єднує дві сутності (рис. а). Зв'язок «вчитель викладає предмет у класі» має з'єднувати відразу три сутності і зображується він так, як показано на рис. б Зазначимо, що зв'язки, які з'єднують три сутності, називаються тернарними, а ті, які з'єднують лише дві сутності, — бінарними. Інколи трапляються зв'язки між чотирма, п'ятьма або більшою кількістю сутностей. Зв'язок між п сутностями називається п -арним зв'язком, або зв'язком степені п. Зображення зв'язку між учителем, предметом і класом: а – недосконала модель; б – правильна модель
Тернарний зв'язок характеризується трьома множинностями, і щоб визначити їх, потрібно дати відповіді на три запитання, у нашому прикладі такі:
Тернарні зв’язки слід створювати з великою обережністю, оскільки дуже часто вистачає двох бінарних зв’язків там, де здається, існує зв'язок між трьома сутностями. Наприклад, маклери купляють акції компанії на біржі. Може здатися, що вислів «маклер купляє акцію компанії» відповідає тернарному зв’язку (рис. а). Однак насправді достатньо лише двох бінарних зв’язків (рис. б), оскільки кожна акція належить тільки одній компанії і дізнавшись, яку акцію придбав маклер, ми автоматично дізнаємось і про компанію, акція якої була куплена. Тернарний зв’язок у даному випадку помилковий, адже дозволяє одну ту саму акцію зв’язувати з різними компаніями в контексті різних покупок. Звичайно, цей зв'язок порушує і головний принцип семантичного моделювання, дозволяючи багаторазово зберігати відомості про те, якій компанії належить акція. Моделювання зв'язку між маклером, акцією та компанією в предметній області «біржа»: а — помилкове; б — правильне
Завдання 3.4 Нижче описано два фрагменти предметних областей. Побудуйте для кожного з них модель «сутність-зв'язок», створивши, якщо потрібно, тернарні зв'язки. Визначте множинність усіх зв'язків. Атрибути сутностей можна не вказувати. а) Предметна область «виробництво і торгівля». Є відомості про різноманітні товари, а також про підприємства, що їх виробляють (для кожного товару є лише один виробник). Крім того, є дані про покупців, які укладають угоди з виробниками на закупівлю їхніх товарів. Одна угода може стосуватися лише одного товару. б) Предметна область «програмування». Програмісти беруть участь у проектах з розробки програмного забезпечення. В одному проекті може використовуватися кілька мов програмування, але кожним програмістом — одна. У різних проектах програміст може програмувати різними мовами.
Зв'язок сутності самої з собою Припустимо, що нам потрібно зберігати відомості про подружні зв'язки між учителями. Для цього слід створити зв'язок «шлюб» між учителем та учителем. Один кінець цього зв'язку відповідатиме чоловіку, інший — дружині. Множинність цього зв'язку має бути «один-до-одного», адже в людини може бути лише один чоловік або жінка. Оскільки не кожен учитель повинен одружуватись на вчителі чи виходити заміж за вчителя, зв'язок не є обов'язковим з жодного боку. Варто також унеможливити моделювання одностатевих шлюбів, тобто заборонити з'єднувати через зв'язок «шлюб» учителів однакової статі. Суто графічних засобів для зображення такої заборони не існує, проте її можна формалізувати в текстовому вигляді. Для цього насамперед потрібно дати найменування полюсам зв'язку. Полюс зв'язку — це його одна сторона, або лінія, що з'єднує зв'язок з сутністю. Один полюс зв'язку «шлюб» слід назвати чоловік, інший — дружина. Тоді заборону одностатевих шлюбів можна сформулювати за допомогою двох умов: чоловік, стать = ‘ч’ та дружина, стать = ‘ж’. Ці вирази є обмеженнями цілісності , які слід записати біля зв'язку . Загалом на рис. зображено остаточну модель «сутність-зв'язок» предметної області «школи», у якій відображено всі сутності та зв'язки, розглянуті нами раніше.
Завдання 3.5 Є сутність Людина з атрибутами прізвище, ім'я, стать, вік. Створіть зв'язок, що відповідав би відношенню між людьми «батьки-діти». Запишіть чи зобразіть обмеження, властиві цьому зв'язку: батьків не може бути більше, ніж двоє, дитина має бути молодшою за батька і матір, стать батьків різна.
Висновки Зв'язок між сутностями А і В називають обов'язковим з боку сутності А, якщо кожен об'єкт цієї сутності повинен брати участь у зв'язку. На моделі «сутність-зв'язок» обов'язкові зв'язки позначають подвійними лініями. Сутність називається слабкою, якщо їй не вистачає власних атрибутів для утворення ключа. Її ключ утворюють з деяких її власних атрибутів, а також ключів інших сутностей. Зв'язки слабкої сутності з тими сутностями, що доповнюють її ключ, називаються підтримувальними та позначаються подвійними ромбами, а сама слабка сутність — подвійним прямокутником. Сутності А і В з'єднані зв'язком «є», що називається також зв'язком «загальний тип-різновид», якщо сутність В — це різновид сутності А. Зв'язок «є» має множинність «один-до-одного» і є обов'язковим збоку сутності-різновиду. Він позначається рівнобедреним трикутником, вершина якого спрямована до загального типу. Зв'язки між двома сутностями називаються бінарними. Якщо відносини між трьома сутностями неможливо адекватно зобразити за допомогою кількох бінарних зв'язків, усі три сутності з'єднують одним зв'язком, що називається тернарним і має три множинності. Сутність може бути зв'язана сама з собою.
Завдання для самостійного виконання Нижче описано фрагмент предметної області «кіноіндустрія». Побудуйте для нього модель «сутність-зв'язок». Визначте сутності, їхні атрибути та ключі, зв'язки між сутностями, тип, множинність і обов'язковість кожного зв'язку. Є кіностудії, що мають назви та адреси. Кіностудією керує президент, прізвище та ім’я якого відомі. Кіностудія може мати підрозділи (наприклад, творче об’єднання документальних фільмів, художніх фільмів, підрозділ технічної підтримки тощо), для кожного з яких відома кількість працівників. Всі кінострічки характеризуються назвою, тривалістю, роком випуску, бюджетом. Крім того, можна виділити жанри стрічок: мультфільми, що в свою чергу можуть бути ляльковими або мальованими; художні фільми, у яких задіяні актори, а також документальні фільми, для яких вказано тематику. Для будь-якої стрічки є одна студія-власник , але крім неї, брати участь у виробництві картини може ще декілька студій. Про актора відомі його прізвище, ім’я, рік народження та стать. Треба зберігати відомості про те, які амплуа має актор у кожному з фільмів, в яких він грає (таких амплуа може бути декілька). Щодо кожного амплуа відома його назва і текстовий опис особливостей. На кожен фільм актор підписує зі студією-власником фільму окремий контракт. Необхідно зберігати відомості про зіркові шлюби (чоловік та дружина - актори), а також про акторські династії (при наймні один з батьків актора є актором).
Питання для роздумів Для кожної з наведених трійок сутностей визначте, які між сутностями існують зв'язки. Якщо серед перелічених сутностей є слабкі, вкажіть їх та їхні ключі. птах, горобець, голуб; сеанс, кінотеатр, глядач; магазин, товар, покупець; принтер, комп'ютер, комп'ютерна мережа. Припустимо, що потрібно зберігати відомості про те, скільки годин на тиждень викладає кожен учитель той чи інший предмет у певному класі. Де на моделі «сутність-зв'язок», зображеній на рис., слід накреслити атрибут кількість годин?
Схожі презентації
Категорії