Объектно-ориентированные базы данных

Оглавление







	Введение	2

	1. Общие понятия объектно-ориентированного подхода и их преломление в ООБД	3

	2. Потенциал объектно-ориентированных баз данных	6

	3. Объектно-ориентированные модели данных	9

	4. Языки программирования систем ООБД и языки запросов	11

	5. Ограничения	18

	5.1 Ограничения систем постоянного хранения.	18

	5.2 Ограничения систем баз данных.	19

	6. Заключение	20

	Список использованной литературы:	21

		




Введение



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

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

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


1. Общие понятия объектно-ориентированного подхода и их преломление в ООБД



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

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

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

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

классов; 

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

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

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

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

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

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

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

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


2. Потенциал объектно-ориентированных баз данных

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

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

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

Поскольку С++, несмотря на его растущую популярность, не единственный язык программирования, который используют или будут использовать разработчики приложений баз данных, и между языком и базой данных есть существенный разрыв, второй подход является более практичным. Но и независимо от подхода, ООБД, сделанные правильно, приводят к квантовому переходу в продуктивность разработчиков приложений баз данных и даже в эффективность самих приложений.

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

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


3. Объектно-ориентированные модели данных

Первой формализованной и общепризнанной моделью данных была реляционная модель Кодда. В этой модели, как и во всех следующих, выделялись три аспекта - структурный, целостный и манипуляционный. Структуры данных в реляционной модели основываются на плоских нормализованных отношениях, ограничения целостности выражаются с помощью средств логики первого порядка и, наконец, манипулирование данными осуществляется на основе реляционной алгебры или равносильного ей реляционного исчисления. Как отмечают многие исследователи, своим успехом реляционная модель данных во многом обязана тому, что опиралась на строгий математический аппарат теории множеств, отношений и логики первого порядка. Разработчики любой конкретной реляционной системы считали своим долгом показать соответствие своей конкретной модели данных общей реляционной модели, которая выступала в качестве меры "реляционности" системы.

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

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

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

Важным аспектом является четкое разделение схемы БД и самой БД. В качестве первичных концепций схемного уровня ООБД выступают типы и классы. Отмечается, что во всех системах, использующих только одно понятие (либо тип, либо класс) это понятие неизбежно перегружено: тип предполагает наличие некоторого множества значений, определяемого структурой данных этого типа; класс также предполагает наличие множества объектов, но это множество определяется пользователем. Таким образом, типы и классы играют разную роль, и для строгости и недвусмысленности требуются одновременное поддержание обоих понятий.

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


4. Языки программирования систем ООБД и языки запросов

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

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

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

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

Начало расцвета направления ООБД совпало с пиком популярности языка Smalltalk-80. Этот язык оказал большое влияние на разработку первых систем ООБД, и, в частности, использовался в качестве языка программирования. Во многом опирается на Smalltalk и известная коммерчески доступная система GemStone.

Трудности с эффективной практической реализацией языка Smalltalk побудили разработчиков систем ООБД к поиску альтернативных базовых языков. Известная близость объектно-ориентированного и функционального подходов к программированию позволяет достаточно успешно опираться на функциональные языки программирования. В частности, язык Лисп (Common Lisp) является основой проекта ORION. В этом проекте Лисп является и инструментальным языком, и базой объектно-ориентированного языка программирования в среде ORION.

Потребности в еще более эффективной реализации заставляют использовать в качестве основы объектно-ориентированного языка языки более низкого уровня. Например, в системе VBASE наряду со специально разработанным языком TDL, предназначенным для определения типов, используется объектно-ориентированное расширение языка Си - COP (C Object Processor). В уже упоминавшемся проекте O2  наряду с функциональным объектно-ориентированным языком программирования  используются два объектно-ориентированных расширения языков Бейсик и Си. При этом, насколько можно судить по публикациям, наибольшее распространение среди пользователей этой системы (она уже коммерчески доступна) получил язык CO2, являющийся расширением языка Си. Возможно это связано лишь с широкой (и все более возрастающей) популярностью языка Си (и его объектно-ориентированного потомка Си++), ставшего поистине девизом "настоящих программистов". Может быть, причины более глубинны (например, языки более высокого уровня слишком ограничительны для программистов-профессионалов; недаром большинство современных реализаций языков более высокого уровня выполняются именно на языке Си). Тем не менее, современная ситуация именно такова, и мы считаем полезным привести краткое описание основных особенностей языка CO2.

Прежде всего, CO2 не является полностью самостоятельным языком. Этот язык входит во многоязыковую среду O2 и предназначен для программирования методов ранее определенных классов. Определение классов, сигнатур методов (фактически, прототипов функций в терминологии языка Си) и имен постоянно хранимых значений и объектов производится с использованием отдельного языка определения схемы БД.

Основой манипулирования объектами, хранимыми в БД, является расширенное по сравнению с языком Си средство итерации. Итератор применим к значениям-множествам или спискам. Фактически он означает последовательное применение оператора-тела цикла ко всем элементам множества или списка. 

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

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

Второй подход основывается на построении полного логического объектно-ориентированного исчисления. По поводу построения такого исчисления имеются теоретические работы, но законченный и практически реализованный язык запросов нам неизвестен. Видимо, к этому же направлению строго теоретически обоснованных языков запросов можно отнести и работу Леллани и Спиратоса, основанную на алгебраической теории категорий.

