stringtranslate.com

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

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

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

Обзор

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

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

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

История

Системы управления объектными базами данных выросли в результате исследований начала и середины 1970-х годов и получили внутреннюю поддержку управления базами данных для объектов с графовой структурой. Термин «объектно-ориентированная система баз данных» впервые появился примерно в 1985 году. [4] Известные исследовательские проекты включали Encore-Ob/Server ( Университет Брауна ), EXODUS ( Университет Висконсина-Мэдисона ), IRIS (Hewlett-Packard), ODE ( Bell) . Labs ), ORION ( Корпорация микроэлектроники и компьютерных технологий или MCC), Vodak (GMD-IPSI) и Zeitgeist (Texas Instruments). По проекту ОРИОН было опубликовано больше статей, чем по любому другому проекту. Вон Ким из MCC собрал лучшие из этих статей в книге, опубликованной The 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, которая изначально называлась Object Design, Incorporated ) . , ONTOS (Ontos, Inc., название изменено с Ontologic), O 2 [6] (O 2 Technology, слившаяся с несколькими компаниями, приобретенная Informix , которая, в свою очередь, была приобретена IBM ), POET (теперь FastObjects от Versant, которая приобрела Poet Software), объектная база данных Versant (Versant Corporation), VOSS (Logic Arts) и JADE (Jade Software Corporation). Некоторые из этих продуктов остаются на рынке, и к ним присоединились новые коммерческие продукты с открытым исходным кодом, такие как InterSystems Caché .

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

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

График

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

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

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

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

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

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

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

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

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

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

Стандарты

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

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

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

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

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

XQuery v1 и XPath v2 и более поздние версии являются мощными и доступны как в программном обеспечении с открытым исходным кодом, так и в свободном (FOSS), [15] [16] [17] , а также в коммерческих системах. Их легко освоить и использовать, они очень мощные и быстрые. Они не являются реляционными, и XQuery не основан на SQL (хотя один из разработчиков XQuery также был соавтором SQL). Но они также не объектно-ориентированы в смысле программирования: XQuery не использует инкапсуляцию с сокрытием, неявную диспетчеризацию, а также классы и методы. Базы данных XQuery обычно используют XML и JSON в качестве формата обмена, хотя используются и другие форматы.

С начала 2000-х годов JSON получил признание сообщества и популярность в приложениях, где разработчики контролируют формат данных. JSONiq , аналог запроса XQuery для JSON (совместно использующий основные выражения и операции XQuery), продемонстрировал функциональную эквивалентность форматов JSON и XML для информации, ориентированной на данные. В этом контексте основная стратегия разработчиков ООСУБД заключалась в модификации JSON в своих базах данных (используя его в качестве внутреннего типа данных).

В январе 2016 года с выпуском PostgreSQL 9.5 [18] была первая ООСУБД FOSS, предложившая эффективный внутренний тип данных JSON (JSONB) с полным набором функций и операций для всех основных реляционных и нереляционных манипуляций.

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

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

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

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

  1. Глоссарий по интеграции данных. Архивировано 20 марта 2009 г. в Wayback Machine , Министерство транспорта США, август 2001 г.
  2. ^ ODBMS.ORG :: Объектная база данных (ODBMS) | Объектно-ориентированная база данных (ООСУБД) | Бесплатный ресурсный портал. ОДСУБД (31 августа 2013 г.). Проверено 18 сентября 2013 г. Архивировано 6 марта 2014 г. в Wayback Machine .
  3. ^ О'Брайен, Дж. А., и Маракас, генеральный директор (2009). Информационные системы управления (9-е изд.). Нью-Йорк, штат Нью-Йорк: МакГроу-Хилл / Ирвин
  4. ^ Три примера ссылок 1985 года, в которых используется этот термин: Т. Этвуд, «Объектно-ориентированная СУБД для приложений поддержки проектирования», Proceedings of IEEE COMPINT 85 , стр. 299-307, сентябрь 1985 г.; Н. Дерретт, В. Кент и П. Люнгбек, «Некоторые аспекты операций в объектно-ориентированной базе данных», Database Engineering , vol. 8, нет. 4, Компьютерное общество IEEE, декабрь 1985 г.; Д. Майер, А. Отис и А. Перди, «Объектно-ориентированная разработка баз данных в Servio Logic», Database Engineering , vol. 18, № 4, декабрь 1985 г.
  5. ^ Ким, Вон. Введение в объектно-ориентированные базы данных. MIT Press, 1990. ISBN  0-262-11124-1.
  6. ^ Банкильон, Франсуа; Делобель, Клод; и Канеллакис, Париж. Построение объектно-ориентированной системы баз данных: история O 2 . Издательство Morgan Kaufmann, 1992. ISBN 1-55860-169-4
  7. ^ Ульфсби; и другие. (июль 1981 г.). «ТОРНАДО: СУБД для 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». ПРВеб. Архивировано из оригинала 10 августа 2014 года . Проверено 5 августа 2014 г.
  10. ^ «Реструктуризация нашего веб-сайта сообщества Versant» .
  11. ^ «Realm выпускает объектную базу данных для Node.js» . ИнфоQ . Архивировано из оригинала 2 февраля 2017 г.
  12. ^ DB-Двигатели. «Рейтинг объектной базы данных на DB-Engines». DB-двигатели . Проверено 21 мая 2021 г.
  13. ^ «Стэнфордский линейный ускоритель (SLAC)» .
  14. ^ Херде, Патрик; Сиббальд, Питер Р. (1992). «Интеграция коллекций данных молекулярной биологии с использованием объектно-ориентированных баз данных и программирования». Приложение к материалам «Объектно-ориентированные системы, языки и приложения программирования» (Дополнение) — OOPSLA '92 . стр. 177–178. дои : 10.1145/157709.157747. ISBN 0897916107. S2CID  45269462.
  15. ^ «Процессор BaseX XQuery» . basex.org . Архивировано из оригинала 16 декабря 2023 г.
  16. ^ «XQuery в eXist-db». существует-db.org . Архивировано из оригинала 2 декабря 2023 г.
  17. ^ «Саксонский — использование XQuery» . www.saxonica.com . Архивировано из оригинала 23 сентября 2020 г.
  18. ^ «PostgreSQL: Документация: 10: 9.15. Функции и операторы JSON». www.postgresql.org . Архивировано из оригинала 18 мая 2016 г.
  19. ^ Раддинг, Алан (1995). «Так что же такое, черт возьми, ODBMS?». Компьютерный мир . 29 (45): 121–122, 129.
  20. ^ Берлесон, Дональд. (1994). ООСУБД завоевывают позиции ИСУ, но СУРБД по-прежнему держат дорогу. Журнал «Программное обеспечение», 14(11), 63

Внешние ссылки