8

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?

Steve Chambers
  • 37,270
  • 24
  • 156
  • 208
Garret Wilson
  • 18,219
  • 30
  • 144
  • 272
  • 5
    I'm voting to close this question as off-topic because it's not a question about programming. – Zohar Peled Jan 10 '18 at 22:25
  • This may be useful - http://foldoc.org/Data+Definition+Language, which mentions "DDL Reference Manual", ECE Dept U Colorado, 1991. Not the `original source` for DDL, but perhaps that book may take you one step closer. – James L. Jan 11 '18 at 01:25
  • Um, @ZoharPeled, you realize the "language" in "DDL", "DML", "DCL" refers to "programming language"? I want to know the appropriate way to call a subset of SQL that deals with data manipulation, for example, and it's unclear if the term "DML" has been obsoleted, or merely augmented by a complementary set of categories. – Garret Wilson Jan 11 '18 at 12:23
  • Well, that's just wrong. DDL is no more a programming language than XML or HTML. DML Might be considered a programming language, and DCL is a language for granting and revoking access to data, I don't think that can be considered as a programming language. And in any case, you are asking a linguistic question, not a programming question. That doesn't make it a bad question, and I would also like to read the answer to it, it just doesn't fit Stackoverflow. I'm sure some other website in the StackExchange network would be better for this question. https://linguistics.stackexchange.com/ perhaps? – Zohar Peled Jan 11 '18 at 13:33
  • Um (x2), @ZoharPeled, you realize that CODSYL (which may have originated the term) used a DDL as one of the languages for programming the database? I am beginning to suspect you don't fully understand the question sufficiently to answer it, which is why you believe it is off-topic. – Garret Wilson Jan 11 '18 at 13:42
  • Well, you don't have to agree with me... but would you mind pointing out a single program that is written using only DDL? (or DDL+DCL, I don't mind) – Zohar Peled Jan 11 '18 at 13:46
  • It doesn't matter if DDL, DML, and DCL are programming languages or not. The fact is that your question is not about a programming problem - **"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?"** Is not the same as **"How do I use DDL + DML To create and populate my database tables?"** (that should be closed as too broad, but that's besides the point)... You might want to read https://stackoverflow.com/help/on-topic again. – Zohar Peled Jan 11 '18 at 13:50
  • 5
    I read the rules and didn't see anything that prohibits this type of question. In any case, while you wait for a third vote from someone who agrees with you to close this question, feel free to provide an answer to the question and win the bounty. ;) Cheers! – Garret Wilson Jan 11 '18 at 16:41
  • Well played... ;-) but I'm not here for a linguistic adventure. – Zohar Peled Jan 14 '18 at 04:07

1 Answers1

5

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.

Google Ngram graph for Data control language

And here is another graph showing all three terms that appears to back this up:

Google Ngram graph for all three terms

Steve Chambers
  • 37,270
  • 24
  • 156
  • 208
  • Yes, interesting stuff --- I had already read most of that. I was hoping to get some _authoritative_ reference (directly from some specification), or hear from someone who had actually worked with this stuff "back in the day". – Garret Wilson Jan 12 '18 at 13:44
  • The first reference of DCL was found on http://vi-lib.com/CheatSheets/LV_DB_Connectivity_Toolkit_Cheat_Sheet_093.pdf as `DCL (Data Control Language) Component of SQL that protect databases from harm such as lock` dated 27 Sep 1971 – Srini V Jan 12 '18 at 13:52
  • @GarretWilson I had a brief look at trying to obtain the original specification documents - seems they may be available from [here](http://archives.lib.umn.edu/repositories/3/resources/35/inventory)) but apparently this resource is only a finding guide *("To access the collections found on the University of Minnesota Finding Aid Database, please contact the individual collection unit or repository.")*. – Steve Chambers Jan 12 '18 at 15:21
  • 2
    @GarretWilson Also worth mentioning that someone who'd worked on the original Codasyl report at the age of 20 would be about 70 now. According to [the 2016 survey](https://insights.stackoverflow.com/survey/2016#developer-profile-age), over 60s represented 0.8% of StackOverflow users. So perhaps possible to find someone who'd worked on something related since but seems a bit unlikely you'll be hearing from the original authors. – Steve Chambers Jan 12 '18 at 15:23
  • 1
    That's a good point, @SteveChambers. Sometimes I forgot how fast time goes by. You certainly put a lot of work into this and no doubt deserve the bounty. Thanks for your effort. I still wish for something a little more definitive. I may purchase the SQL92 specification, if it's still available, as well as some CODASYL documents, just to see if they bring any more insight. – Garret Wilson Jan 17 '18 at 18:17