数据库语言数据库语言是由DBMS提供的,用户对数据库进行查询,增,删,改数据,定义,修改数据模式等操作的用户接口。
数据库模型对非过程化得支持情况
过程化:如何做
非过程化:做什么
1、层次和网状数据模型的数据语言过程化程度高。原因:
1)数据抽象级别不高。
2)数据模型不仅包括数据的逻辑结构,还包括很多存储的物理细节。
2、关系数据模型的数据语言非过程化程度高。
原因:
1)关系数据模型抽象级别高
2)用户只需了解逻辑模式,不必关心存储细节。
3)数据模型本身比较简单。
二、数据库语言的特点
数据库语言本身一般不是计算完备的语言,不能用于独立编写应用程序。
嵌入语言。
不匹配的现象。——数据库语言嵌入高级语言中有一些不匹配,如精度。
DDL——数据描述语言
DML——数据操作语言
还有DCL——数据管理语言
DDL语言为说明性语言,主要用于定义数据库。
主要讲DML语言:它是用户操作使用数据库的接口。还可细分。如查询、修改、删除、插入。
一、DML
DML语言是用户使用、操作数据库的工具。
DML功能要求:
1、从数据库中检索数据(平常经常的动作)
2、输入功能、建库
3、删除错误或无保留价值的数据
4、修改功能,使数据库跟上它要描述的客观世界(不仅修改错的,还要跟上客观世界的变化,所以修改对数据非常重要)
5、并发访问的控制功能
6、访问权限管理功能
查询语言的基本任务:
用户向DBMS指明:
1)做什么——必须有
2)如何做——有两种方式:
a)主要由DML说明:过程化的(告诉了如何做)
b)主要由DBMS自己实现:非过程化的(只说做什么)
目前DML还主要为过程化得,只是程度不同:
过程化程度越高,用户考虑的问题越多,系统考虑的问题越少,执行速度越快,但用户越难掌握。(主要程序员)
非过程化程度越高,用户考虑的问题越少,系统考虑的问题越多,执行速度越慢,但用户越容易掌握、使用。(平常用户都可以操作)
自含系统和宿主系统
自含系统:数据库的DBMS,不光操作、定义数据库的能力,还有数据处理的能力(现在大型系统一般不用了)
宿主系统:无数据处理的能力,可以把数据语言嵌入c语言等中去,c只要有预编译器。可以扩大数据处理的功能。(只要买几个预编译器,就可以使用了)
i)对用户来说,使用数据库需要:
数据库语言、数据处理语言、两者必须相辅相成
ii)从两者关系看,有两种DML:
各自的含义和实现方法
自含系统和宿主系统
iii)优、缺点比较
CLI调用级接口
是一批用宿主语言编写的SQL函数
可组成函数库也可组成DLL,后面又发展动态函数库
供应用程序调用DBMS功能,包括:
建立与DBMS连接(因为连接需用户名,口令等,相当于开门),传送SQL语句,执行SQL语句并建立游标,返回执行结果和执行状态及各种异常。