Реферат: Объектно-ориентированные базы данных, работающие в распределенных сетях

Министерствообразования и науки РФ

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

ГОУ ВПО «АДЫГЕЙСКИЙ ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ»

ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ

КУРСОВАЯ РАБОТА

По дисциплине:«Сетевые технологии»

«Объектно-ориентированные базы данных, работающие в распределенных сетях»

Выполнил:студент группы 4А2

специальности 230102 (220200) АСОИУ

Хмиляр М.А.

Научный руководитель:

Алиев М.В.

Рецензент:

КизяновА.Ф.

Майкоп 2006 год

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

СОДЕРЖАНИЕ

ВВЕДЕНИЕ                                                                                            5

1. ОБЩИЕ СВЕДЕНЬЯ ОБ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ

    БАЗАХ ДАННЫХ                                                                               6

2. ОСОБЕННОСТИ БАЗ ДАННЫХ ПОСТРОЕННЫХНА СУБД

    РАЗНЫХФИРМ                                                                                  9

2.1 Cache'                                                                                       9

2.2 GemStone                                                                                  13

2.3 <st1:place w:st=«on»>ITASCA</st1:place>                                                                                     17

2.4 Objectivity /DB                                                                          20

2.5 ObjectStore                                                                                22

2.6 Versant                                                                                      24

ЗАКЛЮЧЕНИЕ                                                                                              28

СПИСОК ИСПОЛЬЗОВАННОЙЛИТЕРАТУРЫ                                     29

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

ВВЕДЕНИЕ

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

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

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

Актуальность.

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

Цель работы.

1.<span Times New Roman"">    

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

2.<span Times New Roman"">    

Описать особенности построения базданных приложениями разных фирм.

3.<span Times New Roman"">    

Выявить преимущества.

4.<span Times New Roman"">    

Выявить недостатки.<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

1. ОБЩИЕ СВЕДЕНЬЯ ОБОБЪЕКТНО-ОРИЕНТИРОВАННЫХ БАЗАХ ДАННЫХ

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

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

В реляционных СУБД связиуправляются пользователем, создающим внешние ключи. Затем для обнаружениясвязей динамически во время выполнения система просматривает две (или больше)таблицы, сравнивая внешние ключи до достижения соответствия. Этот процесс,называемый объединением (join), является слабой стороной реляционнойтехнологии. Если более двух или трех уровней объединений – сигнал, чтобы искатьлучшее решение. В ООСУБД пользователь просто объявляет связь, и СУБДавтоматически генерирует методы управления, динамически создавая, удаляя ипересекая связи. Ссылки при этом прямые, нет необходимости в просмотре исравнении или даже поиске индекса, который может сильно сказаться на производительности.Таким образом, применение объектной модели предпочтительнее для баз данных сбольшим количеством сложных связей: перекрестных ссылок, ссылок, связывающихнесколько объектов с несколькими (many-to-many relationships) двунаправленнымиссылками[1].

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

И, наконец, ООСУБДподходят (опять же без трансляций между объектной и реляционной моделями) дляорганизации распределенных вычислений. Традиционные базы данных (в том числе иреляционные и некоторые объектные) построены вокруг центрального сервера,выполняющего все операции над базой. По существу, эта модель мало отличается отмэйнфреймовой организации 60‑х годов с центральной ЭВМ – мэйнфреймом(mainframe), выполняющей все вычисления, и пассивных терминалов. Такаяархитектура имеет ряд недостатков, главным из которых является вопросмасштабируемости. В настоящее время рабочие станции (клиенты) имеютвычислительную мощность порядка 30 ‑ 50 % мощности сервера базы данных,то есть большая часть вычислительных ресурсов распределена среди клиентов.Поэтому все больше приложений, и в первую очередь базы данных и средствапринятия решений, работают в распределенных средах, в которых объекты(объектные программные компоненты) распределены по многим рабочим станциям исерверам и где любой пользователь может получить доступ к любому объекту.Благодаря стандартам межкомпонентного взаимодействия все эти фрагменты кодакомбинируются друг с другом независимо от аппаратного, программного обеспечения,операционных систем, сетей, компиляторов, языков программирования, различныхсредств организации запросов и формирования отчетов и динамически изменяютсяпри манипулировании объектами без потери работоспособности[3].

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

