Data is everywhere. Big data is still a talking point – those massive volumes of data that businesses have to manage, day-in, day-out. Irrespective of how much data there is (or even what type of data), its true value lies in what businesses do with it all. A database is the (practically) invisible component that helps to drive such business decisions or operational enhancements. Which means choosing the right database for your organization should not be taken lightly. There are certainly some key areas to consider.
What Do You Need It To Do?
The static database of days gone by cannot cope with the demands of today. Databases are being used in more places than ever with exponential growth in the volumes of data that need handling – flexibility is key here. What does that mean for your business? Well, take a good look at what type of data you can store and use with your database and consider also what you might need in the future. Whilst any database is equipped to store numbers and text, you need to consider what type of data your database can handle and how. So-called object or document data is definitely a type of data that you will want to store. And whilst this type of data can be stored as text-only, there is the chance of losing information and creating an additional overhead. Also, you will not be able to handle complete objects easily in queries.
You also need to consider scalability. The database of today can very quickly become obsolete in the face of a growing amount of data and an increased demand for data-driven decisions – your new database needs to be able to scale to your demands. You should also be thinking about where you can run your database. Can it be run on the edge, in a public cloud or in a private cloud? Whilst most modern databases can be run in all these places, you need to also understand what the database offers you in either of these deployment models. Are there any differences in functionality, for example? And remember, keep thinking of your future requirements.
Lastly, be wary of vendor lock-in. Will you need to change everything around the database in case you switch the database? Will you be able to get all your tools using it, today and tomorrow, or might this be a challenge due to a nonstandard query language?
What Does It Do?
Although most databases provide a similar set of functionalities, you might want to pay closer attention to specific areas. For example, using built-in database functions can significantly increase the performance of external systems and help to optimize any data storage requirements. Also, how does the database allow you to access the data? Is there a specific query language needed or a nonstandard API? Make sure that the query interface provided fits your needs. What does it ultimately offer?
If you are considering a cloud-based database, then service level agreements (SLAs) are important. Do you know how the database will handle failure on one node – will it automatically re-balance and will any data be lost? Make sure that you understand how the database recovers from errors and what the backup options are.
Ease of Use
How easy things are to use (and performance) will need to be factored in around your desired use-case. For example, is the API or query language that the database system offers usable for your chosen use-case, and are the tools and applications you plan to adopt compatible (usable) with your intended database system? We have already touched upon access methods and query language, but you might need to develop a custom solution if everything is not integrated in an effective way. You should also take into account overall operational usability – make sure that the logging and auditing functionality suits your use case.
Performance is a key factor when considering usability. After all, if you don’t get the right performance out of your database it will not be usable. It helps to understand in which areas you will need the best performance and what the database system offers in this area. Is that area ingesting data or is it data retrieval perhaps?
Keeping Things Secure
Security is a critical consideration for any IT system and databases are no exception. The media love a good data breach story, but it is always a costly exercise for the organization involved. The most important thing to address here is access control. You need robust access control measures, and you need to be able to restrict access to data to only what is needed. You should also be able to audit who accessed data, and when. Having measures in place to be able to identify where data is coming from – false data can lead to problems.
The concept of security is wide-ranging, and you need to understand how it fits in with your organization’s specific considerations. How can the database system be integrated into the overall IT security infrastructure, for example? The zero–trust approach will undoubtedly weave itself into any security design.
And Finally – How Much Will It All Cost?
There is no simple answer here – you are not buying something off the shelf. Cost here is not just referring to software license costs – which will be integral to any database system pricing. You will also need to factor in how much infrastructure you need to buy to run the database. If you are leaning towards a cloud-based service, do you understand its inherent value-add compared to an on-premises installation? In addition, there are staffing costs to evaluate. Have you calculated any additional operational overhead associated with your chosen database system? You will need the right number of skilled staff to manage the new systems, so you might end up having to hire more heads or invest in further training for existing staff. There might also be costs involved with compatibility issues between your planned tools and your existing tools – any changes will incur additional expense.
Choosing the right database system for your needs spans numerous considerations – flexibility, scalability, ease of use, performance, security, cost, and others. You also need to consider the future needs of your organization so choose carefully and keep an open mind.
About the author: Jan Weber is a producdt manager at Crate.io. Prior to joining Crate.io, Weber worked at IBM, Novell, SUSE, and Sophos.