Database Management Systems (DBMS) are a key component in most of today’s applications. Developers have a growing number of Database Management Systems to choose from, when traditional choices like Oracle or SQLServer don’t fit the bill. This is particularly true for cloud-based and cloud-native applications.
DB-ENGINES, a site that ranks database management systems according to their popularity, currently lists over 250 databases. In addition, many of these databases are also being offered as a service. Here’s an article that links to a spreadsheet with popluar Database as a Service offerings.
For example, there are MySQL, NewSQL, NoSQL, as well as traditional relational databases. Some of these are relatively general-purpose, while others are purpose-built — presumably for developers who didn’t see an existing DBMS that met their functionality, configuration and management requirements.
That’s a lot to choose from… and, no doubt, more will be created to meet new IT requirements, and to take advantage of new technical offerings and price-points.
Trying to understand these numbers more, I talked with a technology consultant with extensive experience managing cloud-based, SaaS systems development (who chose to remain anonymous). He is using databases like Amazon Redshift, Amazon DynamoDB, and PostgreSQL and notes, “There are technical reasons for some of the trends to cloud technology, mostly around access speeds for data warehouses and the need to handle very large data sets.”
People are moving away from standard relational databases to help with data access speed and data reliability and availability issues, according to this developer. “Instead of using relational databases with lots of indexes into the data, people are just duplicating data to speed access. Disk storage costs are now so low that this makes sense. For example, if you had a list of all doctors in the US with names and addresses, rather than using indexes to find all of the doctors in, say, Oregon, you would create a separate table for all doctors in Oregon as well tables for every other state. This is what systems like Amazon’s Redshift are designed to do.”
IT architectures also continue to evolve, which in turn changes DBMS requirements. “To keep data available through outages people are distributing data to multiple sites,” this source points out. “Hadoop splits and duplicates data to spread the load for queries and keeps multiple copies in different places so that the failure of any system or network interface will not disrupt operations. While most systems used multiple processors in multiple locations they still tended to store data on disks. The advent of enormous data sets has pushed people to use huge memory systems to minimize the time it takes to access data for complex data analysis algorithms.”
Says another developer who is chief architect at a government IT contractor, “while we’re not yet in the enterprise-level horizontal-scaling world, so I can’t speak from first-hand experience through customer deployments, I can answer from an architectural standpoint, based on what I’ve read. MySQL and PostgreSQL are good choices when you want standby and read replicas for high availability and scalability. MongoDB is good for large data analysis, and DynamoDB for massive NoSQL performance.”
Having all of these choices can be great for an enterprise but it also introduces new challenges in managing them. With the appropriate DBMS-wrangling tools, however like OpenStack Trove or Tesora DBaaS Platform (that is based on OpenStack Trove), using a variety of Database Management Systems doesn’t have to be a system admin time sink.
Photo credit: “Close Quarters” by Rob Hurson via Flickr