2. ОСОБЕННОСТИ БАЗ ДАННЫХ ПОСТРОЕННЫХНА СУБД РАЗНЫХ ФИРМ

2.1 Cache'

При всех достоинствахсовременной объектной технологии разработки баз данных имеется несколькопрепятствий, которые удерживают разработчиков от принятия решения о переходе среляционной технологии на объектную. Основным препятствием являетсязначительный объем разработок, опирающихся на реляционные СУБД. Ведь припереходе на объектную технологию необходимо многое начинать «с нуля», и поэтомувозникает вопрос целесообразности такого перехода. Кроме того, объектная технология,поддерживаемая в ряде постреляционных СУБД, не имеет развитого истандартизированного языка генерации отчетов и анализа данных, каким являетсяструктурированный язык запросов SQL. Данные проблемы были решены при созданиипостреляционной СУБД Cache' от InterSystems. СУБД Cache' обеспечивает не толькореализацию основных возможностей объектно-ориентированной технологии, но ипозволяет во многом облегчить переход с реляционной технологии на объектную, атакже может выступать в роле шлюза к реляционным базам данных[5].

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

БД Cache' была первойбазой данной, предназначенной для работы в сети Internet/Intranet. В версииCache' 4.0 реализована технология создания динамических web-приложений Cache'Server Pages (CSP), которая пришла на смену технологии Weblink предыдущихверсий Cache'. Кроме этого, системная библиотека «%Net» предоставляет классы,реализующие протоколы SMTP, POP3, HTTP, FTP и др.

Основные компоненты СУБДCache'. На рис. 1. представлена архитектура Cache'.

<img src="/cache/referats/22705/image001.gif" v:shapes="_x0000_s1026">
Рисунок 1. Архитектура системыCache'.

Основными компонентамиСУБД Cache' являются следующие:

TMDM. Многомерное ядросистемы, ориентирование на работу с транзакциями.

Сервер Cache' Objects.Представление многомерных структур данных ядра системы в виде объектов,инкапсулирующих как данные, так и методы их обработки.

Сервер Cache' SQL.Представление многомерных структур данных в виде реляционных таблиц.

Сервер прямого доступа.Предоставление прямого доступа к многомерным структурам данных ядра системы.

Рассмотрим подробнееназначение и функциональные возможности основных компонентов системы.

TMDM — многомерное ядроCache', ориентированное на работу с транзакциями.

Данные в Cache' хранятсяв виде разреженных массивов, носящих название глобалей. Количество индексовмассива может быть произвольным, что позволяет описывать и хранить структурыданных произвольного уровня сложности. Индексы глобалей не типизированы, т.е.они могут быть любого литерального типа данных.

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

В СУБД Cache' реализованаразвитая технология обработки транзакций и разрешения конфликтов. Блокировкаданных производится на логическом уровне. Это позволяет учитывать особенностьмногих транзакций, производящих изменения небольшого объема информации. Кромеэтого, в Cache' реализованы атомарные операции добавления и удаления безпроведения блокировки, в частности, это применяется для счетчика ID объектов вбазе данных[6].

Сервер Cache' Objects. Всоответствии с ODMG каждый объект Cache' имеет определенный, единственный тип.Поведение объекта определяется операциями (методами), а состояние объекта — значениями его свойств. Свойства и операции составляют характеристики типа. Типопределяется одним интерфейсом, которому может соответствовать одна или большеечисло реализаций. Объектная модель Cache' представлена на рис. 2.

<img src="/cache/referats/22705/image003.gif" v:shapes="_x0000_s1027">

