The Square Peg in the Square Hole

How non-relational data stores are helping us to stop abusing data and start working with it.

Introduction

For the last twenty years we have been busy hammering a variety of interesting data shapes into one tabular hole, the relational database.

Relational data is an amazing thing and has done wonderful things for us. I think it would be ridiculous to propose ripping up our SQL books and abandoning everything that happened before 2008. At the same time I think we need to acknowledge that not everything fits into two dimensions and that to make it happen we have not been engaged so much in data architecture but data sausage making. It may be a bit of mess but hey it’s all sausages in the end!

NoSql is a broad, amorphous movement, a name given to a huge variety of non-relational datastores that I can only partially describe here. The arrival and maturing of so many new data storage technologies allows us to look at data modelling and architecture with new understanding and with new tools on hand to implement them.

Why should you read this article?

This essay aims to give a broad introduction to the diverse subject on NoSql and the various stores that are available. It aims to provide a foundation for understanding NoSql and a guide to the kind of structural and solution thinking that is needed to make a NoSql adoption a success.

NoSql datastores represent the biggest change in data storage and data modelling since the arrival of open source commodity relational datastores. In my view the mind-shift required is like moving from procedural to object-orientated programming.

What I hope this essay will do is introduce some of the broad types of datastore that are becoming available and the kinds of problems they solve. The idea is to provider a primer so that hopefully when the square hole comes along you will recognise it and be there with your square peg.

History of this article

This essay was originally written for the second volume of the ThoughtWorks Anthology to be published by the Pragmatic Programmers but was dropped due to space limitations on the physical book. In the interim it was used as a primer for use with clients who were interested in exploring NoSql.

Content