stringtranslate.com

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

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

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

Обзор

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

Поскольку использование веб-технологий увеличивается с внедрением интрасетей и экстрасетей, компании имеют личный интерес в ООСУБД для отображения своих сложных данных. Использование СУБД, специально разработанной для хранения данных в виде объектов, дает преимущество тем компаниям, которые ориентированы на мультимедийную презентацию, или организациям, которые используют автоматизированное проектирование (САПР). [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 ( Корпорация Microelectronics and Computer Technology или MCC), Vodak (GMD-IPSI) и Zeitgeist (Texas Instruments). Проект ORION имел больше опубликованных статей, чем любые другие усилия. Вон Ким из 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 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 от Versant (db4objects), DTS/S1 от Obsidian Dynamics и Perst (McObject), доступные по двойной лицензии с открытым исходным кодом и коммерческой лицензии.

Хронология

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

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

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

Технические характеристики

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

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

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

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

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

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

Стандарты

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

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

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

В феврале 2006 года Группа управления объектами (OMG) объявила, что им предоставлено право разрабатывать новые спецификации на основе спецификации ODMG 3.0 и создания Рабочей группы по технологии объектных баз данных (ODBT WG). ODBT WG планировала создать набор стандартов, которые включали бы достижения в технологии объектных баз данных (например, репликацию), управление данными (например, пространственное индексирование) и форматы данных (например, XML), а также включить в эти стандарты новые функции, которые поддерживают домены, в которых внедряются объектные базы данных (например, системы реального времени). Работа ODBT WG была приостановлена ​​в марте 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 OODBMS, предлагающая эффективный внутренний тип данных JSON (JSONB) с полным набором функций и операций для всех основных реляционных и нереляционных манипуляций.

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

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

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

Ссылки

  1. Глоссарий интеграции данных. Архивировано 20 марта 2009 г. в Wayback Machine , Министерство транспорта США, август 2001 г.
  2. ^ ODBMS.ORG :: Объектная база данных (ODBMS) | Объектно-ориентированная база данных (OODBMS) | Портал бесплатных ресурсов. ODBMS (2013-08-31). Получено 2013-09-18. Архивировано 6 марта 2014 г. на Wayback Machine
  3. ^ О'Брайен, Дж. А., и Маракас, генеральный директор (2009). Информационные системы управления (9-е изд.). Нью-Йорк, штат Нью-Йорк: МакГроу-Хилл / Ирвин
  4. ^ Три примера ссылок 1985 года, в которых используется этот термин: T. Atwood, "Объектно-ориентированная СУБД для приложений поддержки проектирования", Proceedings of the IEEE COMPINT 85 , стр. 299-307, сентябрь 1985 г.; N. Derrett, W. Kent и P. Lyngbaek, "Некоторые аспекты операций в объектно-ориентированной базе данных", Database Engineering , т. 8, № 4, IEEE Computer Society, декабрь 1985 г.; D. Maier, A. Otis и A. Purdy, "Разработка объектно-ориентированных баз данных в Servio Logic", Database Engineering , т. 18, № 4, декабрь 1985 г.
  5. ^ Ким, Вон. Введение в объектно-ориентированные базы данных. MIT Press, 1990. ISBN  0-262-11124-1
  6. ^ Бансийон, Франсуа; Делобель, Клод; и Канеллакис, Париж. Создание объектно-ориентированной системы баз данных: история O 2 . Morgan Kaufmann Publishers, 1992. ISBN 1-55860-169-4
  7. ^ Ulfsby; et al. (Июль 1981). "TORNADO: СУБД для систем CAD/CAM". Computer-Aided Design . 13 (4): 193–197. doi :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».
  11. ^ "Realm выпускает объектную базу данных для Node.js". InfoQ . Архивировано из оригинала 2017-02-02.
  12. ^ DB-Engines. "Рейтинг объектных баз данных на DB-Engines". DB-Engines . Получено 21.05.2021 .
  13. ^ «Стэнфордский линейный ускоритель (SLAC)».
  14. ^ Херде, Патрик; Сиббалд, Питер Р. (1992). «Интеграция коллекций данных молекулярной биологии с использованием объектно-ориентированных баз данных и программирования». Приложение к трудам по объектно-ориентированным системам программирования, языкам и приложениям (Приложение) - OOPSLA '92 . С. 177–178. doi :10.1145/157709.157747. ISBN 0897916107. S2CID  45269462.
  15. ^ "BaseX XQuery Processor". basex.org . Архивировано из оригинала 2023-12-16.
  16. ^ "XQuery в eXist-db". exist-db.org . Архивировано из оригинала 2023-12-02.
  17. ^ "Saxon - Using XQuery". www.saxonica.com . Архивировано из оригинала 2020-09-23.
  18. ^ "PostgreSQL: Документация: 10: 9.15. Функции и операторы JSON". www.postgresql.org . Архивировано из оригинала 2016-05-18.
  19. ^ Раддинг, Алан (1995). «Так что же такое ODBMS?». Computerworld . 29 (45): 121–122, 129.
  20. ^ Берлесон, Дональд. (1994). ООСУБД завоевывают позиции в области ИС, но РСУБД все еще владеют дорогой. Software Magazine, 14(11), 63

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