Объектная база данных

Материал из wikixw
Перейти к навигации Перейти к поиску

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

Объектные базы данных рассматриваются с начала 1980-х годов.

Обзор[править]

Объектно-ориентированные системы управления базами данных (OODBMSs), также называемые ODBMS (Object Database Management System), объединяют возможности баз данных с объектно-ориентированным программированием языковые возможности. Oodbms позволяют объектно-ориентированным программистам разрабатывать продукт, хранить их как объекты, а также копировать или изменять существующие объекты для создания новых объектов в рамках OODBMS. Поскольку база данных интегрирована с языком программирования, программист может поддерживать согласованность в рамках одной среды, в которой и OODBMS, и язык программирования будут использовать одну и ту же модель представления. Проекты реляционных СУБД, напротив, поддерживают более четкое разделение между моделью базы данных и приложением.

По мере того, как использование веб-технологий увеличивается с внедрением интранетов и экстрасетей, компании имеют корыстную заинтересованность в OODBMSs для отображения своих сложных данных. Использование СУБД, специально разработанной для хранения данных в виде объектов, дает преимущество компаниям, ориентированным на мультимедийную презентацию, или организациям, использующим автоматизированное проектирование (САПР).[3]

Некоторые объектно-ориентированные базы данных хорошо работают с объектно-ориентированными языками программирования , такими как Delphi , Ruby , Python , JavaScript , Perl , Java , C#, Visual Basic .NET , C++, Objective-C и Smalltalk ; другие, такие как JADE, имеют свои собственные языки программирования. OODBMSs используют ту же модель, что и объектно-ориентированные языки программирования.

История[править]

Системы управления базами данных объектов выросли из исследований в начале-середине 1970-х годов в наличие внутренней поддержки управления базами данных для графически структурированных объектов. Термин "объектно-ориентированная система баз данных" впервые появился около 1985 года.[4] известные исследовательские проекты включали Encore-Ob/Server ( Университет Брауна ), EXODUS ( Университет Висконсина–Мэдисон ), IRIS (Hewlett-Packard), ODE (Bell Labs), ORION (Microelectronics and Computer Technology Corporation или MCC), Vodak (GMD-IPSI) и Zeitgeist (Texas Instruments). Проект "Орион" опубликовал больше работ, чем все остальные. Вон Ким из MCC собрал лучшие из этих работ в книге, опубликованной MIT Press.[5]

Ранние коммерческие продукты включали Gemstone (Servio Logic, название изменено на GemStone Systems), Gbase (Graphael) и Vbase (Ontologic). Дополнительные коммерческие продукты поступили на рынок в конце 1980-х-середине 1990-х годов. К ним относятся ITASCA (Itasca Systems), Jasmine (Fujitsu, продается Computer Associates), Matisse (Matisse Software), Objectivity/DB (Objectivity, Inc.), ObjectStore (Progress Software, приобретенная у компании eXcelon, которая изначально занималась проектированием объектов), ONTOS (Ontos, Inc., имя изменено с онтологического), O 2 [6] (O 2 Технология, объединенная с несколькими компаниями, приобретенными Informix, которая в свою очередь была приобретена IBM ), POET (теперь FastObjects от Versant, которая приобрела программное обеспечение Poet), Versant Object Database ( Versant Corporation), VOSS (Logic Arts) и JADE (Jade Software Corporation). Некоторые из этих продуктов остаются на рынке и были присоединены к новым открытым исходным кодом и коммерческих продуктов, таких как InterSystems Caché .

Системы управления объектными базами данных добавили понятие персистентности в объектные языки программирования. Первые коммерческие продукты были интегрированы с различными языками: GemStone ( Smalltalk ), Gbase ( LISP ), Vbase ( COP ) и VOSS (Virtual Object Storage System for Smalltalk ). На протяжении большей части 1990-х годов C++ доминировал на рынке управления базами данных коммерческих объектов. Поставщики добавили Java в конце 1990-х и совсем недавно, C# .

Начиная с 2004 года, объект базы данных рассматривается второй период роста, когда открытый исходный объект базы данных выяснилось, что широко доступным и простым в использовании, потому что они полностью написан на ООП языках, например, Smalltalk, Java, или C#, такие как Версант это в db4o (db4objects), ДЦ/S1 из обсидиана динамика и перст (McObject), доступен под двойной открытым исходным кодом и коммерческих лицензий.

