
- •Лекція 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
Потенційний ключ - атрибут чи набір атрибутів, що унікально ідентифікує окремі екземпляри типу сутності.
Потенційний ключ - це один чи кілька атрибутів, значення яких унікальним образом ідентифікують кожен екземпляр сутності даного типу. Наприклад, номер відділення компанії (Branch_No) є потенційним ключем типу сутності Branch, оскільки він містить різні значення для кожної окремої сутності Branch. Потенційний ключ повинний містити значення, що унікальні для кожного окремого екземпляра сутності даного типу. Наприклад, кожне відділення компанії має унікальний номер (наприклад, 'ВЗ'), і не існує відділень з однаковими номерами.
Первинний ключ - потенційний ключ, що обраний як первинний ключ.
Тип сутності може мати кілька потенційних ключів. Наприклад, кожен співробітник може мати унікальний номер соціального страхування NIN (National Insurance Number), а також унікальний особистий (табельний) номер Staff No, що привласнюється співробітникам цієї організації. Таким чином, сутність Staff володіє двома потенційними ключами, кожний з який може бути обраний як первинний ключ.
Вибір первинного ключа сутності здійснюється виходячи з розумінь сумарної довжини атрибутів, мінімальної кількості атрибутів у ключі, а також наявності гарантій унікальності його значень у сучасний момент часу й у доступному для огляду майбутньому. Зокрема, особистий номер співробітника (наприклад, 'SG14') менше по розміру, а тому переважніше, ніж номер соціального страхування (наприклад, 'WL220658D'). Отже, первинним ключем сутності Staff доцільно вибрати саме атрибут Staff No, а атрибут NIN у цьому випадку буде називатися альтернативним ключем.
Складений ключ – потенційний ключ, що складається з двох чи більше атрибутів.
У деяких випадках ключ сутності складається з декількох атрибутів, значення яких, узяті разом, а не по окремості, унікальні для кожного екземпляра сутності. Наприклад, сутність Advert (Рекламне оголошення) має наступні атрибути Property No, Newspaper_Name, Date Advert і Cost. Багато об'єктів нерухомості одночасно рекламуються в багатьох газетах. Для унікальної ідентифікації кожного рекламного оголошення необхідно використовувати значення Property No (Номер об'єкта нерухомості). Newspaper Name (Назва газети) і Date Advert (Дата рекламного оголошення). Таким чином, сутність Advert (Рекламне оголошення) володіє складеним первинним ключем, що складається з атрибутів Property_No, Newspaper_Name і Date_Advert.
Представлення атрибутів на діаграмах
На діаграмах атрибути зображуються у виді, еліпсів, приєднаних лінією до відповідного сутності і позначених ім'ям атрибута. На мал. 5.3 показані атрибути, зв'язані із сутностями Staff, Branch і Next of_Kin.
Еліпс оточений пунктирним контуром, якщо атрибут є похідним, і подвійним контуром, якщо атрибут є багатозначним. Як випливає з мал. 5.3, атрибут Total_Staff (Загальна кількість співробітників) сутності Staff є похідним, а атрибут Tel_No (Номер телефону) сутності Branch - багатозначним.
Я
кщо
атрибут є складеним, його атрибути-компоненти
зображуються у виді приєднаних до нього
еліпсів. На мал. 5.3 показано, що
атрибут Name сутності Staff є складеним
атрибутом, що складається з атрибута
імені (Fname) і атрибута прізвища (Lname). Крім
того, атрибут Address сутності Branch також є
складеним атрибутом, що складається з
атрибутів Street, Area, City і Postcode.
Ім'я атрибута, що є первинним ключем даного типу сутності, підкреслюється. Як випливає з мал. 5.3, первинним ключем сутності Staff є атрибут номера співробітника Staff_No, а первинним ключем сутності Branch - атрибут номера відділення компанії Branch_No. Первинний ключ для слабкої сутності Next_of_Kin не можна визначити доти, поки не будуть встановлені обмеження для зв'язку між сутністю Next_of_Kin і її батьківської сутністю Staff. Як частина слабкої сутності, первинний ключ сутності Next_of_Kin буде частково чи цілком похідним від сутності Staff.
Розглянувши представлену на мал. 5.3 діаграму, можна визначити атрибути, зв'язані з типами сутностей Staff, Branch і Next of Kin. Тип сутності Staff складається з наступних компонентів:
Staff(Staff_No, FName, LName, Address, Tel No, Sex, DOB, Position, NIN, Salary)
Первинний клоч: Staff No
Альтернативний ключ: FName, LNasie, DOB
Альтернативний ключ: NIN
Складений атрибут: Name(FName, LName)
Похідний атрибут: Total_Staff
Тип сутності Branch складається з таких компонентів:
Branch (Branch_No, Street, Area, City» Postcode, Tel No, Fax No)
Первинний ключ: Branch_No
Альтернативний ключ: Fax No
Складений атрибут: Address(Street, Area, City, Postcode)
Багатозначний атрибут: T6l_No
Тип сутності Next_of_Kin складається з наступних компонентів:
Next of Kin (NName, Address, Tel No, Relationship)