8

我熟悉应用于 SQL 的 DDL、DML 和 DCL 的定义。有很多网站和书籍对它们进行了定义和解释。但似乎没有人给出权威的参考。

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

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

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

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

4

1 回答 1

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 替代品的推动下,独立于主机语言的数据库的想法开始出现。

并且“数据库任务组”维基百科条目说它在 2 年后发布了最终报告:

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

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

用于数据控制语言的 Google Ngram 图

是另一个图表,显示了似乎支持这一点的所有三个术语:

所有三个术语的 Google Ngram 图

于 2018-01-12T13:28:28.553 回答