Cloud Databases for Busy People

This post will give you a bird’s eye view explanation of what “cloud database” is and what kinds of cloud databases the market offers us today.

Let’s start with a short definition. Cloud database” is a remote and outsourced database (remote” means “accessed by users through the Internet or an intranet”, “outsourced” means rented by many users from an external supplier, so-called “cloud service provider”).

It is a relatively new (and not very popular right now) approach, but it grows fast and seems to be very promising.

Terminology

Database here means a set of: 
(1) database data (users’ data),
(2) database software for managing (1),
(3) database computer(s) for managing (2).

The above definition of cloud database tells about “remote renting” of (2) or (2) & (3) together.

Database software (2) is called as a database management system (DBMS), they consider (2) & (3) together as a database system.

So, in other words, cloud database can be defined basically as a set of computers connected to a network with a database software that are (both or software only) rented by many users for their data and accessed by the users through the network.

What Is a General Idea behind the “Cloud Database”?

The basic idea is just outsourcing of database software or the whole database system, i.e. this is to help users to focus on how to use their data (1) and NOT to think about how to keep their database systems (2&3) up and running. Remote access (through a network) to a database system is what is needed for convenient outsourcing, which (outsourcing) is the main thing.

To use a cloud database is like to use a taxi service instead of buying or renting a car or hiring a chauffeur. For example, using a taxi a user doesn’t need to think about, say, how to fix an engine of a taxicab or even how to drive, a user just chooses a car and tells its driver where to go.

Why “Cloud”?

Because often a cloud database is distributed over a number of computers connected to each other, so nobody knows exactly where the database is located, and so the database is located like “inside a vague cloud inside of computers”.

Do People Really Use “Cloud Database Software”?

“Cloud database” management systems (cloud DBMSs) are not too popular right now, but probably they have a great future. Their popularity (as for the last 4 years) has increased tremendously (more than tenfold)  from ~ 0.1% (in 2013) to ~ 1.6% (in 2017).

YearPopularity
2013 ~0.1%
2017 ~1.6%

(The popularity here is measured as a percentage of the overall popularity of all DBMSs.)

How to Choose “Cloud Database Software”?

User’s data type (the way of how the user’s data look like) has to correspond to a database software model (the way of how the database software looks like).

The following table provides an overall look at database software (DBMSs) models.

SQLSQL or Relational
(based on tables)
NoSQLKey-value Store
(phone directory - 2-rows table)
Document Store
(set of questionnaires --- only the whole table can be retrieved)
Wide Column Store
(dictionary - rows having different sets of columns)
Graph
(map for truck transportation company with its customers’ locations together with roads between them)

NOTE: some database software can contain a mixture of all of them.

Let’s have a closer look at database software (DBMS) models.

SQL (Relational)

This is about just tables. It is the most popular one.

Example:

column 1column 2column 3
row 1cell 1 1cell 1 2cell 1 3
row 2cell 2 1cell 2 2cell 2 3

A user basically can separately get (retrieve) any rows inside any table.

NoSQL

NoSQL database stands for “Not Only SQL” and implies that the data is stored in a different form than tables of rows and columns. There are tree main types of NoSQL databases: key-value, document-oriented, wide column store, and graph-like database. Let’s consider them separately with examples.

Key-value Store (phone directory)

The simplest one. A user gets a person’s phone number (value) if the user knows a person’s name (key).

Example:

KeyValue
Bob+7(123) 456-7890
Jane+2(234) 567-8901
Tara+388(345) 678-9012

This is a kind of the smallest table possible just with only two rows.

Document Store (catalog of predefined questionnaires)

This kind of a NoSQL database contains a set of documents (sets of data) that can be composed of different fields.

A user can get (retrieve) a document (a table) as a whole only, not a part of the document.

Wide Column Store (dictionary)

Based on complicated tables, that are called ‘column families’ for whatever reasons. These tables can have a different set of columns in different rows of the same table.

Example 1: A dictionary.

 

A column family (table) containing many words and their meanings. One word (in one row) can have many meanings and comments (many columns).

Example 2: Users’ personal data.

