разработка концептуальной модели. ПР_7_Разработка концептуальной модели базы данных. Разработка концептуальной модели базы данных
Скачать 0.52 Mb.
|
Свойства связей сущности «Сотрудник» с сущностями «Дети» и «Работа»
Между сущностями «Сотрудник» и «Учебное заведение» имеется бинарная связь «многие ко многим». Это так потому, что любое учебное заведение может выпустить нескольких сотрудников данного предприятия. В то же время любой сотрудник может окончить несколько учебных заведений. Связи «многие ко многим» в общем виде устанавливаются на ER- диаграмме при первоначальной разработке модели. Впоследствии они детализируются с целью отобразить существенные свойства связей, которые не могут быть представлены на обобщенной модели. Для внесения связи «многие ко многим» между сущностями «Сотрудник» и «Учебное заведение» необходимо «кликнуть» по кнопке на панели инструментов (ERwin Toolbox), затем «кликнуть» по сущности «Сотрудник» и по сущности «Учебное заведение». Направление связи «многие ко многим» не имеет значения. Для спецификации свойств связи следует щелкнуть правой кнопкой мыши по ее шаблону и выбрать в контекстном меню пункт Relationship Properties. В диалоге Relationships на закладке General можно присвоить имя связи. Для связи «многие ко многим» следует указывать имена как Parent-to- Child, так Child-to-Parent. Можно присвоить, например, связи в направлении от «Учебное заведение» к «Сотрудник» имя «Дает образование», а в обратном направлении – «Получил образование». На закладке Definition следует дать описание связи, например, «Связь показывает, какие сотрудники какие окончили учебные заведения». Допустим, сотрудники нашей организации могут работать в качестве постоянных (штатных) сотрудников, в качестве совместителей или в качестве внешних консультантов. У всех этих категорий сотрудников есть некоторые общие, личностные характеристики, которые могут послужить основанием для их обобщения и создания новой обобщающей сущности. Для моделирования такого рода отношений между сущностями- категориями «Постоянный», «Совместитель», «Консультант» и обобщающей сущностью «Сотрудник» используется связь на основе иерархии обобщения, т. н. категориальная (родовидовая) связь. Для создания категориальной связи следует: Щелкнуть по кнопке на панели инструментов (ERwin Toolbox). Щелкнуть сначала по родовой сущности («Сотрудник»), а затем по категориальной (например, «Постоянный»). Для установления связи с другими категориями следует сначала щелкнуть по символу , а затем по категориальной сущности. Категориальные связи не именуются. Для спецификации свойств категориальной связи следует щелкнуть правой кнопкой мыши по ее символу и выбрать в контекстном меню пункт Subtype Relationship. Для настройки свойств категориальной связи на обобщенной ER-модели недостаточно данных, поэтому отложим эти действия до построения детализированной ER-диаграммы. В некоторых случаях семантика данных предметной области может обуславливать т.н. унарные (рекурсивные) связи. Допустим, что в некотором контексте сущность «Сотрудник» должна представлять персональные характеристики не только самого сотрудника, но и его непосредственного начальника. Поскольку начальник является сотрудником той же организации, то для ссылки на него следует установить рекурсивную связь. Рекурсивная связь может быть только неидентифицирующей. Иначе нельзя будет учесть самого старшего начальника, который никому не подчиняется в рамках данной организации. Для внесения рекурсивной связи, определенной на сущности «Сотрудник» необходимо «кликнуть» по кнопке неидентифицирующей связи на панели инструментов (ERwin Toolbox), затем «кликнуть» дважды по сущности, на которой она определена («Сотрудник»). Для спецификации свойств рекурсивной связи следует щелкнуть правой кнопкой мыши по ее шаблону и выбирать в контекстном меню пункт Relationship Properties. В диалоге Relationships на закладке General можно присвоить имя связи, кардинальность, тип связи. Разные экземпляры сущности «Сотрудник», связанные рекурсивной связью, могут выступать в роли родителя или в роли потомка. Поэтому для рекурсивной связи следует указывать имена как Parent-to-Child (например, «Руководит»), так и Child-to-Parent (например, «Подчиняется»). Рекурсивная связь в нашем случае будет иметь значение один или много (тип P) потому, что не может быть начальника, у которого нет подчиненных. Экземпляр сущности «Сотрудник», соответствующий самому старшему начальнику, может существовать без связи с родителем, поэтому обязательность связи имеет значение по умолчанию для неидентифицирующей связи Nulls Allowed. В диалоге Relationships на закладке Definition следует дать описание рекурсивной связи, например, такое: «Один сотрудник руководит или подчиняется другому сотруднику». После спецификации свойств сущностей и связей учебной предметной области ее обобщенная ER-модель будет иметь как на рис. 16. Рис. 16. Обобщенная ER-модель предметной области |