Clever Geek Handbook
📜 ⬆️ ⬇️

ObjectDatabase ++

ObjectDatabase ++ (ODBPP) is an embedded object-oriented database designed for server applications that require minimal external maintenance. It is written in C ++ and uses ISAM with the ability to automatically restore the system after a failure, while maintaining the integrity of the database . Features of ODBPP: full multiprocess and multi-threaded transaction control, automatic database recovery in real time, hierarchical data structure, simple code, numerous supported indexing methods.

ObjectDatabase ++
Type ofOBOB
DeveloperEkky Software
Written onC ++ , C # , VB.NET & TScript
operating systemWindows & Linux
Latest version3.4 (October 1, 2012 [1] )
LicenseProprietary [2]
Siteekkysoftware.com

History

  • ODBPP was originally developed by Ekky Software from 2001 to 2003.
  • The database was rewritten 4 times, until testing confirmed that it met the specification.
  • Over the past decade, numerous product enhancements have improved the indexing process and data support.

Hierarchical Data Objects

ODBPP supports objects, [3] [4] similar to XML or JSON . It is such a data storage structure, in which an object is stored in one record, and not distributed across several tables, that is the main difference between object-oriented databases and their relational counterparts.

Traditional Relational Structure

Traditionally, databases have been developed using the relational model . According to this model, data is divided into several tables, and using unique identifiers you can get complete data about the object. SQL-based databases use the JOIN operator to associate data, which can adversely affect performance. [five]

Object Oriented Structure

In object-oriented databases, as opposed to using multiple tables, data is stored in one record. This avoids additional read and write operations when working with the object and effectively works with very large and very complex databases.

Multi-Process Transaction Management

ODBPP implements transaction control, which allows the process to continue while the other terminates. This unique transaction management allows the ongoing process to identify the aborted transaction, restore database integrity, and continue the transaction. It is this ability to terminate the transaction at any time that allows you to build the implementation of transactions in real time on the server side.

After the transaction is committed, the database writes the entire transaction from the memory file to the log file. This is done in three stages. The first is to identify what changes are needed, and to add instructions to the end of the file, writing to disk, the header is updated to indicate the need for updates. Secondly, the file is updated until the header is changed to indicate that the update is complete. This approach ensures that the file will always contain the correct data, because if the process is interrupted at the first stage, the file will simply be truncated and will return to its original state, and if the transaction is interrupted during the second stage, then the next transaction, opening the file, will again execute the saved instructions.

Supported Indexes

Unlike some earlier object database models, [6] [7] ODBPP supports a wide variety of indexes.

During the initial development of the object model, the basic design used a circuit that contained only the serialized binary object that was passed in its ID. No other access was provided. ODBPP is developed using the object model, it understands the hierarchical nature of objects and is able to index the data contained in them.

Static Hash Index

All objects in the database have a unique identifier that is generated through a static hash index . The static hash index is just the index of the array. Taking the ID, multiplying it by 12 and adding the offset value, we get the physical address of the object. This method of translating the ID into its physical address allows you to retrieve data regardless of how many objects are stored in the database.

Indexing B + Trees

The B + tree index is a common database storage structure, and ODBPP is no exception. The largest number of searches is carried out through the search for the position of the index repeatedly repeating for each subsequent value. ODBPP supports a large number of filters on B + trees to make the results more convenient. For example, it can be set to convert all lowercase characters to uppercase, or set to remove spaces or non-alphanumeric characters, as well as provide a natural sort order where '9' stands for '10'.

One of the features of ODBPP is that data stored in a hierarchical object can also be indexed.

Spatial and temporal indexes

Spatial indices are used to make it possible to search for coordinates in two- and three-dimensional spaces. Time indexes are used to implement time indexing.

Biometric Patterns

ODBPP also supports spatial datasets that represent key points of two and three dimension objects. [ specify ] , such as fingerprints or human faces. These sets are indexed using a spatial index that is suitable for group searches. The search itself will create a temporary index that will include all objects that match the search pattern or or are rejected within the specified error.

Full Text Search

ODBPP provides full-text indexing of text using a list index marker. These indexes are a combination of the B + tree and the memory area for placing overflow bucket, where the text string is divided into separate tokens and indexed into the B + tree.

Notes

  1. ↑ Ekky Software Archived on September 29, 2012.
  2. ↑ Ekky Software Sales Archived August 21, 2013.
  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

Links

  • Introduction to ObjectDatabase ++


Source - https://ru.wikipedia.org/w/index.php?title=ObjectDatabase%2B%2B&oldid=97958041


More articles:

  • Demikhovo (Mozhaisk district)
  • Kaninskoe Rural Settlement
  • Volkov, Alexey Andreevich (valet)
  • Gorki (rural settlement Goretovskoe)
  • Potassium Metagermanate
  • Bandoneon
  • Lacrosse at the 1928 Summer Olympics
  • Alice Deejay
  • Italian Forconi Protest Movement (2013)
  • Pseudocumatidae

All articles

Clever Geek | 2019