This article needs additional citations for verification .(July 2015) |
Developer(s) | OrientDB Ltd |
---|---|
Initial release | 2010 |
Stable release | 3.2.35 / October 29, 2024 [1] |
Repository | |
Written in | Java |
Platform | Java SE |
Type | Document-oriented database, Graph database, Multi-model database |
License | Apache 2 License |
Website | orientdb |
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.
The development of OrientDB relies on an open-source community. The project uses GitHub [4] to manage the sources, contributors and versioning.
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]
OrientDB Community Edition is free for any use (Apache 2 license). There is no commercial version of OrientDB.
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.
MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.
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 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.
An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:
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.
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.
InfiniteGraph is a distributed graph database implemented in Java and C++ and is from a class of NOSQL database technologies that focus on graph data structures. Developers use InfiniteGraph to find useful and often hidden relationships in highly connected, complex big data sets. InfiniteGraph is cross-platform, scalable, cloud-enabled, and is designed to handle very high throughput.
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:
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.
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.
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.
TypeDB is an open-source, distributed database management system that relies on a user-defined type system to model, manage, and query data.
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.