Связь один — ко — многим (1:ДО)

Это наиболее часто используемый тип связи, который к тому же является основным для реализации целостности структуры данных в СУБД. Именно к использованию данного типа связи разработчики стремятся при построении модели базы данных. В реальной жизни этот тип связи также встречается наиболее часто. Объясняется это тем фактом, что структура любой предметной области, и это является одной из причин появления иерархических и сетевых баз данных в начале развития данного направления, представляется системой объединения и деления объектов.

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

К связи один — ко — многим (1:Л) относят такое взаимодействие структурных элементов, когда один экземпляр первого элемента может быть связан со множеством экземпляров второго элемента, а один экземпляр второго элемента может быть связан не более чем с одним экземпляром первого элемента.

В рассматриваемой в качестве примера предметной области ("Электронный магазин") несложно найти пример связи один — ко — многим. Таким представителем этой связи может быть заказ клиента, где есть два информационных объекта: "Заказ" и "Клиент" (рис. 2.39).


Как показано па схеме связи объектов, один заказ в магазине может быть сформирован только одним клиентом, что отражено связью со стрелкой, на конце которой один концевой элемент. Это вполне обосновано, учитывая анализ документа "Заказ", в котором показано, что для обозначения сведений о клиенте имеется только одно поле, в котором не предполагается указания множества клиентов (покупателей). Также это обосновывается требованиями самой предметной области и правилами работы магазина, когда заказ может быть сформирован только одним человеком (клиентом) и привязывается только к одному аккаунту (учетной записи), связываемому именно с одним пользователем информационной системой.

В то же время, один клиент может несколько раз делать заказы, накапливая историю покупок в магазине, что отражают множественной связью на схеме, представляя стрелку от клиента к заказу, где на конце разметают два концевых элемента. Для того чтобы удостовериться в том, что установленный тип связи является правильным, необходимо проанализировать возможные варианты реальных данных в связке двух информационных элементов "Клиент" и "Заказ" (табл. 2.12).

Таблица 2.12

Пример данных, но заказам клиентов

№ п/п

Клиент

Заказ

1

Иванов И. П.

01-05.2012

2

Иванов И. П.

06-08.2013

3

Скворыга А. И.

04-03.2013

...

...

...



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