С.Д. Кузнецов - Основы баз данных (1121716), страница 34
Текст из файла (страница 34)
В любой связи выделяются два конца (в соответствии с существующей парой связываемых сущностей), на казклом из которых указываются имя конца связи, степень конца связи (сколько экземпляров данного типа сущности должно присутствовать в каждом экземпляре данного типа связи), обязательность связи (т. е. любой ли экземпляр данного типа сущности должен участвовать в некотором экземпляре данного типа связи).'* Связь представляется в виде ненаправленной линии, соединяющей две сущности или ведущей от сущности к ней же самой. При этом в месте «стыковки» связи с сущностью используются: ° трехточечный вход в прямоугольник сущности, если для этой сущности в связи могут (или должны) использоваться много (лгалу) экземпляров сущности; ° одноточечный вход, если в связи может (или должен) участвовать только один экземпляр сущности. Обязательный конец связи изображается сплошной линией, а необязательный — прерывистой линией.
Связь между сущностями еилег и пйссйжир, показанная на рис. 9.2, связывает билеты и пассажиров. Конец связи с именем «для» позволяет связывать с одним пассажиром более одного билета, причем каждый би- Рис. 9.2. Пример типа связи ' Тем не менее, как и в случае типа сущности, мы будем часто использовать термин связь в зНачеиии тило сеяли. " В некоторых вариантах Ек-модели конец связи назывиот ролью связи в данной суягности. Тогда мокно говорить об имени роли, смелели роли и оаязамельяости рели связи в данной сущности. 162 Лекция 9 ЕН-диаграммы лет должен быть связан с каким-либо пассажиром. Конец связи с именем «инеет» показывает, что каждый билет может принадлежать только одному пассажиру, причем пассажир не обязан иметь хотя бы один билет. Лаконичная устная трактовка изображенной диаграммы состоит в СЛЕДУЮ1ЦЕМ: ° каждый БИЛЕТ предназначен для одного и только одного ПЛССЛжнрл; ° каждый плсслжир может иметь один или более БилетОВ.
На следующем примере (рис. 9.3) изображена рекурсивная связь, связывающая сущность ИУжчинл с ней же самой. Конец связи с именем «сыы» определяет тот факт, что несколько людей могут быть сыновьями одною отца. Конец связи с именем «отец» означает, что не у каждого мужчины должны быть сыновья. Рвс. 9.3. Пример рекурсивного типа связи Лаконичная устная трактовка изображенной диаграммы состоит в следующем: » каждый ну%чиня является сыном одного и только одного мужчины; ° каждый мужчинл может являться отцом одного или более мУжчин.
Атрибутом сущности является любая деталь, которая служит для уточнения, идентификации, классификации, числовой характеристики или выражения состояния сущности. Имена атрибутов заносятся в прямоугольник, изображающий сущность, под именем сущности и изображаются малыми буквами, возможно, с примерами. Пример типа сущности ЧЕЛОВЕК с указанными атрибутами показан на рис. 9.4, С технической точки зрения атрибуты типа сущности в ЕК-модели похожи на атрибуты опющения в реляционной модели данных. И в том, и в другом случаях введение именованных атрибутов вводит некоторую типо- Рвс.
9.4. Пример типа сущности с атрибутами 163 Основы баз данных вую структуру данных, имя которой совпадает с именем типа сущности в случае ЕК-модели или с именем переменной отношения в случае реляционной модели. Этой типовой структуре должны следовать все экземпляры типа сущности или все кортежи отношения. Но имеется и важное отличие. Напомним, что в реляционной модели данных атрибут определяется как упорядоченная пара <ю«я атрибута, >в«я домена> (или <имя атрибута, ммя базового тита данн»к>, если понятие домена не поддерживается). Заголовок отношения, определяемый как множество таких пар, представляет собой полный аналог структурного типа данных в языках программирования. При определении атрибутов типа сущности в ЕК-модели указание домена атрибута не является обязательным, хотя это и возможно (см.
ниже). Обсудим, чем вызвана эта возможность «ослабленного» определения атрибутов. Прежде всего, как отмечалось в разделе «Введение», семантические модели данных используются лля построения концептуальных схем БД, и эти схемы преобразуются в реляционные схемы БД, которые поддерживаются той или иной СУБД. Несмотря на то что в настоящее время типовые возможности РСУБД в основном стандартизованы (на основе стандарта языка БОЕ), детали базового набора типов данных и средств определения доменов в разных системах могут различаться.
Поскольку производители САКЕ-средств проектирования реляционных БД стремятся не связывать обеспечиваемые ими возможности семантического моделирования с конкретной реализацией СУБД, они стимулируют откладывание строгого определения типов атрибутов до стадии полного определения реляционной схемы.
Кроме того, напомним, что при определении атрибута отношения допускается использование имен атрибутов, совпадающих с именами своих доменов (это два разных пространства имен, и наличие одинаковых имен у атрибутов и доменов не вызывает коллизий). Поэтому при определении атрибутов типов сущности можно так подбирать их имена, что они в дальнейшем будут подсказывать, какие домены у этих атрибутов имеются в виду Пониманию предполагаемой сути доменов способствует и возможность указания примеров значений атрибутов.
Например, на рис. 9.4 имеется атрибут год рождения, в качестве примерного значения которого указано «1976». Это подсказывает, что в реляционной схеме при определении соответствующего атрибута наиболее естественным базовым типом данных будет темпоральный тип «ДАТА», значения которого задают дату с точностью до года. Уникальные идентификаторы типов сущности Как отмечалось выше, при определении типа сущности необходимо гарантировать, что каждый экземпляр сущности является отличимым от любого другого экземпляра той же сущности. Поскольку сущность являет- Лекция 9 ЕН-диаграммы ся абстракцией реального или представляемого объекта внешнего мира, это требование нужно иметь в виду уже при выборе кандидата в типы сущности.
Например, предположим, что проектируется база данных для поддержки работы книжного склада. На складе могут храниться произвольные части тиража любого издания любой книги. Может ли в этом случае индивидуальная книга являться прообразом типа сущности? Утверждается, что нет, поскольку отсутствует возможность различения книг одного издания. Для книжного склада прообразом типа сушности будет набор одноименных книг одного автора, вышедших в одном издании. Одним из атрибутов этого типа сущности будет число книг в наборе.
Но когда книга поступает в библиотеку и ей присваивается уникальный библиотечный номер, она становится разумным прообразом типа сущности. Плохо устроены библиотеки, в которых не различаются индивидуальные книги (даже одноименные книги одного автора, вышедшие в одном издании). Но при проектировании базы данных мало того, чтобы проектировщик убедился в правильном выборе типов сущности, гарантируюшем различие экземпляров каждого типа сушности. Необходимо сообщить системе автоматизации проектирования БД, каким образом будут различаться эти экземпляры, т.
е. сообшить, как конструируются уникальные идентификаторы экземпляров каждого типа сушности. В ЕК-модели у экземпляра типа сущности не может быть назначаемого пользователем имени или назначаемого системой внешнего уникального идентификатора. Экземпляр типа сущности может идентифицироваться только своими индивидуальными характеристиками, а они представляются значениями атрибутов и экземплярами типов связи, связывавшими данный экземпляр типа сущности с экземплярами других тинов сущности или этого же типа сушности. Поэтому уникальным идентификатором сушности может быть атрибут, комбинация атрибутов, связь, комбинация связей или комбинация связей и атрибутов, уникально отличающая любой экземпляр сущности от других экземпляров сушности того же типа.
Приведем несколько примеров. На рис. 9.5 показан тип сущности книгл, пригодный для использования в базе данных книжного склада. Рис. 9.5. Тип сушности, экземпляры которого идентифицируются атрибутами 165 Основы баз данных курс Рис. 9.6. Тип сущности„экземпляры которой идентифицируются связью При издании любой книги в любом издательстве (кроме пиратских, которыми мы для простоты пренебрежем) ей присваивается уникальный номер — ! БВХ. Понятно, что значение атрибута гзЬп будет уникально идентифицировать партию книг на складе. Кроме того, конечно, в качестве уникального идентификатора годится и комбинация атрибутов <автор, название, номер издания, издательство, год издания>.
На рис. 9.6 диаграмма включает два связанных типа сущности. У каждого взрослого человека имеется один и только один паспорт (мы снова не берем в расчет особый случай, когда у одного человека имеется несколько паспортов), и каждый паспорт может принадлежать только одному взрослому человеку (некоторые уже готовые паспорта могут быть еще никому не выданы). Тогда связь человека с его паспортом (конец связи имккт) уникально идентифицирует взрослого человека, т. е., грубо говоря, паспорт определяет взрослого человека. Поскольку могут существовать паспорта, еще не выданные какому-либо человеку эта связь не является уникальным идентификатором сущности плспогт.