Читайте также:
|
|
Если ограничения по единственному значению устанавливают, что в данной роли существует только одно значение, ограничение ссылочной целостности означает, что в этой роли существует в точности одно значение. Вариантом ограничения ссылочной целостности является ограничение, согласно которому атрибут имеет единственное непустое значение, но "ссылочная целостность" чаще применяется к связям между классами.
Рассмотрим связь выполняется_в между Издел ие и Цех в строке 6 примера 4.4. Разве такое возможно: объект класса Цех является значением выполняется_в, а самого этого объекта не существует? Ответ заключается в том, что в реализации ODL связь выполняется_в представлена указателем или ссылкой на данный объект и в какой-то момент времени этот объект удаляется из класса Цех. Тогда указатель становится висящимибольше не указывает на реальный объект.
Согласно ограничению ссылочной целостности объект, на который есть ссылка, должен существовать. Это ограничение можно ввести по-разному.
1. Можно запретить удаление объекта, на который есть ссылка (в приведенном выше примере – цеха).
2. Можно потребовать, чтобы при удалении объекта, на который есть ссылка, удалялся и объект, который на него ссылается. В приведенном примере это значит, что при удалении цеха из базы данных нужно удалить также все соответствующие изделия.
В дополнение к упомянутым условиям удаления требуется, чтобы при создании объекта "изделие" существующий объект "цех" был задан в качестве значения связи выполняется_в. При изменении этого значения новое значение также должно быть существующим объектом. Использование таких методов обеспечения ссылочной целостности связи – вопрос реализации БД, и в настоящем пособии мы не будем его обсуждать.
Прочиеограничения
Для конкретной базы данных могут быть введены также другие ограничения (правила целостности). Например, учитывая оборот изделий и реальные возможности мастеров можно ввести правило, согласно которому у каждого мастера было бы не более десяти изделий.
В ODL ограничить количество изделий на одного мастера до десяти можно, задав тип атрибута мастера списком длины 10. Однако здесь невозможно задать условие, согласно которому множество будет иметь не более 10 элементов.
4.1.12. Переход от объектно-ориентированной модели
к реляционной
От объектно-ориентированной модели в большинстве случаев достаточно легко перейти к реляционной.
Пусть принимаются следующие ограничения:
Ø все свойства класса представляют собой атрибуты (а не отношения или методы);
Ø типы атрибутов атомарны (не являются структурами или множествами).
В данном случае переход к реляционной модели прост: создаются отношения с именем соответствующего класса, при этом атрибуты объектной модели переходят в атрибуты соответствующего классу отношения.
В ряде случаев не возникает проблем, даже если некоторые атрибуты не атомарны (такие как дата, перечень). Можно, например, тип "перечень" для дней недели представить целыми числами от 0 до 6.
Для более трудных случаев используются расширение множества на несколько кортежей и дополнительные отношения.
Наиболее сложный случай связан с представлением многозначных связей если связь имеет тип множества. В данном случае используется комбинация двух методов:
Ø однозначные связи – нужно найти ключ для представления каждого из связанных объектов;
Ø имеются атрибуты со значением типа множества – нужно представить множество связанных объектов путем создания одного кортежа для каждого значения. При этом появляется избыточность, которая устраняется при переходе к нормальным формам более высокого порядка.
В объектно-ориентированной модели имена атрибутов различных объектов могут совпадать, поэтому в подобных ситуациях при переходе к реляционной модели необходимо присвоить уникальные имена атрибутам, например, включая в имя атрибута имя соответствующего объекта.
4.2. Диаграммы "сущность-связь"
Немаловажную роль в инфологическом проектировании играет наглядность представляемых моделей данных. В этой связи большой популярностью разработчиков пользуются средства, основанные на графических нотациях, самым распространенным средством данного типа являются диаграммы "сущность-связь" (entity-relationship, E/R), которые соответствуют объектно-ориентированному подходу. Эти диаграммы имеют те же три главных компонента, о которых говорилось при описании ODL (хотя модели E/R и ODL имеют особенности, о которых речь пойдет ниже).
4.2.1. Компоненты диаграмм "сущность-связь"
1. Множества сущностей, аналогичные классам. Сущности – эточлены множества сущностей, аналогичные объектам ODL.
2. Атрибуты–- это значения, описывающие свойства сущности. Атрибуты в E/R и ODL – это, по сути, одно и то же понятие.
3. Связи – это соединения между двумя или более множествами сущностей. Связи в E/R аналогичны связям в ODL за следующими исключениями:
(a) В модели E/R одно имя приписывается связи в обоих направлениях, а в ODL отдельно определяются связь и ее обращение. Например, обратные связи Изделие:: мастера и Мастер:: от_мастера в примере 4.4 в модели E/R были бы представлены единственной связью.
(b) Связи в E/R могут соединять более двух множеств сущностей, а связи ODL – максимум два класса.
Пример 4.13. На рис. 47 изображена E/R диаграмма, представляющая ту же самую информацию о реальном мире, что и описание ODL в примере 4.5.
Множествами сущностей являются Изделие, Мастер и Цех. Чтобы выразить небольшое различие между множествами сущностей и классами, имена первых пишутся во множественном числе, имена вторых в единственном.
Множество сущностей Изделия имеет те же атрибуты, что и класс Изделие в примере4.5, а именно – название изделия, размер, и тип материала. Аналогично, два других множества имеют атрибуты, которые были описаны для соответствующих классов ODL.
На рис. 47 видны также связи, соответствующие связям из ODL-описания примера 4.5. Одно из них мастером содержит информацию пары обратных связей мастера и от_мастера между ODL-классами Изделие и Мастер. E/R-связь относиться на рис. 44 представляет обратные связи Изделие::выполняется_в и Цех:: обеспечивает. Стрелка, указывающая на множество Цеха, означает, что каждым изделием занимается только один цех.
4.2.2. Множественность E/R-связей
Для выражения множественности связей в E/R-диаграммах можно применять стрелки. Если между множествами Е и F есть связь типа "многие-к-одному", используется стрелка, указывающая на F. Она означает, что каждая сущность из множества Е связана только с одной сущностью из множества F. Однако сущность из F может быть связана с многими сущностями в Е.
Зачастую E/R-связи удобно изображать таблицей, каждая строка которой представляет пару сущностей, вовлеченных в данную связь. Например, связь мастером можно представить так:
Изделия | Мастера |
Вечернее платье | Иванова |
Мужской костюм | Павлов |
Дубленка | Семенова |
Конкретного способа, которым должны реализовываться связи, не существует ни в E/R-моделях, ни в ODL.
Такая таблица иногда называется множеством отношений для конкретной связи. Элементы этого множества – строки таблицы. Их можно представить в виде кортежей с компонентами для каждого множества сущностей. Например, кортежем во множестве отношений для связи мастером, является пара
(Вечернее платье, Иванова)
Дата добавления: 2015-07-19; просмотров: 77 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Устранение избыточности | | | Многосторонние связи |