Формирование отношений для связи 1:1

      Комментарии к записи Формирование отношений для связи 1:1 отключены

Этапы проектирования

Процесс проектирования базы данных – это процесс, допускающим возврат к предыдущим этапам для пересмотра ранее принятых решений и включает следующие этапы:

1. Выделение сущностей и связей между ними.

2. Построение диаграмм ER-типа с учетом всех сущностей и их связей.

3. Формирование набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения и использованием диаграмм ER-типа.

4. Добавление неключевых атрибутов в отношения.

5. Приведение предварительных отношений к нормальной форме Бойса-Кодда, например, с помощью метода нормальных форм.

6. Пересмотр ER-диаграмм в следующих случаях:

• некоторые отношения не приводятся к нормальной форме Бойса-Кодда;

• некоторым атрибутам не находится логически обоснованных мест в предварительных отношениях.

После преобразования ER-диаграмм осуществляется повторное выполнение предыдущих этапов проектирования (возврат к этапу 1).

Одним из узловых этапов проектирования является этап формирования отношений. Рассмотрим процесс формирования предварительных отношений, составляющих первичный вариант схемы БД.

В рассмотренных выше примерах связь ВЕДЕТ всегда соединяет две сущности и поэтому является бинарной. Сформулированные ниже правила формирования отношений из диаграмм ER-типа распространяются именно на бинарные связи. Поэтому, когда речь идет о связях, слово «бинарные» далее опускается.

Правила формирования отношений

Правила формирования отношений основываются на учете следующего:

•степени связи между сущностями (1:1,1:М, М:1, М:М);

• класса принадлежности экземпляров сущностей (обязательный и необязательный).

Рассмотрим формулировки шести правил формирования отношений на основе диаграмм ER-типа.

Формирование отношений для связи 1:1

Правило 1.Если степень бинарной связи 1:1 и класс принадлежности обеих сущностей обязательный, то формируется одно отношение. Первичным ключом этого отношения может быть ключ любой из двух сущностей.

На рис. 6.6 приведены диаграмма ER-типа и отношение, сформированное по правилу 1 на ее основе.

Рис. 6.6 Диаграмма отношения для правила 1

На рисунке используются следующие обозначения:

С1, С2 – сущности 1 и 2;

Kl, K2 — ключи первой и второй сущности соответственно;

R1 — отношение 1, сформированное на основе первой и второй сущностей;

KlvK2,… означает, что ключом сформированного отношения может быть либо К1, либо К2.

Это и другие правила будем проверять, рассматривая различные варианты связи ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНУ. Пусть сущность ПРЕПОДАВАТЕЛЬ характеризуется атрибутами НП (идентификационный номер преподавателя), ФИО (фамилия, имя и отчество), Стаж (стаж преподавателя). Сущность ДИСЦИПЛИНА характеризуется соответственно атрибутами КД (код дисциплины), Часы (часы, отводимые на дисциплину). Тогда схема отношения, содержащего информацию об обеих сущностях, и само отношение для случая, когда степень связи равна 1:1, а КП обязательный для всех сущностей, могут иметь вид, показанный на рис. 6.7.

ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА(НП,ФИО, Стаж, КД, Часы) ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА

НП ФИО Стаж КД Часы
П1 Иванов И.М. К1
П2 Петров М.И. К2
ПЗ Сидоров н.г КЗ
П4 Егоров В.В. К4

Рис. 6.7. Полученные по правилу 1 схема и отношение

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

Правило 2.Если степень связи 1:1 и класс принадлежности одной сущности обязательный, а второй — необязательный, то под каждую из сущностей формируется по отношению с первичными ключами, являющимися ключами соответствующих сущностей. Далее к отношению, сущность которого имеет обязательный КП, добавляется в качестве атрибута ключ сущности с необязательным КП.

На рис. 6.8 приведены диаграмма ER-типа и отношения, сформированные по правилу 2 на ее основе.

Рис. 6.8 Диаграмма и отношения для правила 2

