Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I would say next-gen <em>database</em>, not next-gen SQL.</p> <p>SQL is a language for querying and manipulating relational databases. SQL is dictated by an international standard. While the standard is revised, it seems to always work within the relational database paradigm.</p> <p>Here are a few new data storage technologies that are getting attention currently:</p> <ul> <li><a href="http://couchdb.apache.org/" rel="nofollow noreferrer"><strong>CouchDB</strong></a> is a non-relational database. They call it a document-oriented database.</li> <li><a href="http://aws.amazon.com/simpledb/" rel="nofollow noreferrer"><strong>Amazon SimpleDB</strong></a> is also a non-relational database accessed in a distributed manner through a web service. Amazon also has a distributed key-value store called <strong>Dynamo</strong>, which powers some of its S3 services.</li> <li><a href="http://github.com/cliffmoon/dynomite/tree/master" rel="nofollow noreferrer"><strong>Dynomite</strong></a> and <a href="http://kai.wiki.sourceforge.net/" rel="nofollow noreferrer"><strong>Kai</strong></a> are open source solutions inspired by Amazon Dynamo. </li> <li><a href="http://research.google.com/archive/bigtable.html" rel="nofollow noreferrer"><strong>BigTable</strong></a> is a proprietary data storage solution used by Google, and implemented using their Google File System technology. Google's MapReduce framework uses BigTable.</li> <li><a href="http://hadoop.apache.org/core/" rel="nofollow noreferrer"><strong>Hadoop</strong></a> is an open-source technology inspired by Google's MapReduce, and serving a similar need, to distribute the work of very large scale data stores.</li> <li><a href="http://www.zib.de/CSR/Projects/scalaris/" rel="nofollow noreferrer"><strong>Scalaris</strong></a> is a distributed transactional key/value store. Also not relational, and does not use SQL. It's a research project from the Zuse Institute in Berlin, Germany.</li> <li><a href="http://www.w3.org/RDF/" rel="nofollow noreferrer"><strong>RDF</strong></a> is a standard for storing semantic data, in which data and metadata are interchangeable. It has its own query language SPARQL, which resembles SQL superficially, but is actually totally different.</li> <li><a href="http://www.vertica.com/" rel="nofollow noreferrer"><strong>Vertica</strong></a> is a highly scalable column-oriented analytic database designed for distributed (grid) architecture. It does claim to be relational and SQL-compliant. It can be used through Amazon's Elastic Compute Cloud.</li> <li><a href="https://greenplum.org/" rel="nofollow noreferrer"><strong>Greenplum</strong></a> is a high-scale data warehousing DBMS, which implements both MapReduce and SQL.</li> <li><a href="http://www.w3.org/XML/" rel="nofollow noreferrer"><strong>XML</strong></a> isn't a DBMS at all, it's an interchange format. But some DBMS products work with data in XML format.</li> <li><a href="http://www.odbms.org/" rel="nofollow noreferrer"><strong>ODBMS</strong></a>, or Object Databases, are for managing complex data. There don't seem to be any dominant ODBMS products in the mainstream, perhaps because of lack of standardization. Standard SQL is gradually gaining some OO features (e.g. extensible data types and tables).</li> <li><a href="https://launchpad.net/drizzle" rel="nofollow noreferrer"><strong>Drizzle</strong></a> is a relational database, drawing a lot of its code from MySQL. It includes various architectural changes designed to manage data in a scalable "cloud computing" system architecture. Presumably it will continue to use standard SQL with some MySQL enhancements.</li> <li><a href="http://incubator.apache.org/cassandra/" rel="nofollow noreferrer"><strong>Cassandra</strong></a> is a highly scalable, eventually consistent, distributed, structured key-value store, developed at Facebook by one of the authors of Amazon Dynamo, and contributed to the Apache project.</li> <li><a href="http://project-voldemort.com/" rel="nofollow noreferrer"><strong>Project Voldemort</strong></a> is a non-relational, distributed, key-value storage system. It is used at LinkedIn.com </li> <li><a href="http://www.oracle.com/technology/products/berkeley-db/index.html" rel="nofollow noreferrer"><strong>Berkeley DB</strong></a> deserves some mention too. It's not "next-gen" because it dates back to the early 1990's. It's a popular key-value store that is easy to embed in a variety of applications. The technology is currently owned by Oracle Corp.</li> </ul> <p>Also see this nice article by Richard Jones: "<a href="http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/" rel="nofollow noreferrer">Anti-RDBMS: A list of distributed key-value stores</a>." He goes into more detail describing some of these technologies.</p> <p>Relational databases have weaknesses, to be sure. People have been arguing that they don't handle all data modeling requirements since the day it was first introduced. </p> <p>Year after year, researchers come up with new ways of managing data to satisfy special requirements: either requirements to handle data relationships that don't fit into the relational model, or else requirements of high-scale volume or speed that demand data processing be done on distributed collections of servers, instead of central database servers.</p> <p>Even though these advanced technologies do great things to solve the specialized problem they were designed for, relational databases are still a good general-purpose solution for most business needs. SQL isn't going away.</p> <hr> <p>I've written an article in php|Architect magazine about the innovation of non-relational databases, and data modeling in relational vs. non-relational databases. <a href="http://www.phparch.com/magazine/2010-2/september/" rel="nofollow noreferrer">http://www.phparch.com/magazine/2010-2/september/</a></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload