Объектно ориентированный модель данных
Объектно-ориентированные СУБД - (реферат)
Дата добавления: март 2006г.
Бойко И.
Объектно-ориентированные СУБД.
Оглавление
1. 20 лет эволюции программного обеспечения.
3
2. Реляционные базы данных. 4
3. Объектно-реляционные методы. 6
4. Объектно-ориентированные базы данных.
8
4. 1 Why ODBMS? 8
4. 2 Спорные моменты технологии. 10
4. 3 Стандарты объектных баз данных. 13
4. 4 Поставщики ООСУБД. 17
5. Заключение. 19
6. Глоссарий 21
20 лет эволюции программного обеспечения.
Рисунок 1
Управление информацией
всегда было основной сферой применения
компьютеров и, надо думать, будет
играть еще большую роль в будущем.
Системы управления базами данных [1
Термины, выделенные курсивом, как правило,
приведены в словарике на стр.
21] (СУБД, DBMS – Database Management System)на протяжении
всего пути развития компьютерной техники
совершенствовались, поддерживая все
более сложные уровни абстрактных
данных, заданных пользователем, и обеспечивая
взаимодействие компонентов, распределенных
в глобальных сетях и постепенно
интегрирующихся с
История развития компьютерной
техники –это история непрерывного
движения от языка и уровня коммуникации
машины к уровню пользователя. Если
первые машины требовали от пользователя
оформления того, что ему нужно (то
есть написания программ), в машинных
кодах, то языки программирования четвертого
уровня (4GLs) позволяли конечным пользователям,
не являющимся профессиональными
Реляционные базы данных.
В реляционных базах данных
(Relational Database System, RDBS)все данные отображаются
в двумерных таблицах. База данных,
таким образом, это ни что иное,
как набор таблиц. RDBS и ориентированные
на записи системы организованы на
основе стандарта B-Tree или методе доступа,
основанном на индексации–Indexed Sequential
Access Method (ISAM) и являются стандартными
системами, использующимися в большинстве
современных программных
Строки таблицы составлены из полей, заранее известных базе данных. В большинстве систем нельзя добавлять новые типы данных. Каждая строка в таблице соответствует одной записи. Положение данной строки может изменяться вместе с удалением или вставкой новых строк.
Чтобы однозначно определить элемент, ему должны быть сопоставлены поле или набор полей, гарантирующих уникальность элемента внутри таблицы. Такое поле или поля называютсяпервичным ключом (primary key) таблицы и часто являются числами. Если одна таблица содержит первичным ключ другой, это позволяет организовать связь между элементами разных таблиц. Это поле называетсявнешним ключом (foreign key).
Так как все поля одной
таблицы должны содержать постоянное
число полей заранее
Несмотря на рассмотренные
в п. 2 недостатки реляционных баз
данных, они обладают рядом достоинств:
разделение таблиц разными программами;
развернутый “код возврата” при ошибках;
высокая скорость обработки запросов (команда SELECTязыка SQL; результатом выборки является таблица, которая содержит поля, удовлетворяющие заданному критерию);
Рисунок 2 Возможные подходы к объединению объектных и реляционных БД. сама концепция объектных баз данных довольно сложна и требует от программистов серьезного и длительного обучения;
относительно высокая скорость при работе с большими объемами данных. Кроме того, во всем мире значительные средства уже инвестированы в реляционные СУБД. Многие организации не уверены, что затраты, связанные с переходом на объектные базы данных, окупятся.
Поэтому многие пользователи
заинтересованы в комбинированном
подходе, который бы им позволил воспользоваться
достоинствами объектных баз
данных, не отказываясь полностью
от своих реляционных БД. Такие
решения действительно
Объектно-реляционные адаптеры.
Этот метод предполагает использование
так называемого объектно-
Некоторые объектные СУБД,
например GemStone компании GemStone Systems, могут
сами выполнять роль мощного объектно-реляционного
адаптера, позволяя объектно-ориентированным
приложениям обращаться к реляционным
БД. Объектно-реляционные адаптеры,
такие как Odapter компании Hewlett-Packard для
СУБД Oracle, можно с успехом использовать
во многих областях, например в качестве
связующего ПО, объединяющего объектно-
Объектно-реляционные шлюзы. При использовании такого метода пользователь взаимодействует с БД при помощи языка ООСУБД, а шлюз заменяет все объектно-ориентированные элементы этого языка на их реляционные компоненты. За это опять приходиться расплачиваться производительностью. Например, шлюз должен преобразовать объекты в набор связей, сгенерировать оригинальные идентификаторы (original identifier–OID) объектов и передать это в реляционную БД. Затем шлюз должен каждый раз, когда используется интерфейс реляционной СУБД, преобразовывать OID, найденный в базе, в соответствующий объект, сохраненный в РСУБД.
Производительность в
рассмотренных двух подходах зависит
от способа доступа к реляционной
базе данных. Каждая РСУБД состоит
из двух уровней: уровня управления данными
(data manager layer) и уровня управления носителем
(storage manager layer). Первый из них обрабатывает
операторы на языке SQL, а второй отображает
данные в базу. Шлюз или адаптер
могут взаимодействовать как
с уровнем данных (то есть обращаться
к РСУБД при помощи SQL), так и
с уровнем носителя (вызовами процедур
низкого уровня). Производительность
в первом случае намного ниже (например,
система OpenODB фирмы Hewlett-Packard, которая
может выполнять роль шлюза, поддерживает
только на высоком уровне). Гибридные
СУБД. Еще одним решением может
стать создание гибридных объектно-
С другой стороны, производители
объектных СУБД, такие как компания
Object Design, сознают, что объектно-ориентированные
базы данных в обозримом будущем
не заменят реляционные СУБД. Это
вынуждает их создавать шлюзы
для поддержки реляционных и
иерархических баз данных иди
различного рода интерфейсы, характерным
примером которых является объектно-реляционный
интерфейс Ontos Integration Server фирмы Ontos, применяемый
в сочетании с ее ООБД Ontos/DB. Объектно-ориентированные
базы данных.
Why ODBMS?
“Белыми книгами” с названием, вынесенным в заголовок, с избытком снабдит любая компания, занимающаяся объектными базами данных. Кое-что о преимуществах и недостатках объектно-ориентированных СУБД уже упоминалось выше, подведем в таком случае итог.
Объектно-ориентированные
базы данных применяются с конца
1980-х для обеспечения
Если данные состоят из
коротких, простых полей фиксированной
длины (имя, адрес, баланс банковского
счета), то лучшим решением будет применение
реляционной базы данных. Если, однако,
данные содержат вложенную структуру,
динамически изменяемый размер, определяемые
пользователем произвольные структуры
(мультимедиа, например), представление
их в табличной форме будет, как
минимум, непростым. В то же время
в ООСУБД каждая определенная пользователем
структура – это объект, непосредственно
управляемый базой данных. В РСУБД
связи управляются
В отличие от реляционных,
ООСУБД полностью поддерживают объектно-ориентированные
языки программирования. Разработчики,
применяющие С++ или Smalltalk, имеют дело
с одним набором правил (позволяющих
использовать такие преимущества объектной
технологии, какнаследование, инкапсуляция
и полиморфизм). Разработчик не должен
прибегать к трансляции объектной
модели в реляционную и обратно.
Прикладные программы обращаются и
функционируют с объектами, сохраненными
в базе данных, которая использует
стандартную объектно-
И, наконец, ООСУБД подходят
(опять же без трансляций между
объектной и реляционной
Спорные моменты технологии.
Все ООСУБД по определению
поддерживают сохранение и разделение
объектов. Но, когда дело доходит
до практической разработки приложений
на разных ООСУБД, проявляется множество
отличий в реализации поддержки
трех характеристик: Целостность;
Масштабируемость;
Отказоустойчивость.
Отметим, что ООБД не требуют
многих из тех внутренних функций
и механизмов, которые столь привычны
и необходимы в реляционных БД.
Например, при небольшом числе
пользователей, длинных транзакциях
и незначительной загрузке сервера
объектные СУБД не нуждаются в
поддержке сложных механизмов резервного
копирования/восстановления (исторически
сложилось так, что первые ООБД проектировались
для поддержки небольших
Для иллюстрации первой категории
рассмотрим механизм кэширования объектов.
Большинство объектных СУБД помещают
код приложения непосредственно
в то же адресное пространство, где
работает сама СУБД. Благодаря этому
достигается повышение
Есть метод, лучший, чем
использование прямых указателей (Рисунок
3). СУБД добавляет дополнительный указатель
и при необходимости, если объект
перемещается, система может автоматически
разрешить ситуацию (перезагрузить,
если это необходимо, объект) без
возникновения конфликтной
Это необходимо для реализации
уже второго необходимого свойства
баз данных –масштабируемости. Опять
следует упомянуть организацию
распределенных компонентов. Классическая
схема клиент-сервер, где основная
нагрузка приходится на клиента (такая
архитектура называется еще “толстый
клиент-тонкий сервер”), лучше справляется
с этой задачей, чем мэйнфреймовая
структура, однако ее все равно нельзя
масштабировать до уровня предприятия.
Благодарямногозвенной
Рисунок 3 Прямая и косвенная адресации.
Третье необходимое качество
базы данных –это отказоустойчивость.
Именно это свойство отличает программный
продукт от “прилады”. Существуют
несколько способов обеспечения
отказоустойчивости: резервное копирование
и восстановление;
распределение компонентов;
независимость компонентов;
копирование.
Руководствуясь первым принципом,
программист определяет потенциально
опасные участки кода и вставляет
в программу некоторые
В мэйнфреймовой архитектуре единственным источником сбоев была центральная ЭВМ. При переходе к распределенной многозвенной организации ошибки могут вызывать не только компьютеры, включенные в сеть, но и коммуникационные каналы. В многозвенной архитектуре при сбое одного из звеньев без специальных мер результаты работы других окажутся бесполезными. Поэтому при разработке распределенных систем обеспечивается принципиально более высокий уровень обеспечения отказоустойчивости. Назовем обязательные для современных распределенных СУБД свойства:
прозрачный доступ ко всем объектам независимо от их местоположения, благодаря чему пользователю доступны все сервисы СУБД и может производиться перераспределение компонентов без нежелательных последствий. так называемый “трехфазный монитор транзакций” (third-party transaction monitor), благодаря которому транзакция выполняется не в два, а в три этапа– сначала посылается запрос о готовности к транзакции. Что произойдет, если один из компонентов выйдет из строя? Система, созданная в соответствии только с вышеизложенными доводами, приостановит работу всех пользователей и прервет все транзакции. Поэтому важно такое свойство СУБД, как независимость компонентов.
При сетевом сбое сеть разделяется
на части, компоненты каждой из которых
не могут сообщаться с компонентами
другой части. Для того, чтобы сохранить
возможность работы внутри каждой такой
части, необходимо дублирование критически
важной информации внутри каждого сегмента.
Современные системы позволяют
администратору базы данных динамически
определять сегменты сети, варьируя таким
образом уровень надежности всей
системы в целом. И, наконец, о
копировании (replication) данных. Простейшим
способом является добавление к каждому
(основному) серверу резервного. После
каждой операции основной сервер передает
измененные данные резервному, который
автоматически включается в случае
выхода из строя основного. Естественно,
такая схема не лишена недостатков.
Во-первых, это приводит к значительным
накладным расходам при дублировании
данных, что не только сказывается
на производительности, но и само по
себе является потенциальным источником
сбоев. Во-вторых, в случае сбоя, повлекшего
за собой разрыв соединения между
двумя серверами, каждый из них должен
будет работать в своем сегменте
сети в качестве основного сервера,
причем изменения, сделанные на серверах
за время работы в таком режиме,
будет невозможно синхронизовать даже
после восстановления работоспособности
сети. Более совершенным является
подход, когда создается необходимое
(подбираемое в соответствии с
требуемым уровнем надежности) число
копий в сегменте. Таким образом
увеличивается доступность
Стандарты объектных баз данных.
Для обеспечения переносимости
приложений (приложение может работать
на разных СУБД) и совместимости
с СУБД (может взаимодействовать
с разными СУБД), естественно, необходима
выработка стандартов. Сразу заметим,
что установление стандартов лишает
производителя в некоторой
языка описания объектов;
языка организации запросов (Object Query Language
– OQL);
“связующего” языка (C++ и, конечно же,
Smalltalk);
администрирования;
обмена (импорт/экспорт);
интерфейсов инструментария и др.
Хотя у Microsoft и свое мнение на этот счет, организацией, выработавшей наиболее используемые на сегодня и устоявшиеся стандарты, является консорциум поставщиков ООСУБДODMG (ООСУБД), которого поддерживают практически все действующие лица отрасли. В сотрудничестве сOMG, ANSI, ISO и другими организациями был создан стандарт ODMG-93. Этот стандарт включает в себя средства для построения законченного приложения, которое будет работать (после перекомпиляции) в любой совместимой с этой спецификацией ООСУБД. В книгу ODMG-93 входят следующие разделы:
Язык определения объектов (Object Definition Language – ODL); Язык объектных запросов (Object Query Language – OQL);
Рисунок 4 Схема использования
ODL для построения приложения. Связывание
с C++;
Связывание со Smalltalk.
ODL. В качестве языка
определения объектов (ODL) ODMG был
выбран существующий язык IDL (Interface
Definition Language–язык описания
Рисунок 4 показывает работоспособную
схему для построения приложения
на стандартных языках программирования,
в процессе которой автоматически
генерируютсяметаданные, заголовочные
файлы и методы. Приведем также
пример на языке ODL из “белой книги” компании
Objectivity, который иллюстрирует связи
типа “один-ко-многим”, объявленные
между преподавателем и студентами:
interface professor : employee {
attribute string <32> name;
unique attribute lang unsigned ssn;
relationship dept works_in inverse faculty; relationship set
teaches inverse taught_by; ... . operations ... .
{
interface section : class {
... . taught_by: professor ... . ;
... .
}
OQL. За основу языка OQL
была взята команда
• Select x from x in faculty where x. salary >
x. dept. chair. salary
• sort s in (select struct (name: x. name, s: x. ssn) from
x in faculty where for all y in
x. advisees: y. age<25) by s. name
• Chair. salary
• Students except TAs
• list (1, 2) + list (count (jse. advisees), 1+2)
• exists x in faculty [1: n]: x. spouse. age<25
C++. Спецификация ODMG-93 позволяет
программистам легко
Использование стандартных компиляторов обеспечивается тем, что все расширения реализуются средствами языка – библиотеками классов и перегрузкой операторов. Определение временных экземпляров (Transient Instance) и экземпляров, создаваемых на длительный срок (Transient Instance) при помощи оператораnew(). При перегрузке оператора new()оба типа экземпляров могут создаваться от одного класса, который может существовать продолжительное время.
Обеспечение устойчивости через
стандартный механизм наследования;
пользователь может определять экземпляры
временные и рассчитанные на продолжительное
использование средствами оригинальной
версии языка. Использование специального
механизма указателей (Smart Pointers). Связи
между объектами объявляются
при помощи шаблона Ref<> и перегрузки
оператора ->; это позволяет использовать
специальные указатели (контролируемые
системой; см. , например, идентичность
в словарике (стр. 21) и упоминание
косвенной адресации (стр. 10) как
обычные. class Professor: Employee {
long ssn;
char* name;
int age;
Refdept inverse faculty;
Set
teaches inverse taught_by;
... .
void grant_tenure()
void assign_course(section)
}
... .
Refprof;
... .
prof = new(db, Professor);
prof->name="Smith";
prof->age+prof->age+1;
На этом, пожалуй, чувство благодарности компании Objectivity в значительной мере ослабеет, так как примеров на языке Smalltalk найти не удалось. Smalltalk. ODMG-93 поддерживает ту же объектную модель для Smalltalk, что и для С++, IDL и запросы на языке OQL; это позволяет разделять один и тот же объект пользователям С++ и Smalltalk. Спецификация поддерживает типы (возможны бестиповые поля) и синтаксис оригинальной версии Smalltalk.
Рисунок 5 ООСУБД, построенная на основе стандартов ODMG во взаимодействии с CORBA. Взаимодействие с другими стандартами. Многие стандарты совместимы с объектными базами данных, например STEP, CFI, TINA-C, ISO ODP, ANSI X3H7, OpenGIS и др. Сейчас они могут напрямую взаимодействовать с любой стандартной ООСУБД, хотя в некоторые из них и были внесены изменения для обеспечения совместимости. Два других стандарта заслуживают более детального описания– OMG и SQL.
Стандарты OMG. Первым результатом
деятельности OMG стало утверждение
(OMG не создает стандартов, а принимает
одну из существующих реализаций) Архитектуры
Брокера Объектных Запросов (Common
Object Request Broker Architecture– CORBA) –средства
диспетчеризации запросов между
объектами и пользователями; в
дальнейшем были добавлены некоторые
сервисы. Интерфейс ODMG сейчас полностью
адаптирован к спецификации Persistence
Object Service консорциума OMG, что позволяет
пользователям систем, основанных на
архитектуре CORBA, пользоваться преимуществами
от ООСУБД, которые могут содержать
объекты, отвечающие стандарту OMG и
используемые так же, как и любые
другие (“мелкие”) объекты спецификации
OMG (Рисунок 5). Объекты OMG в свою очередь
доступны через интерфейс ODMG. Язык SQL.
Из-за распространенности SQL был заложен
в основу OQL, который был дополнен
средствами поддержки объектной
модели. В настоящее время
Поставщики ООСУБД.
Рисунок 6 Современный рынок СУБД.
Список современных
Objectivity/DB компании Objectivity, Inc.
(последняя версия –2. 1) идеально,
по заявлениям фирмы, подходит
для приложений, которые работают
в распределенных средах, требуют
гибкой модификации данных, организации
сложных связей, а также нуждаются
в высокой производительности
и работы с большими объемами
данных. Вероятно, все компании, производящие
ООСУБД, ставят своей целью сложить
такое впечатление

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