
- •Лекція 5. Модель “Сутність – зв’язок”
- •5.1. Концепції er-моделі
- •5.1.1. Типи сутностей Типи сутностей - об'єкт чи концепція, що характеризуються на даному підприємстві які мають незалежне існування.
- •Сутність - екземпляр типу сутності, що може бути ідентифікований унікальним образом.
- •Слабкий тип сутності - тип сутності, існування якого, залежить від якогось іншого типу сутності. Сильний тип сутності - тип сутності, існування якого не залежить від якогось іншого типу сутності.
- •Способи представлення сутностей на діаграмі
- •5.1.2. Атрибути Атрибут - властивість типу сутності чи типу зв'язку.
- •Домен атрибута - набір значень, що можуть бути привласнені атрибуту.
- •Простий атрибут - атрибут, що складається з одного компонента з незалежним існуванням.
- •Складений атрибут - атрибут, що складається з декількох компонентів, кожний з який характеризується незалежним існуванням.
- •Однозначний атрибут - атрибут, що містить одне значення для однієї сутності.
- •Багатозначний атрибут - атрибут, що містить кілька значень для однієї сутності.
- •Похідний атрибут - атрибут, що представляє значення, похідне від значення зв'язаного з ним атрибута чи деякої безлічі атрибутів, що належать якомусь (не обов'язково даному) типу сутності.
- •Потенційний ключ - атрибут чи набір атрибутів, що унікально ідентифікує окремі екземпляри типу сутності.
- •Первинний ключ - потенційний ключ, що обраний як первинний ключ.
- •Складений ключ – потенційний ключ, що складається з двох чи більше атрибутів.
- •Представлення атрибутів на діаграмах
- •5.1.3. Типи зв'язків Тип зв'язку - осмислена асоціація між сутностями різних типів.
- •Зв'язок - асоціація між сутностями, що включає по одній сутності з кожного типу, що бере участь у зв'язку сутності.
- •Представлення зв'язків на діаграмах
- •Ступінь зв'язку - кількість сутностей, що охоплені даним зв'язком.
- •Рекурсивний зв'язок - зв'язок, у якому ті самі сутності беруть участь кілька разів і в різних ролях.
- •5.1.4. Атрибути зв'язків
- •5.2. Структурні обмеження
- •5.2.1. Показник кардинальності Показник кардинальності описує кількість можливих зв'язків для кожної із сутностей учасниць.
- •Зв'язку „один до одного"
- •З в'язок „один до багатьох"
- •Зв'язку "багато до багатьох"
- •5.2.2. Ступінь участі Ступінь участі визначає, чи залежить існування деякої сутності від участі в зв'язку деякої іншої сутності.
- •5.3. Проблеми er-моделювання
- •5.3.1. Пастки розгалуження Пастка розгалуження має місце в тому випадку, коли модель відображає зв'язок між типами сутностей, але шлях між окремими сутностями цього типу визначений неоднозначно.
- •5.3.2. Пастки розриву Пастка розриву з'являється в тому випадку, коли в моделі передбачається наявність зв'язку між типами сутностей, але не існує шляху між окремими сутностями цих типів.
- •5.4.1. Суперкласи і підкласи типів сутностей
- •Суперклас - тип сутності, що включає різні підкласи, які необхідно представити в моделі даних. Підклас - тип сутності, що виконує окрему роль, а також є членом суперкласу.
- •5.4.2. Спадкування атрибутів
- •5.4.3. Спеціалізація Спеціалізація - процес збільшення розходжень між окремими членами типу сутності за рахунок виділення їхніх відмінних характеристик.
- •5.4.4. Генералізація Генералізація - процес зведення розходжень між сутностями до мінімуму шляхом виділення їхніх загальних характеристик.
- •5 .4.5. Обмеження, що накладаються на процедури спеціалізації і генералізації
- •5.4.6. Категоризація Категоризація - моделювання одного підкласу зі зв'язком, що охоплює кілька різних суперкласів.
- •5.5. Створення eer-моделі для представлення користувача Manager з навчального проекту DreamHome
- •5.5.1. Специфікації вимог для представлення користувача Manager
- •5.5.2. Створення eer-моделі
- •Визначення типів сутностей
- •Визначення типів зв'язків
- •Визначення показника кардинальності і ступеня участі сторін для типів зв'язків
- •Визначення атрибутів і зв'язування їх з типами сутностей і зв'язків
- •Визначення атрибутів, що є потенційними і первинними ключами
- •Чи спеціалізація генералізація типів сутностей
- •Категоризація типів сутностей
- •Створення розширеної діаграми „сутність-зв’язок"
- •Питання
- •Вправи Навчальний проект University Accommodation Office
Визначення атрибутів і зв'язування їх з типами сутностей і зв'язків
Тепер необхідно виділити атрибути, що можуть бути представлені в специфікаціях вимог користувачів у виді іменників (чи груп іменників). Атрибут може описувати деякий аспект сутності чи зв'язку. Нам варто перелічити всі атрибути, що згадуються в специфікації вимог, а потім зв'язати кожен виділений атрибут тільки з одним типом сутності чи зв'язку. Атрибути, згадування про які в специфікації повторюється, можуть представляти наступні поняття.
1. У специфікації зазначено кілька таких сутностей, як Staff, Manager і Supervisor. У даному випадку необхідно вирішити, потрібно генерувати сутності в одну сутність типу Staff чи краще залишити їх у виді окремих спеціалізованих сутностей, що представляють різні службові обов'язки персоналу компанії. Додаткові розуміння з приводу спеціалізації і генералізації сутностей приводяться нижче.
2. Між типами сутностей виявлений новий зв'язок. У цьому випадку варто зв'язати атрибут тільки з однією сутністю (батьківської) і переконатися в тім, що встановлено необхідні зв'язки з іншими сутностями, у відношенні яких згадується цей атрибут. Якщо необхідний зв'язок відсутній, у документацію варто внести доповнення з описом знову визначеного зв'язку. Наприклад, у даних специфікаціях вимог користувачів атрибути номера об'єкта нерухомості, його адреси і типу віднесені до сутності Property, але також описуються в зв'язку з іншою сутністю Advert - у табл. 5.2 це представлено як зв'язок Describedin, що існує між сутностями Property і Advert.
Атрибути, виділені зі специфікацій вимог користувача Manager, приведені в табл. 5.3, із указівкою тих типів сутностей чи зв'язків, до яких вони віднесені. Зверніть увагу на те, що в даному робочому прикладі жоден з атрибутів не віднесений до якого-небудь типу зв'язку.
Таблиця 5.3. Типи сутностей і їхні атрибути
Тип сутності Атрибут
Branch (Відділення) Branch No (Номер відділення)
Address (Street, Area, City, Postcode) (Адреса)
Tel No (Номер телефону)
Fax_No (Номер факсу)
Staff (Персонал) Staff No (Номер співробітника)
Name (FName і LName) (Ім'я)
Tel_No (Номер телефону)
Sex (Підлога)
DOB (Дата народження)
NIN (Номер соціального страхування)
Position (Посада)
Salary (Зарплата)
Date Joined (Дата зарахування в штат)
Manager (Менеджер) Staff No (Номер співробітника)
Ті ж атрибути, що й у сутності Staff
Date_Mgr_Start (Дата вступу на посаду менеджера)
Car Allowance (Компенсація транспортних витрат)
Bonus_Payment (Премія)
Next_of_Kin (Найближчий NName (Ім'я)
родич) Relationship (Родинні відносини)
Address (Адреса)
Tel No (Номер телефону)
Supervisor (Інспектор) Staff No (Номер співробітника)
Ті ж атрибути, що й у сутності Staff
Property_for_Rent Property No (Номер об'єкта нерухомості)
(Об'єкт нерухомості) Address (Street, Area, City, Postcode) (Адреса)
Type (Тип нерухомості)
Rooms (Кількість кімнат)
Rent (Орендна плата)
Private_0wner (ПриватнийOwner_No (Номер власника)
власник) Name (FName і LName) (Ім'я)
Address (Адреса)
Tel No (Номер телефону)
Business Owner (Фірма- Owner No (Номер власника)
власник) Wame (Назва фірми-власника)
Втуре (Тип діяльності)
Address (Адреса)
TelNo (Номер телефону)
Contact_Name (Ім'я контактного обличчя)
Renter (Орендар) Renter_No (Номер орендаря)
Name (FName і LName) (Ім'я)
Address (Адреса)
Tel_No (Номер телефону)
Pref Type (Кращий тип нерухомості)
Max Rent (Максимальна орендна плата)
Viewing (Огляд) Date_View (Дата огляду)
Comments (Коментарі)
Rental Agreement Rental No (Номер договору на оренду)
(Договір на оренду)
RentStart (Дата початку оренди)
Rent Finish (Дата закінчення оренди)
Advert (Рекламне Date Advert (Дата рекламного оголошення)
оголошення) Newspaper_Name (Назва газети)
Cost (Вартість)
Newspaper (Газета) Newspaper_Name (Назва газети)
Address (Адреса)
TelNo (Номер телефону)
Fax No (Номер факсу)
Contact Name (Ім'я контактного обличчя)