Рисунок 2. Объектная модель Cache'.

В соответствии состандартом в Cache' реализовано два типа классов:

·<span Times New Roman"">       

классытипов данных (литералы);

·<span Times New Roman"">       

классыобъектов (объекты).

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

Классы типов данныхподразделяется на два подкласса типов:

·<span Times New Roman"">       

атомарные;

·<span Times New Roman"">       

структурированные.

Атомарными литеральнымитипами в Cache' являются традиционные скалярные типы данных (%String, %Integer,%Float, %Date и др.). В Cache' реализованы две структуры классов типов данных — список и массив. Каждый литерал уникально идентифицируется индексом в массиве ипорядковым номером в списке.

Различают два подтипаклассов объектов — зарегистрированные и незарегистрированные.Зарегистрированные классы обладают предопределенным поведением, т.е. наборомметодов, наследуемых из системного класса «%RegisteredObject» и отвечающих засоздание новых объектов и за управление размещением объектов в памяти.Незарегистрированные классы не обладают предопределенным поведением, разработкафункций (методов) класса целиком и полностью возлагается на разработчика.

Зарегистрированные классымогут быть двух типов — встраиваемые и хранимые. Встраиваемые классы наследуютсвое поведение от системного класса «%SerialObject». Основной особенностьюхранения встраиваемого класса является то, что объекты встраиваемых классовсуществуют в памяти как независимые экземпляры, однако могут быть сохранены вбазе данных, только будучи встроены в другой класс.

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

Хранимые классы наследуютсвое поведение от системного класса «%Persistent». «%Persistent» предоставляетобширный набор функций своим наследникам, включающий: создание объекта,подкачку объекта из БД в память, удаление объекта и т.п. Каждый экземплярхранимого класса имеет 2 уникальных идентификатора — OID и OREF. OID (objectID) характеризует объект, записанный в БД, т.е. на физическом носителе, а OREF(object reference) характеризует объект, который был подкачен из БД и находитсяв памяти.

2.2 GemStone

Данная система быларазработана компанией Servio-Logic совместно с OGI. В исходном варианте системыразработчики GemStone опирались на язык Smalltalk. Хотя в первых выпускахсистемы ее основной язык назывался Opal, сразу было видно, что вдействительности этого всего лишь Smalltalk с поддержкой стабильного храненияобъектов, и вскоре название языка было заменено на GemStone Smalltalk.Впоследствии в GemStone была обеспечена поддержка языков C и C ++, но во всевремена базовым языком оставался Smalltalk, а все остальные интерфейсыстроились поверх базового. И серверная, и клиентская части системы могутработать под управлением всех основных ветвей ОС UNIX и всех развитых вариантовWindows. В настоящее время продукт поддерживается, развивается ираспространяется компанией GemStone Systems Inc[8].

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

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

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

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

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

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

В GemStone поддерживаетсядинамическая сборка мусора (garbage collection). Процесс-«мусорщик»автоматически освобождает память, занимаемую объектами, на которые отсутствуютссылки.

В среде GemStone можноиспользовать различные реализации Smaltalk, а также языки C и C++. Классы иобъекты можно создавать с использованием любого из этих языков, и объекты,созданные на одном языке можно использовать в приложениях, написанных на любомдругом языке. Реализация языка C представляет собой набор функций и наборкомпонентов, преобразующих объекты GemStone в указатели и литералы C и наоборот.Реализация C++ включает препроцессор в чистый С и библиотеку классов[7].

Подключения к реляционнымсистемам (например, Oracle или IBM DB2) производятся через шлюзы. Длясинхронизации состояния локальной (управляемой GemStone) и внешних копий данныхобеспечивается автоматическая модификация данных. В зависимости от среды итребований к уровню синхронизованности эти обновления выполняются немедленноили же в пакетном режиме.

