I work for InterSystems who drives the new http://globalsdb.org NoSQL project. Email: email@example.com Twitter: #iranic Skype: chatwithiran
… NoSQL Databases Understanding what they are Understanding how to leverage their strengths Understanding their weaknesses Staying away from hype and religious wars Fighting your developer demon
Edgar Frank “Ted” Codd Known for 12 Rules (0 ~ 12) for Relational Data Systems
Rule 1: The information Rule All information is represented in 1 and only 1 way, namely by values in column positions within rows of tables Rule 12: The no subversion Rule If the system provides a low-level (record-at-a- time) interface, then that interface cannot be used to subvert the system i.e. relational security or integrity constraints.
Simple APIs Java Example: Document.save(myObject) Seamless language integration No impedance mismatch Designed to be horizontally scalable (elastic) Flexible data model Majority free and/or Open Source Free and Commercial production support
Proven Available talent / Well-known AD-Hoc querying Scalable (limits?) Free and Commercial production support
Interface for data access Limited horizontal scalability? Impedance mismatches Programming model In-flexible data model
Does not include the underlying data structure. B-tree and B+-trees can be fast and efficient The relational model + SQL can limit B-trees
Class of data management systems inherently Non-relational Distributed Horizontally scalable With optional schemas Providing simple APIs Term Not-Only-SQL recently embraced Dave Kellog’s Blog Post
No to ACID No to the impedance mismatch with SQL Dealing with Big Data and Web Scale High prices from RDBMS vendors Use commodity hardware Flexible data models It’s a cool movement ….
No Remember MUMPS? SET ^Car("Door","Color")="BLUE” Remember Multi-value/PICK MATWRITE array.variable ON file.variable,id. …. Ever heard of the NoSQL RDB?
This depends on your use case. Example http://www.mongodb.org/display/DOCS/Use+Cas es Compare your problems to others. Example: http://wiki.apache.org/hadoop/PoweredBy
http://nosql-database.org/ lists 122 today. Depends on your model selection. Most likely choose well-known project. Don’t forget about shared risk!
Some solutions have no querying When available query languages differ Lack of general AD-Hoc querying – “no” SQL NOTE: Toad for Cloud
Skills Data Model Data format Tools Standards?
Some databases are not as proven Incomplete NoSQL solutions You write a larger data management tier You maintain your business code and infrastructure code You have to customize management and deployment technology and procedures
Know your application Don’t forget the past lessons Consider a hybrid approach Fight the desire to Roll-Your-Own-DB Start small but significant
Two Systems NoSQL + SQL/RDBMS Updates Real-time Asynchronous or Batch Data SQL/RDB NoSQL Mapper / MS Translato r
One system does both NoSQL and SQL
InterSystems Caché supports SQL and NoSQL Production NoSQL for 20+ years APIs for .NET, Java, Perl, Python, etc. Expanding paradigms for more use cases. Comes the closest to approach 2
Over time I think we will see NoSQL features in mainstream databases NoSQL offerings by more commercial companies Dominant open source / free NoSQL projects New definitions of enterprise databases