- •Новосибирский государственный университет экономики и управления
- •«Проектирование информационных систем» Раздел «Моделирование и проектирование данных»
- •Новосибирск 2009
- •1. Концепции er-модели
- •Примеры сущностей с физическим и концептуальным существованием
- •Способы представления сущностей на диаграмме
- •Представление атрибутов на диаграммах
- •1.3. Типы связей
- •Представление связей на диаграммах
- •1.4. Атрибуты связей
- •Date_View и Comments
- •2. Структурные ограничения
- •2.1. Показатель кардинальности
- •Связи «один к одному»
- •Связь „один ко многим"
- •Связи "многие ко многим"
- •2.2. Степень участия
- •3. Проблемы er-моделирования
- •3.1. Ловушки разветвления
- •3.2. Ловушки разрыва
- •4. Eer-модель
- •4.1. Суперклассы и подклассы типов сущностей
- •4.2. Наследование атрибутов
- •4.3. Специализация
- •4.4. Генерализация
- •4.5. Ограничения, накладываемые на процедуры специализации и генерализации
- •4.6. Категоризация
Представление атрибутов на диаграммах
На диаграммах атрибуты изображаются в виде эллипсов, присоединенных линией к соответствующей сущности и помеченных именем атрибута. На рис. 1.3 показаны атрибуты, связанные с сущностями Staff, Branch и Next_of_Kin.
Рис. 1.3. Диаграммное представление сущностей Staff, Branch u Next of Kin u их атрибутов
Эллипс окружен пунктирным контуром, если атрибут является производным, и двойным контуром, если атрибут является многозначным. Как следует из рис. 1.3, атрибут Total_Staff (Общее количество сотрудников) сущности Staff является производным, а атрибут Tel_No (Номер телефона) сущности Branch — многозначным.
Если атрибут является составным, его атрибуты-компоненты изображаются в виде присоединенных к нему эллипсов. На рис. 1.3 показано, что атрибут Name сущности Staff является составным атрибутом, состоящим из атрибута имени (Fname) и атрибута фамилии (Lname). Кроме того, атрибут Address сущности Branch также является составным атрибутом, состоящим из атрибутов Street, Area, City и Postcode.
Имя атрибута, который является первичным ключом данного типа сущности, подчеркивается. Как следует из рис. 1.3, первичным ключом сущности Staff является атрибут номера сотрудника Sfcaff_No, а первичным ключом сущности Branch — атрибут номера отделения компании Branch_No. Первичный ключ для слабой сущности Next_of_Kinнельзя определить до тех пор, пока не будут установлены ограничения для связи между сущностьюNext_of_Kinи ее родительской сущностью Staff. Как часть слабой сущности, первичный ключ сущности Next of Kin будет частично или полностью производным от сущности Staff.
Рассмотрев представленную на рис. 1.3 диаграмму, можно определить атрибуты, связанные с типами сущностей Staff, Branch и Next_of_Kin. Тип сущности Staff состоит из следующих компонентов:
Staff(Staff_No, FName, LName, Address, Tel_No, Sex, DOB, Position, NIN, Salary)
Первичный ключ: Staff_No
Альтернативный ключ: FName, LName, 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)
Многозначный атрибут: Tel_No
Тип сущности Next_of_Kin состоит из следующих компонентов: Next_of_Kin(NName, Address, Tel_No, Relationship)
1.3. Типы связей
Тип связи:осмысленная ассоциация между сущностями разных типов.
Тип связи (Relation Type) является набором ассоциаций между двумя (или больше) типами сущностей-участников. Каждому типу связей присваивается имя, которое должно описывать его функцию. Например, сущность Owner(владелец) должна быть связана с сущностьюProperty_For_Rent(объект недвижимости) посредством связиOwns(владеет).
Как и в случае сущностей, здесь следует различать понятия "связь" и "тип связи".
Связь:ассоциация между сущностями, включающая по одной сущности из каждого участвующего в связи типа сущности.
Каждый уникально идентифицируемый экземпляр типа связи мы будем называть просто связью. Связи указывают на отдельные экземпляры сущностей, объединяемые ими. Другие авторы называют это понятие экземпляром связи (relationship occurrence или relationship instance). В данной главе используются только термины "тип связи" и "связь". Как и при описании понятия "сущность", термин "связь" может использоваться в более общем смысле, там, где этот смысл очевиден.
Связь IsAllocated (Приписан к) указывает на взаимосвязь между сущностями Branch и Staff, а каждый отдельный экземпляр связи IsAllocated связывает одну сущность Branch с одной сущностью Staff. На отдельные элементы связи IsAllocated представлены на диаграмме (рис. 1.4), которая называется семантической сетью. Семантическая сеть является объектной диаграммой, в которой символ • представляет сущности, а символ — связи.
Для упрощения диаграммы семантической сети на рис. 1.4 показаны только некоторые атрибуты сущностей Branch и Staff. Так, здесь показаны только три атрибута типа сущности Branch — Branch No — Address и Tel_No, и три атрибута для сущности Staff — Staff_No, Address и DOB. Причем каждый атрибут содержит значение из связанного с ним домена (например, значение атрибута Branch_No сущности b1 типа Branch равно 'ВЗ').
Рис. 1.4. Модель семантической сети, которая иллюстрирует отдельные элементы связи IsAllocated
На диаграмме показаны три связи (г1, г2 и г3), которые описывают взаимосвязь сущностей Branch и Staff. Эти связи представлены линиями, соединяющими каждую сущность Branch с каждой сущностью Staff. Например, связь г1 изображает взаимосвязь сущностей b1 типа Branch и s1 типа Staff.
Если вся корпоративная структура была бы представлена с помощью семантических сетей, то из-за избыточной степени детализации ее было бы трудно понять. Связи между сущностями корпорации можно представить в более простой форме — в виде ER-модели. Пример высокоуровневого представления связи IsAllocated с использованием концепций ER-моделирования показан на рис. 1.5.
Рис. 1.5. Представление на ER-диаграмме сущностей Branch, Staff u Next of Kin, связей между ними и атрибутов, которые являются их первичными ключами