DDL,DML和DCL这两个术语的起源是什么?

Gar*_*son 8 sql database ddl acronym dml

我熟悉应用于SQL的DDL,DML和DCL的定义.有很多网站和书籍可以定义和解释它们.但似乎没有人给出权威的参考.

我对这些术语的起源感兴趣.SQL发明了吗?他们是否已经在历史上用于其他数据库?是否有其他标准创建它们,它们是否被SQL使用?或者SQL甚至在ISO规范中都使用它们?

一本书表明SQL92包含这些术语,但我无法在线提供的草稿中找到它们.(也许我必须购买最终的SQL92 ISO规范才能确定.)SQL:1999切换到不同的分类系统.

(我很好奇的一个原因是,如果这些是非SQL发明的一般行业术语,那么继续使用它们并不一定是不正确的,这是对新SQL分类的补充.)

任何人都可以提供有关这些术语起源的更多信息,以及对最初可能定义它们的任何标准或规范的权威参考吗?

Ste*_*ers 5

根据维基百科的“数据定义语言”条目

数据定义语言的概念及其名称最初是在与 Codasyl 数据库模型相关的情况下引入的,其中数据库的模式是用描述用户数据模型的记录、字段和集的语言语法编写的。 [1] 后来它被用来指用于声明表、列、数据类型和约束的结构化查询语言 (SQL) 的子集。SQL-92 引入了模式操作语言和模式信息表来查询模式。这些信息表在 SQL:2003 中被指定为 SQL/Schemata。术语 DDL 也用于一般意义,指用于描述数据或信息结构的任何形式语言。

维基百科的“Codasyl”条目中提供了更多细节:

1969 年 10 月,DBTG 发布了网络数据库模型的第一个语言规范,该模型通常被称为 CODASYL 数据模型。该规范实际上定义了几种独立的语言:一种数据定义语言 (DDL) 用于定义数据库的模式,另一种 DDL 用于创建一个或多个定义数据库应用程序视图的子模式;以及定义动词的数据操作语言 (DML),用于嵌入 COBOL 编程语言以请求和更新数据库中的数据。尽管工作集中在 COBOL 上,但在 IBM 倡导将 PL/I 作为 COBOL 替代品的推动下,独立于宿主语言的数据库的想法开始出现。

“数据库任务组”维基百科条目说,两年后,发表了一份最终报告:

1971 年 4 月,DBTG 发布了一份报告,其中包含数据操作语言 (DML) 和数据定义语言 (DDL)的规范,用于网络数据库模型的标准化。第一个 DBTG 提案已于 1969 年发布。该规范随后在各个委员会中进行了修改和开发,并于 1973 年和 1978 年由其他报告发布。该规范通常被称为 DBTG 数据库模型或 CODASYL 数据库模型。除了数据模型之外,该小组还介绍了数据库术语的许多基本概念,特别是模式和子模式的概念。

以上涵盖了 DDL 和 DML。不幸的是,维基百科的“数据控制语言”条目在撰写本文时没有太多细节,我无法在其他地方找到该术语的起源。但是鉴于上面的内容和下面显示的Google Ngram 图表,我们会怀疑它来得更晚——可能是 1970 年代中期的某个时间。

数据控制语言的 Google Ngram 图

这里是另一个图显示所有三个方面,似乎支持这一行动:

所有三个术语的 Google Ngram 图

  • @GarretWilson 还值得一提的是,在 20 岁参与原始 Codasyl 报告的人现在大约 70 岁。根据 [2016 年调查](https://insights.stackoverflow.com/survey/2016#developer-profile-age),60 多岁的用户占 StackOverflow 用户的 0.8%。所以也许有可能找到一个曾经从事过相关工作的人,但似乎不太可能从原作者那里听到。 (2认同)