数据库系统原理 - 自考4735复习资料(参照大纲)(3)

2020-06-21 16:30

第五章、SQL语言

5.1、SQL简介(识记)

1、SQL数据库的体系结构 SQL 基本上也是三级结构

关系模式=基本表, 存储模式=存储文件, 子模式=视图 元组=行 属性=列 体系结构要点:

(1)SQL模式是表和约束的集合

(2)表由行集合构成,一行是列的序列,每列对应一个数据项 (3)表有三种:基本表,视图,导出表

(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可以存放多个基本表 (5)用户可以用SQL语句对基本表和视图进行查询等操作 (6)SQL用户可以是应用程序,也可以是终端用户 2、SQL的组成 核心四部分:

(1)数据定义语言=SQL/DDL(定义SQ模式,基本表,视图和索引等结构) (2)数据操纵语言 SQL/DML(数据的查询和更新)

(3)嵌入式SQL 语言的使用规定(嵌入在主程序中使用)

(4)数据控制语言 SQL/DCL (对一个表或视图的授权,完整性规则的描述,事务控制)

3、SQL的特点

(1)强大的查询功能,select 可进行相当复杂的操作

(2)SQL不是一个应用开发语言,只提供数据库的操作功能

(3)SQL是国际标准语言,有利于个数据库之间交换数据,有利于程序的移植,有利于实现高度的数据独立性,有利于实现标准化

(4)SQL的词汇不多,核心功能只用了9个单词,接近英语语法,容易学习使用

5.2、SQL的数据定义(综合应用)

创建模式: create schema 模式名 authororization 用户名 删除模式: drop schema 模式名

复习SQL语句

完整性约束:主键子句(primary key),外键子句(foreign key),检查子句(check)

5.6、嵌入式SQL(领会)

1、嵌入式SQL的实现方法

(1)SQL语言有两种使用方法:

终端交互方式下使用(交互式SQL);

嵌入在主语言的程序中使用(嵌入式SQL)

(2)嵌入SQL的实现,两种处理方式:

扩充主语言的编译程序,使之能处理SQL语句 采用预处理方式,目前多采用此方式 预处理方式:

预处理程序对源程序进行扫描,识别出SQL语句并处理成函数的调用形式

再用主语言的编译程序编译成目标程序

(3)SQL2规定,SQL_STATE 是一个特殊的共享变量,起着解释SQL语句执行状况的作用,它是一个由5个字符组成的字符数组

2、嵌入式SQL的使用规定 (1)嵌入式SQL 语句格式:

Exec SQL SQL语句 End_Exec

结束标志在C和pascal 中用 ; 表示

(2)允许嵌入SQL语句用主语言的程序变量 (称为共享变量)

引用时,这些变量前要加 : 作为前缀标识 以示与数据库中变量有所区别 这些变量要用SQL的 declaer 语句说明 Exec sql begin declear section

Char sno[5],name[9]; Char SQL_state[6]; exec sql end declear section; (3)游标:

由于SQL语句处理的是记录集合,而主语言一次只能处理一个记录,因此需要游标机制,把集合操作转换成单记录处理方式

游标定义语句:exec sql declear 游标名 cursor for

Select 语句

End exec

游标语句是一个说明语句,其中的select 并不立即执行

游标打开语句:exex sql open 游标名 end_exec

该语句执行游标中的sql 语句,同时游标处于活动状态。 游标是一个指针,此时指向查询结果的第一行。

游标推进语句:exec sql fetch from 游标名 into 变量表 end_exec

此时游标推进一行,并把游标指向行(当前行)中的值取出,送到共享变量,变量表是用逗号分开的共享变量组成。

Fetch语句常置于主语言的循环结构中,并借助主语言的处理语句逐一查询结果中的一个元组。

游标关闭语句:exec sql close 游标名 end_exec

关闭的游标可以再次打开,与新的查询结果相联系 游标处于活动状态时,可以删除更改游标指向的元组

3、嵌入式SQL的使用

(1)不涉及游标的SQL DML 语句

P142 实例

(2)涉及游标的SQL DML 语句(P143 实例)

Select 语句的使用范式:当select查询结果为多个元组时,一定要用游标机制吧多个元组一次一个的传给主程序语言处理,步骤:

先用游标定义语句定义一个游标与某个select语句对应。

游标用open打开后处于活跃状态,此时游标指向第一个元组之前。

每执行一次fetch 语句,游标指向下一个元组,并把数值送到共享变量。 最后用close关闭游标。 (3)卷游标的定义和推进

游标在推进时只能沿查询结果中元组顺序从头到尾一行一行的推进,并不能向上推进,因此出现了卷游标。 语法:

Exec sql declear 游标名 scroll cursor for

Select 语句 End_exec 推进方式:

P145

4、动态SQL语句

(1)动态SQL预备语句(不执行,只声明)

Exec sql prepare 动态SQL语句名 from 共享变量或字符串

(2)动态SQL 执行语句(P146实例) Exec sql execute 动态SQL语句名 两点改进:

当预备语句中组合而成的SQL语句只需要执行一次,那么预备语句呵呵性语句可合成一句

exec sql execute immediate 共享变量或字符串

当预备语句中组合而成的SQL语句的条件值尚缺时,可在执行语句中用 using 补上

Exec sql execute 动态SQL语句名 using 共享变量

5.7存储过程与SQL/PSM(识记)

减少局限性的方法之一:使用SQL标准的存储过程和SQL/PSM(持久存储模块)技术

1、数据库存储过程与函数

数据库中的程序(代码)是以数据库对象的形式存储在数据库中,因此称为存储过程 定义:存储过程使用SQL语句和流程控制语句编写的模块,存储过程经过编译优化后存储 在数据库服务器端的数据库中,使用时即可调用。 存储过程优点:

(1)提高运行速度

(2)增强了SQL的功能和灵活性

(3)可以降低网络的通信量 (4)减轻了程序编写的程序量 (5)间接实现安全控制功能 声明:

P147 书上讲的不详细 2、SQL/PSM(P148) (1)顺序执行 (2)条件分支语句 (3)循环语句

第六章、数据库管理

对数据库的管理主要通过四个方面实现:数据库的恢复、并发控制、完整性控制、安全性控制。

6.1事务(领会)

1、事务的定义

定义:事务是构成单一逻辑工作单元的操作集合,要么完整的执行,要么不执行。不论发生 任何情况,DBS必须保证事务能正确完整的执行

(1)事务以 begin transaction 开始 ,以 commit 、rollback 结束 (2)Commit 表示事务成功的执行(提交),rollback表示事务执行不成功的结束(回退撤销)

(3)对数据库的访问是建立在读和写操作上的:

read(x):从磁盘数据库中读到内存缓冲区中 write(y):从内存缓冲区中,写会磁盘的数据库

2、事务的ACIS性质

(1)原子性:一个事务对数据库的所有操作,是一个不可分割的单元,要么全执行,要么全不执行。由DBMS事务管理子系统来实现

(2)一致性:一个事务独立执行的结果,应保持数据库的一致性,数据不会因为事务的执行而遭破坏。由DBMS完整性子系统执行测试任务。

(3)隔离性:多个事务并发执行,系统应保证这些事务先后单独执行的结果一样。由DBMS并发控制子系统实现的。

(4)持久性:一旦事务完成全部操作,它对数据库的所有更新应持久性的反应在数据库中。由DBMS的恢复管理子系统实现。

6.2、数据库的恢复(领会)

定义:系统能把数据库从被破坏、不正确的状态,恢复到最近的一个正确的状态,DBMS的这种能力称为数据库的可恢复性(recovery)

1、典型的恢复策略

(1)平时做好两件事:转储和建立日志 (2)一旦发生数据库故障,分两种情况处理

(1)物理破坏:此时数据库已经不可用,就必须装入最近一次拷贝的数据库备份到新的磁盘,然后利用日志库进行REDO 已提交的事务

(2)非物理破坏:利用日志库 UNDO 所有不可靠的修改,再利用日志库执行 REDO 。

2、故障类型和恢复方法 (1)事务故障

(1)可以预期的事务故障:事务代码中加入 rollback 执行 undo 操作 (2)非预期的事务故障: 由系统直接对该事务执行undo 操作 (2)系统故障

(1)对未完成事务做undo处理

(2)对已提交但更新还留在缓冲区的事务做redo处理 (3)介质故障

此项故障为毁灭性故障,此时恢复过程如下:

(1)重装最近转储的后备副本到新的磁盘,是数据库恢复到转储时的一致性 (2)在日志中找出最近转储以后提交的事务

(3)将这些事务进行redo 处理,讲数据库恢复到故障前的某一时刻的一直状态 事务故障和系统故障的恢复由系统自动进行,而介质故障需要DBA的配合进行,介质故障通常称为硬故障,其他两个为软故障

3、检查点技术

REDO和UNDO 采用了此技术 (1)检查点方法

P156

(2)检查点方法的恢复算法

(1)根据日志文件建立事务重做队列和事务撤销队列

(2)对重做队列中的事务进行REDO处理,对撤掉队列中的事务进行UNDO处理

进行UNDO处理的方法是:反向扫描日志文件,根据撤销队列的记录对没一个撤销事务的更新操作执行逆操作

6.3数据库的并发控制(领会)

1、并发操作带来的3个问题 (1)丢失更新问题 (2)读脏数据问题 (3)不可重复问题 2、封锁技术

定义:锁:锁是一个与数据项相关的变量,对可能应用于该数据项上的操作而言,锁描述了该数据项的状态。锁分排他型锁(X锁)&共享型锁(S锁)

(1)X锁

定义:某事务对某数据加了X锁,在解除X前不允许其他事务对其加任和锁

申请:XFIND R 表示事务对数据R 申请加X锁 解除X锁: Xrelease R


数据库系统原理 - 自考4735复习资料(参照大纲)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:管理学多选题5

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: