Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pis_lect.docx
Скачиваний:
24
Добавлен:
28.10.2018
Размер:
2.55 Mб
Скачать

5.2.2. Правила генерации таблиц из er-диаграмм со связями степени 1:1. (вопрос 45)

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

Пусть эта таблица называется Автор, и все атрибуты помещены в неё. На рис. 5.4. приведен пример, где класс принадлежности является обязательным для обеих сущностей (рис. 5.2(г), 5.3(г)).

Сущность Автор дополнена двумя типичными атрибутами:

Фамилия-имя-автора (афам) и телефон автора (ател).

Рис. 5.4. Отдельная таблица, где содержатся данные, приведенные на рис. 5.2(г) и 5.3(г).

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

Первое правило генерации отношений (таблиц).

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

Это самый простой случай. Усложнение задачи связано с тем, что класс принадлежности одной сущности является обязательным, а другой – необязательным.

На рис.5.5 приведена таблица для случая, когда класс принадлежности сущности Автор является обязательным, а сущности Книга – необязательным

(рис.5.2 б) и рис.5.3 б)).

Рис. 5.5. Отдельная таблица, где содержатся данные, приведенные на рис.5.2 б) и 5.3 б).

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

Способ исключения «пробелов» состоит в использовании двух таблиц вместо одной. Каждая таблица будет содержать информацию об одной сущности. Кроме того, ключ сущности, класс принадлежности которой является необязательным, необходимо поместить в качестве атрибута в таблицу, содержащую информацию о сущности, класс принадлежности которой является обязательным. Этот вариант приведен на рис. 5.6.

Рис. 5.6. Таблицы, где содержатся данные рис. 5.2(б), рис. 5.3(б).

Второе правило генерации отношений (таблиц).

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

Используя это правило для ситуации, представленной на рис. 5.2 (в), рис. 5.3 (в), где класс сущности Книга является обязательным, а сущности Автор – необязательным, получим два отношения для двух таблиц: Автор (НА, афам, ател.), Книга (НК, кназ, НА).

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

В этом случае единственное решение заключается в формировании 3-х таблиц: по одной для каждой сущности и одной для связи между ними.

«Пробелы» возникают везде, за исключением случая использования трех таблиц (рис. 5.7.).

Таблица Автор содержит информацию обо всех авторах, таблица Книга содержит информацию обо всех книгах. В таблице «Пишет» любые значения, как номера-автора, так и номера-книги могут появиться только раз, так как степень связи равна 1:1. Кроме того, таблица «Пишет» содержит номер - книги только тех книг, которые пишутся, и номер-автора только тех авторов, которые пишут книгу в данный текущий момент.

Рис. 5.7. Возможные варианты таблиц для случая бинарной связи степени 1:1, когда ни один из классов принадлежности не является обязательным.

Третье правило генерации отношений (таблиц).

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

Замечание. В рассмотренном случае таблица «Пишет», для формирования которой послужила связь, не имеет других атрибутов, кроме ключей. Такая ситуация наблюдается не всегда. Например, если бы каждой книге на стадии её написания придавался редактор, фамилия его могла бы быть атрибутом таблицы «Пишет».

5.2.3. ER - диаграммы с типом связи между таблицами «Один - ко- многим». (вопрос 46)

Для случая бинарных связей степени 1:n требуется применение двух правил. Определяющим фактором выбора и использования одного из двух правил, является класс принадлежности n-связной сущности; класс же принадлежности 1-связной сущности не влияет на конечный результат.

На рис. 5.8 показаны различные диаграммы ER-экземпляров в случае, когда каждый автор может писать одновременно несколько книг, но каждая книга пишется не более чем одним автором. На рис. 5.9 представлены эквивалентные им ER-диаграммы.

Рис. 5.8. Примеры диаграмм экземпляров для случая степени связи 1:n.

Рис. 5.9. ER-диаграммы, соответствующие диаграммам ER-экземпляров с

рис. 5.8.

На рис. 5.10 приведена таблица Книга, содержащая данные, приведенные на рис.5.8(в) и 5.9(в). Этот случай отображает степень связи 1:n с обязательным классом n-связной сущности Книга и с необязательным классом принадлежности 1-связной сущности Автор.

Рис. 5.10. Использование одной таблицы для бинарной связи типа 1:n в случае, когда класс принадлежности n-связной сущности является обязательным, а 1-связной – необязательным.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]