A tour of the 10 most common database systems for recruiters

A tour of the 10 most common database systems for recruiters
Post Author: Aaron Decker | Image by Tumisu from Pixabay
Date published: November 18, 2019

You probably don't care about all the gritty details of these database systems, nor should you. But it is very useful to understand the general purpose of each of the top 10 databases and what categories they fall into.

I'll give an example before we go any farther. You might see MySQL on a job description but see that a candidate has done PostgreSQL. Well, these are not the same thing but you would be helped to understand that they are both the same class of database and have very similar styles of SQL. So this candidate would probably be able to make that transition just fine.

Types of databases:

I'm going to do these as briefly as I can. No, seriously! I think I can write a one or two analogy of how these types of databases work.

Relational

Relation Databases are like Excel workbooks - you have workbooks (databases), sheets (tables), rows (still called rows, or records), and columns (still called columns but they have strict datatypes). Relational databases use a language called Structured Query Language (SQL) to query (interact) with the database.

By the way, the majority of people are using relational databases (even with the rise of NoSQL).

NoSQL

NoSQL basically just means any kind of database not using SQL, i.e. any kind of database that is NOT a relational database. So the stuff below - Document Style, Key-Value, Graph Database, these are all NoSQL.

Document style

Think of these where each document is like a totally separate file (like a word doc), and in a given group of files (called a collection) they may or may not be all in the same format and may or may not contain different types of data.

Key-Value

This is much simpler, you have a big list of things and given a key you can use that to look up a value. Just like a PO Box at the post office, you take a key and go the wall of boxes and when you use the key on the right box, you can open it and get the "values" out of it.

Graph database

A graph database stores data as a "graph" which is a concept in computer science that gets complex fast but a good example of a graph is a social network of people in a city. You know certain people and some of them might know you but there are spiderweb of relationships between people in a given city.

Search

A search style database system is specifically optimized for fast search. You would use this to build a custom search engine for a website or app, typically they are very good at free-form text search on documents.

1. MySQL (and MariaDB)

mysql and maria db

This is an open source relational database. Super popular, commonly used with WordPress. This is the "M" in LAMP stack. MariaDB is a fork of MySQL and is generally compatible with the same drivers.

2. Oracle

This is a paid, closed source relational database. It is commonly used in large fortune 500 companies, especially with people using a Java stack.

3. MSSQL Server

Microsoft SQL Server is a paid, closed source relational database. It is commonly used in large fortune 500 companies, especially with people using a .NET stack.

4. MongoDB

mongodb

An open source document database. Very popular with many newer software companies. This is the "M" in MEAN Stack.

5. Redis

An open source key-value store often used as a cache. That means it normally used just for temporary storage (because it is very fast).

6. Elastic Search

This is a document store that is optimized for search applications. So it is both a search database and a document database. People often use this to build log systems, but it also makes a great custom search engine.

7. PostgreSQL

mongodb

A very popular open source relational database, with some document features. It is starting to take the place that MySQL once did before Oracle acquired it.

8. Cassandra

This is actually a wide-column store but I didn't explain that term. You can think of it like a key-value store that has multiple levels.

Okay maybe that didn't make a lot of sense, but in practical terms Cassandra is used for storing enormous amounts of data because it can handle high write speeds and it's clustered configuration makes it so that it scale up easily.

9. Neo4j

This is a graph database often used with Java applications. Probably also the most popular graph database at this point. In this post I explain a little bit more about graph databases.

10. SQLite

An open source relational database, but this one is special because it isn't meant to be run on servers as part of a web application, it is meant to be embedded inside of things like mobile apps. This is a very popular technology for mobile app developers to know.

Conclusion

Well, hopefully you have a little bit of a better understanding of the general types of databases and where some of the most popular databases fall in these categories.

There are literally hundreds of technologies for storing data, and I only talked briefly about some of the most popular ones there. Sometimes I do deep explanations about a single technology, like this article I wrote on Kafka. If you have something you would like me to write about in particular, don't hesitate to ask.


Want updates?

Want new posts about tech topics emailed to you? Sign up to the list below 👇

Also, if you are interested in learning technical topics through a video course specifically created for recruiters, don't forget to check out the courses I offer.

The main course "How to Speak Software Engineering Jargon for Recruiters" is specifically designed to help tech recruiters get up to speed fast on technical topics.


Written By Aaron Decker

I'm currently a co-founder and head of engineering at a venture backed startup called Bounty. I tend to think of myself as a backend engineer that can work up and down the stack in Typescript. Previously, I have worked as a Tech Lead and hired teams, and as a Senior Software Engineer at multiple fortune 500 companies building large products. I also did a brief stint teaching programming courses as an Adjunct Instructor at a local community college, which taught me a lot about breaking down complex things into understandable chunks.