试述数据、数据库、数据库管理系统、数据库系统的概念。
(1)数据是数据库中存储的基本对象。
(2)数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。具有较小的冗余度、较高的数据独立性和易扩展性。
(3)数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
(4)数据库系统是由数据库、数据库管理系统、应用系统、数据库管理员构成。
试述数据库系统的三级模式结构,并说明这种结构的优点是什么。
数据库系统的三级模式结构由外模式、模式和内模式组成。
模式是所有用户的公共视图。它是数据库系统模式结构的中间层,一个数据库对应一个模式。
内模式,一个数据库只有一个内模式。它是对数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
外模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征描述。
优点:数据库系统的三级模式是对数据的三个抽象级别,使用户不必关心数据在计算机中的表示和存储。
两级映像
外模式/模式映像、模式/内模式映像,两级映像保证了数据库系统的数据能够具有较强的逻辑独立性和物理独立性。
外模式/模式映像
对于同一个模式,可以有任意多个外模式。对于每一个外模式,数据库都有一个外模式/模式来定义该外模式与模式之间的对应关系。当模式改变时,由数据库管理员对各个外模式/模式的影响做响应改变,可以使外模式保持不变。
模式/内模式映像
数据库只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的。当数据库存储结构改变时,由数据库管理员对模式/内模式映像做响应改变,可以使模式保持不变,保证了数据的物理独立性。
关系代数
选择
投影
选择列
主码,候选码,外码
①候选码:关系中能惟一标识一个元组的某一属性组。
②主码:若一个关系有多个候选码,则选定其中一个为主码。
③外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码,简称外码。
自然连接等值连接
什么是自然连接
把结果表目标列中重复的属性列去掉的等值连接为自然连接
等值连接
比较运算符为 " = " 的连接成为等值连接
试述等值连接与自然连接的区别和联系。
答:连接运算中有两种最为重要也最为常用的连接,一种是等值连接(Equijoin),另一种是自然连接(Natural join)。θ为“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组,即等值连接为
自然连接(Natural join)是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。即若R和S具有相同的属性组B,则自然连接可记作
一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
SQL的特点
1.功能综合且风格统一
2.数据操纵高度非过程化
3.面向集合的操作方式
4.以统一的语法结构提供多种使用方式。
5.语言简洁且易学易用
视图
什么是视图?
视图是关系数据库系统,提供给用户,以多种角度观察数据库中的数据的重要机制。
视图的作用
1.视图能够对机密数据提供安全保护
2.视图对重构数据库提供一定程度的逻辑独立性
3.视图能够简化用户的操作
4.视图使用户能以多种角度看待同一问题
什么是数据库的安全性?
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
数据库的不安全因素
(1)非授权用户对数据库的恶意存取和破坏
(2)数据库中重要或敏感的数据被泄露
(3)安全环境的脆弱性
角色定义与授予
书本P135-141
函数依赖
Armstrong公理
候选码
首先把左边的元素都写出来,再把右边的元素写出来
把只在左边或者右边的出现的求出来吗,此时为D 和AG
所以AG必然不是主属性
BCE可能是主属性,然后挨个列举DB DC DE求出候选码
范式
1NF 不可再分
2NF 取消非主属性对主属性的部分依赖
3NF关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z (强制依赖)Y),使得X→Y,Y→Z,成立,Y→X不成立,则称R ∈ 3NF。
最小依赖集
总结:右边唯一,没它不行
求法:1将右侧化为单属性
2.从左到右依次删除,看其闭包能不能推出右侧属性,如果能则删除
3.化简左侧非单属性
数据字典组成
数据字典的内容包括数据项、数据结构、数据流、数据存储、处理过程。
[1]数据项是数据不可再分单位。
[2]数据结构 反映了数据之间的组合关系
[3]数据流:数据结构在系统内传输路径
[4]数据存储:数据结构停留或保存的地方,也是数据流的来源和方向之一
[5]处理过程:处理过程的具体处理逻辑一般用判定表或判定树来描述
ER图
菱形代表联系 长方形代表实体 椭圆形代表属性
实体与实体之间存在联系,同时实体内部也存在联系
查询处理
查询处理步骤分为查询分析、查询检查、查询优化、查询执行
实现查询操作的算法
选择操作
1.全表扫描方法
2.索引扫描方法
连接操作
1.嵌套循环算法
2.排序合并算法
3.索引连接算法
4.Hash join算法
试述关系数据库管理系统查询优化的一般准则。
答:下面的优化策略一般能提高查询效率:
(1)选择运算应尽可能先做。
(2)投影运算和选择运算同时进行。
(3)投影同其前或其后的双目运算结合起来。
(4)某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。
(5)找出公共子表达式。
(6)选取合适的连接算法。
试述关系数据库管理系统查询优化的一般步骤。
各个关系系统的优化方法不尽相同,大致的步骤可以归纳如下:
(1)把查询转换成某种内部表示,通常用的内部表示是语法树。
(2)把语法树转换成标准(优化)形式,即利用优化算法,把原始的语法树转换成优化的形式。
(3)选择低层的存取路径。
(4)生成查询计划,选择代价最小的。
试述事务的概念及事务的4个特性。
答:(1)事务是用户定义的一个数据库操作序列,是一个不可分割的工作单位。事务具有4个特性:原子性、一致性、隔离性和持续性。这4个特性也简称为ACID特性。
①原子性:事务是数据库的逻辑工作单位,事务中的操作要么都做,要么都不做。
②一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。
③隔离性:一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
④持续性:持续性指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的,接下来的其他操作或故障不应该对其执行结果有任何影响。
登记日志文件时为什么必须先写日志文件,后写数据库?
登记日志文件必须遵循两条原则:
(1) 登记的次序严格按并发事务执行的时间次序
(2) 必须先写日志文件,后写数据库
原因:写数据库和写日志文件是两个不同的操作,在这两个操作之间可能发生故障,先写日志但没有修改数据库,按日志文件恢复是只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。如果先写数据库修改,而在日志文件中没有登记这个修改,则以后就无法恢复这个修改了。
数据转储
静态转储
在系统中无运行事务时进行的转储操作,即转储期间不允许对数据库进行任何存取、修改活动
动态转储
转储操作与用户事务并发进行,转储期间允许对数据库进行存取或修改
但是不能保证副本中的数据正确有效
事务故障恢复策略
1.反向扫描文件日志
2.对该事务的更新操作执行逆操作
3.继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理
4.如此处理下去,直到读到此事务的开始标记,事务故障恢复就完成了
系统故障的恢复
将已经提交的事务放到重做队列,将未提交的事务放到撤销队列 。正向扫描日志文件,对重做队列进行重做处理,对撤销队列做逆操作处理
介质故障恢复
1.装入最新后备数据库副本,使数据库恢复到最近一次转储的一致性状态。
2.录入有关日志副本,重做已完成事务。
并发控制会引起的问题
基本封锁类型及其作用
什么是可串行化调度
如果一个调度的结果与某一串行调度执行的结果等价,则称该调度是可串行化调度,否则是不可串调度。
什么是冲突可串行化调度
两段锁协议
1. 什么是两段锁协议
指所有事务必须分两个阶段对数据项加锁和解锁,即在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁,在释放一个封锁之后,事务不再申请和获得任何其他封锁
2. 哪两段
第一阶段:获得封锁。事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁
第二阶段:释放封锁。事务可以释放任何数据项上的任何类型的锁,但是不再申请任何锁
一级锁协议解决丢失更新问题,二级解决污读,三级解决不可重读