База данных объектов
Объектная база данных или объектно-ориентированная база данных — это система управления базой данных , в которой информация представлена в форме объектов , используемых в объектно-ориентированном программировании . Объектные базы данных отличаются от реляционных баз данных , которые ориентированы на таблицы. Третий тип — объектно-реляционные базы данных — представляет собой гибрид обоих подходов.Объектные базы данных рассматриваются с начала 1980-х годов. [2]
Обзор [ править ]
Объектно-ориентированные системы управления базами данных (OODBMS), также называемые 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 Object Database ( Versant Corporation), VOSS (Logic Arts) и JADE (Корпорация Джейд Программное обеспечение). Некоторые из этих продуктов остаются на рынке, и к ним присоединились новые коммерческие продукты с открытым исходным кодом, такие как 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), доступный по двойной лицензии с открытым исходным кодом и коммерческой лицензии.
Хронология [ править ]
- 1966
- 1979
- 1980
- 1982
- Gemstone начал (как Servio Logic) создавать машину базы данных теоретико-множественной модели.
- 1985 – Впервые представлена база данных объектов терминов.
- 1986
- Servio Logic (Gemstone Systems) выпускает Gemstone 1.0
- 1988
- Основание Object Design, Incorporated разработки ObjectStore. , начало
- Начало деятельности Versant Corporation (как Object Sciences Corp)
- Основание компании Objectivity, Inc.
- Начало 1990-х
- Середина 1990-х годов
- InterSystems Скрытый
- База данных объектов Versant
- ДЕЛО
- ЗОДБ
- Поэт
- ВЫХОД
- Матисс
- Иллюстрация Информикс
- 2000-е
- Lambda-DB: объектно-ориентированная СУБД на основе ODMG, авторы: Леонидас Фегарас, Чандрасекхар Сринивасан, Арвинд Раджендран, Дэвид Майер
- Проект db4o , начатый Карлом Розенбергером
- ОбъектБД
- 2001 IBM приобретает Informix.
- 2003 г. odbpp Публичный выпуск
- 2004 г. Коммерческий запуск db4o под названием db4objects, Inc.
- 2008 г. db4o приобретена Versant Corporation.
- 2010 VMware приобретает GemStone. [8]
- В 2011 году разработка db4o остановлена.
- 2012 г. Первые серийные версии Wakanda с открытым исходным кодом и коммерческой лицензией.
- 2012 Actian приобретает Versant Corporation.
- 2013 GemTalk Systems приобретает продукты Gemstone у VMware. [9]
- Коммерческое предложение db4o в 2014 г. официально прекращено компанией Actian (которая приобрела Versant). [10]
- 2014 Царство [11]
- 2017 ОбъектБокс [12]
объектных Внедрение данных баз
Объектные базы данных, основанные на персистентном программировании, заняли нишу в таких областях применения, какинженерные и пространственные базы данных , телекоммуникации и научные области, такие как физика высоких энергий. [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 года Консорциум World Wide Web статус окончательной рекомендации присвоил языку 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]
См. также [ править ]
- Сравнение объектных систем управления базами данных
- Компонентно-ориентированная база данных
- база данных ЭДА
- Платформа корпоративных объектов
- NoSQL
- Группа управления объектными данными
- Объектно-реляционная база данных
- Настойчивость (информатика)
- Реляционная модель
- Система управления реляционными базами данных (RDbMS)
Ссылки [ править ]
- ↑ Глоссарий по интеграции данных . Архивировано 20 марта 2009 г. в Wayback Machine , Министерство транспорта США, август 2001 г.
- ^ ODBMS.ORG :: Объектная база данных (ODBMS) | Объектно-ориентированная база данных (ООСУБД) | Портал бесплатных ресурсов . ОДСУБД (31 августа 2013 г.). Проверено 18 сентября 2013 г. Архивировано 6 марта 2014 г. в Wayback Machine.
- ^ О'Брайен, Дж. А., и Маракас, генеральный менеджер (2009). Информационные системы управления (9-е изд.). Нью-Йорк, штат Нью-Йорк: МакГроу-Хилл / Ирвин
- ^ Три примера ссылок 1985 года, в которых используется этот термин: Т. Этвуд, «Объектно-ориентированная СУБД для приложений поддержки проектирования», Proceedings of IEEE COMPINT 85 , стр. 299-307, сентябрь 1985 г.; Н. Дерретт, В. Кент и П. Люнгбек, «Некоторые аспекты операций в объектно-ориентированной базе данных», Database Engineering , vol. 8, нет. 4, Компьютерное общество IEEE, декабрь 1985 г.; Д. Майер, А. Отис и А. Парди, «Объектно-ориентированная разработка баз данных в Servio Logic», Database Engineering , vol. 18, № 4, декабрь 1985 г.
- ^ Ким, Вон. Введение в объектно-ориентированные базы данных. Массачусетский технологический институт Пресс, 1990. ISBN 0-262-11124-1
- ^ Банкильон, Франсуа; Делобель, Клод; и Канеллакис, Париж. Построение объектно-ориентированной системы баз данных: история O 2 . Издательство Морган Кауфманн, 1992. ISBN 1-55860-169-4 .
- ^ Ульфсби; и др. (июль 1981 г.). «ТОРНАДО: СУБД для CAD/CAM-систем». Компьютерное проектирование . 13 (4): 193–197. дои : 10.1016/0010-4485(81)90140-8 .
- ^ «SpringSource приобретает технологию управления данными Gemstone Systems» . WMware. 6 мая 2010 года. Архивировано из оригинала 8 августа 2014 года . Проверено 5 августа 2014 г.
- ^ GemTalk Systems (2 мая 2013 г.). «GemTalk Systems приобретает продукты GemStone/S у VMware» . ПРВеб. Архивировано из оригинала 10 августа 2014 года . Проверено 5 августа 2014 г.
- ^ «реструктуризация нашего веб-сайта сообщества Versant» .
- ^ «Realm выпускает объектную базу данных для Node.js» . ИнфоQ . Архивировано из оригинала 2 февраля 2017 г.
- ^ DB-движки. «Рейтинг объектной базы данных на DB-Engines» . DB-двигатели . Проверено 21 мая 2021 г.
- ^ «Стэнфордский линейный ускоритель (SLAC)» .
- ^ Херде, Патрик; Сиббальд, Питер Р. (1992). «Интеграция коллекций данных молекулярной биологии с использованием объектно-ориентированных баз данных и программирования» . Приложение к материалам «Объектно-ориентированные системы, языки и приложения программирования» (Дополнение) — OOPSLA '92 . стр. 177–178. дои : 10.1145/157709.157747 . ISBN 0897916107 . S2CID 45269462 .
- ^ «Процессор BaseX XQuery» . basex.org . Архивировано из оригинала 16 декабря 2023 г.
- ^ «XQuery в eXist-db» . существует-db.org . Архивировано из оригинала 2 декабря 2023 г.
- ^ «Саксонский — использование XQuery» . www.saxonica.com . Архивировано из оригинала 23 сентября 2020 г.
- ^ «PostgreSQL: Документация: 10:9.15. Функции и операторы JSON» . www.postgresql.org . Архивировано из оригинала 18 мая 2016 г.
- ^ Раддинг, Алан (1995). «Так что же такое, черт возьми, ODBMS?». Компьютерный мир . 29 (45): 121–122, 129.
- ^ Берлесон, Дональд. (1994). ООСУБД завоевывают позиции ИСУ, но СУРБД по-прежнему владеют этой дорогой. Журнал «Программное обеспечение», 14(11), 63
Внешние ссылки [ править ]
- Ресурсный портал объектной СУБД
- Рейтинг объектно-ориентированных СУБД — по популярности, обновляется ежемесячно от DB-Engines.