Чтобы убедиться в справедливости правила, рассмотрим следующий пример. На рис. 6.9 приведено исходное отношение, содержащее информацию о преподавателях и дисциплинах. Оно представляет вариант, в котором класс сущности ПРЕПОДАВАТЕЛЬ является обязательным, а сущности ДИСЦИПЛИНА — необязательным. При этом пробелы «—» (пустые поля) присутствуют во всех кортежах с информацией о дисциплинах, которые не ведутся ни одним из преподавателей.

ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА

НП ФИО Стаж КД Часы
П1 Иванов И.М. К1
П2 Петров М.И. К2
ПЗ Сидоров н.г КЗ
К4

Рис. 6.9 Исходное отношение

Избежать этой ситуации можно, применив правило 2, в соответствии с которым, выделяются два отношения, приведенные на рис. 6.10.

Рис. 6.10 Отношения, полученные по правилу 2

В результате мы избежали пустых полей в отношениях, не потеряв данных. Добавив атрибут КД — ключ сущности ДИСЦИПЛИНА (с необязательным КП) в качестве внешнего ключа в отношение, соответствующее сущности ПРЕПОДАВАТЕЛЬ (с обязательным КП), мы связали отношения (рис. 6.11).

НП ФИО Стаж КД КД Часы

Рис. 6.11. Связь отношений по внешнему ключу

Точнее говоря, мы создали условия для связывания отношений. Это связывание при работе с базой данных позволяет, например, получать одновременно данные о преподавателе и о ведущихся им дисциплинах (часах).

Правило3. Если степень связи 1:1 икласс принадлежности обеих сущностей является необязательным, то необходимо использовать три отношения. Два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях. Третье отношение является связным между первыми двумя, поэтому его ключ объединяет ключевые атрибуты связываемых отношений.

Рис 6.12 Диаграмма и отношения для правила 3

На рис. 6.12 приведены диаграмма ER-типа и отношения, сформированные по правилу 3 на ее основе.

На рис. 6.13 приведены примеры отношений, подтверждающие необходимость использования трех отношений при наличии необязательного КП для обеих связываемых сущностей.

Рис. 6.13 Варианты отношений для правила 3

Использование одного отношения в рассматриваемом случае приводит к наличию нежелательных пустых полей в этом отношении (рис. 6.13а). При использовании двух отношений (рис. 6.136) нам пришлось добавить ключи каждой из сущностей в отношение, соответствующее другой сущности, чтобы не потерять сведения о том, какую дисциплину ведет каждый преподаватель и наоборот. При этом также появились пустые поля.

Выход заключается в использовании трех отношений, сформированных по правилу 3 (рис. 6.13в). Объектные отношения (с атрибутами сущностей) содержат полную информацию обо всех преподавателях и дисциплинах соответственно. Связное отношение ВЕДЕТ содержит данные о преподавателях, которые ведут дисциплины и о дисциплинах, которые ведутся преподавателями. При этом в нем имеется только одно упоминание о каждом преподавателе и дисциплине в силу связи 1:1. Это отношение содержит в данном случае только ключевые атрибуты обеих сущностей, но может иметь и Другие атрибуты, характеризующие эту связь. Например, номер семестра, в котором преподаватель ведет дисциплину.

Итак, сформулированы три правила, позволяющие формировать отношения на основе ER-диаграмм, для вариантов со степенью связи типа 1:1. Сформулируем аналогичные два правила для вариантов, степень связи между сущностями которых 1:М.

Статьи к прочтению:

Какие типы связей между таблицами существуют в БД Access


Похожие статьи:

  • Формирование отношений для связи 1:м

    Если две сущности С1 и С2 связаны как 1:М, сущность С1 будем называть односвязной (1-связной), а сущность С2 — многосвязной (М-связной). Определяющим…

  • Формирование отношений для связи м:м

    При наличии связи М:М между двумя сущностями необходимо три отношения независимо от класса принадлежности любой из сущностей. Использование одного или…