Slide 1

Slide 1 text

NOSQL Not Only SQL #toolsforfullstackdv

Slide 2

Slide 2 text

SOME CHARACTERISTICS ARE COMMON AMONGST THESE DATABASES, BUT NONE ARE DEFINITIONAL. • Not using the relational model (nor the SQL language) • Open source • Designed to run on large clusters • Based on the needs of 21st century web properties • No schema, allowing fields to be added to any record without controls http://martinfowler.com/nosql.html

Slide 3

Slide 3 text

BIG DATA IS THE DRIVER FOR NOSQL’S RISE, BUT NOT THE ONLY REASON TO USE NOSQL http://martinfowler.com/nosql.html

Slide 4

Slide 4 text

BUT OFTEN PEOPLE SELECT NOSQL DUE TO EASIER DATABASE INTERACTION IN THEIR APPLICATIONS. http://martinfowler.com/nosql.html

Slide 5

Slide 5 text

AGGREGATE DATA MODELS • An aggregate is a collection of data that we interact with as a unit. Aggregates form the boundaries for ACID operations with the database. • Key-value, document, and column-family databases can all be seen as forms of aggregate-oriented database. • Aggregates make it easier for the database to manage data storage over clusters. • Aggregate-oriented databases work best when most data interaction is done with the same aggregate; aggregate-ignorant databases are better when interactions use data organized in many different formations. http://martinfowler.com/nosql.html

Slide 6

Slide 6 text

DISTRIBUTION MODELS • There are two styles of distributing data: • Sharing distributes different data across multiple servers, so each server acts as the single source for a subset of data. • Replication copies data across multiple servers, so each bit of data can be found in multiple places. Master-slave replication or Peer-to-peer replication. http://martinfowler.com/nosql.html

Slide 7

Slide 7 text

NOSQL DATABASES • Key-Value store – These databases are designed for storing data in a schema-less way. In a key- value store, all of the data within consists of an indexed key and a value, hence the name. E • Column store – instead of storing data in rows, these databases are designed for storing data tables as sections of columns of data, rather than as rows of data. While this simple description sounds like the inverse of a standard database, wide-column stores offer very high performance and a highly scalable architecture. • Document database – These are designed for storing, retrieving, and managing document- oriented information, also known as semi-structured data. • Graph database – Based on graph theory, these databases are designed for data whose relations are well represented as a graph and has elements which are interconnected, with an undetermined number of relations between them.

Slide 8

Slide 8 text

NOSQL DATABASES • Column: Accumulo, Cassandra, Druid, HBase, Vertica • Document: Lotus Notes, Clusterpoint, Apache CouchDB, Couchbase, MarkLogic, MongoDB, OrientDB, Qizx • Key-value: CouchDB, Dynamo, FoundationDB, MemcacheDB, Redis, Riak, FairCom c-treeACE, Aerospike, OrientDB, MUMPS • Graph: Allegro, Neo4J, InfiniteGraph, OrientDB, Virtuoso, Stardog • Multi-model: OrientDB, FoundationDB, ArangoDB, Alchemy Database, CortexDB http://en.wikipedia.org/wiki/NoSQL

Slide 9

Slide 9 text

BEYOND NOSQL • NoSQL is just one set of data storage technologies. As they increase comfort with polyglot persistence, we should consider other data storage technologies whether or not they bear the NoSQL label. http://martinfowler.com/nosql.html