Фуфаев - Разработка и эксплуатация удалённых БД (1084483), страница 42
Текст из файла (страница 42)
Создание прототипов темпоральных СУБД обычно выполняется на основе некоторой реляционной СУБД в виде надстройки над реляционной системой. Контрольные вопросы 1. Назовите основные направления совершенствования реляционных баз данных. 2. В чем заключается метод генерации систем баз данных? 3. Перечислите способы оптимизации запросов. 4. Для решения каких задач применяются темпоральные запросы? ГЛДВД гб ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ СУБД 16.1. Общие понятия объектно-ориентированного подхода к разработке СУБД Создание объектно-ориентированных баз данных началось в середине 1980-х гг. Наиболее активно ООБД развиваются в последние годы. Развитие ООБД определяется, прежде всего, потребностями практики — необходимостью разработки сложных информационных прикладных систем.
Конечно, ООБД возникли не на пустом месте. Соответствующий базис обеспечили как предыдущие работы в области БД, так и развивающиеся языки программирования с абстрактными типами данных и объектно-ориентированные языки программирования. Что касается связи с предыдущими работами в области БД, то, на наш взгляд, наиболее сильное влияние на развитие ООБД оказывают проработки реляционных СУБД и создаваемое на их основе семейство БД, поддерживающих управление сложными объектами.
Кроме того, исключительное влияние на идеи и концепции создания ООБД оказало семантическое моделирование данных. Свое влияние оказывает также развитие параллельно с ООБД дедуктивных и активных БД. В наиболее общей постановке объектно-ориентированный подход базируется на следующих концепциях: ° объект и идентификатор объекта; ° атрибут и метод; ° класс; ° иерархия и наследование классов.
Любая сущность реального мира в объектно-ориентированных языках и системах моделируется в виде объекта. Любой объект при своем создании получает генерируемый системой уникальный идентификатор, который связан с объектом все время его существования и не меняется при изменении состояния зтого объекта. Каждый объект характеризуют состояние и поведение. Состояние объекта — набор значений его атрибутов. Поведение объекта— набор методов (программный код), оперирующих его состоянием.
Значение атрибута объекта — это тоже некоторый объект или множество объектов. Состояние и поведение инкапсулированы в объекте. Взаимодействуют объекты на основе передачи сообщений и выполнения соответствующих методов. 211 Множество объектов с одним и тем же набором атрибутов и методов образуют класс объектов. Объект должен принадлежать только одному классу (если не учитывать возможности наследования). Допускается наличие примитивных предопределенных классов, объекты-экземпляры которых не имеют атрибутов: целые, строки и т.д. Класс, объекты которого могут служить значениями атрибута объектов другого класса, называется доменом этого атрибута. Допускается создание нового класса на основе уже существующего класса — наследование.
В этом случае новый класс, называемый подклассом существующего класса (суперкласса), наследует все атрибугы и методы суперкласса. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Различают случаи простого и множественного наследования.
В первом случае подкласс может определяться только на основе одного суперкласса, а во втором случае суперклассов может быть несколько. Если в языке или системе поддерживается единичное наследование классов, то набор классов образует древовидную иерархию. При поддержании множественного наследования классы связаны в ориентированный граф с корнем, называемый решеткой классов. Объект подкласса считается принадлежащим любому суперклассу этого класса.
Одной из более поздних идей объектно-ориентированного подхода к созданию СУБД является переопределение атрибутов и методов суперкласса в подклассе (перегрузка методов). Это увеличивает гибкость системы проектирования, но порождает дополнительную проблему: при компиляции объектно-ориентированной программы могут быть неизвестны структура и программный код описаний объекта, хотя его класс (в общем случае— суперкласс) известен. Для разрешения этой проблемы применяется так называемый метод позднего связывания, означающий интерпретационный режим выполнения программы с распознаванием деталей реализации объекта во время выполнения посылки сообщения к нему. Введение некоторых ограничений на способ определения подклассов позволяет добиться эффективной реализации СУБД.
При таком наборе базовых понятий, если не принимать во внимание возможности наследования классов и соответствующие проблемы, объектно-ориентированный подход очень близок к языкам программирования с абстрактными (произвольными) типами данных. С другой стороны, если абстрагироваться от поведенческого аспекта объектов, объектно-ориентированный подход аналогичен семантическому моделированию данных.
Фундаментальные абстракции, лежащие в основе семантических моделей, неявно используются и в объектно-ориентированном мо- 212 делировании. В состав сложных объектов могут входить и другие объекты со своими значениями атрибутов. Абстракция группирования — основа формирования классов объектов. На абстракциях специализации (обобщения) основано построение иерархии или решетки классов.
Наиболее важным новым качеством ООБД, которое позволяет достичь объектно-ориентированный подход, является поведенческий аспект объектов. В прикладных информационных системах, основывавшихся на БД с традиционной организацией (вплоть до тех, которые базировались на семантических моделях данных), существовал принципиальный разрыв между структурной и поведенческой частями.
Структурная часть системы поддерживалась всем аппаратом БД, ее можно было моделировать, изменять, но поведенческая часть при этом создавалась изолированно. В частности, отсутствовали формальный аппарат и системная поддержка совместного моделирования и гарантирование согласованности структурной (статической) и поведенческой (динамической) частей. В среде ООБД проектирование, разработка и сопровождение прикладной системы становятся процессом, в котором интегрируются структурный и поведенческий аспекты. Конечно, для этого требуются специальные языки, позволяющие определять объекты и создавать на их основе прикладную систему.
Специфика применения объектно-ориентированного подхода к организации и управлению БД потребовала уточнения толкования классических концепций и некоторого их расширения. Это определяется потребностью долговременного хранения объектов во внешней памяти, ассоциативным доступом к объектам, обеспечением согласованного состояния ООБД в условиях мультидоступа и тому подобными возможностями, свойственными базам данных. Выделяют три аспекта, отсутствующих в традиционном методе проектирования БД, но требуюшихся в ООБД. Лервый аслеюл касается потребности в средствах спецификации знаний при определении класса (ограничений целостности, правил дедукции и т.
п.). Второй аспект — потребность в механизме определения разного рода семантических связей между объектами разных классов. Фактически это означает требование полного распространения на ООБД средств семантического моделирования данных. Потребность в использовании абстракции ассоциирования отмечается и в связи с использованием ООБД в сфере автоматизированного проектирования. Третий аспект связан с пересмотром понятия класса. В контексте ООБД оказывается более удобным рассматривать класс как множество объектов данного типа, т.е.
одновременно поддерживать понятия и типа, и класса объектов. 213 15.2. Обьектно-ориентированные модели данных Первой формализованной и общепризнанной моделью данных была реляционная модель Кодла. В этой модели, как и во всех следующих, выделялись три аспекта: структурный, целостный и манипуляционный. Структуры данных в реляционной модели основываются на плоских нормализованных отношениях, ограничения целостности выражаются с помощью средств логики первого порядка, манипулирование данными осуществляется на основе реляционной алгебры или равносильного ей реляционного исчисления. Своим успехом реляционная модель данных во многом обязана тому, что она опирается на строгий математический аппарат реляционной алгебры и теории множеств.
Основные трудности объектно-ориентированного моделирования данных связаны с тем, что не существует конкретного математического аппарата, на который могла бы опираться общая объектно-ориентированная модель данных. Разработка методов управления данными внутри объектов„как и любой процесс программирования нетрадиционных задач, остается искусством программирования». Методы могут быть публичными (доступными из объектов других классов) или приватными (доступными только внутри данного класса).
Итак, объектно-ориентированная система управления базами данных представляет собой объединение системы программирования и СУБД и основана на объектно-ориентированной модели данных, Основное назначение ООБД связано с потребностью создания единого информационного пространства. В этой среде должны отсутствовать противоречия между структурной и поведенческой частями проекта и должно поддерживаться эффективное управление сложными структурами данных во внешней памяти, В отличие от традиционных реляционных систем, в которых при создании приложения приходится одновременно использовать процедурный язык программирования, ориентированный на работу со скалярными значениями, и декларативный язык запросов, ориентированный на работу с множествами, языковая среда ООБД вЂ” это объектно-ориентированная система программирования, естественно включающая в себя средства работы с долговременными объектами.
Естественность включения средств работы с БД в язык программирования означает, что работа с долговременными (хранимыми во внешней БД) объектами должна происходить на основе тех же синтаксических конструкций (и с той же семантикой), что и работа с временными объектами, существующими только во время работы программы. 214 Эта сторона ООБД наиболее близка родственному направлению языков программирования баз данных. Языки программирования ООБД и БД во многом различаются только терминологически; существенным отличием является лишь поддержание в языках ООБД подхода к наследованию классов. Другим аспектом языкового окружения ООБД является потребность в языках запросов, которые можно было бы использовать в интерактивном режиме.