Наконец, третий подход основывается на применении дедуктивного подхода. В основном это отражает стремление разработчиков к сближению направлений дедуктивных и объектно-ориентированных БД. Примером простого дедуктивного объектно-ориентированного языка запросов может служить.

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

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

Язык запросов системы Iris находится в значительной степени под влиянием реляционной парадигмы. Даже название этого языка OSQL отражает его тесную связь с реляционным языком SQL. По сути дела, OSQL - это реляционный язык, рассчитанный на работу с ненормализованными отношениями. Естественно, при таком подходе в OSQL нарушается инкапсуляция объектов.

На наш взгляд, особый интерес представляет декларативный язык запросов системы O2 RELOOP. В общих словах, это декларативный язык запросов с SQL-ориентированным синтаксисом, основанный на специально разработанной для модели O2 алгебре объектов и значений. (Кстати, это не единственная работа в направлении построения алгебры для объектно-ориентированных моделей данных.  На наш взгляд, особенно впечатляющим качеством языка RELOOP является естественность его построения в общем контексте модели O2. Запрос задается всегда на значении-множестве или списке. Если мы вспомним, что долговременному классу в O2 соответствует одноименное значение-множество, то тем самым можно определить запрос на любом хранимом классе. Результатом запроса может являться объект, значение-множество или значение-список. При этом элементами значений-множеств могут являться объекты (простая выборка), либо значения-кортежи с элементами-объектами разных классов (например). В совокупности эти особенности языка позволяют формулировать запросы над несколькими классами (специфическое соединение, порождающее не новые объекты, а кортежи из существующих объектов), а также употреблять вложенные подзапросы.

Теперь кратко остановимся на собственных предложениях. Суть их состоит в том, чтобы попытаться построить алгебру классов объектов, оставаясь в пределах базового набора концепций объектно-ориентированного подхода. Для этого достаточно, чтобы была возможность интерпретации результата выполнения алгебраической операции над классами в виде класса. Предлагаемый подход, аналогично модели O2, частично основывается на семантике включения, т.е. суперкласс как множество объектов включает все множества объектов подклассов, хотя некоторые операции не соответствуют этой семантике.

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

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


5. Ограничения

5.1 Ограничения систем постоянного хранения. 

Одна из целей современных ООБД - унификация языков программирования и баз данных в одном языке (например, С++ или Smalltalk). Эта цель вызвана текущим положением дел, когда прикладные программы пишутся на универсальном языке программирования (в основном, COBOL, FORTRAN, PL/I, С), а встроенные в приложение функции управления базой данных - на языке базы данных (например, SQL). Универсальный язык программирования и язык базы данных весьма различны по синтаксису и модели данных (структурам и типам данных), и необходимость изучать и использовать два разных языка при разработке приложений баз даннь~х часто рассматривается как главный недостаток. Поскольку C++ и Smalltalk уже включают средства для определения классов и их иерархии (т.е. определения данных), эти языки являются хорошей основой для унификации. Первый шаг, предпринятый производителями ранних ООБД, заключался в том, чтобы сделать постоянными кроссы и экземпляры кроссов, то есть поместить их во вторичную память и дать возможность доступа к ним даже после завершения программ, которые их определили и создали.

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

5.2 Ограничения систем баз данных. 

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

- Большинство ООБД страдает от недостатка средств запросов; обычно не предусматриваются вложенные подзапросы, операции над множествами (объединение, пересечение, разность), функции агрегирования и группировки и т.д. - средства, полностью поддерживаемые в РБД. 

- РБД автоматически устанавливают и снимают блокировки при обработке запросов, которые делают пользователи, а некоторые современные ООБД требуют, чтобы пользователи явно устанавливали и снимали блокировки.

- РБД поддерживают авторизацию, т.е. позволяют наделять (и лишать) пользователей привилегиями читать или изменять данные других пользователей, а также изменять определение отношений, созданных другими пользователями. Большинство же ООБД не поддерживает авторизации.

- РБД разрешают динамически изменять схему базы данных при помощи команды ALTER; можно добавить новый столбец к отношению, можно удалить отношение, иногда - удалить столбец из отношения.

- РБД позволяют оптимизировать производительность системы, поддерживая большое число параметров, которые устанавливаются системным администратором. Значительное число ООБД обладают ограниченными возможностями настройки. 



6. Заключение

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

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










Список использованной литературы:







Объектно-ориентированные базы данных - основные концепции, организация и управление. Краткий обзор: [Электронный ресурс].- Электрон. дан. - Режим доступа:

 http://www.citforum.ru/database/articles/art_24.html – загл. с экрана.

Объектно-ориентированные базы данных: [Электронный ресурс].- Электрон. дан.- Режим доступа http://www.p-stone.ru/libr/db/teoretic/data/public3/  – загл. с экрана.

Объектно-ориентированные базы данных: среда разработки программ плюс хранилище объектов: [Электронный ресурс].- Электрон. дан.- Режим доступа: http://old.ulstu.ru/people/SOSNIN/umk/Basis_of_Artificial_Intelligence/mirrors/inteltec/www.inteltec.ru/publish/articles/objtech/oodbms_o.shtml.html - загл. с экрана.

Технология объектно-ориентированных баз данных: [Электронный ресурс].- Электрон. дан.- Режим доступа: http://db.snipetz.com/oobd.htm#VVVOOBD – загл. с экрана.











18