|
Программирование >> Хронологические базы данных
Свойства Сущности (и связи) обладают некоторыми свойствами (property). Все сущности или связи одного и того же типа обладают некоторыми общими свойствами. Например, все работники имеют личный номер, имя, зарплату и т.д. (Замечание. В данном примере среди свойств работника сознательно не упоминается номер отдела; причина этого разъясняется несколько ниже.) Значения свойств каждого типа извлекаются из соответствующего множества значений, которое в реляционной терминологии называется доменом. Ниже перечислены некоторые разновидности свойств и указаны их особенности. Простое или составное свойство. Например, свойство имя работника может быть составным, если его значение составляется из значений простых свойств имя , отчество и фамилия . Ключевое свойство (т.е. уникальное, возможно, в определенном контексте). Например, имя подчиненного работника для определенного сотрудника может быть уникальным только в контексте этого сотрудника. Однозначное или многозначное свойство (т.е. в этой модели допускаются повторяющиеся группы). Все свойства, представленные на рис. 13.1, являются однозначными. Однако если некоторый поставщик (SUPPLIER) будет иметь несколько разных пунктов отгрузки, то свойство CITY (Город) для него будет многозначным. Опущенное свойство (т.е. неизвестное или непредставленное ). Эта концепция не отражена на рис. 13.1, а ее более подробное описание приводится в главе 18. Базовое или производное свойство. Например, общее количество деталей определенного вида может быть вычислено с помощью суммирования объема отдельных поставок данной детали. Эта концепция также не представлена на рис. 13.1. Связи в [13,5] связь (relationship) определяется как ассоциация, объединяющая несколько сущностей . Например, между отделами и работниками существует связь с именем DEPT EMP. Она представляет тот факт, что в каждом отделе работает определенное количество работников. Так же, как и в отношении сущностей (см. главу 1), необходимо понимать принципиальную разницу между типами и экземплярами связей, однако при неформальном описании такими тонкостями можно пренебречь, что мы и будем неоднократно делать в будущем. Сущности, включенные в связь, назшаются ее участниками, а количество участников связи называется ее степенью. (Следует отметить, что в данном случае значение термина степень отличается от его значения в реляционной модели.) Пусть R является типом связи, включающей тип сущности Е в качестве участника. Если каждый экземпляр сущности Е участвует по крайней мере в одном экземпляре связи R, то участие сущности Е в связи R называется полным, в противном случае - частичным. Например, если каждый работник обязательно должен относиться к определенному отделу, то участие сущности EMPLOYEE в связи между работниками и отделами (DEPT EMP) является полным. В свою очередь, если допустима ситуация, когда в некотором отделе не будет ни одного работника, участие сущности DEPARTMENT в связи DEPT EMP будет часгичным. Связи в модели сущность/связь могут иметь тип один к одному , один ко многим (иначе может называться многие к одному ) или многие ко многим . (Для упрощения изложения далее предполагается, что все связи являются двойными, т.е. имеют степень два , хотя, конечно, изложенные концепции и терминологию можно без труда расширить и на связи с более высокой степенью.) Здесь читатель, уже знакомый с основами реляционной модели, мог бы заметить, что именно тип связи многие ко многим является единственным типом, представляющим истинную связь, поскольку это единственный тип связи, который требует для своего представления создания отдельной переменной-отнощения. Связи типа один к одному и один ко многим всегда могут быть представлены с помощью механизма внешнего ключа, помещаемого в одну из переменных-отношений, участвующих в данной связи. Однако существуют веские причины рассмотрения связей типа один к одному и один ко многим таким же образом, как и связи типа многие ко многим , по крайней мере из-за того, что достаточно часто существует возможность их эволюционирования до связи типа многие ко многим с течением времени. И только если такой возможности нет, их можно рассматривать как-то иначе. Безусловно, в некоторых случаях подобной возможности может не быть в принципе, например всегда будет верным утверждение, что окружность обладает только одной точкой, являющейся ее центром. Подтипы и супертипы сущностей Замечание. Представленные в этом разделе идеи не были включены в оригинальную версию ER-.модели [13.5]; они были добавлены позднее. Подробнее об это.м можно прочесть, например, в работе Тиори (Теогеу), Янга (Yang) и Фрая (Fry) [13.41]. Каждая сущность имеет по крайней мере один тип, однако у некоторой сущности может быть одновременно несколько типов. Например, если некоторые работники являются программистами (и все программисты являются работниками), то можно сказать, что тип сущности PROGRAMMER (программист) является подтипом типа сущности EMPLOYEE (работник). (Или, что эквивалентно, тип сущности EMPLOYEE является супертипом типа сущности PROGRAMMER.) Программисты автоматически обладают всеми свойствами работников, однако обратное утверждение неверно (например, для программистов может быть задано свойство изученный язык программирования , которое в общем случае не применимо ко всем работникам). Аналогично сущность PROGRAMMER автоматически участвует во всех связях, в которых участвует сущность EMPLOYEE, однако обратное утверждение также неверно (например, программисты могут входить в профсоюз компьютерных специалистов, в который прочие работники в общем случае не входят). Поэтому говорится, что подтип наследует свойства и связи супертипа. Обратите внимание, что одни программисты (сущность PROGRAMMER) могут быть прикладными программистами (сущность APPLICATION PROGRAMMER), а другие - системными программистами (SYSTEM PROGRAMMER). Исходя из этого, можно сказать, что типы APPLICATION PROGRAMMER и SYSTEM PROGRAMMER являются подтипами супертипа PROGRAMMER и т.д. Иначе говоря, сущность-подтип по-прежнему является типом сущности и, следовательно, может иметь собственные подтипы. Некоторый тип сущности, его непосредственные подтипы, подтипы этих подтипов и т.д. все вместе образуют иерархию типов сущности, пример которой представлен на рис. 13.2. Здесь стоит подробно рассмотреть следующие особенности. 1. Поскольку детальное обсуждение иерархии и наследования типов будет отложено до главы 19, следует предупредить читателя, что в данной главе термин тип имеет такое же значение, как и в главе 5 (т.е. он не означает тип сущности ). 2. Для читателей, знакомых с СУБД IMS (или какой-нибудь иной СУБД, в которой используется иерархическая структура данных), необходимо отметить, что иерархии типов не следует путать с иерархиями данных. Например, на рис. 13.2 вовсе не подразумевается, что для одного работника (EMPLOYEE) имеется несколько соответствующих программистов (PROGRAMMER). Наоборот, для одного экземпляра типа сущности EMPLOYEE существует не более одного соответствующего экземпляра типа сущности PROGRAMMER, представляющего того же работника в роли программиста. На этом краткое обсуждение основных структурных особенностей ER-модели завершено, и можно перейти к рассмотрению ER-диаграмм. Рис. 13.2. Пример иерархии типов сущностей 13.4. ER-диаграммы Как уже указывалось в предыдущем разделе, в [13.3] была не только введена сама модель сущность/связь , но и представлена концепция ER-диаграмм. Такая диаграмма является методом представления логической структуры базы данных в графическом виде для более простого и наглядного отображения основных компонентов конкретного проекта базы данных (один рисунок порой стоит тысячи слов). Действительно, популярность методов ER-моделирования как подхода для проектирования баз данных, скорее всего, объясняется именно наличием подобной диаграммной технологии, а не чем-либо иным. Ниже правила создания ER-диаграмм поясняются на примерах, представленных на рис. 13.1 и 13.2. Замечание. Так же, как и сама модель сущность/связь , технология создания ER-диафамм постоянно совершенствуется, поэтому в данном разделе будет описана та ее версия, которая отличается в некоторых важных аспектах от оригинальной методики, предложенной Ченом в [13.3].
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |