一、范式与规范
1.1 一个二元组一定属于BCNF
eg: R = {A, B, C},{B -> C, B->A } 等价于{B -> AC}
1.2 求候选码
- 列出左右出现的元素:L, R, LR,N。(当右边出现组合元素时,拆分开来)
- 从(L + N) 中的元素开始求闭包,能推出所有元素则一定是唯一的候选码。
- 如果L中的闭包推不出全部元素,则一个个添加LR都出现的元素,此时LR中的所有元素都要试一遍,一个个字母加上去试(最终候选码可能不止一个),一个加上去不行,就加两个。
- 当加上所有R的元素还是无法退出所有则一个一个地加上R都出现的元素。
1.3 求最小函数依赖集(结果不唯一)
右切(即右边只能出现一个元素,如果右边有符合元素则分解)
除去本求包,除去本身这条规则求闭包,如果不能推出这条规则的右边,则需要保留,反之去掉。
eg: A - > C ,除去本身,看看A能否推出C。
左部最小化(例如依赖关系{AB -> C, BD - > A, B - > A}, 此题明显B就能推出C,则无
BD->A)
整合剩下的即为最小函数依赖集。
分解第三范式,如果候选码不在最小依赖集中,则加上任意一个候选码就行。
1.4 求第三范式分解结果
- 求出候选码
- 求出最小依赖集
- 如果候选码出现在最小依赖集中,则直接用最小依赖集分解就行
- 如果候选码不出现在最小依赖集中,则需要加上最小候选码作为第三范式的分解结果。
二、优化树
2.1 典型的启发式规则
- 选择运算应尽可能先做
在优化策略中这是最重要、最基本的一条。
- 把投影运算和选择运算同时进行
如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避 免重复扫描关系。
- 把投影同其前或其后的双目运算结合起来,没有必要为了去掉某些字段而扫描一遍关系。
- 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算,连接特别是等值连接运算要比同样关系上的笛卡尔积省很多时间。
**
三、sql语句注意事项
- 聚合函数和字段组合到一起,要想能够运行通过,那么这个字段只能是分组的那个字段!!
四、数据库恢复技术
4.1 事务
事务的定义:所谓事务是用户定义的的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务的ACID特性
原子性(Atomicity):事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(Consistency):事务执行的结果必须是从一个一致性状态变到另一个一致性状态。 隔离性(Isolation):一个事务的执行不能被其他事务干扰。 持续性(Durability):持续性也称永久性,指一个事务一但提交,它对数据库中的数据的改变就应该是永久性的。
4.2 数据库恢复
- 为什么要有恢复子系统,其功能是什么?
答:因为计算机系统中硬件的故障,软件的错误,操作员的失误以及恶意的破坏是不可避免的,因此数据库必须有自己的恢复子系统。其是数据库操作管理系统的一个重要组成部分,不仅对系统的可靠程度起着决定性作用,而且对系统的运行效率也有很大影响,是衡量系统性能优劣的重要指标
什么是日志文件
答:用来记录事务对数据库所作的更新操作的文件。日志文件有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。日志文件用来进行事务故障恢复和系统故障恢复,并协助后援副本进行介质故障恢复。
- 日志文件作用?
答:日记文件在数据库恢复中起着非常重要的作用,其主要有以下三个作用: 一,事务故障恢复和系统恢复必须用日志文件, 二,在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库 三,在静态存储方式中也可以建立日志文件
故障的种类?
(1)内部事务的故障 (2)系统故障 (3)介质故障 (4) 计算机病毒
什么是检查点技术?检查点技术包括那些内容?
答:增加一个重新开始文件,并让恢复子系统在登陆日志文件期间动态地维护日志。 包括:建立检查点时刻所有正在执行的事务清单。
这些事务最近一个日志记录的地址。
五、绪论
数据库系统的特点:
(1)数据结构化:数据库系统与文件系统的本质区别。 (2)数据的共享性高、冗余度低且易于扩充。 (3)数据独立性高 (4) 数据有数据库管理系统统一管理和控制
数据模型是数据库系统的核心和基础。
两类数据模型:
(1)概念模型:也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。 (2)逻辑模型和物理模型:逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、对相关系数据模型、半结构化数据模型等。主要用于数据库管理系统的实现。物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法。
六、数据库的安全性
6.1 存取控制
- 存取控制机制主要包括定义用户权限和合法权限检查两部分。SQL标准主要通过SQL的GRANT语句和REVOKE语句来实现。
6.2 数据库角色
- 数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。