This is a quick research article on what are NoSQL databases and largely when to (and less when not to) use them. These are becoming the staple databases cloud based multi-tenanted systems. This will identify what these databases are and who is using them and what are their core concepts.
satya - 4/5/2013 1:53:35 PM
Where are they being used: No-SQL databases
satya - 4/5/2013 2:00:45 PM
Often cited reasons
A flexible/dynamic data model
in other words no schema
Scalability
by replicating and fault tolerance
Cloud
satya - 4/5/2013 2:01:43 PM
Underlying ideas
auto sharding
distributed queries
intrgrated caching
satya - 4/5/2013 2:03:55 PM
Examples of nosql databases
couchbase
mongodb
cassandra
satya - 4/5/2013 2:04:19 PM
Here is a reasonable article on the subject of nosql
satya - 4/5/2013 2:06:37 PM
A multi-tenant trend
Salesforce, Concur, and Cisco are three examples but there are dozens more at various stages of incorporating NoSQL into their ECM, ERP, HRMS, SCM, CRM, EPM, etc. offerings for enterprise customers.
satya - 4/5/2013 2:07:54 PM
Apparently here is a take on who is using them
The first companies to leverage NoSQL were internet companies that included social gaming, advertising networks, online retail, online business services, social networking, video services, online media, etc. Enterprises that are moving quickly to adopt NoSQL include online business services, advertising, media, communications, retail, and financial services, just to name a few.
satya - 4/5/2013 2:09:51 PM
No-SQL take on problems with relational databases
...performance-sapping operations like complex queries, joins, and record locks that are typical in relational databases.
satya - 4/5/2013 2:13:27 PM
Cited problem areas for No-SQL
transactions
joins
...even some level of ease of use
SQL
stored procedures
backup/restore
reporting
cubes
satya - 4/5/2013 2:16:47 PM
A warning from that article from oracle
This article explores application development using Oracle NoSQL Database. As application developers of our time cut our teeth on SQL-based RDBMS, building a well-designed enterprise application using NoSQL databases represents a new challenge.
satya - 4/5/2013 2:24:19 PM
Two pioneering efforts
Big Table
Amazon Dynamo
satya - 4/5/2013 2:25:31 PM
Here is a very good thorough article on these databases
satya - 4/5/2013 2:26:20 PM
Some additional databases
HBase,
Cassandra,
Voldemort,
Riak,
Redis,
Hypertable,
MongoDB,
CouchDB,
Neo4j
satya - 4/5/2013 2:30:05 PM
Read the previous article from IBM to get a pretty good picture of NoSQL space
Read the previous article from IBM to get a pretty good picture of NoSQL space
satya - 4/5/2013 2:36:31 PM
So far....
Having played around with Parse for a couple of weeks now, (considered one of the simplest apis) the development approach is a bit different. Lack of joins will throw you off.
Object to data impedence mismatch in java or c# needs to be carefully handled.
I haven't figured out how to provide unique constraints. I was warned foreign key constraints may not be there.
However if developed this way the holy grail is that it is totally scalable.
Also to develop on the fly properties for document centric models might be really handy.
For example automating web forms becomes easier. Writing multi-tenancy apps become lot more feasible. Cloud based systems like Salesforce become easy to develop.
Things like Drupal or wordpress or other CMS systems can be developed lot more effectively!
Enterprises don't have to stay behind as they can become more flexible to changing business needs of their customers be they consumers or institutions or businesses.