Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв БД 2013-03-15.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
12.65 Mб
Скачать

1.5.3. Правила формирования взаимосвязанных таблиц

Рассмотрим шесть правил формирования таблиц на примере двух максимально упрощенных таблиц с различными типами связей (п. 1.3.3):

ПРЕПОДАВАТЕЛИ (Табельный номер преподавателя, ФИО)

ПРЕДМЕТЫ (Код предмета, наименование предмета, часы)

Тип связи “Один к одному”

Правило 1. Класс принадлежностей обоих объектов ‑ обязательный.

Все атрибуты обоих объектов объединяются в одну таблицу:

ПРЕПОДАВАТЕЛИ_ПРЕДМЕТЫ (Табельный номер преподавателя, ФИО, код предмета, наименование предмета, часы).

Правило 2. Класс принадлежностей обоих объектов ‑ различный.

Формируются две таблицы:

ПРЕПОДАВАТЕЛИ (Табельный номер преподавателя, код предмета,ФИО)

ПРЕДМЕТЫ (Код предмета, наименование предмета, часы).

Таблица “ПРЕПОДАВАТЕЛИ” формируется из атрибутов объекта (“ПРЕПОДАВАТЕЛИ”) с обязательным КП (для каждого пре­­подавателя имеется один предмет) и дополняется ключом “Код пред­ме­та” объекта (“ПРЕД­МЕТЫ”) с необя­за­тель­ным КП (есть предметы, для ко­то­рых отсут­ствуют преподаватели). Таблицы связываются по атрибуту “Код пред­мета”. Это позволит избежать пустых зна­че­ний атрибутов.

Правило 3. Класс принадлежностей обоих объектов‑ необязательный

Формируются три таблицы:

П РЕПОДАВАТЕЛИ (Табельный номер преподавателя, ФИО).

ПРЕПОДАЮТ (Табельный номер преподавателя, код предмета).

ПРЕДМЕТЫ (Код предмета, наименование предмета, часы).

Создается таблица (“ПРЕПОДАЮТ) с ключами исход­ных объектов (“Табельный номер преподавателя” и “Код предмета”) для связывания таб­лиц “ПРЕПОДАВАТЕЛИ” и “ПРЕДМЕТЫ”.

Связь типа “Один-ко-многим” (1:М)

Допускается преподавание одним преподавателем несколь­ких пред­метов, но один предмет не может преподаваться несколькими пре­по­да­ва­те­ля­ми.

Правило 4. Класс принадлежностей обоих объектов ‑ обязательный.

Формируются таблицы:

ПРЕПОДАВАТЕЛИ (Табельный номер преподавателя, ФИО).

ПРЕДМЕТЫ (Код предмета, табельный номер преподавателя, наименова­ние предмета, часы).

Ключ (“Табельный номер преподавателя”) односвязанного объекта (“ПРЕ­ПО­ДАВАТЕЛИ”) добавляется как атрибут (внешний ключ) в много­свя­занный объект (“ПРЕД­МЕ­­ТЫ”).

Правило 5. Класс принадлежности многосвязанного объекта ‑ не­обя­­за­­тельный, односвязанного ‑ обязательный.

Формируются три таблицы:

П РЕПОДАВАТЕЛИ (Табельный номер преподавателя, ФИО).

ПРЕПОДАЮТ (Табельный номер преподавателя, код предмета).

ПРЕДМЕТЫ (Код предмета, наименование предмета, часы).

Вводится новая таблица (“ПРЕПОДАЮТ”) с ключами исход­ных объек­тов (“Табельный номер преподавателя” и “Код предмета”) для свя­зыва­ния этих таблиц.

Связь типа “Многие-к-одному” (М:1)

Допускается преподавание одним преподавателем не более одного предмета, но один предмет может преподаваться несколькими пре­по­дава­телями. Правила для этого случая аналогичны правилам 4 и 5.

Связь типа “Многие-ко-многим” (М:М)

Допускается преподавание одним преподавателем несколь­ких пред­ме­тов, и один предмет может преподаваться несколькими пре­по­да­ва­те­лями.

Правило 6. Независимо от класса принадлежностей обоих объектов формируются три таблицы:

П РЕПОДАВАТЕЛИ (Табельный номер преподавателя, ФИО).

ПРЕПОДАЮТ (Табельный номер преподавателя, код предмета).

ПРЕДМЕТЫ (Код предмета, наименование предмета, часы).

Вводится новая таблица (“ПРЕПОДАЮТ”) с ключами исход­ных объ­ек­тов (“Табельный номер преподавателя” и “Код предмета”) для свя­зыв­ания этих таблиц.

Надо отметить, что при объединении таблиц средствами языка SQL указывается тип объединения: полное/внутреннее (Full/Inner), лево/право­сто­роннее (Left/Right). Это позволяет не учитывать ряд соответствующих правил.