Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
153
Добавлен:
02.05.2014
Размер:
1.63 Mб
Скачать

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

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

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

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

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

1.6.4. Дополнительные конструкции, используемые в er - методе

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

Необходимость связей более высокого порядка

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

Сущностями в данном случае будут РАБОЧИЙ и СТАНОК и связь между ними ОБСЛУЖИВАЕТ. Типичные диаграммы ER-экземпляров и ER-типа приведены на рис.27.

РАБОЧИЙ ОБСЛУЖИВАЕТ СТАНОК

Р1 С1

Р2 С2

Р3 С3

Р4 С4

С5

а)

1 1

РАБОЧИЙ

СТАНОК

ОБСЛУЖИВАЕТ

рфам …. сном

б)

Рис.27. Диаграммы ER-экземпляров (а) и ER-типа (б)

для рассматриваемого примера.

При составлении диаграмм учитывалось, что все рабочие имеют работу, фамилии рабочих уникальны, некоторые станки рабочими не обслуживаются.

Т.к. степень связи равна 1:1 и класс принадлежности одной сущности является обязательным, а другой - нет, то используется правило 2 при генерации предварительных отношений. В результате получаем отношения: РАБОЧИЙ (рфам .... сном) и СТАНОК (сном ....).

Остается найти место атрибутам, не используемым в качестве ключей сущности: нцех, тстав, стип, дтип. Атрибуты нцех и тстав находят свое место в отношении РАБОЧИЙ, т.к. они содержат информацию о рабочих; стип, дтип и мдет помещаются в отношение СТАНОК, т.к. в них содержится информация о станках и деталях, на них обрабатываемых. Таким образом, предлагаются следующие отношения:

РАБОЧИЙ (рфам, нцех, тстав, сном),

СТАНОК ( сном, стип, дтип, мдет).

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

сном стип

рфам нцех сном мдет

тстав дтип

а) б)

Рис.28. Диаграмма ФЗ для отношений (а) РАБОЧИЙ

и (б) СТАНОК в примере ER-проектирования.

На рис.29 приводятся типичные экземпляры отношений, используемых при создании БД.

РАБОЧИЙ СТАНОК

рфам

нцех

тстав

сном

сном

стип

дтип

мдет

Р1

3

500

С1

С1

Токар.

М1

Р2

3

400

С3

С1

Токар

М2

Р3

3

300

С2

С2

Фрез.

М1

Р4

3

200

С4

С3

Свер.

М1

С4

Шлиф

М3

Рис.29. Типичные экземпляры отношений РАБОЧИЙ и СТАНОК.

Эта же БД будет проанализирована при различных предположениях далее в этой теме.

В основе рассмотренного примера лежит необходимость хранения информации о рабочих; станках, обслуживаемых рабочим; типах деталей, обрабатываемых на этих станках. Предположим, что нам необходимо знать, какой-тип детали предпочитает изготавливать тот или иной рабочий. Если посмотреть на диаграмму экземпляров, изображенную на рис.27, а то может показаться естественным заключение о том, что раз рабочий Р1 обслуживает станок С1, на котором обрабатываются детали 2Т и 1Т (см. рис. 29), то следовательно Р1 любит изготавливать детали 2Т и 1Т. Это может быть правдой, а может и не быть.

Если связь между сущностями РАБОЧИЙ и ДЕТАЛЬ существует, то эта связь, назовем ее ПРЕДПОЧИТАЕТ, должна быть представлена на диаграмме ER - экземпляров, как это показано на рис.30.

Пунктирные линии использованы с целью выделения экземпляров связи ПРЕДПОЧИТАЕТ. Кроме того, во избежание путаницы приведены только несколько экземпляров.

Р1

С1

Р2

С3

Р4

С4

Рис. 30. Диаграмма ER - экземпляров в случае, когда рабочие отдают предпочтение некоторым типам деталей.

На диаграмме ER – типа связь ПРЕДПОЧИТАЕТ должна соединять сущности РАБОЧИЙ и ДЕТАЛЬ.

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

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

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

Рабочий Р1 обслуживает два станка – С1 и С2.

Рабочий Р2 обслуживает только станок С2.

Рабочий Р1 предпочитает изготавливать деталь 1Т на станке С1.

Рабочий Р1 предпочитает изготавливать деталь 2Т на станке С2.

Рабочий Р2 предпочитает изготавливать деталь 2Т на станке С2.

На рис. 31 приведена диаграмма ER- экземпляров, в которой использованы бинарные связи, включающие только указанные 5 единиц информации.

Важно заметить, что хотя из диаграммы можно вывести все характеризующие Р1 и Р2 (см. выше) утверждения, также можно заключить, что Р1 предпочитает изготавливать деталь 2Т на станке С1, а это неверно.

Рабочий Станок Деталь

Р1 С1 1Т

Р2 С2 2Т

Рис.31. Диаграмма ER - экземпляров (а) и ER - типа (б) в случае, когда все связи имеют степень m:n.

Проблема возникает из того факта, что в данном случае все связи имеют степень m:n и, следовательно, отсутствует уникальный путь, соединяющий вместе три экземпляра сущности единственным образом. Причину возникновения подобной проблемы можно понять, обратив внимания на то, что каждое из утверждений "Рабочий Р1 предпочитает изготавливать деталь 1Т на станке С1" и "Р1 предпочитает изготавливать деталь 2Т на станке С2" связывает вместе три информационные единицы. Та же информация не может быть заключена в выражениях "Р1 обслуживает станки С1 и С2"; "На станках С1 и С2 обрабатываются детали 1Т и 2Т; " Р1 предпочитает изготавливать детали 1Т и 2Т."

Суть в том, что информационные триплеты нельзя предоставить в виде набора из трех бинарных связей. Правильная модель приведена на рис. 32 и требует использования трехсторонних связей.

Рабочий Станок Деталь

С1

Р1

С2

Р2

а)

Станок

n

Р_С_Д

Рабочий

Деталь

m сном… k

рфам….. дтип….

б)

Рис. 32. Диаграммы ER - экземпляров (а) и ER - типа (б) в случае трехсторонней связи Р_С_Д.

Соседние файлы в предмете Базы данных