OrientDB

Last updated
Developer(s) OrientDB Ltd
Initial release2010;14 years ago (2010)
Stable release
3.2.29 / March 6, 2024;1 day ago (2024-03-06) [1]
Repository
Written in Java
Platform Java SE
Type Document-oriented database, Graph database, Multi-model database
License Apache 2 License
Website orientdb.org

OrientDB is an open source NoSQL database management system written in Java. It is a Multi-model database, supporting graph, document and object models, [2] the relationships are managed as in graph databases with direct connections between records. It supports schema-less, schema-full and schema-mixed modes. It has a strong security profiling system based on users and roles and supports querying with Gremlin along with SQL extended for graph traversal. OrientDB uses several indexing mechanisms based on B-tree and Extendible hashing, the last one is known as "hash index". Each record has Surrogate key which indicates the position of the record on disk. Links between records (edges) are stored either as the record's position stored directly inside of the referrer or as B-tree of record positions (so-called record IDs or RIDs), that serves as a container of RIDs, which allows fast traversal (with O(1) complexity) of one-to-many relationships and fast addition/removal of new links. OrientDB is the 6th most popular graph database according to the DB-Engines graph database ranking, [3] as of January 2024.

Contents

The development of OrientDB relies on an open-source community. The project uses GitHub [4] to manage the sources, contributors and versioning.

Engine

OrientDB is built with a multi-model graph/document engine. While OrientDB includes a SQL layer, the support for edges effectively means that these may be used to traverse relationships rather than employing a JOIN statement. [5] OrientDB handles every record / document as an object and the linking between objects / documents is implemented using direct pointers to the record's positions on disk. This leads to quick retrieval of related data as compared to joins in an RDBMS. [6]

Editions & licenses

OrientDB Community Edition is free for any use (Apache 2 license). There is no commercial version of OrientDB.

Applications

History

OrientDB was originally authored by Luca Garulli in 2010. Luca wrote it as a Java rewrite of the fast persistent layer of Orient ODBMS database (originally developed by Luca Garulli in 1999 in C++). During 2012–2014 years storage engine was redeveloped by Andrii Lomakin. It has got a new name "plocal" which stands for "paginated local". This name implies that the new storage engine is based on the concept of the splitting of data files by pages and page is treated as a single atomic unit of change. Since 2012, the project is being sponsored by OrientDB LTD (former Orient Technologies LTD), a for-profit company with Luca as its CEO and founder. In 2013 Andrii Lomakin has joined the company as R&D lead engineer and company's co-owner. [14] [15]

The first time the word "multi-model" has been associated to the databases was on May 30, 2012, in Cologne, Germany, during Luca Garulli's keynote "NoSQL Adoption – What’s the Next Step?". [16] [17] Luca Garulli envisioned the evolution of the 1st generation NoSQL products into new products with more features able to be used by multiple use cases. OrientDB was the first product to embrace documents, graphs, key-value, geospatial and reactive models in the same product, at the core level. This means that the multiple models were integrated into the core without using layers. For this reason, OrientDB is a "Native" Multi-model database.

OrientDB has been covered by media outlets and is the winner of the 2015 InfoWorld Bossie award. [18]

On September 15, 2017, OrientDB LTD company has been acquired by CallidusCloud a public company traded on NASDAQ. [19]

On January 30, 2018, it was announced SAP (company) acquired CallidusCloud for $2.4 billion. [20] and therefore OrientDB is now supported by SAP (company).

On September 1, 2021, [21] the original founder Luca Garulli left SAP (company) and created a new database project ArcadeDB with a similar data presentation model after SAP decided to stop providing commercial support for OrientDB.

See also

Related Research Articles

<span class="mw-page-title-main">Object database</span> Type of database management system

An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which are table-oriented. A third type, object–relational databases, is a hybrid of both approaches. Object databases have been considered since the early 1980s.

A query language, also known as data query language or database query language (DQL), is a computer language used to make queries in databases and information systems. In database systems, query languages rely on strict theory to retrieve information. A well known example is the Structured Query Language (SQL).

The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

A spatial database is a general-purpose database that has been enhanced to include spatial data that represents objects defined in a geometric space, along with tools for querying and analyzing such data.

A MultiValue database is a type of NoSQL and multidimensional database, typically considered synonymous with PICK, a database originally developed as the Pick operating system.

A document-oriented database, or document store, is a computer program and data storage system designed for storing, retrieving and managing document-oriented information, also known as semi-structured data.

<span class="mw-page-title-main">MarkLogic Server</span>

MarkLogic Server is a document-oriented database developed by MarkLogic. It is a NoSQL multi-model database that evolved from an XML database to natively store JSON documents and RDF triples, the data model for semantics. MarkLogic is designed to be a data hub for operational and analytical data.

NoSQL is an approach to database design that focuses on providing a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Instead of the typical tabular structure of a relational database, NoSQL databases house data within one data structure. Since this non-relational database design does not require a schema, it offers rapid scalability to manage large and typically unstructured data sets. NoSQL systems are also sometimes called "Not only SQL" to emphasize that they may support SQL-like query languages or sit alongside SQL databases in polyglot-persistent architectures.

A graph database (GDB) is a database that uses graph structures for semantic queries with nodes, edges, and properties to represent and store data. A key concept of the system is the graph. The graph relates the data items in the store to a collection of nodes and edges, the edges representing the relationships between the nodes. The relationships allow data in the store to be linked together directly and, in many cases, retrieved with one operation. Graph databases hold the relationships between data as a priority. Querying relationships is fast because they are perpetually stored in the database. Relationships can be intuitively visualized using graph databases, making them useful for heavily inter-connected data.

