• Главная
  • Публикации
  • Связь реляционной модели и модели «сущность-связь». Преобразование ER-модели в реляционную модель

Связь реляционной модели и модели «сущность-связь». Преобразование ER-модели в реляционную модель

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

 

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

 

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

 

Сформулируем основные принципы (правила) преобразования модели «сущность-связь» в реляционную:

 

1. Каждой сущности ER-модели ставится в соответствие отношение реляционной модели данных (случай категоризации сущностей рассматривается ниже отдельно). При этом необходимо понимать, что имена сущностей и отношений могут быть различны, так как в инфологической модели на имена сущностей не накладываются никакие ограничения, за исключением их уникальности в рамках модели. Одновременно с этим в реляционной модели имена отношений могут быть ограничены требованиями конкретной СУБД. Чаще всего имена отношений являются идентификаторами в некотором специальном базовом языке, ограничены по длине и не могут содержать пробелов и других специальных символов. Например, сущность может называться «Студенты университета», а соответствующее отношение – STUDENTS.

 

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

 

3. Первичный ключ сущности становится первичным ключом (PRIMARY KEY) соответствующего отношения. Все атрибуты, которые входят в первичный ключ сущности, автоматически получают свойство обязательности (NOT NULL – не пусто).

 

4. В каждое отношение, соответствующее подчиненной сущности, добавляется набор атрибутов, являющийся первичным ключом основной сущности. В подчиненном отношении этот набор атрибутов становится внешним ключом (FOREIGN KEY), с помощью которого и реализуются связь между отношениями.

 

5. Для моделирования необязательной связи у атрибутов, соответствующих внешнему ключу, устанавливается возможность принимать неопределенные значение (NULL). Для моделирования обязательной связи атрибутам внешнего ключа устанавливается недопустимость неопределенных значений (NOT NULL).

 

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

 

7. Разрешение связей «многие-ко-многим». Как уже упоминалось, в реляционной модели поддерживается только один тип связи по множественности – связи «один-ко-многим». Вместе с тем, ER-модель поддерживает и связи «многие-ко-многим» (случай «один-к-одному» не рассматривается, так как он является частным случае связи «один-ко-многим»). Поэтому требуется специальный механизм преобразование связей «многие-ко-многим» при переходе к реляционной модели. В этом случае вводится дополнительное отношение, атрибутами которого являются первичные ключи двух связанных отношений. Данные ключи являются в новом отношении внешними (FOREIGN KEY), образуя вместе уже первичный ключ нового отношения (PRIMARY KEY). Само новое отношение связано с каждым из исходных отношений связью «один-ко-многим».

Комментарии

Все комментарии
2комментарий

Ян ОПИ(Э) 07 11 ноября, 2009 в 18:06:08

хотя нет не надо вспомнил) выше в лекциях было указано)<br />

Ян ОПИ(Э) 07 23 октября, 2009 в 17:17:15

Непонятно значение слов супертип и подтип, было бы не плохо сделать в учебном курсе словарик =)

Добавить комментарий