Graph databases |
||
The graph data model represents, at a logical level, a directed graph consisting of vertices (nodes) and edges. The nodes correspond to database objects, and the edges – to the relationships between these objects. Both nodes and edges may have attributes; besides, the edges have a type characterizing the relationship. The graph model is particularly suitable for presenting the semantics of a subject area with numerous interconnections. For instance, the users of a social network may be tied to each other by family, friendly, business and other relationships. Graph-oriented DBMS use the graph model for describing and manipulating data in the database. They belong to the NoSQL domain that covers a number of different data modeling approaches opposed to the relational model. However, unlike other models, graph-oriented DBMS support ACID transactions – just as SQL databases do. To a large extent this is due to the fact the graph model isn’t an aggregate one, which impedes using it for distributed databases. One of the popular graph DBMS is Neo4j that uses its own declarative query language Cypher. After looking through the previous couple of paragraphs, the reader is almost certainly wondering why a chapter dedicated to graph-oriented databases would show up in an SQL textbook. The reason is – beginning with version 2017, SQL Server provides support for the graph data model! |