|
Программирование >> Реляционные базы данных
спязываюшие Movies со Stars и Studios, ие показаны, но предполагается, что есть спязь Voices между Cartoons и Stars. □ Mui derMystery MoAies Cartoons Voices to Stars Рис. 2.23. Сеязь iso a €/П-диогроммв 2.4-4 Наследование в E/R-модели Между иаспедованием в ODL или других объектно-ориентированных моделях и в E/R модели есть небольшая разнина. В ODL объект должен быть членом только одного класса. Так, в примере 2.19 для объектов, являющихся одновременно мультфильмами и детективами, необходимо было определить класс Cartoon-MurderMystery и нельзя было, например, поместить объект Roger Rabbit в классы Cartoon и MurderMystery. В E/R-модели считается, что сущность имеет компоненты, принаплежащие нескольким множествам сущностей, которые являются частью isa-иерархии. Эти компоненты объединены в единую сущность связями isa, и такая сущность имеет все атрибуты сионх компонентов, а также участвуем по всех связя.х, в которых они участвуют. В общем случае при таком подходе получается тот же эффект, что и в ODL, так как иас1слование свойств лает объекту те же атрибуты и связи, которые соответствующая ему сущность могла бы собрать из своих компонентов. Однако иногда резульгаты различны, что будет показано при рассмотрении примера 2.22, а затем в разделе 3.4 при конвертировании разработок ODL и E/R в реляционную модель. Пример 2.22. Заметим, что в схеме на рис. 2.23 не требуется множество сущностей, соответствующее мультипликационным детективам, так как сущность ипа Roger Rabbit имеет компоненты, принадлежащие все*) трем множествам: Movies, Ciinwns и MurderMysteries. Эти компоненты соединены связями Isa в единую сущ-1Юсть и даЮ1 Roger Rabbit все четыре атрибута Movies (и две связи Movies, не покачанные на рисунке), п также атрибут weapon множества MurderMysteries и связь yoices множества Cartoons. Именно все перечисленные свойства объект Roger Rabbit в классе Cartoon-fvUirderMystery наследовал из своих суперклассов Movie, Cartoon и MurderMystery в пригере 2.19. □ Однако если бы у .мультипликационны-к детективов были свойства, которых нет ни у мультфильмов, ни у детективов, в схему рис. 2.23 нужно было бы ввести четвертое множество сущностей Cartoon-MurderMy.steries и отнести к нему эти свойства (ji-pMOVTbi И связи). Тогда сущность Roger Rabbit имела бы четвертый компонент, принадлежащий Cartoon-MurderMysteries обеспечивающий упомянутые новые свойства шьч Лде/- Ranbii. 2 Не сомневайтесь, что тякие корабли сушествопали в действительности. Два японских линкора Jse и Hyuga сшс в 1943 г. были перестроены так. что имели озлетные палубы и ангары лля ся.молетов. 2.4-5 Упражнения к разделу 2.4 * Упражнение 2.4.1. Рассмотрим БД военных кораблей и ее выражение в ODL. С каждым кораблем связана следующая информация: 1. Имя корабля. 2. Водоизмещение корабля (вес) в тоннах. 3. Тип корабля, например линкор, эскадренный миноносец. Есть также информация о специальных видах кораблей: 1. Gunships - пушечные корабли, оснащенные большими орудиями, например линкоры или крейсера. Для них нужно записывать число и калибр их главных орудий. 2. Cfl/ners-авианосцы, на которых размещены самолеты. Для них нужно записывать длину взлетной палубы и множество приданных им воздушных групп. 3. Submarines - подводные лодки, для которых нужно записывэть максимальную глубину погружения. Можете предполагать, что ни один пушечный корабль или авианосец не является подводной лодкой. 4. *o /ecorrie -линкоры-авианосцы являются одновременно пушечными кораблями и авианосцами: к ним относится вся информация, связанная как с линкором, так и с авианосцем*. Выполните следующие задания: a) Сделайте ODL-разработку указанной иерархии классов. b) Покажите, как можно представить линкор-авианосец /se, когорый имел водоизмещение 36 тыс. тонн, восемь 14-люймовых орудий, взлетную палубу длиной в 200 футов и нес авиационные группы 1 и 2 . II Упрожнение 2.4.2. Для определенных подклассов, например для Baltlecamer в упражнении 2.4.1, возможен только один тип, а для других, таких как Gunship, возможны несколько типов, например линкор и крейсер. Создает ли такая ситуация определенную форму избыгочности? Если да, то как от нее избавиться? * Упрожнение 2.4.3. Повторите упражнение 2.4.1 для E/R-модели. ! Упрожнение 2.4.4. Измените разработку БД людей из упражнения 2.1.5, включив в нее следующие типы людей: 1. Женщины 2. Мужчины 3. Родители Можно выделять также другие типы людей чтобы связи соединя;и1 под.ходяшие подклассы людей. Выразите разработку в: a) ODL, b) E/R-модели. 3 По ана-погии заметим, что в пгюгра.мме С проще представить целое число, чем связанный список ие.чых чисел, даже если он содержит только одно число. 2.5 Моделирование ограничений Мы рассмотрели, как моделировать фрагмент реального мира с помощью классов ODL и их свойств - атрибутов и связей - или посредством множеств сущностей и связей E/R-модели Большую часть моделируемой crpvKTjpy можно выразить в любой из этих ноташ1й. Однако есть важные аспекты реального мира, моделировать которые, используя рассмотренные выше средства, непозможно. Такая дополнительная информация часто принимает форму ограничений на данные, выходящих за рамки структурных н типовых ограничений, вводимых определешш-ми классов, атрибутов и связей. Далее приводится простая киассификация ограничений, которые обычно применяются. Она охватывает не все типы ограничений. Дополнительный материал по ограничениям содержится в разделе 4.5 в контексте реляционной алгебры и в главе 6 в связи с программированием SQL. 1. Алото - aTpH6jTbi или множества атрибутов, уникальным образом идентифицирующие объект в его классе или сущность в ее множестве сущностей. Никакие два объекта класса не могут совпадать по своим значениям для каждого множества атрибутов, формирующих ключ. 2. Ограничения по единственному значению - требования того, чтобы значение в определенной роли было уникальным. Главным источи 1Ком таких ограничений являются ключи, так как они требуют, чтобы со значением(ями) атрибута(ов) ключа были связаны уникальные значения других атрибутов ютсса или множества сущностей. Но имеются и иные источники ограничений по единственному значению. 3. Ограничения ссылочной целостности - требования того, чтобь значение, на которое ссьшается объект реально существовало в БД. Ссьшочная целостносгь аналогична запрету на висящие указатели в обычных программах. 4. Ограничения области значений требуют, чтобы значение атрибута выбиралось из особого множества значений или находилось в определенных границах. Ограничения области значений для SQL будут рассмотрены в разделе 6.3. 5- Общие ограничения - произвольные утверждения; которые должны выполняться в БД. Например, можно потребовать, чтобы для любого фильма перечислялось не более десяти кинозвезд. Языки для записи общлх ограничений анализируются в разделах 4,5 и 6.4. Эти ограничения важны по многим причинам. Они содержат информацию о структуре моделируемых фрагментов реального мира. Например, ключи позволяют пользователю безошибочно идентифицировать объекты или сущности. Если известно, что атрибут пате - это ключ для объектов класса Studio, тогда, ссылаясь на обьект студия по HMCim, мы знаем, что ссьиаемся на уникальный объект. Знание того, что существует уникальное значение, экономит пространство и время, так как хранить единственное значение легче, чем множество, даже еачи это множество имеет только один элемент. Ссьшочная целостность и ключи поддерживают также определенные структуры памяти, обеспечивающие быстрый доступ к объектам.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |