double arrow

Взаимосвязи в моделях

Прежде чем перейти к вопросам проектирования реляционных баз данных, остановимся подробнее на каждом из типов отношений. Взаимосвязь выражает отображение или связь между двумя множествами данных. Различают связи типа «один-к-одному», один-ко-многим», много-к-одному», «много-ко-многим». Рассмотрим задачу «УЧЕТ И ОБРАБОТКА ПУТЕВЫХ ЛИСТОВ». В этой задаче участвуют следующие объекты:

СПИСОК ВОДИТЕЛЕЙ

ПАСПОРТНЫЕ ДАННЫЕ ВОДИТЕЛЕЙ

СПИСОК АВТОМОБИЛЕЙ

ПУТЕВЫЕ ЛИСТЫ.

Отношение один-к-одному. Означает, что каждая запись в одной таблице соответствует одной записи в другой таблице. В качестве примера рассмотрим отношение группами Водители как работники и Водители как личность, представленными в таблицах СПИСОК ВОДИТЕЛЕЙ и ПАСПОРТНЫЕ ДАННЫЕ (фрагменты таблиц)

Список водителей Паспортные данные

  ТабНомер   № гаража     Код   ФИО Дата рождения № теле- фона
01002   Петров 23.05.80 24-15-12
  Серов 15.02.79 26-12-75
  Сур 31.08.56 25-75-87
  Волин 27.09.67 95-90-00

Рис 5.3.1. Тип отношения один-к-одному

Связь между этими таблицами поддерживается с помощью совпадающих полей: «Таб. Ном»(таблица СПИСОК ВОДИТЕЛЕЙ) и «Код»(Таблица ПАСПОРТНЫЕ ДАННЫЕ). Здесь поддерживаются отношения один-к-одному, поскольку для одного человека существует одна запись, содержащая профессиональные требования, и одна запись, содержащая паспортные данные. Отметим, что эти поля имеют разные наименования. Связь между таблицами устанавливается на основании значений совпадающих полей, но не их наименований.

Отношение один-ко-многим означает, что одной записи из первой таблицы соответствует несколько записей из другой таблицы. В качестве иллюстрации обратимся к совокупности таблиц: «Список водителей», «Справочник автомобилей» и «Путевые листы»

(рис 5.3.2). Связь таблиц «Список водителей», «Справочник автомобилей» с таблицей «Путевые листы» осуществляется на основании совпадающих полей ТабНом, ГосНом (в данном случае наименования этих поля в связанных таблицах совпадают). Из рис. 5.3.2. видим, что одной записи содержащей значение «ТабНомер» из таблицы «Список водителей» соответствует несколько записей из таблицы «Путевые листы». Аналогично одной записи содержащей значение «ГосНомер» из таблицы «Справочник автомобилей» соответствует несколько записей из таблицы «Путевые листы».

Список водителей Справочник автомобилей

  ТабНомер   № гаража     ГосНомер   Марка а/м   Дата учета Нормы расхода бензина
01002   С 256 КХ СТЗМ-32151 23.06.89
  24-76 ССЗ КАМАЗ-5410 18.03.99
  39-90 СКЛ ГАЗ-3109 08.08.96
  С 389 СХ ГАЗ-2410 14.04.01

Путевые листы

ТабНомер ГосНомер Дата выезда Пробег
С 256 КХ 15.03.02
24-76 ССЗ 15.03.02
39-90 СКЛ 15.03.02
С 389 СХ 15.03.02
С 256 КХ 16.03.02
24-76 ССЗ 16.03.02
С 389 СХ 16.03.02
С 389 СХ 16.03.02
С 389 СХ 17.03.02
С 256 КХ 17.03.02
24-76 ССЗ 17.03.02

Рис5.3.2 Тип отношения Один-ко-многим

Отношение много-к-одномуаналогично отношению один-ко-многим. Тип отношения зависит от точки зрения пользователя. Например, если рассматривать связь таблицы «Путевые листы» с таблицами «Список водителей» и «Справочник автомобилей», то получим отношение много-к-одному.

Отношение много-ко-многим возникает, когда одна запись из первой таблицы связана более чем с одной записью из второй таблицы. А запись из второй таблицы связана более чем с одной записью из первой таблицы. Например, пусть имеем в первой таблице «Производство товаров» список товаров, производимых предприятиями - поставщиками. Вторая таблица «Заказ товаров» содержит список товаров, заказанных потребителями. Между таблицами «Производство товаров» и «Заказ товаров» существует Отношение много-ко-многим, так как на каждый произведенный товар может быть более одного заказчика. Аналогично, каждый заказанный товар может производиться более чем на одном предприятии. Связь между таблицами устанавливается по полю «КОД ТОВАРА».


Сейчас читают про: