I'm familiar with the definitions of DDL, DML, and DCL as applied to SQL. There are lots of web sites and books that define and explain them. But no one seems to give an authoritative reference.
I'm interested in the origin of these terms. Did SQL invent them? Were they already used historically for other databases? Did some other standard create them, and they were used by SQL? Or did SQL even use them at all in the ISO specifications?
One book indicates that SQL92 included these terms, but I can't find them in the draft available online. (Maybe I'll have to purchase the final SQL92 ISO specification to know for sure.) SQL:1999 switched to a different classification system.
(One reason I'm curious is that, if these were general industry terms not invented by SQL, then it wouldn't necessarily be incorrect to continue using them, complementary to the new SQL classifications.)
Can anyone provide more insight on the origin of these terms, along with authoritative references to any standards or specifications that might have originally defined them?
According to Wikipedia's "Data definition language" entry:
The concept of the data definition language and its name was first introduced in relation to the Codasyl database model, where the schema of the database was written in a language syntax describing the records, fields, and sets of the user data model.[1] Later it was used to refer to a subset of Structured Query Language (SQL) for declaring tables, columns, data types and constraints. SQL-92 introduced a schema manipulation language and schema information tables to query schemas. These information tables were specified as SQL/Schemata in SQL:2003. The term DDL is also used in a generic sense to refer to any formal language for describing data or information structures.
A bit more detail is provided in Wikipedia's "Codasyl" entry:
In October 1969 the DBTG published its first language specifications for the network database model which became generally known as the CODASYL Data Model. This specification in fact defined several separate languages: a data definition language (DDL) to define the schema of the database, another DDL to create one or more subschemas defining application views of the database; and a data manipulation language (DML) defining verbs for embedding in the COBOL programming language to request and update data in the database. Although the work was focused on COBOL, the idea of a host-language independent database was starting to emerge, prompted by IBM's advocacy of PL/I as a COBOL replacement.
And the "Data Base Task Group" Wikipedia entry says it published a final report 2 years later:
In April 1971, the DBTG published a report containing specifications of a Data Manipulation Language (DML) and a Data Definition Language (DDL) for standardization of network database model. The first DBTG proposals had already been published in 1969. The specification was subsequently modified and developed in various committees and published by other reports in 1973 and 1978. The specification is often referred to as the DBTG database model or the CODASYL database model. As well as the data model, many basic concepts of database terminology were introduced by this group, notably the concepts of schema and subschema.
The above covers DDL and DML. Unfortunately Wikipedia's "Data control language" entry doesn't have much detail at the time of writing and I was unable to find the origins of this term elsewhere. But given the above and the Google Ngram graph shown below, would suspect it came later - possibly some time in the mid-1970s.
And here is another graph showing all three terms that appears to back this up:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With