Переход от диаграмм ER – типа к отношениям 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Переход от диаграмм ER – типа к отношениям



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

Рассмотрим, как с использованием диаграммы ER-типа можно получить отношения, служащие основой построения БД.

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

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

Последний шаг состоит в подготовке списка всех представляющих интерес атрибутов (тех из них, которые не были уже перечислены в диаграмме ER-типа в качестве ключей сущности) и включение каждого из этих атрибутов в одно из предварительных отношений с тем условием, чтобы эти отношения находились в НФБК.

На этом последнем шаге для каждого отношения должны быть определены межатрибутные ФЗ, с помощью которых проверяется соответствие отношений НФБК. Если полученные в итоге отношения не находятся в НФБК, то к ним необходимо применить операцию декомпозиции, с последующей проверкой полученных отношений на нахождение в НФБК.

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

Предварительные отношения для бинарных связей степени 1:1

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

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

ПРЕПОДАВАТЕЛЬ (нп, пфам, птел, нд, название).

ПРЕПОДАВАТЕЛЬ

нп пфам птел нд название
П1 Кулаков   Д1 ВМ
П2 Быков   Д2 ТМ
П3 Пухова   Д3 ВТ
П4 Ахмеров   Д4 Физика

Рис.19. Экземпляр единичного отношения, в котором

содержатся данные в соответствии с рис.17,г и 18, г.

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

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

Итак, можно сформулировать первое правило генерации отношения.

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

Если степень связи равна 1:1 и класс принадлежности одной сущности является обязательным, а другой - не обязательным, то одного отношения недостаточно. На рис.20 приведен экземпляр отношения в том случае, когда класс принадлежности сущности ПРЕПОДАВАТЕЛЬ является обязательным, а сущности ДИСЦИПЛИНА – не обязательным (см. рис. 17,б и 18,б). В этом случае пробелы появляются во всех кортежах, содержащих информацию о дисциплинах не читаемых ни одним из преподавателей. Пробелы обозначаются знаками "-".

ПРЕПОДАВАТЕЛЬ (нп, пфам, птел, нд, название)

ПРЕПОДАВАТЕЛЬ

нп пфам птел нд название
П1 Кулаков   Д1 ВМ
П2 Быков   Д2 ТМ
П3 Пухова   Д3 ВТ
-- -- -- Д4 Физика

 

Рис.20. Экземпляр единичного отношения, в котором содержатся данные в соответствии с рис. 17,б и 18,б.

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

ПРЕПОДАВАТЕЛЬ (нп, Пфам, Птел, нд,)

ДИСЦИПЛИНА (нд,название)

 

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

нп пфам птел нд   нд название
П1 Кулаков   Д1 Д1 ВМ
П2 Быков   Д2 Д2 ТМ
П3 Пухова   Д3 Д3 ВТ

Рис.21. Экземпляры двух отношений, в которых содержатся данные, приведенные на рис.17,б и 18,б.

Итак, второе правило генерации отношений.

ПРАВИЛО 2. Если степень бинарной связи равна 1:1 и класс принадлежности одной сущности является обязательным, а другой - необязательным, то необходимо построение двух отношений. Под каждую сущность необходимо выделение одного отношения, при этом ключ сущности должен служить первичным ключом для соответствующего отношения. Кроме того, ключ сущности, для которого класс принадлежности является не обязательным, добавляется в качестве атрибута в отношение, выделенное для сущности с обязательным классом принадлежности.

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

Воспользовавшись этим правилом в ситуации, описанной на рис.17,в и 18,в, где класс принадлежности сущности ДИСЦИПЛИНА является обязательным, а сущности ПРЕПОДАВАТЕЛЬ - необязательным, получим следующие отношения:

ПРЕПОДАВАТЕЛЬ (нп, пфам, птел).

ДИСЦИПЛИНА (нд, название, нп).

В том случае, когда степень бинарной связи равна 1:1 и класс принадлежности ни одной из сущностей не является обязательным (см. рис.17,а и 18,а) необходимо формирование трех отношений: по одному для каждой сущности и одного для связи. На рис. 22 приведены экземпляры отношений, получаемые при использовании одного, двух и трех отношений

 

ПРЕПОДАВАТЕЛЬ

нп пфам птел нд название
П1 Кулаков   Д1 ВМ
П2 Быков   -- --
П3 Пухова   Д3 ВТ
-- -- -- Д4 Физика

а) Использование одного отношения

 

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

нп пфам птел нд   нд название
П1 Кулаков   Д1 Д1 ВМ
П2 Быков   -- Д2 ТМ
П3 Пухова   Д3 Д3 ВТ

б) Использование двух отношений

 

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

нп пфам птел   нд название
П1 Кулаков   Д1 ВМ
П2 Быков   Д3 ВТ
П3 Пухова   Д4 Физика

ЧИТАЕТ

нп нд
П1 Д1
П3 Д3

в) Использование трех отношений

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

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

Итак, третье правило генерации отношений.

ПРАВИЛО 3. Если степень бинарной связи равна 1:1 и класс принадлежности ни одной сущности не является обязательным, то необходимо использовать три отношения: по одному для каждой сущности, ключи которых служат в качестве первичных ключей в соответствующих отношениях, и одного для связи. Среди своих атрибутов отношение, выделяемое связи, будет иметь по одному ключу сущности от каждой сущности.

Предварительные отношения для бинарных связей степени 1:N.

На рис.23 показан экземпляр отношения ПРЕПОДАВАТЕЛЬ, для случая, когда каждый преподаватель может читать более чем одну дисциплину и нет дисциплин, которые не читаются и имеются преподаватели, которые ничего не читают. Кроме того, каждая дисциплина читается только одним преподавателем. Т.е. рассматривается случай, когда класс принадлежности сущности ПРЕПОДАВАТЕЛЬ является необязательным, а сущности ДИСЦИПЛИНА – обязательным, а степень связи 1:N.

ПРЕПОДАВАТЕЛЬ

нп пфам птел нд название
П1 Кулаков   Д1 ВМ
П1 Кулаков   Д2 ТМ
П1 Кулаков   Д3 СМ
П2 Быков   Д4 ХИМИЯ
П2 Быков   Д5 Физика
П3 Пухова   Д5 ВТ
П4 Ахмеров   -- --

 

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

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

Решить все эти проблемы, вне зависимости от класса принадлежности 1 - связной сущности, можно согласно следующему правилу.

ПРАВИЛО 4. Если степень бинарной связи равна 1:n и класс принадлежности n - связной сущности является обязательным, то достаточным является использование двух отношений, по одному на каждую сущность, при условии, что ключ сущности каждой сущности служит в качестве первичного ключа для соответствующего отношения. Дополнительно ключ 1 - связной сущности должен быть добавлен как атрибут в отношение, отводимое n - связной сущности.

На рис.24 приведены примеры двух отношений, построенных с помощью этого правила и содержащие ту же информацию, которая представлена на рис. 23. Здесь все пробелы и повторяющиеся группы данных исчезли.

 

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

нп пфам птел   нд название нп
П1 Кулаков   Д1 ВМ П1
П2 Быков   Д2 ТМ П1
П3 Пухова   Д3 СМ П1
П4 Ахмеров   Д4 ХИМИЯ П2
  Д5 Физика П2
Д5 ВТ П3

 

Рис. 24. Данные, приведенные на рис.23 после их разнесения по двум отношениям с помощью ПРАВИЛА 4.

На рис.25,а показан экземпляр отношения ПРЕПОДАВАТЕЛЬ для случая степени связи 1:n с необязательным классом принадлежности обоих сущностей.

ПРЕПОДАВАТЕЛЬ

нп пфам птел нд название  
П1 Кулаков   Д1 ВМ  
П1 Кулаков   Д2 ТМ  
П1 Кулаков   Д3 СМ  
П2 Быков   Д4 ХИМИЯ  
  П2 Быков   Д5 Физика
-- -- -- Д5 ВТ  
П4 Ахмеров   -- --  
                     

а)

 

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

нп пфам птел   нд название нп
П1 Кулаков   Д1 ВМ П1
П2 Быков   Д2 ТМ П1
П4 Ахмеров   Д3 СМ П1
  Д4 ХИМИЯ П2
  Д5 Физика П2
  Д5 ВТ --

б)

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

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

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

Если применить ПРАВИЛО 4 к этому случаю и сформировать два отношения (см. рис. 25,б), то все проблемы будут решены за исключением одной: не исчезнут пробелы в полях номера преподавателя в новом отношении ДИСЦИПЛИНА во всех тех местах, где дисциплина не читается.

Решить все эти проблемы вне зависимости от класса принадлежности 1 - связной сущности можно, следуя следующему правилу.

ПРАВИЛО 5. Если степень бинарной связи равна 1:n и класс принадлежности n-связной сущности является необязательным, то необходимо формирование трех отношений: по одному для каждой сущности, причем ключ каждой сущности служит первичным ключом соответствующего отношения, и одного отношения для связи. Отношение, выделенное для связи должна иметь среди своих атрибутов ключ сущности от каждой сущности.

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

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

нп пфам птел   нд название нп
П1 Кулаков   Д1 ВМ П1
П2 Быков   Д2 ТМ П1
П4 Ахмеров   Д3 СМ П1
  Д4 ХИМИЯ П2
Д5 Физика П2
 

ЧИТАЕТ

нп нд
П1 Д1
П1 Д2
П1 Д3
П2 Д4
П2 Д5

 

Рис.26.Размещение данных в трех отношениях с помощью ПРАВИЛА 5.

В отношении ЧИТАЕТ нд является первичным ключом в силу существующей связи типа n:1 между нд и нп.

Предварительные отношения для бинарных связей степени N:M

Если степень бинарной связи равна N:M, то для хранения данных требуется три отношения вне зависимости от класса принадлежности как первой, так и второй сущностей. При использовании одного или двух отношений неизбежно возникновение пробелов и/или повторяющихся групп данных в экземплярах этих отношений. Какая из этих двух проблем возникает при использовании двух отношений, зависит от классов принадлежности двух сущностей. Предлагается следующие правило генерации предварительных отношений для степени связи m:n.

ПРАВИЛО 5. Если степень бинарной связи равна N:M, то для хранения данных необходимо три отношения: по одному для каждой сущности, причем ключ каждой сущности используется в качестве первичного ключа соответствующего отношения, и одного отношения для связи. Последнее отношение должно иметь в числе своих атрибутов ключ сущности каждой сущности.

Для случая, когда степень связи равна N:M и ни один класс принадлежности не является обязательным экземпляры отношений соответствуют рис. 26.

В этом случае отношение ЧИТАЕТ целиком является ключом. Аналогичными будут экземпляры отношений, содержащие те же данные в тех случаях, когда один или оба класса принадлежности являются обязательными.



Поделиться:


Последнее изменение этой страницы: 2016-09-13; просмотров: 852; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.159.150 (0.032 с.)