What every relational database developer needs to know about NoSQL

Burke Holland - Feb 7 '20 - - Dev Community

I'm 41 and I don't really understand NoSQL.

I never have. I have a relational database background. When I came up, understanding how to normalize data was an essential part of application development. So was SQL. I have built a lot of Crystal Reports (dark times) and I can INNER JOIN like it's nobody's business.

NoSQL has always seemed like a toy to me. And a bad toy at that. Data is de-normalized, repetitive, and, frankly, chaotic. It is quite literally the opposite of everything I have ever learned about how to structure data. It feels like I'm telling my children to play in the street.

What I have failed to understand this whole time, is that relational databases were solving a problem that doesn't exist anymore: the cost of storage. Storage is cheap, which means we can use different database types to make our systems much, much faster.

It also means that you are going to need to unlearn everything you know about relational databases. NoSQL is not hard to understand, but you do have to let go of the rules that you were taught about how data should always be structured.

My friend Steve Faulkner on the Azure Cosmos DB team pointed me to an excellent video from Ignite. This session takes a relational database, and moves it into a NoSQL one, walking you though how the concepts do and don't map across.

Data modelling and partitioning in Azure Cosmos DB: What every relational database user needs to know

It's extremely well done, and probably the best presentation I've ever seen on this topic. In addition, you'll get a great intro to new concepts like Partition Keys that don't exist in relational systems, but allow you to do pretty remarkable things in a NoSQL one.

If you come from a relational database background, so much of this will seem wrong. It's OK. Let go of what you know, and I think you'll find NoSQL absolutely fascinating.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player