GemStone можно такжеиспользовать для управления данными, соответствующими стандартам OLE и CORBA.Для работы с данными в реляционном стиле поддерживаются стандарты SQL и ODBC.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

2.3 ITASCA

Распределенная ООСУБДITASCA основана на результатах проекта Orion, выполнявшегося в MCC. Разработкасерии из трех прототипов завершилась выпуском системы, основанной наархитектуре «много клиентов — много серверов». Система была доведена до уровнякоммерческого продукта начинающей техасской компанией, которая в 1995г. былаприобретена компанией IBEX Corp[9].

В распределеннойархитектуре ITASCA частные и совместно используемые базы данных разнесены поузлам локальной UNIX -ориентированной сети. Каждой значение данных хранится водном узле, но централизованное управление отсутствует; все серверы автономны.На каждом сервере поддерживаются кэш страниц и кэш объектов, и каждый сервермножество клиентов с обеспечением мультидоступа на основе блокировок. Наклиентах поддерживается только кэш объектов.

Для управлениямультидоступом в ITASCA используется двухфазный протокол синхронизационных блокировокс сериализацией транзакций и обнаружением тупиков. Также поддерживаются долгиетранзакции на основе перемещения объекта из совместно используемой базы данныхв частную базу данных (check -out). Для обеспечения совместной работыдопускается участие нескольких пользователей в одной долгой транзакции.

Для всей распределеннойбазы данных поддерживается единая схема с использование подсхем для частныхфрагментов базы данных. Модель данных включает следующие аспекты:

·<span Times New Roman"">       

множественноенаследование;

·<span Times New Roman"">       

представлениеклассов в виде объектов;

·<span Times New Roman"">       

наличиесвойств и операций классов;

·<span Times New Roman"">       

поддержкаограничений целостности;

·<span Times New Roman"">       

возможностьперегрузки операций.

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

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

Поддерживается механизминдексирования, основанный на использовании техники B +-деревьев. Можносоздавать индексы для одного класса и одного свойства или для несколькихсвойств нескольких классов.

Имеется возможностьсоздания классов, поддерживающих оповещение. Имеются две формы оповещения –пассивная и активная. Пассивное оповещение состоит в том, что сохраняетсяинформация о модификации или удалении экземпляров класса. Приложение можетобратиться классу с запросом данных о таких событиях. Активное оповещениеприводит к вызову некоторой операции при выполнении операций модификации,удаления, создания версии, перемещения объекта из общей базы данных в частнуюбазу данных (check -out) или наоборот (check -in). По умолчанию выполнениеоперации оповещения приводит к отправке электронной почты привилегированномупользователю (администратору системы), но допускается замена поведения этойоперации.

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

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

При использовании C++стабильность достигается путем доступа к библиотеке классов, поддерживающихстабильность. В CLOS (Common Lisp Object System) обеспечивается метаклассстабильности. Стабильные объекты должны быть экземплярами классов, являющихсяэкземплярами этого метакласса. Кроме того, можно указать, что некоторыесвойства стабильного класса являются недолговечными.

В ITASCA поддерживаются C,C++, Smalltalk, CLOS. Акцент делается на возможности динамического изменениясхемы без остановки действия системы и без потребности в массовой повторнойкомпиляции и редактирования связей. Доступ к программам на каждом из языковпроизводится через функциональный API. В случае использования C++ автоматическисоздается файл заголовков, который сливается с исходными файлами программногокода при генерации приложения.

Собственный механизмзапросов ITASCA позволяет запрашивать данные в частной базе данных, общей базеданных или сразу в обеих базах данных. Для повышения производительностиприменяются оптимизация запросов и методы распараллеливания.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

2.4 Objectivity /DB

Компания Objectivity былаобразована в 1988г. В <st1:metricconverter ProductID=«1990 г» w:st=«on»>1990 г</st1:metricconverter>.была выпущена первая версия системы, которая представляла собой распределеннуюСУБД, основанную на использовании объектной технологии, высокопропускныхлокальных сетей и симметричных мультипроцессоров. Система работает на всехосновных UNIX -платформах и в среде Windows[10].

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

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

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

