Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Общие понятия объектно-ориентированного подхода к разработке СУБД

Поддержка динамической информации и темпоральных запросов

Обычные реляционные БД хранят мгновенный снимок модели предметной области. Любое изменение в момент времени t некоторого объекта приводит к недоступности состояния этого объек­та в предыдущий момент времени. На самом деле в большинстве развитых СУБД предыдущее состояние объекта сохраняется в жур­нале изменений, но возможности доступа к нему со стороны пользователя нет.

Конечно, можно ввести в хранимые отношения временной ат­рибут и поддерживать его значения на уровне приложений. В боль­шинстве случаев так и поступают. Так, в стандарте SQL появились специальные типы данных: date и time. Но в таком подходе имеют­ся недостатки: СУБД не знает семантики временного поля отно­шения и не может контролировать корректность его значений. В связи с этим появляется дополнительная избыточность хране­ния (предыдущее состояние объекта хранится и в основной БД, и в журнале изменений).

Существует отдельное направление исследований и разрабо­ток в области так называемых темпоральных БД, где исследуются вопросы моделирования данных, языки запросов, организация данных во внешней памяти и т.д. Основные темпоральные систе­мы на том принципе, что для любого объекта данных, созданного в момент времени t1 и уничтоженного в момент времени t2, в БД сохраняются (и доступны пользователям) все его состояния во временном интервале [t1,t2].

Создание прототипов темпоральных СУБД обычно выполня­ется на основе некоторой реляционной СУБД в виде надстройки над реляционной системой.

ГЛАВА 15. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ СУБД

Создание объектно-ориентированных баз данных началось в се­редине 1980-х гг. Наиболее активно ООБД развиваются в после­дние годы.

Развитие ООБД определяется, прежде всего, потребностями практики — необходимостью разработки сложных информацион­ных прикладных систем.

Конечно, ООБД возникли не на пустом месте. Соответствующий базис обеспечили как предыдущие работы в области БД, так и развивающиеся языки программирования с абстрактными типами данных и объектно-ориентированные языки программирования.

Что касается связи с предыдущими работами в области БД, то, на наш взгляд, наиболее сильное влияние на развитие ООБД оказывают проработки реляционных СУБД и создаваемое на их основе семейство БД, поддерживающих управление сложными объектами. Кроме того, исключительное влияние на идеи и кон­цепции создания ООБД оказало семантическое моделирование данных. Свое влияние оказывает также развитие параллельно с ООБД дедуктивных и активных БД.

В наиболее общей постановке объектно-ориентированный под­ход базируется на следующих концепциях:

• объект и идентификатор объекта;

• атрибут и метод;

• класс;

• иерархия и наследование классов.

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

Каждый объект характеризуют состояние и поведение. Состоя­ние объекта — набор значений его атрибутов. Поведение объекта — набор методов (программный код), оперирующих его состоянием. Значение атрибута объекта — это тоже некоторый объект или мно­жество объектов. Состояние и поведение инкапсулированы в объек­те. Взаимодействуют объекты на основе передачи сообщений и выполнения соответствующих методов.

Множество объектов с одним и тем же набором атрибутов и методов образуют класс объектов. Объект должен принадлежать только одному классу (если не учитывать возможности наследова­ния). Допускается наличие примитивных предопределенных клас­сов, объекты-экземпляры которых не имеют атрибутов: целые, строки и т.д. Класс, объекты которого могут служить значениями атрибута объектов другого класса, называется доменом этого атри­бута.

Допускается создание нового класса на основе уже существу­ющего класса — наследование. В этом случае новый класс, назы­ваемый подклассом существующего класса (суперкласса), насле­дует все атрибуты и методы суперкласса. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Раз­личают случаи простого и множественного наследования. В первом случае подкласс может определяться только на основе одного су­перкласса, а во втором случае суперклассов может быть несколь­ко. Если в языке или системе поддерживается единичное наследо­вание классов, то набор классов образует древовидную иерархию. При поддержании множественного наследования классы связаны в ориентированный граф с корнем, называемый решеткой клас­сов. Объект подкласса считается принадлежащим любому супер­классу этого класса.

Одной из более поздних идей объектно-ориентированного под­хода к созданию СУБД является переопределение атрибутов и методов суперкласса в подклассе (перегрузка методов). Это уве­личивает гибкость системы проектирования, но порождает до­полнительную проблему: при компиляции объектно-ориентиро­ванной программы могут быть неизвестны структура и программ­ный код описаний объекта, хотя его класс (в общем случае — суперкласс) известен. Для разрешения этой проблемы применя­ется так называемый метод позднего связывания, означающий интерпретационный режим выполнения программы с распозна­ванием деталей реализации объекта во время выполнения по­сылки сообщения к нему. Введение некоторых ограничений на способ определения подклассов позволяет добиться эффектив­ной реализации СУБД.

При таком наборе базовых понятий, если не принимать во вни­мание возможности наследования классов и соответствующие про­блемы, объектно-ориентированный подход очень близок к язы­кам программирования с абстрактными (произвольными) типа­ми данных.

С другой стороны, если абстрагироваться от поведенческо­го аспекта объектов, объектно-ориентированный подход ана­логичен семантическому моделированию данных. Фундамен­тальные абстракции, лежащие в основе семантических моде­лей, неявно используются и в объектно-ориентированном мо­делировании. В состав сложных объектов могут входить и другие объекты со своими значениями атрибутов. Абстракция группиро­вания — основа формирования классов объектов. На абстракци­ях специализации (обобщения) основано построение иерархии или решетки классов.

Наиболее важным новым качеством ООБД, которое позволя­ет достичь объектно-ориентированный подход, является пове­денческий аспект объектов. В прикладных информационных сис­темах, основывавшихся на БД с традиционной организацией (вплоть до тех, которые базировались на семантических моделях данных), существовал принципиальный разрыв между структур­ной и поведенческой частями. Структурная часть системы под­держивалась всем аппаратом БД, ее можно было моделировать, изменять, но поведенческая часть при этом создавалась изолиро­ванно. В частности, отсутствовали формальный аппарат и сис­темная поддержка совместного моделирования и гарантирова­ние согласованности структурной (статической) и поведенче­ской (динамической) частей. В среде ООБД проектирование, раз­работка и сопровождение прикладной системы становятся про­цессом, в котором интегрируются структурный и поведенческий аспекты. Конечно, для этого требуются специальные языки, по­зволяющие определять объекты и создавать на их основе при­кладную систему.

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

Первый аспект касается потребности в средствах специфика­ции знаний при определении класса (ограничений целостности, правил дедукции и т.п.).

Второй аспект — потребность в механизме определения разно­го рода семантических связей между объектами разных классов. Фактически это означает требование полного распространения на ООБД средств семантического моделирования данных. Потребность в использовании абстракции ассоциирования отмечается и в свя­зи с использованием ООБД в сфере автоматизированного проек­тирования.

Третий аспект связан с пересмотром понятия класса. В контек­сте ООБД оказывается более удобным рассматривать класс как множество объектов данного типа, т.е. одновременно поддержи­вать понятия и типа, и класса объектов.

 

<== предыдущая лекция | следующая лекция ==>
Оптимизация запросов, управляемых правилами | Объектно-ориентированные модели данных
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 677; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.