![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Пример 2.24. Биологический вид принято обозначать совокупностью имен рода, к которому принадлежит этот вид, и собственного имени вида. Например, человек как биологическое существо относится к виду Homo sapiens, где Homo ("человек") — название рода, a sapiens ("разумный") — название вида. Род в общем случае состоит из нескольких видов, и полное наименование каждого из них включает название рода и уточняется названием вида. Названия видов, рассматриваемые отдельно, к сожалению, не уникальны. В составе двух или нескольких родов могут встретиться виды с одинаковыми собственными названиями. Поэтому для обеспечения уникальности сущности "вид" во множестве сущностей Species ("биологические виды") необходимо пользоваться полными именами видов, состоящими из собственного имени вида и названия соответствующей сущности "род" из множества сущностей Genera ("биологические роды"), с которой "вид" соединен связью Belongs-to ("принадлежит"). Таким образом, Species — это слабое множество сущностей, в состав ключа которого введен атрибут множества Genera, находящегося на более "высокой" ступени иерархии.
Пример 2.24. Биологический вид принято обозначать совокупностью имен рода, к которому принадлежит этот вид, и собственного имени вида. Например, человек как биологическое существо относится к виду Homo sapiens, где Homo ("человек") — название рода, a sapiens ("разумный") — название вида. Род в общем случае состоит из нескольких видов, и полное наименование каждого из них включает название рода и уточняется названием вида. Названия видов, рассматриваемые отдельно, к сожалению, не уникальны. В составе двух или нескольких родов могут встретиться виды с одинаковыми собственными названиями. Поэтому для обеспечения уникальности сущности "вид" во множестве сущностей Species ("биологические виды") необходимо пользоваться полными именами видов, состоящими из собственного имени вида и названия соответствующей сущности "род" из множества сущностей Genera ("биологические роды"), с которой "вид" соединен связью Belongs-to ("принадлежит") (см. рис. 21). Таким образом, Species — это слабое множество сущностей, в состав ключа которого введен атрибут множества Genera, находящегося на более "высокой" ступени иерархии. □
|
Рис. 21. Еще одна ER-диаграмма, представляющая слабое множество сущностей
Другая причина применения слабых множеств сущностей связана с механизмом соединяющих множеств сущностей (connecting entity sets), который позволяет преобразовать ER-диаграмму, устраняя многосторонние связи.7 Соединяющие множества сущностей зачастую не содержат собственных атрибутов, поэтому ключи для таких множеств формируются на основе ключевых атрибутов других, связанных с ними множеств.
Пример 2.25. На рис. 22 изображено соединяющее множество сущностей Contracts ("контракты"), заменяющее собой одноименную тернарную связь, которая была рассмотрена в примере 2.5. Множество Contracts обладает собственным атрибутом salary ("размер заработной платы"), который, однако, не участвует в формировании ключа. Уникальная сущность "контракт" определяется совокупностью значений ключевых атрибутов пате ("имя" или "название") множеств Stars ("актеры") и Studios ("киностудии"), а также title ("название") и year ("год производства") множества Movies ("кинофильмы"). □
2.4.2. Требования к слабым множествам сущностей
К проблеме выбора ключевых атрибутов для слабых множеств сущностей надлежит подходить аккуратно и взыскательно. Если Е представляет собой слабое множество сущностей, его ключ может быть образован из
1) подмножества (возможно, пустого) собственных атрибутов;
ключевых атрибутов множеств сущностей, которые могут быть достигнуты посредством цепочки связей типа "многие к одному", соединяющих множество Е с другими множествами; подобные связи принято называть поддерживающими связями (supporting relationships) для множества Е
ER-модель не содержит жестких требований относительно того, что многосторонние связи непременно должны быть преобразованы, хотя подобные условия предусмотрены в некоторых других моделях, применяемых для проектирования баз данных.
|
Рис. 2.22. Соединяющие множества сущностей "слабы"
Чтобы некоторую связь R типа "многие к одному", соединяющую множества сущностей Е и F в направлении от Е к F, можно было отнести к числу поддерживающих связей для множества Е, должны выполняться условия, перечисленные ниже.
1. Связь R должна быть бинарной связью типа "многие к одному"8, направленной от Е к F.
2. Связь R обязана предусматривать реализацию ограничения ссылочной целостности в направлении от Е к F. Другими словами, для каждой Е-сущности следует обеспечить наличие в базе данных соответствующей F-сущности, с которой -сущность соотносится посредством связи R, т.е. присутствие на диаграмме полукруглой стрелки, соединяющей R с F, должно быть подтверждено фактически.
3. Атрибуты, предоставляемые множеством F для образования ключа множества Е, должны быть ключевыми для F.
4. Если F, в свою очередь, также является слабым множеством сущностей, тогда некоторые или все ключевые атрибуты, поставляемые множеству £*, должны быть ключевыми атрибутами одного или нескольких множеств сущностей G, с которыми множество F соединено посредством поддерживающих связей. Если и G относится к числу слабых множеств, ключевые атрибуты по цепочке связей заимствуются у других множеств и т.д.
Если существует несколько различных поддерживающих связей, направленных со стороны Е к F, каждая связь для формирования ключа множества Е поставляет собственную копию ключевых атрибутов множества F. Заметим, что некоторая сущность е множества Е может быть связана с несколькими различными сущностями множества F посредством различных поддерживающих связей, направленных от Е к F. Таким образом, сущность е множества Е может определяться ключевыми значениями, полученными от нескольких различных сущностей множества F.
Заметим, что связь "один к одному" является частным случаем связи типа "многие к одному". Когда мы говорим о том, что некоторая связь должна относиться к типу "многие к одному", мы подразумеваем и равную возможность существования связи "один к одному".
Интуитивные доводы в пользу необходимости принятия названных условий таковы. Рассмотрим некоторую сущность, принадлежащую слабому множеству сущностей, такому как, скажем, Crews ("объединения") (см. пример 23). Каждая сущность "объединение" должна быть уникальной, чтобы ее можно было отличить от другой даже в том случае, если "объединения" обладают одним порядковым номером, но относятся к разным "киностудиям". Одного номера для решения задачи, однако, не достаточно. Следует провести поиск дополнительных значений, способных обеспечить уникальность сущностей множества Crews. К числу уникальных значений, тем или иным образом связанных с сущностями "объединение", относятся:
1) значения атрибутов самого множества Crews;
2) значения, которые можно получить на основе связей множества Crews с другими множествами; каждая подобная связь должна относиться к типу "многие к одному" (или, в частном случае, "один к одному") и соединять множество Crews с некоторым множеством F, а заимствованные множеством Crews атрибуты обязаны участвовать в образовании ключа множества F.
Система обозначений слабых множеств сущностей
При обозначении на ER-диаграмме слабых множеств сущностей, их ключевых атрибутов и поддерживающих связей мы действуем в соответствии со следующими правилами.
1. Если множество сущностей является слабым, его принято изображать в виде двойного прямоугольника. Примерами могут служить множества сущностей Crews ("объединения") (см. рис. 20) и Contracts ("контракты") (см. рис. 22).
2. Поддерживающие связи типа "многие к одному" для слабых множеств сущностей обозначают двойными ромбами. В качестве примеров можно упомянуть связь Unit-of ("подразделение") (см. рис. 20) и все три связи диаграммы рис. 22.
3. Если в формировании ключа слабого множества сущностей участвуют его собственные атрибуты, их наименования подчеркиваются. На диаграмме рис. 20 атрибут number ("номер") является частью ключа множества сущностей Crews, хотя этим состав ключа не исчерпывается.
Те же правила, но в лаконичной форме, могут быть представлены так.
• "Если множество Е на диаграмме обозначено двойным прямоугольником, оно является слабым. Атрибуты множества £, отмеченные подчеркиванием (если таковые есть), в совокупности с ключевыми атрибутами тех множеств сущностей, с которыми Е соединено посредством связей типа "многие к одному", обозначенных двойными ромбами, образуют ключ множества Е
Следует напомнить, что двойные ромбы применяются только для обозначения поддерживающих связей. Вполне возможно наличие в диаграмме связей типа "многие к одному", охватывающих слабые множества сущностей, но не относящихся к категории поддерживающих связей; такие связи отмечаются обычными (не двойными) ромбами.
Пример 2.26. Изображенную на ER-диаграмме рис. 22 связь Studio-of не обязательно следует считать поддерживающей связью для множества сущностей Contracts ("контракты"), поскольку каждой сущности "кинофильм" соответствует строго определенная сущность "киностудия", определяемая не показанной здесь связью Owns ("владеет"), которая соединяет множества сущностей Movies ("кинофильмы") и Studios ("киностудии"). Поэтому для каждой конкретной пары сущностей "актер—кинофильм" существует не более одного контракта с любой студией, оговаривающего условия участия актера в съемках фильма, и для обозначения связи Studio-of более уместно было бы вместо двойного ромба использовать обычный, одинарный. □
2.4.4. Упражнения
* Упражнение 2.4.1. Один из способов представления сведений о студентах и оценках, полученных ими по завершении изучения тех или иных курсов, связан с созданием множеств сущностей "студенты", "курсы" и "регистрационные записи". Сущности "регистрационные записи" формируют множество, "соединяющее" множества "студенты" и "курсы", которое может быть использовано не только для регистрации того факта, что определенный студент сдал экзамен по конкретному курсу, но и для хранения данных о полученных студентами оценках. Начертите ER-диаграмму, представляющую описанную ситуацию, и отметьте на ней слабые множества сущностей и ключи для всех множеств. Является ли атрибут "оценка" частью ключа для множества сущностей "регистрационные записи"?
Упражнение 2.4.2. Дополните решение упражнения 2.4.1 таким образом, чтобы обеспечить хранение промежуточных оценок, получаемых студентом в процессе изучения курса. Вновь отметьте на диаграмме слабые множества сущностей и ключи для всех множеств.
Упражнение 2.4.3. Обратившись к ER-диаграммам, представляющим решения заданий упражнения 2.2.6 (а)—(с), отметьте слабые множества сущностей, поддерживающие связи и ключи.
Упражнение 2.4.4. Постройте ER-диаграммы, описывающие ситуации с участием слабых множеств сущностей, перечисленные ниже. Отметьте на каждой диаграмме ключи для всех множеств сущностей.
а) Даны множества сущностей Courses ("курсы") и Departments ("факультеты"). Каждый курс читается на строго определенном факультете, но обладает единственным атрибутом number ("номер"). Различные факультеты вправе предлагать курсы с одинаковыми номерами. Каждому факультету соответствует уникальное значение атрибута пате ("название").
b) Даны множества сущностей Leagues ("лиги"), Teams ("команды") и Players ("игроки"). Лиги обладают уникальными названиями. В составе лиги нет двух команд с одинаковыми наименованиями, а в команде — игроков с одним и тем же номером. Однако в пределах нескольких команд могут совпадать номера игроков, а в нескольких лигах допускается наличие команд с одинаковыми наименованиями.
2.5. Резюме
♦ Модель "сущность—связь ", или ER-модель, используется для представления множеств сущностей, связей между ними, а также атрибутов множеств и связей.
♦ Диаграмма сущностей и связей. При построении диаграммы сущностей и связей, или ER-диаграммы, для описания множеств сущностей, связей и атрибутов применяются соответственно прямоугольники, ромбы и овалы.
♦ Множественность связей. Бинарные связи могут относиться к типам "один к одному", "многие к одному" или "многие ко многим". Связь "один к одному" соединяет некоторую сущность множества не более чем с одной сущностью другого множества. Связь "многие к одному" соединяет любую сущность множества, указанного на стороне "многие", не более чем с одной сущностью множества, заданного на противоположной стороне соединения. Связи типа многие ко многим" не ограничивают свойство множественности взаимоотношений соединяемых множеств сущностей.
♦ Ключи. Ключом для множества сущностей называется набор атрибутов, значения которых уникальным образом определяют сущность во множестве однородных сущностей.
♦ Принципы проектирования. Чтобы достичь успеха при проектировании базы данных, следует обеспечить достоверность представления сведений об объектах реального мира, выбрать подходящие инструменты моделирования (т.е. верно использовать элементы множеств сущностей, связей и атрибутов) и избежать избыточности (представления некоторых сущностей дважды либо описания их неоднозначными и сложными средствами).
♦ Ссылочная целостность. Ограничение ссылочной целостности подразумевает, что сущность, на которую ссылается некоторая другая сущность, обязана присутствовать в базе данных.
♦ Подклассы. ER-модель предлагает возможность использования связей специальной разновидности, isa9 для представления того факта, что одно множество сущностей является некоторым подмножеством другого. Множества сущностей, соединенные связями isa, могут образовывать древовидную иерархию, а их элементы — обладать компонентами, принадлежащими любому поддереву дерева иерархии, включающему корневую вершину.
♦ Слабые множества сущностей. ER-модель позволяет представлять такие множества сущностей, ключи которых полностью или частично основаны на ключевых атрибутах других, связанных, множеств. Для описания слабых множеств сущностей в ER-диаграммах применяются специальные обозначения — двойные прямоугольники.
Дата публикования: 2014-11-29; Прочитано: 790 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!