Go to books ↓
One of the first steps in creating any database table is deciding what kind of data will uniquely identify a given row in said table; we call this a primary key.
A lot of the complexities involved in actually building a database engine aren’t related to the core features that you want to have. They are related to what looks like peripheral concerns. Backup / restore is an excellent example of that.
Cassandra isn’t a relational database management system, but it has some features that make it look a bit like one.
After years of being left for dead, SQL today is making a comeback. How come? And what effect will this have on the data community?
The datastore is often the most important part of an application. Code can be changed easily, and new code can be deployed without much fuss if you discover that some of your original choices were wrong, but the data model and the way it is handled is much harder to change. This means that you need to give the data model as much thought as you can when starting out, and the choice of datastore greatly influences that decision.