СУБД MS Access 2003 (960526), страница 7
Текст из файла (страница 7)
Если связь между сущностями Проводник и Рыба существует, то она должна быть представлена на диаграмме какПредпочитает (рис. 22).ОзероПроводник•NРыба.———Проводник•м];! IIРис. 22. Ей-диаграмма к задачеВ этом случае, когда связь Предпочитает N:l, можно обойтись бинарными связями. В отношение Проводник добавить ключевой атрибут вида рыбы КР.Можно показать недостаточность бинарных связей для корректного моделирования некоторой ситуации.
Предположим, чтопроводники обслуживают более чем по одному озеру и каждыйпроводник может предпочитать ловить один вид рыбы в одномТема 2. Получение отношений из диаграммы ЕЯ-типа43озере, а другой - в другом озере. Семенов, например, предпочитает ловить пучеглазика в озере Черное и северную щуку в озере Великое. Дмитриев обслуживает только озеро Великое и предпочитает ловить северную шуку.
Собрав вместе эти данные, получимследующий перечень утверждений:•Семенов обслуживает оба озера - Черное и Великое.•Дмитриев обслуживает только озеро Великое.•Семенов предпочитает ловить пучеглазика в озере Черное.•Семенов предпочитает ловить северную щуку в озере Великое.•Дмитриев предпочитает ловить северную щуку в озере Великое.Так как бинарные связи не позволяют корректно отображатьэту информацию, то воспользуемся трехсторонней связью, т.
е. отношением, в котором неразрывно связаны три сущности: проводник, обслуживаемое им озеро и предпочитаемая проводникомв этом озере рыба (рис. 23).КРРис. 23. ЕЯ-диаграмма для случая трехсторонней связиВ этом случае правило перехода к предварительным отношениям для 3-сторонних (TV-сторонних) связей будет иметь вид:Правило 7. В случае трехсторонней связи необходимо использовать 4 («+1) предварительных отношения, по одному для каждойсущности, и одно для связи. Причем ключ каждой сущности должен служить в качестве первичного ключа для соответствующегоотношения.
Отношение, порождаемое связью, будет иметь средисвоих атрибутов ключи от каждой сущности. (Аналогично, когдасвязь /V-сторонняя, требуется л+1 предварительное отношение.)Применим это правило к нашей задаче. Получаем следующиеотношения (табл. 37^-0):пПроектирование баз данных. СУБД MS AccessПроводник(КП,...)Озеро(КО, •••)Рыба(КР, ...)U О Р(КП. КО.
КР. ...)Первичный ключ для П_О_Р не может быть определен до техпор, пока не будут распределены все другие атрибуты. Первичныйключ для П_О_Р будет составным < П„имя, О_назв > в том случае, если каждый проводник предпочитает ловить в озере толькоодин вид рыбы. Если число видов рыбы два или более для какоголибо озера, то все три атрибута отношения П_О_Р будут составлять ключ.Таблица 37. ПроводникТелефонЛ77ПлатаРазмерl-.llТаблица 38. ОзероКОНазваниеРейтингI..Таблица 39.
РыбаКРVniaxНазваниеНаживка\ рТаблица 40. ВодитсякпкоКР<КП. КО. КР>Контрольные вопросы1. Сколько таблиц необходимо, если связь объединяет 4 сущности в одно неразрывное целое?Тема 2. Получение отношений из диаграммы ЕЯ-типа452. Как класс принадлежности влияет на получение предварительных отношений в случае, если связь объединяет 4 сущностив одно неразрывное целое?3. Какие атрибуты принимаются за ключевые в предварительныхотношениях, соответствующих случаю, когда связь объединяет4 сущности в одно неразрывное целое?Задание 5Для случаев, описанных ниже, составьте £/?-диаграммуи по правилу 6 перейдите от нее к предварительным отношениям,для каждого отношения укажите первичный ключ.1. Рецелт на лекарство реализован в аптеке.2.
Экзамен по дисциплине сдает группа преподавателю.3. Личность проживает в номере гостиницы.5. Использование ролейВ некоторых ситуациях одних сущностей и связей может оказаться недостаточно для полноценного моделирования организации. Одна из таких ситуаций возникает тогда, когда экземплярынекоторой сущности должны играть разные роли в деятельностипредприятия.Рассмотрим задачу.
В ней идет речь о небольшом предприятии - поставщике автомобилей. Имеется следующая информацияо производственном персонале. На предприятии две категориислужащих: мастера и сборщики. Мастера получают фиксированный оклад, в то время как у сборщиков почасовая оплата. Ключсущности - номер страхового полиса каждого служащего (рис. 24).СборщикМастерМастер#Сборщнк#Рис. 24. ER-диаграмма классов сущностейЗдесь Мастер# и Сборщик# - номера страховых полисов, ключи сущностей. По правилу 4 получаем два предварительных отношения:46Проектирование баз данных. СУБД MS AccessЛ/дстер(Мастер#, ...), ...
, Мастер#)В отношения необходимо добавить следующие атрибуты:•СлФам - фамилия и имя служащего.•РТел - номер служебного телефона мастера. Сборщик служебного телефона не имеет.•ДТел - номер домашнего телефона служащего.•СлАдрес - домашний адрес служащего.•ТСтавка - почасовая тарифная ставка сборщика.•Оклад - месячный оклад мастера.••СбКод - рабочий код сборщика.СфКомп - сфера компетенции мастера.В результате предварительные отношения будут преобразованы к виду:А/астер(Мастер#, Оклад, СфКомп, РТел, ...)Сборщик(Сборщнк#> ТСтавка, СбКод, ..., Мастер#)Остальные атрибуты: ДТел, СлФам, СлАдрес - можно продублировать в обоих отношениях под разными именами. Однако этотспособ имеет ряд недостатков: во-первых, присутствует дублирование информации; во-вторых, усложняется поиск, например припоиске домашнего телефона служащего Петрова необходимо просматривать обе таблицы.Можно предложить другое решение, ввести дополнительноеотношение Служащий, обобщающее сущности Мастер и Сборщик, и все оставшиеся атрибуты приписать этому отношению.Прежде чем сформулировать правило, рассмотрим некоторые понятия.
Роль, или ролевая сущность, описывает функции, выполняемые сущностью в организации. Между ролевыми сущностямимогут быть связи, зависящие от деятельности организациии от выполняемых ими функций. Обобщающая сущность описывает общие свойства всех ролевых сущностей. Между обобщающей сущностью и ролевыми сущностями устанавливается связьтипа «дерево», иерархическая связь (рис. 25).Тема 2.
Получение отношений из диаграммы £7?-типаОбобщающая сущностьРолевая сущностьМастер1 • Ролевая сущностьСборщикМастер#Сборщик#Рис. 25. Ей-диаграмма для случая иерархических связейПравило 8. Обобщающей сущности соответствует одно отношение, причем ключ сущности служит в качестве ключа отношения, общие для всех ролевых сущностей атрибуты приписываютсяэтому отношению. Ролевые элементы и связи, их соединяющие,порождают такое число отношений, которое определяется ранееописанными правилами, причем каждая роль трактуется как обычная сущность. Связываются отношения с помощью ключевого атрибута.
Каждому значению ключевого атрибута ролевой сущностисоответствует одна запись в обобщающем отношении с таким жезначением ключа.Служащий(Служ#, СлФам, ДТел,СлАдрес)Мастер(Мастер#, Оклад, СфКомп, РТел)Сборщик(Сборщик#, ТСтавка, СбКод, Мастер#)Номер страхового полиса связывает эти отношения. Можнов отношение Служащий включить атрибут роль - мастер или сборщик.6. Связь между таблицамиИз рассмотренных примеров следует, что результатом проектирования по методу «сущность-связь» является совокупностьвзаимосвязанных таблиц. Связь между таблицами осуществляетсячерез одинаковые по смыслу, типу и значению атрибуты. Назовемих атрибутами связи. В одних таблицах эти атрибуты играютроль ключевых, в других они вводятся дополнительно по правилам1-8 для отображения связи.
В Примере 9 темы \ таблицы Преподаватель к Дисциплина связаны с помощью атрибута Код дисциплины. В таблице Дисциплина он является ключевым, а в таблицеПреподаватель это обычный атрибут.48Проектирование баз данных. СУБД MS AccessТаблица, в которой атрибут связи является ключом отношения,называется главной; связанная с ней по этому атрибуту таблица называется подчиненной. Информация в подчиненной таблице зависит от данных в главной таблице. Атрибут связи в подчиненнойтаблице называется внешним ключом.Для Примера 9 темы 1: таблица Дисциплина - главная, таблицаПреподаватель - подчиненная, атрибут Код дисциплины в таблицеПреподаватель - внешний ключ.Данные в связанных таблицах должны удовлетворять следующим ограничениям целостности:•каждой записи главной таблицы может соответствовать нульили более записей подчиненной таблицы;•в подчиненной таблице не должно быть записей, которыене имеют родительской записи в главной таблице;•каждая запись подчиненной таблицы может иметь только однуродительскую запись в главной таблице.Эти ограничения определяют порядок выполнения операцийввода, обновления и удаления записей.Перед созданием таблиц и заполнением их данными след\етопределить между ними отношение порядка.
К нулевому уровнюотносятся таблицы, в которых данные не зависят от данных в других таблицах. Обычно это таблицы со справочными данными.К первому уровню принадлежат те таблицы, данные в которых зависят только от таблиц нулевого уровня; ко второму - таблицы,данные в которых зависят от таблиц нулевого и первого уровня,и т. д. Полученное отношение порядка определяет порядок заполнения таблиц.
Сначала создают и заполняют таблицы нулевогоуровня, затем первого и т. д.Для Примера 9 темы 1 таблица Дисциплина является независимой и относится к нулевому уровню, таблица Преподаватель к первому уровню. Следовательно, сначала надо создать и заполнить таблицу Дисциплина.Процессы создания таблиц, связывания их, выполнения операций ввода, обновления и удаления записей в СУБД Access подробно рассмотрены в теме 3 настоящих рекомендаций по проектированию БД.Тема 2. Получение отношений из диаграммы £У?-типа49Контрольные вопросыКак скажется на решении изменение следующих условий:1.
Каждый сборщик в разное время может входить в разные бригады. Бригада создается для выполнения определенной работы.В бригаде несколько человек, ею руководит бригадир.2. В штате существуют сборщики, за которыми в данный моментне закреплена работа (они находятся в отпуске, на больничноми т. п.).Задание 6Ниже приведены списки атрибутов для разных предметныхобластей. Дня каждой ПО построить ЕЯ-диаграмму и перейтиот нее к предварительным отношениям. Затем все оставшиеся атрибуты приписать к полученным отношениям и проверить, находятся ли эти отношения в НФБК.1.
ФизкультураЗачетка, Фамилия, Группа, Дата рождения, Преподаватель,Специализация, Медицинская группа, Разряд, Вид, Особенности,Норматив, Результат, Дата, Оценка, Семестр, Пол.2. КинотеатрыНазвание, Адрес, Телефон, Категория, Вместимость, Число залов, Кинотеатр, Кинофильм, Время, Дата, Режиссер, Год выпуска,Страна, Число серий, Тематика, Краткое содержание,3. АптекаНомер, Дата, Врач, Поликлиника, Лекарство, Количество, Режим приема, Стоимость, Особые замечания, Шифр, Название,Группа, Краткая рекомендация по применению, Срок хранениярецепта, Дата поступления. Цена, Единица измерения, Количество,Срок годности.4.