База данных объектов - Object database

Пример объектно-ориентированной модели[1]

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

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

Обзор

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

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

Некоторые объектно-ориентированные базы данных предназначены для работы с объектно-ориентированные языки программирования Такие как Delphi, Рубин, Python, JavaScript, Perl, Ява, C #, Visual Basic .NET, C ++, Цель-C и Болтовня; другие, такие как ДЖЕЙД имеют собственные языки программирования. OODBMS используют ту же модель, что и объектно-ориентированные языки программирования.

История

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

Включены ранние коммерческие продукты Драгоценный камень (Servio Logic, название изменено на GemStone Systems), Gbase (Graphael) и Vbase (Ontologic). Дополнительные коммерческие продукты вышли на рынок в конце 1980-х - середине 1990-х годов. К ним относятся ITASCA (Itasca Systems), Jasmine (Fujitsu, продается Computer Associates), Matisse (Matisse Software), Объективность / БД (Объективность, Inc.), ObjectStore (Программное обеспечение Progress, приобретен у eXcelon, который изначально Object Design, Incorporated ), ONTOS (Ontos, Inc., название изменено с Ontologic), O2[6] (O2 Technology, слилась с несколькими компаниями, приобретена Informix, который, в свою очередь, был приобретен IBM ), ПОЭТ (ныне FastObjects от Versant, которая приобрела Poet Software), Versant Object Database (Versant Corporation), VOSS (Logic Arts) и ДЖЕЙД (Корпорация Jade Software). Некоторые из этих продуктов остаются на рынке, и к ним добавились новые коммерческие продукты и продукты с открытым исходным кодом, такие как InterSystems Caché.

В системы управления объектными базами данных добавлена ​​концепция упорство к объектным языкам программирования. Первые коммерческие продукты были интегрированы с различными языками: GemStone (Болтовня ), Gbase (LISP ), Vbase (КС ) и VOSS (система хранения виртуальных объектов для Болтовня ). На протяжении большей части 1990-х годов C ++ доминировала на рынке управления базами данных коммерческих объектов. Поставщики добавлены Ява в конце 1990-х и в последнее время C #.

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

График

Внедрение объектных баз данных

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

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

Технические особенности

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

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

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

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

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

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

Стандарты

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

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

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

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

В январе 2007 г. Консорциум World Wide Web придал статус окончательной рекомендации 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[12] была первой FOSS OODBMS, предлагающей эффективный внутренний тип данных JSON (JSONB) с полным набором функций и операций для всех основных реляционных и нереляционных манипуляций.

Сравнение с СУБД

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

Смотрите также

Рекомендации

  1. ^ Глоссарий по интеграции данных В архиве 20 марта 2009 г. Wayback Machine, Министерство транспорта США, август 2001 г.
  2. ^ ODBMS.ORG :: База данных объектов (ODBMS) | Объектно-ориентированная база данных (OODBMS) | Портал бесплатных ресурсов. ODBMS (31 августа 2013 г.). Проверено 18 сентября 2013. В архиве 6 марта 2014 г. Wayback Machine
  3. ^ О’Брайен, Дж. А., и Маракас, Г. М. (2009). Информационные системы управления (9-е изд.). Нью-Йорк, Нью-Йорк: Макгроу-Хилл / Ирвин
  4. ^ Три примера ссылок из 1985 года, в которых используется термин: Т. Этвуд, «Объектно-ориентированная СУБД для приложений поддержки проектирования», Труды IEEE COMPINT 85, pp. 299-307, сентябрь 1985; Н. Дерретт, В. Кент и П. Люнгбек, «Некоторые аспекты операций в объектно-ориентированной базе данных», Разработка баз данных, т. 8, вып. 4, IEEE Computer Society, декабрь 1985 г .; Д. Майер, А. Отис и А. Парди, "Объектно-ориентированная разработка баз данных в Servio Logic", Разработка баз данных, т. 18, No 4, декабрь 1985 г.
  5. ^ Ким, Вон. Введение в объектно-ориентированные базы данных. MIT Press, 1990. ISBN  0-262-11124-1
  6. ^ Бансильон, Франсуа; Делобель, Клод; и Канеллакис, Париж. Создание объектно-ориентированной системы баз данных: история O2. Издательство Морган Кауфманн, 1992. ISBN  1-55860-169-4.
  7. ^ Ульфсби; и другие. (Июль 1981 г.). «TORNADO: СУБД для CAD / CAM систем». Системы автоматизированного проектирования. 13 (4): 193–197. Дои:10.1016/0010-4485(81)90140-8.
  8. ^ «SpringSource приобретает технологию управления данными Gemstone Systems». WMware. 6 мая 2010 г. Архивировано с оригинал 8 августа 2014 г.. Получено 5 августа, 2014.
  9. ^ GemTalk Systems (2 мая 2013 г.). «GemTalk Systems приобретает продукты GemStone / S у VMware». PRWeb. В архиве с оригинала 10 августа 2014 г.. Получено 5 августа, 2014.
  10. ^ «реструктуризация нашего веб-сайта Versant Community».
  11. ^ "Realm Releases Object Database для Node.js". InfoQ. В архиве из оригинала от 02.02.2017.
  12. ^ «PostgreSQL: Документация: 10: 9.15. Функции и операторы JSON». www.postgresql.org. В архиве из оригинала 18.05.2016.
  13. ^ Раддинг, Алан (1995). «Так что, черт возьми, такое ODBMS?». Computerworld. 29 (45): 121–122, 129.
  14. ^ Бурлесон, Дональд. (1994). ООСУБД все больше и больше используют СУБД, но СУБД по-прежнему владеют дорогой. Журнал Software, 14 (11), 63

внешняя ссылка