By biim
De ene database is de andere niet. Dat weten we al langer. Een Oracle DBA is daarom niet per se een goede SQL Server DBA. Maar daar waar relationele databases eigenlijk nog veel gemeenschappelijk hebben, zijn de verschillen bij NoSQL-databases vele malen groter. Los van het feit dat ze nog relatief onbekend zijn en echte DBA’s met een specifieke NoSQL-expertise nog moeilijk te vinden zijn.
Feitelijk hebben NoSQL-databases meestal helemaal niets gemeen, behalve dan dat ze geen SQL ondersteunen. En zelfs dat laatste is niet altijd waar, maar dat is een ander verhaal.
Grootste verschil is de wijze waarop de “records” zijn vormgegeven. Je zou NoSQL-databases in een aantal categorieën kunnen onderverdelen:
- key-value stores. De data wordt gereduceerd tot key-value pairs. Dit geeft de database weinig intrinsieke structuur, maar veel flexibiliteit. Cassandra, Riak en Redis moet je hier inschalen;
- document stores. Deze databases zijn gericht op de opslag van documenten. Denk aan XML’s of JSON’s of zelfs Word-bestanden. CouchDB en MongoDB zijn bekende voorbeelden van document stores;
- tabular databases. Komen nog het dichtst bij RDBMS’n. Een soort key-value-value-value-… store. Google’s BigTable en HBase vallen in deze categorie;
- graph databases. Dit is een type met een specifieke toepassing. Denk aan travelling salesman en minimal spanning tree problemen. Voorbeeld van een graph database is Neo4j.
Dit artikel beschrijft nog meer verschillen tussen de meest gangbare NoSQL-databases.
Zou de opkomst van NoSQL het einde betekenen van SQL? Ik denk het niet. (Ansi) SQL is het resultaat van standaardisatie, een fase waar NoSQL-databases nog door moeten. De vlucht van NoSQL-varianten is groot, maar er zal altijd behoefte aan en ruimte voor relationele varianten blijven. Er is alleen meer keuze!
Gearchiveerd onder:
Via:: biim