PART 3

In the last blogs we examined a variety of different database types and considered some of their appropriate domains and use cases. In this blog we look at actual DBMS offerings from different vendors within each database type, starting with Relational databases and moving on to different types of NoSQL in future blogs. This is done in an attempt to highlight some of the key differences between otherwise similar technologies. We also consider the differences in performance and what costs are associated to running each database on premises or in the cloud, so that it may become clearer and easier to recognize the database that best suits your needs.

1. Relational Databases (RDBMS)

Name DB2 MSSQL MySQL Oracle
Description Relational DBMS by IBM Microsoft Relational DBMS Widely used open source RDBMS by Oracle One of the oldest and widely
used RDBMS for large enterprises
Primary DB Model Relational DBMS Relational DBMS Relational DBMS Relational DBMS
Additional DB Models Document Store
Key-Value Store
RDF Store
Document Store
Key-Value Store
Graph DBMS
Document Store
Key-Value Store
Document Store
Document Store
Key-Value Store
RDF Store
Graph DBMS
Popularity Ranking
(DBs Overall)
#6 #3 #2 #1
Popularity Ranking
(in RDBMS)
#5 #3 #2 #1
Developer IBM Microsoft Oracle Oracle
Initial Release 1983 1989 1995 1980
Current Release Db2 Data Server (11.1),
April 2016
SQL Server 2017, October 2017 8.0.11, April 2018 12 release 2 (12.2.0.1),
March 2017
License Commercial Commercial Open Source Commercial
Cloud-Based No No No No
Implementation
Language
C and C++ C++ C and C++ C and C++
Server Operating
Systems
AIX
HP-UX
Linux
Solaris
Windows
z/OS
Linux
Windows
FreeBSD
Linux
OS X
Solaris
Windows
AIX
HP-UX
Linux
OS X
Solaris
Windows
z/OS
Data Scheme Yes Yes Yes Yes
Typing Yes Yes Yes Yes
XML Support Yes Yes Yes Yes
Secondary Indexes Yes Yes Yes Yes
SQL Yes Yes Yes Yes
APIs / Access Methods JSON Style Queries
XQuery
ADO.NET
JDBC
ODBC
OLE DB
Tabular Data Stream (TDS)
ADO.NET
JDBC
ODBC
ADO.NET
JDBC
ODBC
Oracle Call Interface (OCI)
ODP.NET
JDBC
ODBC
Supported Programming
Languages
C
C#
C++
Cobol
Delphi
Fortran
Java
Perl
PHP
Python
Ruby
Visual Basic
C#
C++
Delphi
Go
Java
JavaScript (Node.js)
PHP
Python
R
Ruby
Visual Basic
Ada
C
C#
C++
D
Delphi
Eiffel
Erlang
Haskell
Java
JavaScript (Node.js)
Objective-C
OCaml
Perl
PHP
Python
Ruby
Scheme
Tcl
C
C#
C++
Clojure
Cobol
Delphi
Eiffel
Erlang
Fortran
Groovy
Haskell
Java
JavaScript
Lisp
Objective C
OCaml
Perl
PHP
Python
R
Ruby
Scala
Tcl
Visual Basic
Server-Side Scripts Yes Transact SQL and .NET languages yes PL/SQL
Triggers Yes Yes Yes Yes
Partitioning Methods Sharding Horizontal Partitioning,
Sharding through federation
Horizontal Partitioning,
Sharding with MySQL Cluster
or MySQL Fabric
Horizontal Partitioning
Replication Methods SQL Replication based on
transaction logs
yes, but depends on SQL Server Edition Master-Master replication
Master-Slave replication
Master-Master replication
Master-Slave replication
MapReduce No No No No
Consistency Concepts Temporal consistency with
Buffer Pool Dependency
Immediate Consistency Immediate Consistency Immediate Consistency
Foreign Keys Yes Yes Yes Yes
Transaction Concepts ACID ACID ACID ACID
Concurrency yes yes yes yes
Durability yes yes yes yes
In-Memory Capabilities only with BLU Acceleration
(from version 10.5)
yes yes yes
User Concepts fine grained access rights
according to SQL-Standard
fine grained access rights
according to SQL-Standard
fine grained access rights
according to SQL-Standard
fine grained access rights
according to SQL-Standard

Distinguishing Features

Oracle is the oldest and by far most popular Relational DBMS on the market today, despite being commercially licensed, and Oracle’s open source counterpart MySQL comes in close second in terms of popularity ranking. Whilst all of the other three RDBMS compared here offer secondary data models Oracle DB is the most versatile, offering document, key-value, graph and RDF store as alternative data models. Oracle DB also support the greatest number of operating systems and the largest number of programming languages, while Microsoft’s MSSQL only supports Linux and Windows.

Whiles Oracle DB and MySQL offer both master-master and master-slave replication methods, Microsoft’s MSSQL only offers replication with the higher SQL Server Editions and IBM’s DB2 uses a proprietary method of SQL replication based on database transaction logs. This makes Oracle’s two databases the better suited options for high security and fail-over safe applications, and more efficient or faster at restoring operations when a failover is initiated. Furthermore, with IBM’s DB2, in-memory is not a standard functional characteristic but rather offered as an extra feature called BLU Acceleration, which means faster read speed will cost extra. Several other RDBMS offer in-memory as extra feature as well.

