Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по базам данных1.doc
Скачиваний:
132
Добавлен:
02.05.2014
Размер:
2.53 Mб
Скачать

4.5.1. Представление взаимосвязи «один ко многим»

В модели данных, представляющей взаимосвязь «один ко многим», тип записи - владелец «владеет» 0-пэкземплярами типа записи-члена.

В свою очередь тип записи - член в другом типе набора может играть роль типа записи-владельца.Запись-владелец данного набора может играть ту же роль в нескольких наборах. Такая структура представляет собой иерархию. Следовательно, иерархическая модель данных является частным случаем сетевой модели.

Рис. 4.20

На рис. 4.20 приведены сведения о пациенте, перенесшем несколько операций, и о конкретном типе операции, сделанной нескольким пациентам. Операция, которой подверглись несколько пациентов, будет одновременно членом в двух или более экземплярах одного и того же типа набора, что нарушает правило уникальности владельца. Взаимосвязь «многие ко многим» может быть реализована двумя взаимосвязями «один ко многим».

В структуре такого типа нарушается правило уникальности владения, поскольку операция, перенесенная двумя или более пациентами, может быть членом одновременно в двух или более экземплярах одного набора.

Типами объектов здесь служат: ПАЦИЕНТ, ХИРУРГ и ОПЕРАЦИЯ. Один хирург может прооперировать нескольких пациентов. Один пациент мог быть в свое время прооперирован несколькими хирургами. ПАЦИЕНТ, ХИРУРГ и ОПЕРАЦИЯ образуют сеть. Между ПАЦИЕНТОМ и ХИРУРГОМ существует взаимосвязь «многие ко многим. ПАЦИЕНТ и ХИРУРГ могут рассматриваться как различные типы записей. Для того чтобы преобразовать взаимосвязь «многие ко многим» между ПАЦИЕНТОМ и ХИРУРГОМ в две взаимосвязи «один ко многим», воспользуемся в качестве связки записью ОПЕРАЦИЯ, которая характеризуется датой операции, видом операции, назначенным после операции препаратом и побочным эффектом от его применения. Отметим, что запись-связка может и не содержать никаких данных. В большинстве случаев она, как правило, включает некоторую полезную информацию, описывающую взаимосвязь между двумя остальными записями.

На рис. 4.21 показаны два типа записи: ПАЦИЕНТ и ОПЕРАЦИЯ. В сетевой модели данных на рис. 4.22 два типа записей образуют набор.

Записи ПАЦИЕНТ и ОПЕРАЦИЯ образуют набор ПАЦИЕНТ ПЕРЕНЕС ОПЕРАЦИЮ.Владельцем является запись ПАЦИЕНТ, а членом — запись ОПЕРАЦИЯ. Записи ХИРУРГ и ОПЕРАЦИЯ образуют набор ОПЕРАЦИЯ-ПАЦИЕНТА.

а

б

Рис 4.21

Здесь «а» - один экземпляр набора, в котором содержатся сведения об удалении камней из желчного пузыря; «б» - два экземпляра набора, в которых владельцами являются пациенты Джон Уайт и Пол Кошер, и имеется один и тот же экземпляр записи-члена – удаление камней из желчного пузыря.

Запись ХИРУРГ называется владельцем, а запись ОПЕРАЦИЯ — членом этого набора.

Каждый экземпляр набора ПАЦИЕНТ-ПЕРЕНЕС-ОПЕРАЦИЮ представляет иерархическую взаимосвязь между пациентом и операцией. Существенное различие между сетевой и иерархической моделями данных состоит в том, что в сетевой модели каждая запись может участвовать в любом числе наборов и играть роль как владельца, так и члена набора.

Рис. 4.22

Представление данных с помощью сетевой модели взаимосвязи «многие ко многим» реализуется двумя типами наборов:

  1. ПАЦИЕНТ-ПЕРЕНЕС-ОПЕРАЦИЮ (запись-владелец ПАЦИЕНТ, запись-член ОПЕРАЦИЯ);

  2. ОПЕРАЦИЯ-ПАЦИЕНТА (запись-владелец ХИРУРГ, запись-член ОПЕРАЦИЯ).