ObjectDatabase++

Поделись знанием:
Перейти к: навигация, поиск
К:Википедия:Страницы на КУ (тип: не указан)
ObjectDatabase++
Тип

ООБД

Разработчик

Ekky Software

Написана на

C++, C#, VB.NET & TScript

Операционная система

Windows & Linux

Последняя версия

3.4 (1 октября 2012[1])

Лицензия

Проприетарное[2]

Сайт

[www.ekkysoftware.com ysoftware.com]

К:Википедия:Статьи без изображений (тип: не указан)

ObjectDatabase++ (ODBPP) — это встраиваемая объектно-ориентированная база данных, предназначенная для серверных приложений, которые требуют минимального внешнего обслуживания. Она написана на C++ и использует ISAM с возможностью автоматического восстановления системы после сбоев при условии сохранения целостности базы данных. Особенности ODBPP: полный мультипроцессный и многопоточный контроль транзакций, автоматическое восстановление базы данных в режиме реального времени, иерархическая структура данных, простой код, многочисленные поддерживаемые методы индексации.





История

  • Первоначально ODBPP разрабатывалась Ekky Software с 2001 по 2003.
  • База данных переписывалась 4 раза, пока тестирование не подтвердило, что она соответствует спецификации.
  • За последнее десятилетие многочисленные усовершенствования продукта позволили улучшить процесс индексации и поддержку данных.

Иерархические объекты данных

ODBPP поддерживает объекты,,[3][4] похожие на XML или JSON. Именно такая структура хранения данных, при которой объект хранится одной записью, а не распределяется по нескольким таблицам, является главным отличием объектно ориентированных баз данных от их реляционных аналогов.

Традиционная реляционная структура

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

Объектно ориентированная структура

В объектно ориентированных базах данных, в противовес использованию многочисленных таблиц, данные хранятся одной записью. Это позволяет избежать дополнительных операций чтения и записи при работе с объектом и эффективно работать с очень большими и очень сложными базами данных.К:Википедия:Статьи без источников (тип: не указан)[источник не указан 3086 дней]

Мульти-процессное управление транзакциями

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

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

Поддерживаемые индексы

В отличие от некоторых более ранних моделей объектных баз данных,[6][7] ODBPP поддерживает большое разнообразие индексов.

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

Статический хэш-индекс

Все объекты в базе данных обладают уникальным идентификатором который формируется через статический hash index. Статический hash index — просто индекс массива. Взяв ID, умножив его на 12 и добавив значение смещения мы получим физический адрес объекта. Этот метод перевода ID в свой физический адрес позволяет извлекать данные вне зависимости от того, сколько объектов хранятся в базе данных.

Индексация B+-деревья

Индекс B+-дерево является распространённой структурой хранения баз данных, и ODBPP не является исключением. Наибольшее количество поисков осуществляется через поиск позиции индекса многократно повторяясь для каждого следующего значения. ODBPP поддерживает большое количество фильтров на B+-деревьях, чтобы сделать результаты более удобным. Например, он может быть установлен, чтобы преобразовать все символы нижнего регистра в верхний регистр, или установить для удаления пробелов или не-алфавитно-цифровых символов, а также обеспечить естественный порядок сортировки, где '9 'стоит до '10'.

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

Пространственные и временные индексы

Пространственные индексы используются, для осуществления возможности поиска координат в двух- и трехмерных пространствах. Временны́е индексы служат для реализации индексации по времени.

Биометрические паттерны

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

Полнотекстовый поиск

ODBPP обеспечивает полнотекстовое индексирование текста с помощью маркера индексов списка. Эти индексы представляют собой сочетание B+-дерева и области памяти для размещения переполняющих данных (overflow bucket), где текстовая строка разбивается на отдельные лексемы и индексируются в B+-дерево.

Напишите отзыв о статье "ObjectDatabase++"

