Мегаобучалка Главная | О нас | Обратная связь


Преобразование ER-модели в реляционную базу данных



2015-12-06 1001 Обсуждений (0)
Преобразование ER-модели в реляционную базу данных 0.00 из 5.00 0 оценок




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

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

Для каждой сильной сущности ЕR-модели создается базовое отношение, причем каждому простому атрибуту этой сущности соответствует столбец таблицы. Ключевой атрибут сущности становится первичным ключом отношения.

На рис. 2 представлены три сущности: Филиал, Клиент и Счет. Для каждой из них нужно создать отношение. В таблице Филиал будут следующие столбцы: Название_филиала, Адрес и Менеджер, причем первичным ключом будет Название_филиала. В таблице Счет будет два столбца, Номер_счета и Баланс, а первичным ключом будет Номер_счета.

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

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

На рис. 5 представлена слабая сущность Регистрация, имеющая один простой атрибут Дата_регистрации. Эта сущность участвует в связях с Клиент и Счет. Следовательно, нужно включить в отношение Регистрация столбцы Номер_счета и Номер_клиента, указывающие, к каким счету и клиенту относится регистрационная запись. Таким образом, каждый кортеж отношения Регистрация будет состоять из трех столбцов: Номер_счета, Номер_клиента, Дата_регистрации. Эти внешние ключи необходимы, так как, по определению, слабая сущность не может существовать независимо. Она должна иметь явные связи с теми сущностями, от которых зависит. В реляционной базе данных такие связи задаются с помощью внешних ключей. В нашем случае рассматриваемая сущность к тому же не имеет первичного ключа. В такой ситуации первичным ключом становится комбинация внешних ключей сущностей, от которых зависит эта слабая сущность. Таким образом, ключ отношения Регистрация — это составной ключ, включающий Номер_счета и Номер_клиента.

3. Когда две сущности участвуют в связи один-ко-многим (1-М), отношение, представляющее сущность с кардинальностью М, должно иметь столбец внешнего ключа, представляющий эту связь.

Между сущностями, которые мы рассматривали, было несколько связей типа 1-М. В частности, связь между Филиал и Счет (рис. 3) имеет тип 1-М, это означает, что в отношении Счет должен присутствовать в качестве внешнего ключа столбец Название_филиала.

Когда две сущности участвуют в связи один-к-одному (1-1), в отношение, представляющее одну из этих сущностей, необходимо включить столбец внешнего ключа.

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

Однако следует ответить на вопрос: в каком отношении лучше поместить столбец внешнего ключа для отражения связи 1—1. Согласно определению, сущность полностью участвует в связи, когда каждый ее экземпляр должен участвовать в этой связи. Итак, для представления связи 1-1 внешний ключ следует помещать в отношение, представляющее сущность, которая более близка к полному участию в связи.

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

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

Связь «имеет» на рис. 4 между Клиент и Счет имеет кардинальность М-М. Чтобы представить ее в реляционной модели, нужно отношение Владение счетами, состоящее из двух столбцов: Номер_клиента (ссылающегося на Клиент) и Номер_счета (ссылающегося на Счет). Первичный ключ данной таблицы — комбинация этих двух столбцов, а кортежи представляют пары значений, где номеру клиента ставится в соответствие номер счета, которым он владеет. Клиенту, имеющему три счета, в данной таблице будет соответствовать три кортежа с одним и тем же Номером_клиента. Аналогично, счет, у которого четыре владельца, будет представлен в таблице четырьмя кортежами с одним и тем же Номером_счета и различными Номерами_клиентов, владеющих этим счетом (табл. 1). Согласно таблице, клиент 12345 имеет три счета, а у счета 56789 — четыре владельца.

Отношение: Владение счетами
Номер_клиента Номер_счета
56789 '

Таблица 1. Отношение, представляющее связь М-М

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

Предположим, что сущность Клиент имеет многозначный атрибут Номер_телефона, т.е. клиент может иметь несколько номеров телефонов. Невозможно включить столбец, представляющий этот атрибут, в отношение Клиент. Необходимо создать отдельное отношение Телефоны_клиентов со столбцами Номер_клиента (внешний ключ, ссылающийся на Клиент) и Номер_телефона; первичный ключ отношения будет состоять из этих двух столбцов. В этой таблице каждому телефонному номеру клиента соответствует отдельный кортеж. В табл. 2 у клиента 12345 три телефонных номера, а у клиента 67859 — один.

Отношение Телефоны_клиентов
Номер_клиента Номер_телефона
687-69449
687-09382
02-578-59483
657-03938

Таблица 2. Реализация многозначного атрибута

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



2015-12-06 1001 Обсуждений (0)
Преобразование ER-модели в реляционную базу данных 0.00 из 5.00 0 оценок









Обсуждение в статье: Преобразование ER-модели в реляционную базу данных

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1001)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)