Not all databases are created equal. There are different types of databases to choose from. Each one has its specific set of strengths, weaknesses, and purpose. When choosing the right database for your business or project, it must have features and functions to support your goals, objectives, and needs.
You might get a migraine from doing online research or reading database product reviews. Many of these articles go quite heavy on the tech jargon. We’ve created this article to help you make heads or tails of all the information available on databases. Hopefully, after reading this article, the selection process will be much easier.
Types Of Databases And Their Pros And Cons
Relational Database Management Systems (RDBMS)
Relational Database Management Systems or RDBMS were first introduced in the 1970s. The purpose of the RDBMS was to help businesses manage the increasing volume of data. Most of today’s database systems have their foundations rooted in the RDBMS.
An RDBMS works by establishing the relationship between data sets through the use of tables with columns and rows. All of the information is given a value which is stored in a specified cell.
SQL or Structured Query Language is the program used to communicate with the RDBMS. It has become the standard language for all RDBMS because it is standardized and predictable.
The creator of the RDBMS, E.F. Codd created a set of 12 rules to ensure its dependability and reliability. The 12 rules imposed strict protocols on the RDBMS internal structure and prohibited users from implementing alterations to its structure. Codd’s rules is a big reason why RDBMS remains a reliable database system today.
- Ability to handle highly-structured data.
- Provide a good level of support for ACID (Atomicity, Consistency, Isolation, and Durability) transactions.
- Easy storage and retrieval of data.
- Easy to scale up RDBMS internal structure.
- Ideal for applications that need tiered access.
- RDBMS has a hard time managing unstructured data.
- Comparatively more expensive to other database systems.
- Structure of the RDBMS makes it hard to add more servers which is the process called “Horizontal Scaling”.
When To Use An RDBMS
- If the project prioritizes data security, protection, and integrity. For example, network security, financial applications, and private healthcare information.
- Internal processes are automated.
- Data is highly-structured.
Examples: MySQL, Oracle, PostgreSQL, MS Server
A document store is defined as a non-relational database. Data is stored in documents under the XML, JSON, and BSON formats. Compared to SQL-type databases, a document store is less structured. There is no need to declare a schema for a table prior to including data.
A document store can have any data. Although a document store has a key- value pair, it also includes attribute metadata which makes it easy to launch queries.
Document Store Pros
- Very flexible type of database system.
- Has the ability to manage both semi-structured and unstructured types of data.
- You have the option to create the desired structure in a specific document without initiating changes in other documents.
- Modifications to the schema will not lead to downtime.
- Fast write speed.
- Easy to run a horizontal scale.
Document Store Cons
- Compliance with ACID transactions may be compromised in favour of having greater flexibility.
- It is not possible to run queries across documents.
When To Use A Document Store
- Content Management Process
- Rapid Prototyping
- Semi-structured or unstructured types of data
- In-depth analysis of data
Examples: MongoDB, CrouchBase
This is another type of non-relational database. Its values are associated with specific keys which is why it is alternatively referred to as an “Associative Array”.
What do we mean by a “key”?
The “key” is an identifier that is unique only to that value. A key can be anything that is allowed by a DBMS. For example, the binary sequence in Redis.
These values do not require a predetermined schema. This is because they are stored as “blobs” and can accommodate any form. These forms can be numbers, counters, strings, videos, images, binaries, lists, XML, JSON, HTML, and PHP.
Key-Value Store Pros
- Highly-flexible; ability to manage a wide range of data types.
- You are assured of high performance as keys go directly to the value without the need for indexing, searching or joins.
- Portable and convenient; stores can be transferred between systems without the need to rewrite the code.
- Affordable operational costs.
- Easy to scale horizontally.
- Impossible to query values because these types of data are stored as blobs.
- Hard to report or edit parts of values.
When To Use Key- Value Store
- User Profiles
- Profile Settings
- Session Management at scale
- Frequently accessed data but not necessarily updated on a regular basis.
Examples: Redis, Memcached
Wide- column stores are also referred to as extensible record stores and column stores. These are defined as dynamic column- oriented non-relational databases. It is sometimes viewed as a kind of key- store value with the qualities of a traditional RDBMS.
This type of database applies the concept of keyspace, not schemas. A keyspace includes column families which are like tables but have more flexible structures. This has multiple rows and distinct columns.
Wide-Column Store Pros
- Works well with both structured and semi-structured data even when compared to other types of non-relational databases.
- Easier to run a horizontal scale compared to an RDBMS.
- Its columnar database compresses better when compared to row-based systems.
- Makes it easy to manage large data sets.
- Great in managing aggregation queries.
Wide-Column Store Cons
- Hard to upload and update individual records.
- Runs slower compared to RDBMS when managing transactions.
When To Use Wide-Column Store
- Big, large- scale projects
- Data warehousing
- Big data analytics whereby speed is a top priority
Examples: Cassandra, HBase
A search engine as a type of database? Yes, it is possible with Elasticsearch as our evidence. It has become very popular with developers as it has the ability to reduce the search lag.
Elasticseach is a non-relational database that features document- based data storage and a retrieval solution that is designed for the storage and fast retrieval of data.
Search Engine Pros
- Highly scalable.
- Includes a very flexible schema.
- Fast retrieval of records.
- Features “Slemming” which is the process of analyzing the root form of a word in order to find relevant records even if a different form is being utilized.
Search Engine Cons
- Used mostly as a supplementary or intermediary type of storage.
- Questionable durability.
- Low- level security features.
- Does not support transactions.
When To Use Search Engine Type Of Database
- When you want to improve the overall user experience.
It is possible that more than one type of database will meet the demands of your project. In this case, review which of the databases in this article have the best features to support your goals and objectives.
You may also want to talk to the vendor or distributor of the database. More often than not, these vendors are very willing to customize their database to suit your specific requirements.