Neo4J. OrientDB. NoSQL. "Structured storage" redirects here. For the Microsoft technology also known as structured storage, see COM Structured Storage. A NoSQL (often interpreted as Not Only SQL[1][2]) database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Motivations for this approach include simplicity of design, horizontal scaling and finer control over availability. The data structure (e.g. key-value, graph, or document) differs from the RDBMS, and therefore some operations are faster in NoSQL and some in RDBMS.
There are differences though, and the particular suitability of a given NoSQL DB depends on the problem it must solve (e.g. does the solution use graph algorithms?). History[edit] There have been various approaches to classify NoSQL databases, each with different categories and subcategories. A more detailed classification is the following, by Stephen Yen:[9] Performance[edit] Examples[edit] Graph[edit] XML database. An XML database is a data persistence software system that allows data to be stored in XML format. These data can then be queried, exported and serialized into the desired format. XML databases are usually associated with document-oriented databases. Two major classes of XML database exist:[1] XML-enabled: these may either map XML to traditional database structures (such as a relational database[2]), accepting XML as input and rendering XML as output, or more recently support native XML types within the traditional database.
This term implies that the database processes the XML itself (as opposed to relying on middleware).Native XML (NXD): the internal model of such databases depends on XML and uses XML documents as the fundamental unit of storage, which are, however, not necessarily stored in the form of text files. Rationale for XML in databases[edit] XML Enabled databases[edit] RDBMS that support the ISO XML Type are: Example of XML Type Query in IBM DB2 SQL[edit] Language features[edit]
Graph database. Database that uses mathematical graphs to store and search data Graph databases differ from graph compute engines. Graph databases are technologies that are translations of the relational online transaction processing (OLTP) databases. On the other hand, graph compute engines are used in online analytical processing (OLAP) for bulk analysis.[5] Graph databases attracted considerable attention in the 2000s, due to the successes of major technology corporations in using proprietary graph databases,[6] along with the introduction of open-source graph databases.
One study concluded that an RDBMS was "comparable" in performance to existing graph analysis engines at executing graph queries.[7] History[edit] Graph structures could be represented in network model databases from the late 1960s. Labeled graphs could be represented in graph databases from the mid-1980s, such as the Logical Data Model.[10][11] Commercial object databases (ODBMSs) emerged in the early 1990s. Background[edit] Document-oriented database. This article is about the software type. For usage/deployment instances, see Full text database. A document-oriented database is a computer program designed for storing, retrieving, and managing document-oriented information, also known as semi-structured data. Document-oriented databases are one of the main categories of NoSQL databases and the popularity of the term "document-oriented database" (or "document store") has grown[1] with the use of the term NoSQL itself. In contrast to relational databases and their notion of "Relation", i.e., a tuple (or row) of related strong-typed data items, these systems are designed around an abstract notion of a "document".
Document-oriented databases are inherently a subclass of the key-value store, another NoSQL database concept. XML databases are a specific subclass of document-oriented databases. Documents[edit] To understand the difference, consider this text document: Bob Smith 123 Back St. Now consider the same document marked up in pseudo-XML: Databases: relational vs object vs graph vs document. Is relational database dying? Why a model affirmed and finally consolidated over years is now object of discussion? Which alternatives exist and how they can match your needs in practical situations? Follow me, in this post, to understand how databases evolved and how to choose between new technological alternatives that have already produced valuable results. Note: this post focus operational (OLTP) databases. A little history Let's go back to 70s. The hierarchical model organized data into records of different types, each having a predefined set of fields.
The network model was a flexible alternative natively supporting many-to-many relationships. As you probably know the relational model organizes data into tables. No matter the approach any database system is built to guarantee data consistency under concurrent usage by mean of ACID transaction support. Relational won the battle In the 80s the discussion was practically over. The relational mismatch Object Databases Document Databases.