What Is "Structured" in Structured Query Language

What is Structured in Structured Query Language?

The original full name was SEQUEL, which stood for "Structured English Query Language". It later had to be renamed to SQL due to trademark issues.

So basically, it was yet another attempt to sell a programming language as "just like English, except with a formal syntax" (hence "structured").

Does the 'S' in SQL stand for standard or structured?

Wikipedia says first:

SQL often referred to as Structured Query Language.

And then further down:

SQL was developed at IBM by Donald D. Chamberlin and Raymond F. Boyce in the early 1970s. This version, initially called SEQUEL (Structured English Query Language).

There's no mention of "standard query language" on the whole page.

The other test of course is to search Google for "structured query language" vs "standard query language". For which I currently get 913,000 results compared to 124,000. So clearly "structured" wins, however interestingly there was apparently a divided preference at one time. This site says:

In the early days of the system there was divided preference between Standard Query Language and Structured Query Language but it did not make a whole lot of difference since most people most of the time called it by the acronym SQL. Now the overwhelming but not complete preference is for Structured Query Language.

Difference between different types of SQL?

SQL is Structured Query Language is a
database computer language designed
for managing data in relational
database management systems (RDBMS).

PostgreSQL is an object-relational
database management system
(ORDBMS).1 It is released under a
BSD-style license and is thus free
software. As with many other
open-source programs, PostgreSQL is
not controlled by any single company,
but has a global community of
developers and companies to develop
it.

SQLite is an ACID-compliant embedded
relational database management system
contained in a relatively small (~225
KB1) C programming library. The
source code for SQLite is in the
public domain.

MySQL (pronounced /maɪˌɛskjuːˈɛl/1
My S-Q-L, or "My sequel"
/maɪˈsiːkwəl/) is a relational
database management system (RDBMS)2
which has more than 6 million
installations. 3 MySQL stands for
"My Structured Query Language". The
program runs as a server providing
multi-user access to a number of
databases.

Groupings of queries

One variant is to group the query language depending on the database categories.

  • relational (Microsoft SQL Server, Oracle, MySQL, MariaDB)
  • object-relational (PostgreSQL)
  • NoSQL
    • Key-value (Riak, Redis, Couchbase Server, MemcacheDB)
    • Columnar (HBase)
    • Document (MongoDV, CouchDB)
    • Graph (Neo4j)

So far, so good, but in reality the border line between the categories become thinner and thinner.

For example, we have graph support in Microsoft SQL Server and T-SQL we have syntax like the following:

-- Find Restaurants that John's friends like
SELECT Restaurant.name
FROM Person person1, Person person2, likes, friendOf, Restaurant
WHERE MATCH(person1-(friendOf)->person2-(likes)->Restaurant)
AND person1.name='John';

In MongoDB, we have graph,too using graph lookup:

{
$graphLookup: {
from: <collection>,
startWith: <expression>,
connectFromField: <string>,
connectToField: <string>,
as: <string>,
maxDepth: <number>,
depthField: <string>,
restrictSearchWithMatch: <document>
}
}

So, maybe the the highest-level grouping is just a group of database management system following the American National Standards Institute (ANSI) standards (relational and object-relational) and the others.

structured query language for JSON (in Python)

I thought about this a little bit, and I lean towards something less specific such as a "JSON Query Language" and considered something more generic. I remembered from working with C# a bit that they had a somewhat generic querying system called LINQ for handling these sort of querying issues.

It looks as though Python has something similar called Pynq which supports basic querying such as:

filtered_collection = From(some_collection).where("item.property > 10").select_many()

It even appears to have some basic aggregation functions. While not being specific to JSON, I think it's a least a good starting point for querying.



Related Topics



Leave a reply



Submit