Практическое занятие 3. Разработка реляционной модели

advertisement
Практическое занятие 3. Разработка реляционной модели
Теоретическая часть
1. Категории
Разбиение множества ее экземпляров на непересекающиеся подмножества – категории –
с наделением их специфическими атрибутами и/или связями. Сущность, рассматриваемая как
совокупность своих категорий, называется обобщенной. На ER-диаграмме категоризация изображается с помощью символа подсущности, к основанию которого присоединены символыпрямоугольники категорий (а не единственный символ подсущности, как мы рассматривали до
сих пор). Если символ категоризации затемненный, то исходная сущность совпадает с обобщенной сущностью категорий, если светлый – то обобщенная сущность является подсущностью, не
совпадающей с исходной, т. е. среди экземпляров исходной сущности есть такие, которые не
относятся ни к одной из ее категорий.
Категории, как и подсущности, могут иметь специфические атрибуты и/или связи, а также внутренние подсущности, разделенные, в свою очередь, на категории.
В глобальной модели категории возникают при слиянии таких сущностей, у которых
множества экземпляров не пересекаются. Например, если в одной локальной модели рассматриваются только бюджетные студенты, а в другой — только коммерческие, то их слияние в глобальной модели дает обобщенную сущность «Студент» с двумя категориями: «Бюджетный» и
«Коммерческий».
Дублирование атрибутов — это ситуация, когда свойство реального объекта, отражаемое
некоторым атрибутом, многократно присутствует в базе данных. Появление дублирующих атрибутов в глобальной модели происходит в результате объединения сущностей, обладающих
одинаковыми атрибутами, возможно, имеющими различные имена.
2. Реляционные модели
Реляционная модель (Relational Model) — это модель, которая лежит в основе подавляющего большинства современных коммерческих СУБД (так называемых реляционных СУБД —
Relational DBMS). К сожалению, в настоящее время СУБД не поддерживают в непосредственном виде ER-модели, поэтому, если мы хотим реализовать базу данных в среде реляционной
СУБД, нужно перейти к реляционной модели. К счастью, переход от ER-модели к соответствующей реляционной модели достаточно прост в концептуальном плане и обычно не вызывает
затруднений.
Компоненты реляционной модели (наиболее существенные в концептуальном плане)
следующие:
– сущности, которые в реляционной теории называются отношениями (Relations), а в реляционной практике (т. е. в инструментальной среде реальных СУБД) — таблицами (Tables).
Сущности должны быть, по крайней мере, первыми нормальными формами, т. е. простыми
идентицифируемыми таблицами;
– атрибуты сущностей, которые в реляционной практике называются столбцами или колонками (Columns);
– ограничения (Constraints),—ограничения типов данных, доменов, кортежей, уникальности, обязательности, а также другие виды ограничений, в том числе ограничения ссылочной целостности (Referential Integrity Constrains) или RI-ограничения.
1
3. Неявные связи
Принципиальное отличие реляционной модели от ER-модели заключается в отсутствии
явных связей между сущностями. Для обеспечения доступа в реляционной модели приходится
использовать неявные связи с помощью атрибутов-ссылок, т. е. отыскивать экземпляр родительской таблицы, у которого ключевой атрибут совпадает по значению с атрибутом-ссылкой из дочерней таблицы или, наоборот, отыскивать экземпляры дочерней таблицы, у которых атрибутссылка совпадает по значению с первичным атрибутом родительской таблицы.
Внешний ключ (Foreign Key, FK) — так в терминологии реляционной модели называется
атрибут-ссылка. Естественно, внешний ключ может состоять из нескольких атрибутов (составной внешний ключ (Composite FK)), если соответствующий первичный ключ родительской таблицы является составным. При задании внешнего ключа указывается его родительская таблица
и соответствующий первичный ключ (идентификатор) в ней.
RI-связь (Referential Integrity Relationship) — это связь между дочерней и родительской
сущностями через внешний ключ для поддержания ссылочной целостности (Referential
Integrity— RI). Сущность может иметь несколько внешних ключей и, следовательно, быть
участником нескольких RI-связей. С каждой RI-связью может быть ассоциирован набор RIограничений. Ссылочная целостность будет рассмотрена позже в этой главе, здесь же отметим,
что RI-связи, обеспечивающие ссылочную целостность, по своей функциональности не соответствуют М:1-,М:М- и т. п. связям в ER-моделях, предназначенным для навигации в процессе доступа к данным.
Идея преобразования ER-модели в реляционную состоит в замене явных М:1-связей на
неявные, основанные на внешних ключах. Для этого нужно для каждой М:1-связи скопировать в
дочернюю сущность атрибуты, составляющие в родительской сущности первичный ключ, и
сделать их внешним ключом. Предварительно необходимо преобразовать ER-модель так, чтобы
в ней присутствовали только сущности, находящиеся, по крайней мере, в первой нормальной
форме, и связи типа «многие-к-одному». ER-модель в такой форме будем называть канонизированной.
4. Устранение подсущностей и категорий
Известны три более или менее приемлемых способа избавления от этих конструкций:
– поглощение подсущностей и категорий родительской сущностью, когда остается только родительская сущность вместе с набором правил для селекции из нее исходных подсущностей и категорий;
– расщепление обобщенной сущности, когда каждая отдельная сущность содержит экземпляры, соответствующие некоторой одной подсущности или категории;
– разбиение обобщенной сущности и совокупности ее подсущностей и категорий на самостоятельные сущности, когда наряду с обобщенной сущностью вводятся отдельные сущности, соответствующие каждой подсущности или категории.
Связи ссылочной целостности (RI-связи), вводимые в реляционной модели с помощью
внешних ключей, обуславливают по сравнению с ER-моделью появление нового вида ограничений—ограничений ссылочной целостности (RI-ограничений). Прежде всего, это
– ограничение внешнего ключа: значение внешнего ключа должно либо совпадать с одним из первичных ключей родительской сущности, либо (если внешний ключ необязательный)
отсутствовать вовсе. Иными словами, не должно быть «детей» несуществующих «родителей»,
хотя и возможны, вообще говоря, «сироты» — «дети» без «родителей». Данное ограничение является безусловным (т. е. действует всегда) и отражается на диаграмме модели самим фактом
наличия RI-связи.
Дополнительные RI-ограничения, не отражаемые на диаграмме реляционной модели и
задаваемые в виде дополнительных правил, являются условными, т. е. назначаемыми разработчиком модели, и связаны с ситуациями, которые в результате тех или иных манипуляций экзем-
2
плярами сущностей могут привести к нарушению ограничения внешнего ключа. Таких ситуаций
две: 1) ситуация удаления «родителя» и 2) ситуация обновления «родителя».
Задания
1. Отношения категоризации в ER-модели
Задача. По варианту задания из предыдущего практического задания добавить к ERмодели отношение категоризации. Одно отношение полной категоризации, другое – неполной
категоризации. При необходимости ввести дополнительные атрибуты.
2. Устранение связей 1:1 и 1:М
Задача. По варианту задания из предыдущего практического задания удалить из ERмодели связи типов 1:1 и 1:М.
3. Устранение отношений категоризации
Задача. По варианту задания из предыдущего практического задания удалить из ERмодели отношения категоризации, используя два из предложенных методов.
3. Замена явных связей неявными
Задача. По варианту задания из предыдущего практического задания удалить из ERмодели связи типа1:М и ввести неявные отношения на основе внешних ключей.
4. Ограничения в реляционной модели
Перевести генетические и дополнительные ограничения на уровень реляционной модели
(дополнительно ввести отношения ссылочной целостности).
3
Download