术语 DDL、DML 和 DCL 的起源是啥?

Posted

技术标签:

【中文标题】术语 DDL、DML 和 DCL 的起源是啥?【英文标题】:What are the origins of terms DDL, DML and DCL?术语 DDL、DML 和 DCL 的起源是什么? 【发布时间】:2018-06-18 17:51:30 【问题描述】:

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

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

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

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

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

【问题讨论】:

我投票结束这个问题,因为它不是关于编程的问题。 这可能很有用 - foldoc.org/Data+Definition+Language,其中提到了“DDL 参考手册”,ECE Dept U Colorado,1991。不是 DDL 的 original source,但也许这本书可能会让你更近一步. 嗯,@ZoharPeled,你意识到“DDL”、“DML”、“DCL”中的“语言”是指“编程语言”吗?例如,我想知道调用处理数据操作的 SQL 子集的适当方法,但不清楚术语“DML”是否已过时,或者只是通过一组互补的类别来增加。 好吧,那是错误的。 DDL 与 XML 或 html 一样,不再是一种编程语言。 DML 可能被认为是一种编程语言,而 DCL 是一种用于授予和撤销对数据的访问权限的语言,我认为这不能被视为一种编程语言。无论如何,您问的是语言问题,而不是编程问题。这并不是一个坏问题,我也想阅读它的答案,它只是不适合 ***。我确信 StackExchange 网络中的其他网站会更好地解决这个问题。 linguistics.stackexchange.com 或许? 我阅读了规则,没有看到任何禁止此类问题的内容。无论如何,在您等待同意您的人进行第三次投票以结束此问题时,请随时提供问题的答案并赢得赏金。 ;) 干杯! 【参考方案1】:

根据Wikipedia's "Data definition language" entry:

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

Wikipedia's "Codasyl" entry 中提供了更多详细信息:

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

"Data Base Task Group" Wikipedia entry 说它在 2 年后发布了最终报告:

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

以上内容涵盖了 DDL 和 DML。不幸的是,Wikipedia's "Data control language" entry 在撰写本文时没有太多细节,我无法在其他地方找到这个术语的起源。但考虑到上述情况和下面显示的Google Ngram graph,我会怀疑它来得较晚——可能是在 1970 年代中期的某个时间。

而here is another graph 显示了似乎支持这一点的所有三个术语:

【讨论】:

是的,有趣的东西 --- 我已经阅读了大部分内容。我希望获得一些权威参考(直接来自一些规范),或者从“过去”实际使用过这些东西的人那里听到。 DCL 的第一个参考文献是在 vi-lib.com/CheatSheets/… 上找到的 DCL (Data Control Language) Component of SQL that protect databases from harm such as lock,日期为 1971 年 9 月 27 日 @GarretWilson 我简要了解了如何获取原始规范文档 - 似乎它们可以从 here 获得)但显然这个资源只是一个查找指南 ("要访问在明尼苏达大学寻找援助数据库中找到的馆藏,请联系各个馆藏单位或存储库。"). @GarretWilson 另外值得一提的是,在 20 岁时参与过 Codasyl 原始报告的人现在大约 70 岁。根据the 2016 survey,60 岁以上的用户占 *** 用户的 0.8%。因此,也许可以找到从事相关工作的人,但您似乎不太可能听到原作者的消息。 这是一个很好的观点,@SteveChambers。有时我会忘记时间过得有多快。您当然为此付出了很多努力,毫无疑问,您应该得到赏金。谢谢你的努力。我仍然希望有一些更明确的东西。我可能会购买 SQL92 规范(如果它仍然可用)以及一些 CODASYL 文档,看看它们是否能带来更多见解。

以上是关于术语 DDL、DML 和 DCL 的起源是啥?的主要内容,如果未能解决你的问题,请参考以下文章

什么是DQL,DML,DDL,DCL

DDL/DML/DCL区别

ddl(数据定义语言) ,dml (数据操控语言),dcl(数据控制语言)

关于SQL中 DML,DDL,DCL定义

DDL,DML和DCL的区别与理解?

DDL/DML/DCL区别概述