We've all seen them—those articles, blogs, newsgroup threads, and vendor whitepapers that tout the virtues of one database platform while attacking a competitor. Most of them (excepting perhaps the vendor whitepapers) tend to eventually break down into technological jihads or foundationless rants. A technical professional seeking to determine the proper platform for a given task is left with conflicting "facts" and wildly differing opinions, and doesn't have the information needed to make the right decision for their company.
I thought that I might apply a formal discipline to the subject, and because logic is the language of debate, I'll apply the rules of logic to the discussion. In the end, it seems that Microsoft SQL Server logically tends to fill most business requirements, and as such is often the "best" database.
According to the Merriam-Webster Dictionary, logic is "a science that deals with the principles and criteria of validity of inference and demonstration: the science of the formal principles of reasoning". Because logic (although that of another branch) is an integral part of computer science (per Wikipedia), it seems to be the best method of determining the proper database platform for use in a given situation. Line up the information logically and the truth usually emerges.
Logical reasoning includes three process steps:
- Defining the language and terms of the argument
- Creating premises, inferences and conclusions
- Refuting logical errors in the contrary argument
Using this process, I will show that Microsoft SQL Server is the proper database choice.
Defining Terms for the Debate
First, we need to define our terms and state exactly what the argument is about. Notice that the proof I am attempting to show, and the answer most often sought by people stumbling on the bewildering discussions found on the Web, is precisely this: "Is SQL Server the right database to use in this situation?" Right away, we have two ambiguous terms that must be eliminated. (Ambiguous terms are those which might be interpreted in more than one way.) In the question, the words that show ambiguity are "right" and "situation."
What might be "right" to a person with a background in Oracle would most likely not have the same connotation to those with SQL Server experience—and neither might include the factors that other audiences think of. I'll begin by defining what I mean by "right" so that we have a common understanding of what is being stated.
"Right" in this case refers to the set of factors that most completely satisfies the requirements of the user. The "user," in the case of the database platform, involves three audiences at most companies: the technical staff, the management, and the users of the data that the database stores. Each of these audiences will have different decision points and weights for those factors. These contrasting desires must be taken into account when choosing the database platform.
"Situation" is defined as the overall environment at the time of database use. The environment includes factors such as external and internal decision factors. For instance, if I want to impress my date, fast food isn't right for the situation. If, on the other hand, I'm short on cash and in a hurry, fast food is the right choice for the situation. In the case at hand, the situation is determined not merely by technical merit or TPC performance, but also includes factors such as feature set, speed of implementation, ease of use, and more. As proof, you can look at the car you drive: Is it the one that goes the fastest? Or is it one that you could afford to purchase, repair, and insure? Your transportation situation is determined not by the best car on the market, but by the best fit for you. Companies are much the same.