Java Reference
In-Depth Information
various columns together, much like a table in a relational database environment. Two popular
examples of column-based databases are Google's BigTable and Facebook's Casandra.
Graph databases store database objects using a graph-based format consisting of nodes, properties,
and edges. A node can have 0 or more properties. Nodes are linked by means of edges. Just like
nodes, edges can also have properties. Graph databases can be easily navigated through by hop-
ping from one node to another along the existing edges. Hence, they provide a transparent storage
format for Java objects, which are typically also highly interlinked. Every node in the graph then
corresponds to a Java object—the node properties to the fields of the Java object and the edges to the
associations between the Java objects. A key advantage of graph databases compared to relational
databases is that they are schema-less, meaning that node properties and edges can be dynamically
added. Furthermore, they are more efficient at querying highly interlinked data structures, which
can now be tackled using path traversal through the graph, instead of resource-expensive SQL join
operations as would be the case with an RDBMS. Popular examples of graph databases are Oracle
NoSQL, HyperGraphDB, and Neo4j.
Although the JDBC and JPA specifications were originally developed for relational database access,
some vendors have provided JDBC/JPA access to NoSQL databases. Hibernate has introduced the
Object/Grid Mapper (OGM), which uses its ORM engine to provide Java persistence (JPA) support
for NoSQL databases. It currently supports key-value, document, and graph databases. EclipseLink
also provides JPA support for NoSQL databases.
To summarize, as also illustrated by a recent KDnuggets poll (see http://goo.gl/KCTCoA ), SQ L is
far from dead, and given its widespread adoption will still remain an important data-manipulation
language for years to come. In fact, despite the name NoSQL, many of the database systems dis-
cussed in this chapter still provide active support for SQL to manipulate the data. Moreover, in
response to the NoSQL stream, some vendors came up with NewSQL database products by equip-
ping traditional RDBMs with facilities to provide the same scalability as their NoSQL counterparts.
A popular example here is Google's Spanner. Hence from a Java programmer's perspective, it will
remain important to know the basic concepts of SQL in order to develop high-performing Java data-
base applications.
Search WWH ::




Custom Search