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
- https://www.seguetech.com/microsoft-sql-server-vs-oracle-same-different/
- https://www.cybrary.it/0p3n/database-differences-microsoft-sql-server-vs-oracle-database/
- https://www.oracle.com/database/index.html
- https://www.oracle.com/database/technologies/index.html
- https://www.microsoft.com/en-us/sql-server/sql-server-2016
- https://www.mysql.com/products/
- https://www.ibm.com/analytics/us/en/db2/
- https://db-engines.com/en/system/Microsoft+SQL+Server%3BOracle
- https://searchdatamanagement.techtarget.com/answer/DB2-compared-to-SQL-Server-and-Oracle-Ease-of-use-functionality-versatility
- https://www.tutorialspoint.com/db2/db2_introduction.htm
- http://www.dba-oracle.com/t_cost_sql_server_vs_oracle.htm
- https://dev.mysql.com/doc/
- https://www.quora.com/What-are-the-differences-between-Oracle-and-SQL-Server
Write a Reply or Comment