Объектно-ориентированные СУБД

Автор работы: Пользователь скрыл имя, 16 Февраля 2012 в 12:13, курсовая работа

Описание

Управление информацией всегда было основной сферой применения компьютеров и, надо думать, будет играть еще большую роль в будущем. Системы управления базами данных (СУБД, DBMS – Database Management System) на протяжении всего пути развития компьютерной техники совершенствовались, поддерживая все более сложные уровни абстрактных данных, заданных пользователем, и обеспечивая взаимодействие компонентов, распределенных в глобальных сетях и постепенно интегрирующихся с телекоммуникационными системами.

Содержание

Введение. 3
1. Реляционные базы данных. 6
2. Объектно-реляционные методы. 7
3. Объектно-ориентированные базы данных. 11
3.1 Why ODBMS? 11
3.2 Спорные моменты технологии. 13
3.3 Стандарты объектных баз данных. 17
3.4 Поставщики ООСУБД 23
Заключение. 26
Глоссарий 27
Список использованных источников………

Работа состоит из  1 файл

курсовая.doc

— 484.50 Кб (Скачать документ)

     Рисунок 3 показывает работоспособную схему для построения приложения на стандартных языках программирования, в процессе которой автоматически генерируются метаданные, заголовочные файлы и методы. Приведем также пример на языке ODL из “белой книги” компании Objectivity, который иллюстрирует связи типа “один-ко-многим”, объявленные между преподавателем и студентами:

     interface professor : employee { 
 attribute string <32> name; 
 unique attribute lang unsigned ssn; 
 relationship dept works_in inverse faculty;  relationship set <section> teaches inverse taught_by;  . . . operations . . .  
 { 
interface section : class { 
 . . . taught_by: professor . . . ; 
 . . . 
 }

     OQL. За основу языка OQL была взята команда SELECT языка SQL2 (или SQL-92) и добавлены возможность направлять запрос к объекту или коллекции объектов и возможность вызывать методы в рамках одного запроса. Данные, полученные в результате запроса, могут быть скалярными (включая кортежи), объектами или коллекциями объектов. Некоторые примеры на языке 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 позволяет программистам легко использовать объекты в то время как ООСУБД прозрачным образом управляет ими. При определении стандарта члены ODMG руководствовались следующими принципами:

  • Использование стандартных компиляторов обеспечивается тем, что все расширения реализуются средствами языка – библиотеками классов и перегрузкой операторов.
  • Определение временных экземпляров (Transient Instance) и экземпляров, создаваемых на длительный срок (Transient Instance) при помощи оператора new(). При перегрузке оператора new() оба типа экземпляров могут создаваться от одного класса, который может существовать продолжительное время.
  • Обеспечение устойчивости через стандартный механизм наследования; пользователь может определять экземпляры временные и рассчитанные на продолжительное использование средствами оригинальной версии языка.
  • Использование специального механизма указателей (Smart Pointers). Связи между объектами объявляются при помощи шаблона Ref<> и перегрузки оператора ->; это позволяет использовать специальные указатели (контролируемые системой; см., например, идентичность в словарике (и упоминание косвенной адресации как обычные.

     class Professor: Employee { 
 long ssn; 
 char* name; 
 int age; 
 Ref<Department>dept inverse faculty; 
 Set<Section> teaches inverse taught_by; 
 . . . 
 void grant_tenure() 
 void assign_course(section) 
 } 
. . . 
Ref<Professor>prof; 
. . . 
prof = new(db, Professor); 
prof->name="Smith"; 
prof->age+prof->age+1;

     На  этом, пожалуй, чувство благодарности  компании Objectivity в значительной мере ослабеет, так как примеров на языке Smalltalk найти не удалось.

     Smalltalk. ODMG-93 поддерживает ту же объектную модель для Smalltalk, что и для С++, IDL и запросы на языке OQL; это позволяет разделять один и тот же объект пользователям С++ и Smalltalk. Спецификация поддерживает типы (возможны бестиповые поля) и синтаксис оригинальной версии Smalltalk.

     

     Рисунок 4 ООСУБД, построенная на основе стандартов 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 (Рисунок 4). Объекты OMG в свою очередь доступны через интерфейс ODMG.

     Язык  SQL. Из-за распространенности SQL был заложен в основу OQL, который был дополнен средствами поддержки объектной модели. В настоящее время разрабатывается версия языка SQL, известная под названием SQL3, в которой будут реализована поддержка объектов и SQL будет приведен в соответствие современным понятиям о полноценном языке программирования. В отличие от ODMG, в SQL не планируется привязка к ODL, а также C++ и Smalltalk, которые важны для пользователей ООСУБД. Несмотря на это, возможности SQL3 в организации запросов совпадают с возможностями OQL. Когда SQL3 будет готов (разработки ведутся сейчас на ранней стадии обсуждения основных вопросов относительно объектной модели), ODMG, вероятно, дополнит его, как это уже сделано для С++ и Smalltalk.

     3.4.Поставщики  ООСУБД.

     

     Рисунок 5 Современный рынок СУБД.

     Список  современных коммерческих объектно-ориентированных  систем включает в себя следующие  продукты:

  • Objectivity/DB компании Objectivity, Inc. (последняя версия – 2.1) идеально, по заявлениям фирмы, подходит для приложений, которые работают в распределенных средах, требуют гибкой модификации данных, организации сложных связей, а также нуждаются в высокой производительности и работы с большими объемами данных. Вероятно, все компании, производящие ООСУБД, ставят своей целью сложить такое впечатление относительно собственных разработок у читателей распространяемых ими документов (хотя некоторые и делают это в более деликатной форме). Более содержательно, Objectivity обеспечила интеграцию инструментария СУБД и разработки приложений с такими средствами программирования, как SoftBench и C++ SoftBench. Благодаря интегрированному графическому интерфейсу разработки схемы БД и инструментам отладки и анализа упрощается задание модели базы данных и, соответственно, разработки приложений для Objectivity/DB.
  • СУБД GemStone корпорации GemStone Systems, Inc. известна в последней редакции под номером 5.0. GemStone традиционно сосредоточена на рынке Smalltalk (хотя не так давно и была выпущена версия для С++) и имеет заказчиков, способных продемонстрировать на производстве крупномасштабные, целевые применения ее продуктов. К сожалению, списком этих заказчиков объем информации, которую компания хочет донести до интересующихся (WWW), ограничивается.
  • ONTOS Corp., разработчик СУБД ONTOS (кто бы подумал), по традиции занимается развитием сервера объектно-ориентированной СУБД, но в последнее время придает особое значение своим Службам Интеграции Объектов (Object Integration Services).
  • Построенная на основе реляционной СУБД AllBase, система OpenODB фирмы Hewlett-Packard также, как и Objectivity/DB, интегрирована с системой SoftBench и существует в версии для С++. Благодаря глубокой интеграции, SoftBench распознает файлы приложений OpenODB для установки оптимальной конфигурации, может создавать базы данных формата OpenODB из своей интегрированной среды, обеспечивает оперативную помощь из среды разработки и т. д.
  • Object Design Inc. со своей СУБД ObjectStore занимает лидирующее положение в отрасли, осуществляя около 33% поставок на рынке объектно-ориентированных СУБД и последняя модернизация системы (клиент языка SQL и шлюз к реляционной СУБД) должны только укрепить положение фирмы. Object Design поддерживает версии своей СУБД как для С++, так и для Smalltalk.
  • Versant Object Technology, Inc. (СУБД Versant) проводит двойную стратегию, предлагая средство обеспечения объектно-ориентированной СУБД высокого класса для телекоммуникаций и инструментальные средства Smalltalk для более общих случаев разработки приложений. Используя разработанный фирмой интерфейс VERSANT Smalltalk Language Interface, СУБД совместима как с версией языка Smalltalk компании  ParcPlace-Digitalk, так и с Visual Age for Smalltalk корпорации IBM.
  • СУБД UniSQL компании UniSQL Inc. – хорошо устоявшаяся система, позволяющая пользователям осуществлять запросы и модификацию базы при помощи разработанного компанией языка SQL/X (подобные языки, носящие условное название Object SQL, разработаны и некоторыми другими поставщиками). Вся БД UniSQL может состоять одновременно из связей в локальных РСУБД и классов в локальных объектных базах UniSQL. Благодаря механизму каталогов, СУБД передает запросы и модификации данных в локальные базы данных и, обработав (перевод в другой формат, группирование, сортировка и т. д.) полученный от них результат, возвращает его пользователю.

     Кроме того ООСУБД предлагают: Object Database, Inc. (Object Database), Itasca Systems  Inc. (Itasca) O2 Technology (O2) и некоторые другие компании.

     Заключение

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

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

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

     В настоящий момент ощущается настоятельная  потребность в интеграции ООСУБД с существующими инструментальными  средствами. Разработчики уже сегодня  могли бы продуктивно использовать версии Visual Basic, Power Builder, Forte или Delphi, поддерживающие ООСУБД. Большинство продуктов для создания приложений в той или иной мере являются объектно-ориентированными, но работают по-прежнему с реляционными БД. Специалисты считают, что партнерство производителей ООСУБД и средств программирования способно привести к появлению столь необходимого инструментария.

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

     Глоссарий

     № п/п      Понятие      Определение
                1      4GL (4th Generation Language)      Язык  программирования четвертого поколения ¨Язык программирования, при создании которого используются языки программирования третьего уровня (3GL) – процедурные языки типа C и Pascal. 4GL проще в использовании, чем 3GL, им обычно отдают предпочтение при составлении программ обслуживания баз данных и применяют в сочетании с соответствующими средствами разработки.      
     2      Blob (Binary Large Object)      Двоичный  большой объект, блоб. ¨Длинный линейный блок данных (например, цифровое изображение или видеоклип), который наиболее подходит для хранения в ООСУБД.
     3      CORBA (Common Object Request Broker Architecture)      Архитектура брокера объектных запросов ¨Стандарт взаимодействия распределенных компонентов, разработанный OMG.
     4      SQL
  • Язык структурированных запросов ¨Интерпретируемый язык, описывающий операции (создание, обработка и извлечение) над реляционными базами данных.
     
     5      Архитектура клиент-сервер
  • Архитектура, обеспечивающая распределение нагрузки между клиентом и сервером. Обычно эти функции выполняют два разных компьютера, объединенных при помощи сети.
     
     6      Инкапсуляция
  • ¨Объединение данных и кода в один модуль – объект, доступ к которому может осуществляться только через строго определенный интерфейс.
     
     7      Метаданные      Данные, являющиеся описанием других данных (например, схема базы данных по отношению к ее содержимому).
     8      Наследование      Механизм, благодаря которому определения  класса распространяется на классы, лежащие  ниже его в иерархии обобщения  классов. Это позволяет многократно  изменять определения, внося по мере необходимости изменения, связанные со специализацией.
     9      Объектно-реляционные  методы      Подходы, позволяющие воспользоваться преимуществами объектных баз данных, не отказываясь  полностью от реляционных БД.
     10      Полиморфизм      Способность объектов различных классов и самих классов удовлетворять одним и тем же протоколам или отдельным сообщениям, выполняя при этом различные действия, предписываемые их собственными методами.
     11      Транзакция
  • обработка запроса ¨Выполнение элементарной целостной операции над данными, в течение которой база данных находится в неустойчивом состоянии.
     

     Список  использованных источников

           1      POET Technical Reference – White Paper, Poet Software, 1996
         2
         Дейт К.Дж. Введение в системы  баз данных /К.Дж. Дейт - Москва: ДМК, 2000.
         3
         Хомоненко А.Д. Базы данных /А.Д. Хомоненко, В.М. Цыганков - Санкт-Петербург: БХВ-Петербург, 2004.      
         4
        Вескес Л.Дж. Access и SQL Server. Руководство разработчика /Дж.Л. Вескес - Москва: Лори, 1997.      
         5
       Конноли Т. Базы данных. Проектирование, реализация и сопровождение /Т. Конноли, К. Бегг. - Москва: Вильяме, 2003.      
         6
     Липаев  В.В. Документирование и управление конфигурацией программных средств (методы и стандарты). М.: СИНТЕГ, 1998
         7
             Бугорский В.Н., Фомин В.И. Информационные системы в экономике: основы информационного бизнеса. Учебное пособие СПб.: СПБГИЭА, 1999.
         8
            Калянов Г.Н. Теория и практика  реорганизации бизнес-процессов.  М.: СИНТЕГ, 2000.
         9
     Каpатыгин С. Базы данных: простейшие средства обработки информации. Системы управления базами данных. М.: ABF, 1995.
         10
           Липаев В.В Управление разработкой  программных средств. Методы, стандарты,  технология. – М.: Финансы и статистика, 1993      
         11
     Вендров А.М. Проектирование программного обеспечения  экономических информационных систем. - М.: Финансы и статистика, 2000.
         12
     Ветлугина И.М. Теория экономических информационных систем. Учебное пособие. – Владивосток: Изд-во Дальневост. ун-та, 2002
         13
     Е.П. Бочаров, А.И. Колдина. Интегрированные  корпоративные информационные системы: Принципы построения: Учебное пособие. – М.: Финансы и статистика, 2005.
         14
     Уилсон  С., Мэйплс Б., Лэндгрейв Т. Принципы проектирования и разработки программного обеспечения. – М.: Издательско-торговый дом «Русская Редакция», 2000
         15
    Kendall K, Kendall J. Systems Analysis and Design. – New Jersey: Prentice – Hall, Inc., 1988.
         16
     Гаспариан М.С. Информационные системы: Учебное  пособие. – М.: МЭСИ, 2001
         17
      Ломтадзе В.В., Шишкина Л.П.  - Информатика. Учебное пособие  /– Иркутск: ИрГТУ, 1999
         18
     Туманов В.Е., Гайфуллин Б.Н., Сгибнев В.Я. Введение в SQL для баз данных в архитектуре  клиент/сервер
         19
     В.Н.Четвериков, Г.И.Ревунков, Э.Н.Самохвалов. Базы и  банки данных. М.: Высшая школа, 1987
         20
     В.В.Корнеев, А.Ф.Гареев, С.В.Васютин, В.В.Райх. Базы данных. Интеллектуальная обработка информации. М.: "Нолидж", 2003

Информация о работе Объектно-ориентированные СУБД