Navicat Blog

Jan 29, 2019 by Robert Gravelle

Selecting which database will manage all of your company's data can be a very daunting decision; one that will have long-term ramifications for both your employees, partners and customers. Perhaps you're already contemplating a few specific vendors? Not so fast! Have you taken the time to weigh the pros and cons of NoSQL versus traditional relational databases? If not, you've come to the right place. Let's get started!

Relational Database Management Systems (RDBMSes)

This category of databases, which, in addition to MySQL, includes Oracle, SQL Server and PostgreSQL, have a long history (since the 1970's) and have very developed best practices to achieve optimal performance. Case in point, computer scientist E.F. Codd developed a set of rules that must be followed in order for a database management system to be considered relational. Codd also introduced the concept of database normalization in 1971. Database normalization is the process of structuring a relational database in a way that reduces data redundancy while improving data integrity.

Strengths include:

  • Atomicity, Consistency, Isolation, Durability (ACID) compliance. ACID compliance reduces anomalies and protects the integrity of your database by suggesting precisely how transactions interact with the database.
  • Your data is organized in a structured way. Having your data organized with a rigid structure makes it easier to work with because you always know where to find each piece of data. Just be sure to keep an updated diagram of your schema.
  • RDBMS tools come tend to with high quality support, product suites and add-ons to manage these databases, due to the amount of time they've been on the market.

The main problem with RDBMSes is scaling them as your database grows. There are techniques you can employ, such as sharding, but these are not trivial to implement.

NoSQL Databases

NoSQL Databases are your best choice for dealing with massive amounts of unstructured data or if your data requirements aren't clear at the outset. In such cases, you likely don't have the luxury of developing a schema that you would with a relational database. Thus, NoSQL Databases provide much more flexibility than their traditional relational counterparts.

Advantages include:

  • NoSQL databases like CouchDB, MongoDB, Cassandra, and HBase are designed to work with Big data...really Big data. In fact, you can store huge amounts of data with little to no structure. Moreover, NoSQL databases permit data mixing, permitting different types of data to be stored together.
  • NoSQL databases can be scaled across multiple data centers out of the box with only minimum degree of effort.

Of course, NoSQL Databases are not without disadvantages:

  • The NoSQL community lacks the maturity of the MySQL user base since it is relatively new. While the community is rapidly growing, as it currently stands, SQL database management systems like MySQL still have an edge in terms of the base of highly experienced users
  • A major issue with NoSQL databases is the lack of reporting tools for performance testing and analysis. Compare that with traditional RDBMS, where you can find a wide range of monitoring tools to help you performance tune your instances - for example, Navicat Monitor for MySQL/MariaDB.
  • There's a lack of standardization. NoSQL vendors tend to employ their own syntax. These can be difficult to master and are usually incompatible with the SQL used in relational databases.
  • Quite often NoSQL databases sacrifice ACID compliance for processing speed and flexibility. Depending on your needs, this may cause problems.

Conclusion

As we saw in today’s blog, the type of database you select for your organization depends largely on how you’ll be using it as well as what type of data you’ll be storing. In the next blog, we’ll be comparing some leading products from each category.

Navicat Blogs
Feed Entries
Blog Archives
Share