Просмотр содержимого документа
«Переход от концептуальной (инфологической) модели к реляционной модели данных»
Переход от концептуальной (инфологической) модели к реляционной модели данных
Инфологическая модель используется на ранних стадиях разработки проекта. Для ER-модели существует алгоритм однозначного преобразования ее в реляционную модель данных .
- Каждой сущности ставится в соответствие отношение реляционной модели данных.
При этом имена сущности и отношения могут быть различными, потому что на имена сущностей могут не накладываться дополнительные синтаксические ограничения, кроме уникальности имени в рамках модели.
Имена отношений могут быть ограничены требованиями конкретной СУБД, чаще всего эти имена являются идентификаторами в некотором базовом языке, они ограничены по длине и не должны содержать пробелов и некоторых специальных символов.
Например, сущность может быть названа "Книжный каталог", а соответствующее ей отношение желательно назвать, например, BOOKS (без пробелов и латинскими буквами).
- Каждый атрибут сущности становится атрибутом соответствующего отношения. Переименование атрибутов должно происходить в соответствии с теми же правилами, что и переименование отношений в п.1. Для каждого атрибута задается конкретный допустимый в СУБД тип данных и обязательность или необязательность данного атрибута (то есть допустимость или недопустимость NULL значений для него).
- Первичный ключ сущности становится PRIMARY KEY соответствующего отношения.
- Атрибуты, входящие в первичный ключ отношения , автоматически получают свойство обязательности ( NOT NULL ). В каждое отношение, соответствующее подчиненной сущности, добавляется набор атрибутов основной сущности, являющейся первичным ключом основной сущности. В отношении, соответствующем подчиненной сущности, этот набор атрибутов становится внешним ключом ( FOREIGN KEY ).
- Для моделирования необязательного типа связи на физическом уровне у атрибутов, соответствующих внешнему ключу, устанавливается свойство допустимости неопределенных значений (признак NULL ). При обязательном типе связи атрибуты получают свойство отсутствия неопределенных значений (признак NOT NULL ).
- Для отражения категоризации сущностей при переходе к реляционной модели возможны несколько вариантов представления. Возможно создать только одно отношение для всех подтипов одного супертипа . В него включают все атрибуты всех подтипов. Однако тогда для ряда экземпляров ряд атрибутов не будет иметь смысла. И даже если они будут иметь неопределенные значения, то потребуются дополнительные правила различения одних подтипов от других. Достоинством такого представления является то, что создается всего одно отношение.
- При втором способе для каждого подтипа и для супертипа создаются свои отдельные отношения. Недостатком такого способа представления является то, что создается много отношений, однако достоинств у такого способа больше, так как вы работаете только со значимыми атрибутами подтипа. Кроме того, для возможности переходов к подтипам от супертипа необходимо в супертип включить идентификатор связи.
- Дополнительно при описании отношения между типом и подтипами необходимо указать тип дискриминатора. Дискриминатор может быть взаимоисключающим (M/E, mutually exclusive ) или нет.
Если установлен данный тип дискриминатора, то это значит, что один экземпляр сущности супертипа связан только с одним экземпляром сущности подтипа и для каждого экземпляра сущности супертипа существует потомок. Кроме того, необходимо указать для второго способа, наследуется ли только идентификатор супертипа в подтипы или наследуются все атрибуты супертипа .
- Если мы зададим наследование только идентификатора, то мы получим следующее преобразование (см. рисунки ниже)
Разрешение связей типа " многие-ко-многим ".
Так как в реляционной модели данных поддерживаются между отношениями только связи типа " один-ко-многим ", а в ER-модели допустимы связи " многие-ко-многим ",
то необходим специальный механизм преобразования, который позволит отразить множественные связи, неспецифические для реляционной модели, с помощью допустимых для нее категорий. Это делается введением специального дополнительного связующего отношения, которое связано с каждым исходным связью " один-ко-многим ", атрибутами этого отношения являются первичные ключи связываемых отношений.
Так, например, в схеме "Библиотека" присутствует связь такого типа между сущностью "Книги" и "Системный каталог". Для разрешения этой неспецифической связи при переходе к реляционной модели должно быть введено специальное дополнительное отношение , которое имеет всего два атрибута: ISBN ( шифр книги) и KOD (код области знаний). При этом каждый из атрибутов нового отношения является внешним ключом ( FOREIGN KEY ), а вместе они образуют первичный ключ ( PRIMARY KEY ) новой связующей сущности.
На рисунке ниже представлена реляционная модель, соответствующая представленной ранее инфологической модели "Библиотека".