数据库期末考试题
一、简答题
- 数据(Data)数据库(DB)数据库管理系统(DBMS)数据库系统(DBS)的概念
2、存取控制、自主存取控制方法授权:授予与回收、数据库角色、强制存取控制方法
3、游标的概念、使用原因、使用步骤
4、事物ACID的特性
5、对于封锁机制的问题描述
数据(Data)是数据库中存储的基本对象
数据库(Database,简称DB)是长期储存在计算机内、有组织的可共享的大量数据的集合。
数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。在不引起混淆的情况下常常把数据库系统简称为数据库。
数据库管理员 (DataBase Administrator,DBA)
数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件。是基础软件,是一个大型复杂的软件系统 。
存取控制机制组成:(1)定义用户权限(通过DD数据字典),并将用户权限登记到数据字典中。用户对某一数据对象的操作权力称为权限。 DBMS提供适当的语言来定义用户权限,存放在数据字典中,称做安全规则 (2)合法权限检查 。用户发出存取数据库操作请求,DBMS查找数据字典,进行合法权限检查。超过权限定义则拒绝。
用户权限定义和合法权检查机制一起组成了DBMS的存取控制子系统
9、自主存取控制,简称DAC。C2级支持。用户对不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限。用户还可将其拥有的存取权限转授给其他用户
强制存取控制方法。B1支持。每个数据库对象被标定一定密级,每个用户也被授权某个级别许可证。对任意对象,只有具有合法许可证的用户才可以存取。
游标使用原因:(1)SQL语言与主语言具有不同数据处理方式(2)SQL语言是面向集合的,一条SQL语句原则上可以产生或处理多条记录(3)主语言是面向记录的,一组主变量一次只能存放一条记录(4)仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求(5)嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式
游标概念:游标是数据库系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果
使用游标的步骤
(1)申明游标:定时会写查询块,执行时暂不执行
(2)打开游标:执行游标定义里的查询块,并把结果存到游标里。当前指针指向查询块的第一条记录
(3)推进游标指针并取当前记录 :将指针当前记录传递给主变量,按照自己想法或程序设定推进游标
(4)关闭游标:意味着清空缓冲区,有commit时意味提交了物理更新。
事务 :是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务和程序是两个概念。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。一个程序通常包含多个事务。事务是恢复和并发控制的基本单位
BEGIN TRANSACTION----开始标志
COMMIT-------正常结束标志(事务正常结束),会提交事务的所有操作(读+更新)
ROLLBACK----异常结束标志。事务异常终止,事务滚回到开始时的状态
事务的ACID特性:**
原子性(Atomicity):事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做
一致性(Consistency):务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态一致性状态
隔离性(Isolation):一个事务的执行不能被其他事务干扰
持续性(Durability ):一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。
保证事务ACID特性是事务处理的任务,破坏事务ACID特性的因素以及原因
(1) 多个事务并行运行时,不同事务的操作交叉执行
(2)事务在运行过程中被强行停止
1、并发控制
(1)并发操作:不同用户同一时间操作同一对象
事务是并发控制的基本单位
并发控制机制的任务
对并发操作进行正确调度
保证事务的隔离性
保证数据库的一致性
(2)并发操作带来的数据不一致性:丢失修改、不可重复读、读“脏”数据、
- 数据不一致性的原因:由于并发操作破坏了事务的隔离性
- 并发控制的主要技术:
封锁:排他锁(写锁)、共享锁(读锁)
封锁协议:一级封锁协议、二级封锁协议、三级封锁协议
活锁:先到先服务原则
死锁:
死锁的预防:一次封锁法、顺序封锁法
一级封锁协议
事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。
正常结束(COMMIT) 非正常结束(ROLLBACK)
一级封锁协议可防止丢失修改,并保证事务T是可恢复的。
在一级封锁协议中,如果仅仅是读数据不对其进行修改,是不需要加锁的,所以它不能保证可重复读和不读“脏”数据。
二级封锁协议
一级封锁协议加上事务T在读取数据R之前必须先对其
加S锁,读完后即可释放S锁。
二级封锁协议可以防止丢失修改和读“脏”数据。
在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。
三级封锁协议
一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
三级封锁协议可防止丢失修改、读脏数据和不可重复读。
数据库全书简答题汇总(期末、考研)
于 2025-01-09 21:48:45 首次发布