Введение в системы БД (542480), страница 129
Текст из файла (страница 129)
рис. ) 3.1) ° Для сущности ЕМРЪОХЕЕ: ЕМР$ (личный номер работника — ключевое свойство) БИРМЕ (полное имя — составное, состоящее из свойств Р1ЕБТ (имя), М1 (отчество) и 1ЛБТ (фамилия)) БаьййХ (зарплата) ° Для сущности БОРРЫЕРс И (номер поставщика — ключевое свойство) БИАМЕ (имя поставщика) БТЛТОБ (статус поставщика) С1ТХ (город, в котором находится поставщик) ° Для связи БОРР РЕЕТ РВОЮ; ОТХ (количество) ° Для связи РййТ БТЯОСТОВЕ: ОТХ(количество) Для экономии места другие свойства, представленные на рис. 13.1, не показаны.
Глава 13. Семантическое моделирование 515 Связи Каждый тип связи показан на ЕК-диаграмме в виде ромба с названием связи внутри. Ромб рисуется двойной линией, если это связь между слабым типом сущности и типом сущности, от существования которого она зависит. Участники каждой связи соединяются с ромбом соответствующей связи сплошными линиями. Каждая такая линия содержит надпись "1" или "М" для обозначения типа связи ("один к одному", "один ко многим" и т.д.). Двойная линия обозначает полное участие в связи данной стороны. Прииеры (см.
рис. 13.1) ° ОЕРТ ЕМР (связь типа "один ко многим" между сущностями ОЕРАКТМЕМТ и ЕМРЫТЕЕ) ° ЕМР ОЕР (связь типа "один ко многим" между сущностью ЕМРЬОТЕЕ и сущностью слабого типа ОЕРЕХОЕНТ) ° РВОВ ИОКХ и РВОВ МАМАЯЕК (обе связи установлены между сущностями ЕМРБОТЕЕ и РКОЛЕСТ, причем первая имеет тип "многие ко многим", а вторая — "один ко многим") ° ЯОРР РАВТ РВОВ (связь типа "многие ко многим" между сущностями ЯОРРЫЕК, РАКТ и РКОЛЕСТ) ° ЯОРР РАКТ (связь типа "многие ко многим" между сущностями ЯОРРЫЕК и РАВТ) ° РАКТ ЯТКОСТОКЕ (связь типа "многие ко многим" между сущностями РАВТ и РАКТ) Обратите внимание, что в последнем случае две линии от РАКТ к РАКТ ЯТКОСТОКЕ отличаются надписями с указанием различных выполняемых ролей (ЕХР и 1МР, которые обозначают соответственно "разложение детали на компоненты*' и "сборку детали из компонентов"). Связь РАКТ ЯТКОСТОКЕ является типичным примером рекурсивной связи. Подтипы и супертипы сущностей Пусть тнп сущности Т является подтипом типа сущности Х.
Тогда от прямоугольника Х к прямоугольнику Х можно провести сплошную линию со стрелкой на конце возле Т. Эта линия представляет то, что иногда называется связью нринадлезкности (!ва ге!аг!опй1р) (поскольку множество всех сущностей типа Т "является" (!з а) подмножеством множества всех сущностей типа Х). Примеры (см. рис. 13.2) ° Тип сущности РКООКАММЕК является подтипом типа сущности ЕМРЬОТЕЕ ° Типы сущностей АРРЫСАТ1ОЫ РКООКАММЕК и ЯТБТЕМ РКОЯКАММЕК являются подтипами типа сущности РВООКАММЕК 13.5. Проектирование базы данных с помощью метода ЕК-моделирования В определенном смысле построенная в соответствии с описанными выше правилами ЕК-диаграмма является проектом базы данных.
Если попытаться отобразить подобный проект на некоторую формальную схему, соответствующую требованиям конкретной 516 Часть 111. Проектирование базы данных СУБДз, то станет ясно, что обычная ЕК-диаграмма для этого недостаточно точна и в ней отсутствует описание множества важных деталей (особенно тех, которые относятся к целостности данных). Для иллюстрации этого утверждения рассмотрим, что происходит при попытке отобразить проект базы данных, показанный на рис. 13.2, на набор определений элементов реляционной базы данных.
Сильные сущности На рис. 13.1 показаны следующие сильные типы сущностей. ОЕРАКТМЕИТ ЕМРЬОХЕЕ БОРРЫЕК РАКТ РКОЮЕСТ Каждый сильный тип сущности отображается в базовую переменную-отношение. Следовательно, рассматриваемая база данных будет содержать пять базовых переменных-отнощений, например 0ЕРТ, ЕМР, Б, Р и Ю, соответствующих этим пяти типам сущности. Более того, каждое из базовых отношений будет иметь потенциальный ключ (ОЕРТ$, ВМРЕ„Б$, Р$ и б(), соответствующий указанным на ЕК-диаграмме ключевым свойствам.
Для определенности допустим, что в каждой из создаваемых переменных- отношений соответствующий потенциальный ключ определяется, как первичный. В качестве примера ниже приводится определение переменной-отношения 0ЕРТ (в сокращенном виде). ЧАК 0ЕРТ БАБЕ КЕЬАТ1ОК ( 0ЕРТ$ ) РК1МАКХ КЕХ ( 0ЕРТ$ ) 1 Записать определения остальных четырех переменных-отношений предлагается читателю в качестве упражнения.
Заиечание. Безусловно, в документации также должны быть зафиксированы определения доменов н допустимых множеств значений. Однако подробности здесь опускаются, поскольку, как уже отмечалось, множества значений на ЕК-диаграммах не отображаются. Связи типа "многие ко многим" В рассматриваемом примере присутствуют следующие связи типа "многие ко многим". РКСМ ИОКК (между работниками и проектами) БОРР РАКТ (между поставщиками и деталями) БОРР РАКТ РКСМ (между поставщиками, деталями и проектами) РАКТ БТКОСТВКЕ (между деталями-узлами и деталями, входящими в их состав) В настоящее время существует леножество иьструментов, позволяющая выполнить такое отображение (например, ЕВ-диаграмма для генералки соответствующего набора 5(Я-команд СКЕАТЕ ТАВЬЕ).
517 Глава 13. Семантическое моделирование Каждая такая связь отображается и в базовую переменную-отношение. Таким образом, вводятся еще четыре базовые переменные-отношения, соответствующие четырем указанным связям. Допустим, что для связи БОРР РАЕТ такой базовой переменной- отношением является БР (уже знакомая нам переменная-отношение поставок). Временно отложим описание ее первичного ключа и обратимся к внешним ключам этой переменной-отношения, которые необходимы для идентификации участников данной связи. ЧАЕ БР ВАБЕ ИЕЬАТ1ОИ ( Я $ ...
, Р$ ... , ... ) ГОЕЕ16И КЕУ ( Б$ ) ЕЕГЕЕЕИСЕБ Б РОИЕ16И КЕХ ( Р$ ) ЕЕГЕЕЕИСЕЯ Р Ясно, что такая переменная-отношение должна включать два внешних ключа (Б$ и Р$), соответствующих двум участникам связи (сущности БОРРЫЕЕ и РАЕТ), и эти внешние ключи должны ссылаться на соответствующие переменные-отношения Б и Р.
Более того, для каждого из внешних ключей должен быть задан подходящий случаю набор правил внешнил ключей, т.е. правило обновления ОРОйТЕ и правило удаления ВЕДАЕТЕ (за более подробными сведениями по этой теме обратитесь к главе 8). Ниже приведены правила, которые следует задать в случае базовой переменной- отношения ЯР. (Конечно, эти правила приведены лишь в качестве иллюстрации. В частности, обратите внимание на то, что их нельзя вывести или установить с помощью одной только ЕК-диаграммы.) ЧАИ ЯР ВАЯЕ ЕЕЕАТТОИ ( Я$ ..., Р$ ГОИЕ16И КЕУ ( 8$ ) ИЕГЕИЕИСЕЯ Б ОИ ЮЕЬЕТЕ ЕЕБТЙ1СТ ОИ ОРРАТЕ СйБСАОЕ ГОЕЕ16И КЕУ ( Р$ ) ЕЕГЕИЕИСЕБ Р ОИ ВЕДАЕТЕ ИЕБТЕ1СТ ОИ ОРВАТЕ САБСАОЕ Что можно сказать о первичном ключе этой переменной-отношения? Одним из возможных способов его определения может быть комбинация внешних ключей, идентифицирующих участников соответствующей связи (в случае базовой переменной-отношения ЯР ими являются атрибуты Я$ и Р$).
Это возможно, если данная комбинация имеет уникальное значение для каждого экземпляра данной переменной-отношения (обычно так и бывает, хотя могут быть и обратные случаи) и если разработчик базы данных не возражает против использования составных первичных ключей (на практике это в равной степени возможно и невозможно). В качестве альтернативного варианта первичного ключа можно использовать новый несоставной суррогатный атрибут "номер поставки" (подробности приводятся в [13.10), [13.16]).
В нашем примере будет использован первый из двух описанных выше вариантов. Таким образом, в определение БР необходимо добавить следующее предложение. 518 Часть Ш. Проектирование базы данных РК1МАЕХ КЕХ ( Б(, Р( ) В качестве упражнения читателю предлагается самостоятельно рассмотреть связи РВОВ МОЕК, РАЕТ БТКОСТОКЕ и БОРР РАВТ РЕОЛ. Связи типа "многие к одному" В рассматриваемом примере присутствуют три связи типа "многие к одному". РВОЮ МАМАОЕЕ (между проектами и их менеджерами) ОЕРТ ЕИР (между работниками и отделами) ЕМР ОЕР (между подчиненными и руководящими работниками) Только в последней из трех связей участвует слабый тип сущности (ОЕРЕМОЕМТ), тогда как в двух других участвуют только сильные типы сущностей.
Связь со слабым типом сущности будет обсуждаться несколько позже, а сейчас рассмотрим какую-либо из двух других связей, например ОЕРТ ЕМР. В данном случае не требуется вводить никаких новых переменных-отношенийз. Вместо этого достаточно просто ввести приведенный ниже внешний ключ в переменную-отношение, расположенную со стороны "многие" (ЕМР), который будет ссылаться на переменную-отношение на стороне "один" (ОЕРТ). ЧАЕ ЕИР ВАБЕ КЕ?АТ?ОМ ( ВМРЕ ..., ОЕРТ)) ..., ... ) РЕ1МАКХ КЕХ ( ЕМР( ) РОКЕ16М КЕХ ( ОЕРТ() ) КЕРЕЕЕМСЕБ ОЕРТ ОМ ОЕЬЕТЕ ...
ОМ ОРОАТЕ ... В данном случае возможности определения правил удаления ОЕЬЕТЕ и обновления ОРОАТЕ точно такие же, как и в случае внешнего ключа, представляющего участника связи типа "многие ко многим" (в общем случае). Здесь вновь следует отметить, что они не показаны на данной ЕК-диаграмме. Замечание. В рассматриваемом примере предполагается, что связи типа "один к одному" (которые не так уж часто встречаются на практике) следует рассматривать так же, как связи "многие к одному". Подробное описание особенностей отображения связей типа "один к одному" приводится в 1! 3,7]. Слабые сущности Связь между сущностью слабого типа и той сильной сущностью, от которой она зависит, безусловно, является связью типа "многие к одному", как это уже отмечалось выше.
Однако правила удаления и обновления для этой связи должны выглядеть так, как показано ниже. ОМ ОЕЬЕТЕ САБСАОЕ ОМ ОРОАТЕ САБСАОЕ З Хапис возможно, это имело бы некоторый смысл. Как указывалось в разделе ?3. Ь могут суи?ествовать веские причины для рассмотрения определенныл связей типа "многие к одному" так, как будто на самом деле они имеют тнп "многие ко леногим". Дополнительную инфорл~ацию можно найти в последней части работы (?8.207.
519 Глава 13. Семантическое моделирование Взятые в совокупности, эти правила выражают обязательную зависимость существования, что иллюстрируется следующим примером. РАК ОЕРЕМОЕМТ БАБЕ КЕ(АУУОМ ( ЕМР() ... ] УОКЕ16М КЕУ ( ЕМР([ ) КЕРЕКЕМСЕБ ЕМР ОМ ОБЕЕЙ САБСАЮЕ ОМ ОРОАТЕ САБСАОЕ 1 Что является первичным ключом данной переменной-отношения? Как и в случае со связью "многие ко многим", здесь также возможен некоторый выбор. Одним из вариантов является комбинация внешнего ключа и ключевого свойства слабой сущности, представленного на ЕК-диаграмме, если, опять же, разработчик базы данных не возражает против использования составных первичных ключей. Альтернативным вариантом первичного ключа является введение нового несоставного суррогатного атрибута (подробности приводятся в [13.10),[13.1б]). В рассматриваемом примере мы применим первый из двух приведенных выше вариантов, для чего добавим в определение переменной-отношения следующее предложение.