Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзаменационные вопросы.doc
Скачиваний:
105
Добавлен:
01.05.2014
Размер:
6.31 Mб
Скачать

Вопрос 18. Метод проектирования “сущность-связь”. Правила генерации отношений из er-диаграммы. Правила генерации отношений из er-диаграмм:

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

Например, имеем сущность Магазин с атрибутами наименование, факс, телефон, адрес, специализация, и сущность Директор с атрибутами №Паспорта, ФИО. Если каждый магазин обязательно имеет директора, а человек, являющийся директором, может быть директором только одного магазина, получим одно отношение Магазин(наименование, факс, телефон, адрес, специализация,)

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

Например, имеем сущность Человек с атрибутами №Паспорта, ФИО, год рождения, адрес и Зачетка с атрибутами №Зачетки, УчебноеЗаведение, Факультет, КогдаВыдана. Поскольку не каждый человек, а только студент, имеет зачетку, но зачетка обязательно кому-то принадлежит, то получим два отношения: Человек(№Паспорта, ФИО, год рождения, адрес) и Зачетка(№Зачетки, УчебноеЗаведение, Факультет, КогдаВыдана, №Паспорта).

Еще один пример такой связи приведен на рис. 2.9. В результате будут получены два отношения: Секретарь и Кафедра, причем в отношение Секретарь добавится атрибут Название, который является первичным ключом отношения Кафедра.

  1. Если степень бинарной связи равна 1:1 и класс принадлежности ни одной из сущностей не является обязательным, то требуется 3 отношения (по одному для каждой сущности - объектные и одно связное). Ключами объектных отношений являются ключи соответствующих сущностей. Связное отношение содержит эти ключи в качестве своих атрибутов.

Например, имеем сущность Книга в библиотеке с атрибутами Шифр, Название, Автор, ГодИздания. Книга может находиться на полке в зале подручного фонда, а может и в запасниках. Если книга находится в зале, она занимает одну определенную ячейку на полке, в этой ячейке не может быть несколько экземпляров одной книги, но не может быть другой, при этом ячейка может быть и пуста. Сущность Ячейка имеет атрибуты №Зала, №Стеллажа, №Полки, №ячейки. Получим три отношения: Книга(Шифр, Название, Автор, ГодИздания), Ячейка(№Зала, №Стеллажа, №Полки, №ячейки), Подручный_Фонд(Шифр, №Зала, №Стеллажа, №Полки, №ячейки, КоличествоЭкземпляров).

  1. Если степень бинарной связи равна 1:n и класс принадлежности n-связной сущности является обязательным, достаточно использовать 2 отношения (по одному для каждой сущности). Ключ сущности является ключом соответствующего отношения, а ключ односвязной сущности добавляется как атрибут в отношение n-связной сущности.

Например, сущность Группа с атрибутами №Группы, Факультет, Специальность, Курс состоит из студентов. Сущность Студент имеет атрибуты №Зачетки, ФИО, Адрес, ГодРождения. В группе обязательно есть хотя бы один студент. Получим два отношения: Группа(№Группы, Факультет, Специальность, Курс) и Студент(№Зачетки, ФИО, Адрес, ГодРождения, №Группы).

Еще один пример связи 1:n, обязательной с каждой из сторон, а следовательно и со стороны n, приведен на рис. 2.10. В результате получим два отношения: Секретарь и Абитуриент, а атрибут ФИО - первичный ключ отношения Секретарь добавится к атрибутам отношения Абитуриент.

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

Например, пусть в клубе собаководства есть перечень всех пород собак и список клубных собак. Сущность Порода имеет атрибуты НазваниеПороды, СреднийРост, СреднийВес, Назначение, а сущность Собака имеет атрибуты №Родословной, Кличка, Возраст. Связь между сущностями Порода и Собака – 1:n, причем необязательная со стороны n, поскольку собак определенной породы в данном клубе может и не быть. В результате получим три отношения: Порода(НазваниеПороды, СреднийРост, СреднийВес, Назначение), Собака(№Родословной, Кличка, Возраст) и КлубныеПороды(НазваниеПороды, №Родословной)

  1. Если степень бинарной связи равна m:n, то независимо от класса принадлежности требуются 3 отношения (2- объектных и 1 связное).

Например, связь между сущностью Книга с атрибутами Шифр, Название, Автор, ГодИздания и сущностью Читатель с атрибутами Билет, ФИО, Телефон является связью n:m. В результате получим три отношения: Книга(Шифр, Название, Автор, ГодИздания), Читатель(Билет, ФИО, Телефон) и Взял(Шифр, Билет, Дата).

Пример на рис. 2.11 в результате применения правила 6 даст следующие три отношения: Абитуриент (№ЭкзЛиста, …), Предмет(Название, …) и связывающее отношение Сдал(№ЭкзЛиста, Название, Дата, Оценка)

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

Пример, на рисунке 2.13 после применения правила 7 даст два отношения: Магазин(Название, …) и Отдел (Название, №Отдела, …, ). Таким образом, первичный ключ отношения Отдел будет составным, в его состав войдет ключ отношения Магазин.

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

Применим это правило к фрагменту предметной области, изображенному на рис. 2.14. Предположим, что атрибутами сущности Лэтишник кроме №паспорта являются и все паспортные данные, такие как ФИО, ГодРождения , ДомашнийАдрес, СемейноеПоложение и т.п.. Тогда есть смысл создать отношение Лэтишник, а не помещать его атрибуты в отношения Студент и Преподаватель. Поскольку между сущностями Студент и Преподаватель, являющимися категориями сущности Лэтишник, существует связь n:m, получим четыре отношения. Лэтишник(№паспорта, ФИО, ГодРождения , ДомашнийАдрес, СемейноеПоложение, …), Студент(№паспорта, №Зачетки, Группа, Специальность,…), Преподаватель(((№паспорта, №ТрудовойКнижки, Должность, Кафедра, …), Обучается(№Зачетки, №ТрудовойКнижки, …). Если применить правило 8 в его втором варианте, то получим 3 отношения: Студент(,№Зачетки, №паспорта, ФИО, ГодРождения , ДомашнийАдрес, СемейноеПоложение, Группа, Специальность,…), Преподаватель(№ТрудовойКнижки, №паспорта, ФИО, ГодРождения , ДомашнийАдрес, СемейноеПоложение,Должность, Кафедра, …), Обучается(№Зачетки, №ТрудовойКнижки, …).Атрибуты сущности Лэтишник в полном составе будут помещены как в отношение Студент, так и в отношение Преподаватель. В этих отношениях атрибут №паспорта является возможным ключом.

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

Учитель (Фамилия, Имя, Отчество, …),

Кабинет (№Кабинета,Фамилия, Имя, Отчество, … ),

Класс (Год_Обучения, Литера, Фамилия, Имя, Отчество, …),

Предмет (Название, …),

Преподает (Название, Фамилия, Имя, Отчество).

  1. При наличии n-сторонней связи между сущностями генерируется n+1 отношение (по одному для каждой сущности со своим первичным ключом и одно для связи). Связное отношение имеет среди своих атрибутов ключи каждой сущности.

Применяя это правило к фрагменту предметной области, изображенному на рис. 2.16, получим 4 отношения: Проводник(ИмяПроводника, …), Рыба(Вид, …), Озеро(НазваниеОзера), ПредпочитаетЛовить(ИмяПроводника, Вид, НазваниеОзера).

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

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

  2. Определить функциональные зависимости между атрибутами каждого отношениями.

  3. Проверить соответствие каждого отношения нормальной форме Бойса- Кодда (НФБК).

  4. Если некоторым атрибутам не нашлось места в предварительных отношениях, или есть отношения, не находящиеся в НФБК, следует перестроить ER- диаграмму.

Данная последовательность действий представляет собой метод проектирования баз данных, который носит название ER-метода.

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