A column family (table) containing 3 rows. Each row contains its own set of columns.

Graph

Car transportation company map of its customers’ locations together with roads between them. Illustration:

That is it, let’s repeat the above list in short:

  • SQL (tables)
  • Key-value Store (simple 2-row tables like phone directory)
  • Document Store (tables as a whole, set of questionnaires)
  • Columns Store (tables with different rows inside one table, language dictionary)
  • Graph (like a map of a transportation company).

Reminder: a user can have data which look differently in different parts, so different database software can be used for different parts of the data.

Who offers Cloud Database Services?

There are four biggest players on the market of cloud database management systems:  

Company Market Share
Amazon ~50%
Microsoft ~30%
Google ~10%
IBM ~10%

There are also many other products like Cassandra, MongoDB, ArangoDB and etc, but here we will focus on the bigest ones. These DBMSs differ with respect to a database model.

Amazon - Amazon SimpleDB - Key-value store
- Amazon DynamoDB - Document store
- Amazon Redshift - Relational
- Amazon Aurora - Relational
Microsoft- Microsoft Azure SQL Database - Relational
- Microsoft Azure Cosmos DB - Document store, Wide column store, Key-value store, Graph
- Microsoft Azure SQL Data Warehouse - Relational, Key-value store
Google - Google BigQuery - Relational
- Google Cloud Datastore - Document store
- Google Cloud Bigtable - Wide column store
- Google Cloud Firestore - Document store *** beta
IBM - Cloudant - Key-value store

The following is the table of DBMS models against the products.

Company and Model
Google CloudAmazon Microsoft AzureIBM
Relational (SQL)BigQueryRedshift
Aurora
SQL Database
SQL Data Warehouse
X
Document Datastore
Firestore (beta)
DynamoDBCosmos DBCloudant
Wide column BigtableXCosmos DBX
Key-valueXSimpleDB Cosmos DB
SQL Data Warehouse
X
GraphXXCosmos DBX

Amazon

NameAmazon SimpleDB
DescriptionSimple cloud database service
Primary database modelKey-value store
NameAmazon DynamoDB
DescriptionCloud database service, backed by SSDs
Primary database modelDocument store
NameAmazon Redshift
DescriptionLarge scale data warehouse service for use with business intelligence tools
Primary database modelRelational
Additional database modelsKey-value store
NameAmazon Aurora
DescriptionMySQL-compatible
Primary database modelRelational
Additional database modelsDocument store
Key-value store

Microsoft

NameMicrosoft Azure SQL Database
DescriptionDatabase as a Service offering with high compatibility to Microsoft SQL Server.
It also integrates with Active Directory and Microsoft System Center and Hadoop
Primary database modelRelational
Additional database modelsDocument store
Key-value store
NameMicrosoft Azure Cosmos DB
DescriptionGlobal, large multi-model database service.
It builds upon and extends the earlier Azure DocumentDB
Primary database modelDocument store
Graph DBMS
Key-value store
Wide column store
NameMicrosoft Azure SQL Data Warehouse
DescriptionLarge warehouse service with high compatibility to Microsoft SQL Server
Primary database modelRelational DBMS
Additional database modelsKey-value store

Google

NameGoogle BigQuery
DescriptionLarge warehouse service with analytics and with append-only tables
Primary database modelRelational DBMS
Additional database modelsKey-value store
NameGoogle Cloud Datastore
DescriptionDatabase as a Service
Primary database modelDocument store
Name
Google Cloud Bigtable
DescriptionBig Data database service.
It's the same database that powers many core Google services, including Search, Analytics, Maps, and Gmail.
Primary database modelWide column store
NameGoogle Cloud Firestore
DescriptionBeta database for mobile and web apps...
offers integration with other Firebase and Google Cloud Platform products
Primary database modelDocument store

IBM

NameCloudant
DescriptionDatabase as a Service.
Cloudant's distributed CouchDB service is used the same way as standalone CouchDB, with the added advantage of data being redundantly distributed over multiple machines.
Primary database modelDocument store
[Total: 0    Average: 0/5]