Допускаются как короткие,так и долгие транзакции. Управление короткими транзакциями основано насинхронизационных блокировках и распознавании тупиков. Долгие транзакции иколлективная работа с базами данных основаны на многоверсионности объектов имеханизме check -in / check -out.

В системе поддерживаютсяязыки C++ и Smalltalk, но способы использования языков сильно различаются. Этоотносится и к механизмам стабильности, и к средствам определения данных. Всреде C++ стабильными являются объекты всех классов, являющихся наследникамиспециального системного класса. В среде Smalltalk стабильными являются всеобъекты, достижимые от именованных корневых объектов-словарей. Соответственно,в Smalltalk для удаления объектов используется механизм сборки мусора, а в C++– явные операции.

Естественно, базы данных,управляемые Objectivity /DB, основаны на одной объектной модели. Эта модельдостаточно близка к модели ODMG и, в частности, включает возможностьопределения двунаправленных связей. Поддерживается возможность управлениясоставными объектами с распространением на подобъекты операции удаления. Однакоспособы определения данных в средах C++ и Smalltalk различаются.

В C++ включеноспециальное расширение языка, предназначенное для определения данных.Соответствующие конструкции обрабатываются специальным препроцессором, которыйгенерирует код C++, содержащий соответствующие обращения к СУБД. В средеSmalltalk схема базы данных определяется как набор классов Smalltalk. Другимисловами, при использовании Smalltalk приложения, работающие с базами данныхObjectivity /DB, организуются более прозрачным образом, чем в случае C++.

Имеется поддержка языкаSQL /89 и, частично, SQL /92. Реляционный доступ к базам данных, управляемыхObjectivity /DB, возможен через интерактивный SQL-ориентированный интерфейс,через имеющийся драйвер ODBC и через API.

Последняя версия Objectivity/DB идеально, по заявлениям фирмы, подходит для приложений, которые работают враспределенных средах, требуют гибкой модификации данных, организации сложныхсвязей, а также нуждаются в высокой производительности и работы с большимиобъемами данных. Более содержательно, Objectivity обеспечила интеграциюинструментария СУБД и разработки приложений с такими средствамипрограммирования, как SoftBench и C++. Благодаря интегрированному графическомуинтерфейсу разработки схемы БД и инструментам отладки и анализа упрощаетсязадание модели базы данных и, соответственно, разработки приложений дляObjectivity /DB.

2.5 ObjectStore

Компания Object Designбыла основана в <st1:metricconverter ProductID=«1988 г» w:st=«on»>1988 г</st1:metricconverter>.с экстренной целью разработать и вывести на рынок ООСУБД, которую сталиназывать ObjectStore. В конце 90-х у Object Design установились тесныепартнерские отношения с IBM, что позволило привлечь к ObjectStore тысячи разработчиковприложений. На основе технологии ObjectStore компанией был разработана одна изпервых коммерческих СУБД – Excelon, ориентированная на управление XML -данными.С начала 2003г. компания является подразделением компании Progress Software[11].

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

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

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

Надежность храненияданных обеспечивается за счет поддержания журнала произведенных изменений.Подсистема управления транзакциями отвечает за журнализацию всех произведенныхизменений на основе протокола WAL (Write Agead Log – упреждающей записи вжурнал). Дополнительно поддерживается архивный журнал, в котором авторизованныйпользователь может произвести архивное копирование базы данных.

Имеется средствоподдержки версий, которое обеспечивает возможность коллективной работы с базамиданных на основе механизмов check -in / check -out. На этом подходеосновывается поддержка долгих транзакций. Для каждой конфигурации объектовможно создать историю версий, независимую от типов объектов.

В ObjectStoreстабильност

еще рефераты
Еще работы по программированию, базе данных