<span class="mw-page-title-main">Couchbase Server</span> Open-source NoSQL database

Couchbase Server, originally known as Membase, is a source-available, distributed multi-model NoSQL document-oriented database software package optimized for interactive applications. These applications may serve many concurrent users by creating, storing, retrieving, aggregating, manipulating and presenting data. In support of these kinds of application needs, Couchbase Server is designed to provide easy-to-scale key-value, or JSON document access, with low latency and high sustainability throughput. It is designed to be clustered from a single machine to very large-scale deployments spanning many machines.

A cloud database is a database that typically runs on a cloud computing platform and access to the database is provided as-a-service. There are two common deployment models: users can run databases on the cloud independently, using a virtual machine image, or they can purchase access to a database service, maintained by a cloud database provider. Of the databases available on the cloud, some are SQL-based and some use a NoSQL data model.

The following is provided as an overview of and topical guide to databases:

<span class="mw-page-title-main">Key–value database</span> Data storage paradigm

A key–value database, or key–value store, is a data storage paradigm designed for storing, retrieving, and managing associative arrays, and a data structure more commonly known today as a dictionary or hash table. Dictionaries contain a collection of objects, or records, which in turn have many different fields within them, each containing data. These records are stored and retrieved using a key that uniquely identifies the record, and is used to find the data within the database.

<span class="mw-page-title-main">SAP HANA</span> Database management system by SAP

SAP HANA is an in-memory, column-oriented, relational database management system developed and marketed by SAP SE. Its primary function as the software running a database server is to store and retrieve data as requested by the applications. In addition, it performs advanced analytics and includes extract, transform, load (ETL) capabilities as well as an application server.

In the field of database design, a multi-model database is a database management system designed to support multiple data models against a single, integrated backend. In contrast, most database management systems are organized around a single data model that determines how data can be organized, stored, and manipulated. Document, graph, relational, and key–value models are examples of data models that may be supported by a multi-model database.

<span class="mw-page-title-main">ArangoDB</span> Multi-model database

ArangoDB is a graph database system developed by ArangoDB Inc. ArangoDB is a multi-model database system since it supports three data models with one database core and a unified query language AQL. AQL is mainly a declarative language and allows the combination of different data access patterns in a single query.

TerminusDB is an open source knowledge graph and document store. It is used to build versioned data products. It is a native revision control database that is architecturally similar to Git. It is listed on DB-Engines.

RavenDB is an open-source document-oriented database written in C#, developed by Hibernating Rhinos Ltd. It is cross-platform, supported on Windows, Linux, and Mac OS. RavenDB stores data as JSON documents and can be deployed in distributed clusters with master-master replication.

SurrealDB is an NewSQL open-sourced multi-model database and database-as-a-service platform. The platform is designed to offer a structured yet flexible way of storing and querying data, aiming to simplify the app development process by minimizing the need for building backend APIs and database layers.

References

  1. "OrientDB 3.2 Release Notes". GitHub . Retrieved 6 March 2024.
  2. "Multi-Model Database - OrientDB Manual". Archived from the original on 2015-05-03. Retrieved 2015-05-31.
  3. "DB-Engines Ranking - popularity ranking of graph DBMS".
  4. "orientechnologies/orientdb". GitHub . 30 May 2020.
  5. Ltd., Bloor Research International (6 August 2014). "Diaku: more than governance - Bloor".
  6. "Hidden Gems of Web / Mobile Development from Open-Source". Archived from the original on 2016-10-13.
  7. "Harness graphs & documents for Real-time Fraud Prevention". Archived from the original on 2016-08-19. Retrieved 2016-07-15.
  8. "Why I Use OrientDB on Production Applications - DZone Database".
  9. Nuix. "Nuix 7 Conquers Customer Challenges for Today and Builds Hyper-Scale Capacity for the Future" (Press release).
  10. "Diaku Axon - Data Governance powered by OrientDB". Archived from the original on 2017-07-28. Retrieved 2016-07-15.
  11. Bonnici, V; Russo, F; Bombieri, N; Pulvirenti, A; Giugno, R (2014). "Comprehensive reconstruction and visualization of non-coding regulatory networks in human". Front Bioeng Biotechnol. 2: 69. doi: 10.3389/fbioe.2014.00069 . PMC   4261811 . PMID   25540777.
  12. "MovieLens recommendation engine with OrientDB - Pizza Connections". Archived from the original on 2017-07-26. Retrieved 2016-07-15.
  13. "Traffic Management Systems with OrientDB". Archived from the original on 2017-07-15. Retrieved 2016-07-15.
  14. "Expert Interview with Luca Garulli Of OrientDB On Multi-Model Database Management For Big Data". 18 May 2015. Archived from the original on 22 May 2015. Retrieved 15 July 2016.
  15. admin. "Intervista a Luca Garulli – JavaStaff.com".
  16. "Multi-Model storage 1/2 one product". slideshare. 2012-06-01.
  17. "Nosql Matters Conference 2012 | NoSQL Matters CGN 2012" (PDF). 2012.nosql-matters.org. Retrieved 2017-01-12.
  18. staff, InfoWorld (16 September 2015). "Bossie Awards 2015: The best open source application development tools".
  19. "CallidusCloud Acquires Leading Multi-Model Database Technology" (Press release). 2017-09-19. Retrieved 2017-10-11.
  20. "SAP snags CallidusCloud for $2.4 billion". TechCrunch. January 30, 2018. Retrieved January 30, 2018.
  21. "Welcome to ArcadeDB". September 1, 2021. Retrieved September 1, 2021.