Whether you’re a developer or not, chances are that you’ve been part of a conversation about databases. While there are different types of databases in use today, it can be hard to know the difference between each one if you’re not a expert.
So, in this article, we’ll take a quick look at the basics about databases, explain the difference between relational and non-relational databases, and go over the 5 most popular databases that are in use with developers today.
A Quick Overview of Databases
A database is an organized collection of data, which can be accessed by electronic means. Techopedia defines it as a method of storing, managing and retrieving business information. The word is commonly shortened as ‘db’ and it refers to digital information.
About Multitier Architecture
To better understand what databases are, you need to know about software architecture. The most common architecture is the 3-tier model composed of a presentation tier, a logic tier and a data tier.
- The presentation tier is the user interface with which users interact with an application.
- The logic tier executes commands and performs calculations using data.
- The data tier includes the storage and database from where the logic tier gets the data to process.
Database Management System (DBMS)
In common usage, the word ‘database’ usually refers to database management system or DBMS, and for most purposes, the terms are completely interchangeable.
A DBMS is a system that allows for the management, organization, and modification of databases.
While there are many different types of databases and management systems, they all work using these same basic operational principles.
Understanding SQL and NoSQL (Relational and Non-Relational Databases)
Different types of databases exist: relational, flat file based, hierarchical, network or object-oriented.
One of the biggest changes in database design came about in the 2000s, when NoSQL began popularizing the “non-relational database.”
In the past, almost all databases were relational. They used a set data structure, which allowed them to link information from different “tables”, using indexes. These data “buckets” could then be linked through a “relationship”. SQL (Structured Query Language) is the language used for this kind of databases. It provides commands to create, retrieve, update, and delete information stored in the tables.
NoSQL, then, stands for “No Structured Query Language”. It is a non-relational type of database. In this case, databases do not use any kind of relational enforcement. The architect of the database determines what relationships, if any, are necessary for their data, and creates them.
Both relational and non-relational databases are better for different things. SQL, for example, would be better suited for an application that requires extremely complex, intensive queries between different databases. For creating an online checkout system, for example, SQL would be an ideal choice.
On the other hand, non-relational databases like NoSQL are typically better for applications that require horizontal scaling and more flexible architecture, such as big data analytics and real-time web applications.
The best database for your needs depends on the particulars of your project, and your organizational objectives.
Here Are the Most Popular Databases
After this basic overview of database design and structure, let’s discuss the 5 most popular database management systems that are in use by developers today.
MySQL is an open-source relational DBMS. It was first released in 1995, and has become a critical component of almost all open-source web development stacks . So much that it’s part of the web archetype known as LAMP (Linux, Apache, MySQL, Perl/PHP/Python).
MySQL is written in C+ and C++, and has an enormous amount of support and documentation. This is due to its popularity and its lifetime.
MySQL is used by almost every major company. Some major websites using MySQL databases include Facebook, Google, Twitter, YouTube, and Flickr, just to name a few.
- Pros: high performance for large databases, open source
- Cons: incremental backups are uneasy to implement, no support for XML or OLAP
MariaDB is a “fork” (a project based on the source code) of MySQL, founded by a number of developers who had concerns over MySQL’s purchase by the Oracle Corporation.
Because it is a fork, MariaDB is quite similar to MySQL when it comes to basic architecture and functionality, and it maintains a high compatibility with the other database. Some users of MariaDB include Google, Mozilla, and the Wikimedia Foundation.
- Pros: high speed, scalable architecture and plug-ins, encryption at different levels
- Cons: data migration is not easy
MongoDB is one of the most popular non-relational databases, despite its recent release in 2009. Published under a free-and-open-source license, MongoDB is primarily a document-oriented database, intended for use with semi-structured data like text documents. MongoDB does not use schemas.
- Pros: high speed, high performance, easy configuration, support for JSON
- Cons: high data size, high memory usage, limited nesting of files, security is not set by default
Redis, like MongoDB, is relatively young. It was first released in 2009. The name REdis means “REmote Dictionary Server”. It is an open-source, non-relational database, primarily intended for use as a key-value store. It uses an associative array where a key is only linked to one value in a collection.
Redis is written in ANSI C.
- Pros: high speed, easy configuration, multiple data types supported
- Cons: requires more memory, no support for join queries
PostgreSQL is an object-relational DBMS, with an emphasis on standards of compliance and extensibility for large-scale projects. Its primary feature is incredibly efficient scaling.
PostgresSQL fits for a single-machine application, a large internet-facing application, and for all applications in between. This has made it one of the most popular relational databases in use today. Apple, for example, uses PostgreSQL by default on the MacOS Server operating system.
PostgresSQL is coded in C language.
- Pros: highly scalable, predefined functions, support for JSON
- Cons: uneasy to configure, lack of performance for high-load operations
Choosing the Right Database for Your Application
Every DBMS or database has its strengths and weaknesses. That’s why it’s important to understand the basic differences between database types, such as relational vs. non-relational. We hope that this article has given you more insight into what databases are and why they’re so important in our modern, data-focused world.
Want to see these databases in action? Ask for you custom demo of Ormuco on this page.