Примечания

  1. [www.ekkysoftware.com/Downloads Ekky Software]
  2. [www.ekkysoftware.com/Sales Ekky Software Sales]
  3. Khoualdi, K, & Alghamdi, T 2011, 'Developing Systems by Using Object Oriented Database Practical Study on ISO 9001:2000 System', Journal Of Software Engineering & Applications, 4, 12, pp. 666—671, Computers & Applied Sciences Complete
  4. Naser, T, Alhajj, R, & Ridley, M 2009, 'Two-Way Mapping between Object-Oriented Databases and XML', Informatica (03505596), 33, 3, pp. 297—308, Computers & Applied Sciences Complete
  5. Suri, P, & Sharma, M 2011, 'A COMPARATIVE STUDY BETWEEN THE PERFORMANCE OF RELATIONAL & OBJECT ORIENTED DATABASE IN DATA WAREHOUSING', International Journal Of Database Management Systems, 3, 2, pp. 116—127, Computers & Applied Sciences Complete
  6. Hardwick, M, Samaras, G, 1989, 'Using a relational database as an index to a distributed object database in engineering design systems ', Data and Knowledge Systems for Manufacturing and Engineering, 1989., Second International Conference on Date of Conference: 16-18 Oct 1989
  7. Zhang, F, Ma, Z, & Yan, L 2011, 'Construction of ontologies from object-oriented database models', Integrated Computer-Aided Engineering, 18, 4, pp. 327—347, Computers & Applied Sciences Complete

Ссылки

  • [www.ekkysoftware.com/ODBPP Introduction to ObjectDatabase++]
К:Википедия:Изолированные статьи (тип: не указан)

Отрывок, характеризующий ObjectDatabase++

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



