Sometimes people make an assumption and then state it as a fact. Those that hear it, pass it on, and before you know it the mistaken assumption takes on a life of its own. This is what has happened with the computer language named SQL (pronounced ess-que-ell).
Where did SQL come from?
How did it become the query language of choice for relational databases?
Why are so many people confused about its name and how to pronounce it?
The relational database model was invented by Edgar F. “Ted” Codd, and published in a paper in 1970. Codd was working for IBM at the time, but IBM did not initially commercialize the idea. A group at IBM created a language to work with an internal relational effort. The language, SEQUEL, was an acronym for Structured English QUEry Language. The Structured English part related to the fact that statements in the language were very similar to ordinary English language statements, but were more highly structured. The QUEry Language part related to the fact that one of the things you could do with the language was to ask questions of a database. The language also could be used to create and destroy databases, as well as provide security.
IBM was finally forced into releasing a relation product when rival Relational Software, now Oracle, released one first. By that time, the name SEQUEL had already been trademarked by another company, for an unrelated product. IBM decided to drop the vowels in the name and go with SQL. This caused a couple of points of confusion.
- The people at IBM who were accustomed to calling the language SEQUEL continued to do so, causing that pronunciation to proliferate throughout the community, even though the name had been officially changed to SQL, pronounced ess-que-ell.
- People who had not been part of the original project assumed that SQL was an acronym, and that the letters SQL stood for Structured Query Language. This was an easy mistake to make, since that is what the letters had stood for in the original, unofficial acronym for the language.
The problem with calling SQL an acronym for Structured Query Language is that SQL is not a structured language, as computer scientists understand the term “structured language.” In the early days of computers, all computer languages were unstructured. By that I mean that it was possible for execution to jump from one place in the code to any other place. In many of those languages this was accomplished with a GOTO command. The result was often code that was almost impossible to understand or debug, derisively called “spaghetti code.”
In the 1970s, to overcome this problem, a discipline called structured programming came into use. It forbids the indiscriminate jumping from one place in a program to another. The GOTO command was banished in structured languages and programs became much more reliable.
SEQUEL, which was invented at about the same time that structured languages were first talked about, was not a structured language. It included GOTO functionality. SQL, when it was officially released to the world, retained that functionality and still does. It is thus not a structured language. However, as its original name implies, its syntax is a kind of structured English.
So what is to be done? People who have been pronouncing SQL as “sequel” for their entire careers will probably continue to do so. However, the difference between a structured and an unstructured language is important. We don’t want to return to the bad old days of spaghetti code. It’s important that we call a thing what it is and that we don’t call a thing what it isn’t. SQL is not a structured language, query or otherwise, and should not be called one.
For an easy introduction to SQL, try my short course here: http://pioneer-academy1.teachable.com