Timeline[править]

  • 1966
    • СВИНКА
  • 1979
    • InterSystems M
  • 1980
    • TORNADO-объектная база данных для CAD/CAM [7]
  • 1982
    • Gemstone начал (как логика Servio) строить теоретико-множественную модель машины базы данных.
  • 1985-впервые введена база данных объектов Term
  • 1986
    • Servio Logic (Gemstone Systems) Корабли Gemstone 1.0
  • 1988
    • Проектирование объектов, создание инкорпорации, разработка ObjectStore начата
  • Versant Corporation начала (как Object Sciences Corp)
    • Objectivity, Inc. основанный
  • Начало 1990-х годов
    • Servio Logic меняет имя на Gemstone Systems
    • Gemstone (Smalltalk ) - (C++) - (Java)
  • GBase (LISP)
    • VBase (O2-ONTOS-INFORMIX)
  • Объективность / DB
  • Середина 1990-х годов
    • InterSystems Caché
  • База Данных Объектов Versant
    • ОДАБА
  • ZODB
    • Поэт
  • ЯШМА
    • Матисс
  • Illustra Informix
  • 2000-е
    • лямбда-БД: объектно-ориентированная СУБД на основе ODMG от Leonidas Fegaras, Chandrasekhar Srinivasan, Arvind Rajendran, David Maier
    • проект db4o начал Карл Розенбергер
    • ObjectDB
  • 2001 IBM приобретает Informix
  • 2003 odbpp публичный релиз
  • 2004 коммерческий запуск db4o как db4objects, Inc.
  • 2008 db4o приобретен Versant Corporation
  • 2010 VMware приобретает GemStone [8]
  • 2012 первые производственные версии Wakanda с открытым исходным кодом и коммерческими лицензиями
  • 2013 GemTalk Systems приобретает продукты Gemstone от VMware [9]
  • 2014 Realm

Принятие объектных баз[править]

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

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

Технические характеристики[править]

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

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

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

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

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

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

Стандарты[править]

Группа Управления объектными данными представляла собой консорциум поставщиков объектных баз данных и объектно-реляционных карт, членов академического сообщества и заинтересованных сторон. Его цель состояла в создании набора спецификаций, которые позволяли бы портативным приложениям хранить объекты в системах управления базами данных. Он опубликовал несколько версий своей спецификации. Последняя версия была ODMG 3.0. К 2001 году большинство крупных поставщиков объектных баз данных и объектно-реляционных отображений заявили о соответствии привязке языка Java ODMG. Соответствие другим компонентам спецификации было смешанным. В 2001 году привязка языка ODMG Java была представлена процессу сообщества Java в качестве основы для спецификации объектов данных Java. Затем компании-члены ODMG решили сосредоточить свои усилия на спецификации объектов данных Java. В результате в 2001 году ОДМГ распалась.

Многие идеи объектных баз данных были также включены в SQL: 1999 и были реализованы в различной степени в объектно-реляционных продуктах баз данных.

В 2005 году Кук, Рай и Розенбергер предложили отказаться от всех усилий по стандартизации, чтобы ввести дополнительные объектно-ориентированные API запросов, а вместо этого использовать сам язык программирования OO, т. е. Java и .NET, для выражения запросов. В результате появились собственные запросы. В сентябре 2005 года корпорация Майкрософт объявила о внедрении LINQ и Language Integrated Query (LINQ), чтобы обеспечить близкие возможности запросов к базам данных, интегрированным в языки программирования C# и VB.NET 9.

В феврале 2006 года группа по управлению объектами (ОМГ) объявила, что ей предоставлено право на разработку новых спецификаций на основе спецификации ODMG 3.0 и формирование рабочей группы по технологиям баз данных объектов (РГ ОДБТ). РГ ОДБТ планировала создать набор стандартов, которые включали бы достижения в технологии объектных баз данных (например, репликация), управление данными (например, пространственное индексирование) и форматы данных (например, XML), и включить в эти стандарты новые функции, которые поддерживают домены, в которых принимаются объектные базы данных (например, системы реального времени). Работа РГ ОДБТ была приостановлена в марте 2009 года, когда после экономических потрясений в конце 2008 года поставщики ОДБ, участвующие в этих усилиях, решили сосредоточить свои ресурсы на других направлениях.

В январе 2007 года Консорциум Всемирной паутины присвоил окончательный статус рекомендации языку XQuery. XQuery использует XML в качестве модели данных. Некоторые идеи, разработанные первоначально для объектных баз данных, нашли свой путь в XQuery,но XQuery не является внутренне объектно-ориентированным. Из-за популярности XML движки XQuery конкурируют с объектными базами данных как средство хранения данных, которые слишком сложны или переменны, чтобы удобно хранить их в реляционной базе данных. XQuery также позволяет писать модули для обеспечения возможностей инкапсуляции, которые были предоставлены объектно-ориентированными системами.

XQuery v1 и XPath v2 чрезвычайно сложны (ни одно программное обеспечение FOSS не реализует эти стандарты более чем через 10 лет после их публикации) по сравнению с XPath v1 и XSLT v1 , и XML не соответствовал всем требованиям сообщества как открытый формат . С начала 2000-х годов JSON завоевал признание сообщества и популярность в приложениях, превзойдя XML в 2010-х годах. JSONiq, запрос-аналог XQuery для JSON (совместное использование основных выражений и операций XQuery), продемонстрировал функциональную эквивалентность форматов JSON и XML. В этом контексте основной стратегией сопровождающих OODBMS была модернизация JSON в их базы данных (с использованием его в качестве внутреннего типа данных).

В январе 2016, с выпуском PostgreSQL 9.5 был первым FOSS OODBMS, чтобы предложить эффективный JSON внутренний тип данных (JSONB) с полным набором функций и операций, для всех основных реляционных и нереляционных манипуляций.

Сравнение с RDBMSs[править]

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

См. также[править]

Пруф[править]

.odbms.org/