Furthermore, whilst Oracle’s and Microsoft’s DBs have immediate consistency, IBM’s DB2 only has temporal consistency with a dependency on the buffer pool. Finally, Oracle’s MySQL and Microsoft’s MSSQL both offer horizontal partitioning in addition to sharding as partitioning methods. Oracle DB 11g only offers horizontal partitioning but also offers sharding with the 12c update while IBM’s DB2 only offers sharding. If you have a complex approach to splitting up your data then MySQL may be your best bet.

Performance

With regard to ease of use, functionality, and versatility, all four of these DBMS products rate very good in each of these categories. However, DB2 is a little more difficult to use than the Oracle and the SQL Server databases because of the interfaces. In terms of performance, though, Oracle DB, MySQL and DB2 are at the top of the class. From working with the technologies we see that Oracle’s performance remains unbeatable in terms of reliability and speed. But IBM’s research division has been at the forefront of things such as optimizer technology (Starburst) for a long time and the benefits of this research are showing up in DB2. With regard to SQL Server, it has advanced by leaps and bounds in the past few years in terms of performance. However, it is still somewhat hampered by its operating platform, in the past it has had to be run on a Windows server although recently it began supporting Linux as well. Unix based servers have proven themselves to be more reliable and scalable over the years.

Cost

At $17,500 USD per processor, there is some debate in the market about Oracle being too expensive for small users, but comparing SQL Server to Oracle is like comparing a moped to a Maserati! Oracle is an order of magnitude much more flexible and robust than that of SQL Server. While Oracle is at least 10x more powerful than MSSQL, it only costs approximately 3x more than SQL server in terms of licensing.

However, the license costs are only a part of the total costs for a database management system. When considering price/performance or value, TCO is a better measure because it factors-in the cost of managing the database software and the ease of utilities for performing basic database administration tasks. Oracle’s utilities are second to none, and Oracle was designed from the ground-up to be friendly to the DBA.

We have seen that the added features of Oracle make it easier to manage, and historically we have observed that lesser databases like SQL Server cost far more to operate than Oracle. Oracle is cheaper to operate, at a level that more than outweighs any difference in initial licensing costs, because DBAs can perform typical admin functions in 40% less time when using Oracle DB compared to MSSQL. For the same set of standard RDBMS tasks, MSSQL generally requires 40% more steps than Oracle and the increase in DBA productivity which results from this lower complexity and higher efficiency, could save businesses up to $33,500 per year per DBA, just by using Oracle rather than MSSQL or comparables.

The last thing to consider is the specific costs attached to different workloads and database sizes in the cloud. Storage is significantly cheaper on the Oracle Cloud Platform than on Azure or with IBM, and the feature by feature pricing model of Oracle licensing allows you to pay for only what you really need. However, running Oracle products on non-Oracle cloud environments also makes a significant difference in licensing pricing, so if you are running an Oracle database we recommend reaping the full performance and cost benefits by running it on Oracle Cloud Infrastructure.

Conclusion

Conclusively, we find that each relational database offering has its own unique strengths and weaknesses. However, in terms of performance and reliability Oracle DB takes the lead with MySQL and MSSQL in close second, and IBM’s DB2 only coming in third. Although Oracle has the highest licensing fees, the true cost of ownership versus MSSQL may be lower in terms of the potential savings achieved from less DBA involvement for management and maintenance. In short, while it may look more expensive from the outside, when you look under the hood Oracle DB may actually be cheaper in the long run. Finally, when you have mission critical apps relying on one of these databases, who wouldn’t want to pay a little more for a better night’s sleep knowing that everything will still be fine and work the way it was supposed to in the morning.

**DISCLAIMER**

Whilst we are avid technology geeks ourselves and love the nitty-gritty lugs and bolts, kernel profiling and digging through stack traces, we also recognize the need for a higher-level, more digestible approach to understanding the cloud computing landscape. From this origin and perceived need the AVM Consulting Business Blog series has a slightly different tone, aimed at business or management professionals and decision makers. We hope that this series of cloud business blogs will provide valuable information and new insights into the otherwise highly technical and rapidly changing cloud environment. Lastly, it is important to note that the views expressed in these blogs merely represent the opinions, perspectives, and point of view of AVM Consulting, and although some of the findings are based on facts, the meat of the content is purely subjective and open to interpretation. This is what we think, do what you will with this information.

REFERENCES

  1. https://www.seguetech.com/microsoft-sql-server-vs-oracle-same-different/
  2. https://www.cybrary.it/0p3n/database-differences-microsoft-sql-server-vs-oracle-database/
  3. https://www.oracle.com/database/index.html
  4. https://www.oracle.com/database/technologies/index.html
  5. https://www.microsoft.com/en-us/sql-server/sql-server-2016
  6. https://www.mysql.com/products/
  7. https://www.ibm.com/analytics/us/en/db2/
  8. https://db-engines.com/en/system/Microsoft+SQL+Server%3BOracle
  9. https://searchdatamanagement.techtarget.com/answer/DB2-compared-to-SQL-Server-and-Oracle-Ease-of-use-functionality-versatility
  10. https://www.tutorialspoint.com/db2/db2_introduction.htm
  11. http://www.dba-oracle.com/t_cost_sql_server_vs_oracle.htm
  12. https://dev.mysql.com/doc/
  13. https://www.quora.com/What-are-the-differences-between-Oracle-and-SQL-Server