By definition, living in an information age means we have an awful lot of data. And in order for us to use that data, it needs to be organised. Enter the database. Database management systems (DBMS) are used in virtually every business but they can vary from super simple and generic to highly complex and bespoke.
When it comes to choosing a database system, you’ll need to start by asking yourself lots of questions to help you understand the features that will be needed from the DBMS:
Now you’ve got a clear idea of what will be required from your database system, you can start to think about the type of database that will suit you best. In general you’ll need to choose between either self-hosted or DBaaS and between Relational (ie SQL) or noSQL. Here’s what you need to know.
There are many advantages of a hosted database system or Database as a Service (DBaaS):
However there are times when it won’t be the right choice for you:
It’s worth noting that even if you use a hosted system, you’ll still need to have someone within your team who understands how best to architect the systems and get the most out of them. What you’re paying for with DBaaS is a blank space, you still have to have the expertise to structure what you put into that database, how you design your queries and so on.
Relational databases have been around since the 1970s and essentially store tables of structured data that can be related to one another - things like customers, orders, stock items and so on. They have what is known as ACID properties - in other words, their strengths include Atomicity, Consistency, Isolation and Durability.
Relational databases support sophisticated queries and updates with SQL (Structured Query Language) which is the big standard for working with databases. While simple queries are mostly portable between database systems, in practice application code will often end up being at least loosely coupled to a particular SQL implementation. The exception is where you’re using intermediate software which does the actual SQL generation.
All SQLs are similar but some might have more advanced applications than others.
When it comes to choosing a relational DBMS, there are a couple of things you’ll need to consider:
NoSQL database systems are often specialised to address a particular use case that a SQL database would struggle with, for example large unstructured documents or massive data throughput. They can also reduce complexity when most RDBMS features would be superfluous, for example in simple key-value stores.
Using a noSQL often comes at the cost of sacrificing some of the ACID guarantees we mentioned in relation to SQL systems. But there is a compromise - sometimes it’s possible to use a SQL system in a way that is more like a noSQL one, for example by storing XML or JSON documents in a table where appropriate. On the other hand, it’s virtually impossible to use a NoSQL system in a SQL-like way.
If you’re looking for a new database, you will need to spend some time thinking about your needs, the problems you’re trying to solve, the data you’ll be storing and how you’re using it. All of these factors will influence what DBMS you end up going for. Our opinion? A hosted SQL is always a good first choice unless you can definitely prove it won’t meet your needs.