|
|
|
|
移动端

2.2.2 数据操作语言(DML)

《数据库系统:设计、实现与原理(基础篇)(原书第6版)》第2章数据库环境,本章的许多材料有关DBMS的重要背景信息。然而,对数据库系统领域不熟的读者可能会发现有一些材料在初次阅读时很难理解。不用太纠结,阅读了本书的大部分章节后可重读本章的这些内容。本节为大家介绍数据操作语言(DML)。

作者:宁洪/贾丽丽/张元昭 译来源:机械工业出版社|2017-09-28 13:42

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


2.2.2 数据操作语言(DML)

DML  |  提供了一组基本操作,支持对数据库中存储数据进行各种处理操作的语言。

数据处理操作通常包括:

在数据库中插入新的数据。

对数据库中存储的数据进行修改。

检索数据库中的数据。

删除数据库中数据。

因此,DBMS的一个主要功能是提供数据操作语言,用户可以使用该语言的语句表达各种数据处理要求。数据处理被用在外部层、概念层和内部层。然而,在内部层,必须定义更复杂的低级程序,以便进行高效的数据访问。相反,在较高层,重点放在易用性以及为用户提供高效的系统界面上。

DML中涉及数据检索的部分称为查询语言。查询语言可被定义为一个高级的、具有特殊用途的语言,用来满足对数据库中的数据的各种各样的检索要求。术语“查询”专门指代用查询语言表达的检索语句,术语“查询语言”与“DML”经常不加区分地引用,尽管在技术上这是不正确的。

区分DML的标志是基本的检索机制。有两种类型的DML:过程化的和非过程化的。两者的区别是,过程化语言必须说明如何得到一个DML语句的结果,而非过程化语言只需描述希望得到什么样的输出。典型的例子是,过程化语言单个处理记录,而非过程化语言成组处理记录。

过程化DML

过程化DML | 要求用户既告诉系统需要什么数据又说明如何检索这些数据的语言。

使用过程化DML时,用户或一般的程序员需描述需要什么数据以及如何得到它。这意味着,用户必须表达通过调用适当的程序得到所需信息的所有数据访问操作。例如,某过程化DML检索一个记录,处理它,根据处理结果检索下一个记录并做类似处理,等等。这个检索过程一直进行下去,直到数据检索需要的所有数据都被收集起来为止。一般情况是将过程化DML嵌入高级编程语言,借由高级编程语言实现循环和处理导航逻辑的机制。网状和层次数据库的DML通常是过程化的(参见2.3节)。

非过程化DML

非过程化DML | 只要求用户告诉系统需要哪些数据而不需说明如何检索它们的语言。

非过程化DML允许用单个检索或更新语句描述所需数据。使用非过程化DML时,用户描述需要什么数据,而不需描述如何得到这个数据。DBMS将DML语句翻译成一或多个过程,由它负责对所要求的记录集合进行操作。这样就避免了用户必须知道数据结构的内部实现以及检索和转换数据所需的算法,从而为用户提供了可观的数据独立性。非过程化语言也称为说明性语言。关系DBMS通常提供用于数据操作的某种形式的非过程语言,典型的如SQL(结构查询语言)或者QBE(Query-By-Example,举例查询)。非过程化DML通常比过程化DML更容易学习和使用,因为需用户做的工作少了,DBMS承担的工作多了。第6~9章和附录I将详细讨论SQL,附录M将详细介绍QBE。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

计算机网络原理与实践标准教程

本书深入浅出地阐述了计算机网络技术的基本原理,介绍了当前常用的先进网络技术以及网络的实际应用知识。全书主要内容包括计算机网络概述、...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