Наполеон начал войну с Россией потому, что он не мог не приехать в Дрезден, не мог не отуманиться почестями, не мог не надеть польского мундира, не поддаться предприимчивому впечатлению июньского утра, не мог воздержаться от вспышки гнева в присутствии Куракина и потом Балашева.
Александр отказывался от всех переговоров потому, что он лично чувствовал себя оскорбленным. Барклай де Толли старался наилучшим образом управлять армией для того, чтобы исполнить свой долг и заслужить славу великого полководца. Ростов поскакал в атаку на французов потому, что он не мог удержаться от желания проскакаться по ровному полю. И так точно, вследствие своих личных свойств, привычек, условий и целей, действовали все те неперечислимые лица, участники этой войны. Они боялись, тщеславились, радовались, негодовали, рассуждали, полагая, что они знают то, что они делают, и что делают для себя, а все были непроизвольными орудиями истории и производили скрытую от них, но понятную для нас работу. Такова неизменная судьба всех практических деятелей, и тем не свободнее, чем выше они стоят в людской иерархии.
Теперь деятели 1812 го года давно сошли с своих мест, их личные интересы исчезли бесследно, и одни исторические результаты того времени перед нами.
Но допустим, что должны были люди Европы, под предводительством Наполеона, зайти в глубь России и там погибнуть, и вся противуречащая сама себе, бессмысленная, жестокая деятельность людей – участников этой войны, становится для нас понятною.
Провидение заставляло всех этих людей, стремясь к достижению своих личных целей, содействовать исполнению одного огромного результата, о котором ни один человек (ни Наполеон, ни Александр, ни еще менее кто либо из участников войны) не имел ни малейшего чаяния.
Теперь нам ясно, что было в 1812 м году причиной погибели французской армии. Никто не станет спорить, что причиной погибели французских войск Наполеона было, с одной стороны, вступление их в позднее время без приготовления к зимнему походу в глубь России, а с другой стороны, характер, который приняла война от сожжения русских городов и возбуждения ненависти к врагу в русском народе. Но тогда не только никто не предвидел того (что теперь кажется очевидным), что только этим путем могла погибнуть восьмисоттысячная, лучшая в мире и предводимая лучшим полководцем армия в столкновении с вдвое слабейшей, неопытной и предводимой неопытными полководцами – русской армией; не только никто не предвидел этого, но все усилия со стороны русских были постоянно устремляемы на то, чтобы помешать тому, что одно могло спасти Россию, и со стороны французов, несмотря на опытность и так называемый военный гений Наполеона, были устремлены все усилия к тому, чтобы растянуться в конце лета до Москвы, то есть сделать то самое, что должно было погубить их.
В исторических сочинениях о 1812 м годе авторы французы очень любят говорить о том, как Наполеон чувствовал опасность растяжения своей линии, как он искал сражения, как маршалы его советовали ему остановиться в Смоленске, и приводить другие подобные доводы, доказывающие, что тогда уже будто понята была опасность кампании; а авторы русские еще более любят говорить о том, как с начала кампании существовал план скифской войны заманивания Наполеона в глубь России, и приписывают этот план кто Пфулю, кто какому то французу, кто Толю, кто самому императору Александру, указывая на записки, проекты и письма, в которых действительно находятся намеки на этот образ действий. Но все эти намеки на предвидение того, что случилось, как со стороны французов так и со стороны русских выставляются теперь только потому, что событие оправдало их. Ежели бы событие не совершилось, то намеки эти были бы забыты, как забыты теперь тысячи и миллионы противоположных намеков и предположений, бывших в ходу тогда, но оказавшихся несправедливыми и потому забытых. Об исходе каждого совершающегося события всегда бывает так много предположений, что, чем бы оно ни кончилось, всегда найдутся люди, которые скажут: «Я тогда еще сказал, что это так будет», забывая совсем, что в числе бесчисленных предположений были делаемы и совершенно противоположные.
Предположения о сознании Наполеоном опасности растяжения линии и со стороны русских – о завлечении неприятеля в глубь России – принадлежат, очевидно, к этому разряду, и историки только с большой натяжкой могут приписывать такие соображения Наполеону и его маршалам и такие планы русским военачальникам. Все факты совершенно противоречат таким предположениям. Не только во все время войны со стороны русских не было желания заманить французов в глубь России, но все было делаемо для того, чтобы остановить их с первого вступления их в Россию, и не только Наполеон не боялся растяжения своей линии, но он радовался, как торжеству, каждому своему шагу вперед и очень лениво, не так, как в прежние свои кампании, искал сражения.
При самом начале кампании армии наши разрезаны, и единственная цель, к которой мы стремимся, состоит в том, чтобы соединить их, хотя для того, чтобы отступать и завлекать неприятеля в глубь страны, в соединении армий не представляется выгод. Император находится при армии для воодушевления ее в отстаивании каждого шага русской земли, а не для отступления. Устроивается громадный Дрисский лагерь по плану Пфуля и не предполагается отступать далее. Государь делает упреки главнокомандующим за каждый шаг отступления. Не только сожжение Москвы, но допущение неприятеля до Смоленска не может даже представиться воображению императора, и когда армии соединяются, то государь негодует за то, что Смоленск взят и сожжен и не дано пред стенами его генерального сражения.
Так думает государь, но русские военачальники и все русские люди еще более негодуют при мысли о том, что наши отступают в глубь страны.
Наполеон, разрезав армии, движется в глубь страны и упускает несколько случаев сражения. В августе месяце он в Смоленске и думает только о том, как бы ему идти дальше, хотя, как мы теперь видим, это движение вперед для него очевидно пагубно.
Факты говорят очевидно, что ни Наполеон не предвидел опасности в движении на Москву, ни Александр и русские военачальники не думали тогда о заманивании Наполеона, а думали о противном. Завлечение Наполеона в глубь страны произошло не по чьему нибудь плану (никто и не верил в возможность этого), а произошло от сложнейшей игры интриг, целей, желаний людей – участников войны, не угадывавших того, что должно быть, и того, что было единственным спасением России. Все происходит нечаянно. Армии разрезаны при начале кампании. Мы стараемся соединить их с очевидной целью дать сражение и удержать наступление неприятеля, но и этом стремлении к соединению, избегая сражений с сильнейшим неприятелем и невольно отходя под острым углом, мы заводим французов до Смоленска. Но мало того сказать, что мы отходим под острым углом потому, что французы двигаются между обеими армиями, – угол этот делается еще острее, и мы еще дальше уходим потому, что Барклай де Толли, непопулярный немец, ненавистен Багратиону (имеющему стать под его начальство), и Багратион, командуя 2 й армией, старается как можно дольше не присоединяться к Барклаю, чтобы не стать под его команду. Багратион долго не присоединяется (хотя в этом главная цель всех начальствующих лиц) потому, что ему кажется, что он на этом марше ставит в опасность свою армию и что выгоднее всего для него отступить левее и южнее, беспокоя с фланга и тыла неприятеля и комплектуя свою армию в Украине. А кажется, и придумано это им потому, что ему не хочется подчиняться ненавистному и младшему чином немцу Барклаю.