文章目录
数据库模式
外模式和概念模式存在逻辑独立性
概念模式和内模式存在物理独立性
关系表类型
关系的3种类型
基本关系 (通常又称为基本表或基表)实际存在的表,实际存储数据的逻辑表示。
查询表:查询结果对应的表
视图表:由基表或其他视图表导出的表,本身不独立存储,数据库只存放它的定义,常称为虚表。
数据库视图
它一个虚拟表(逻辑上的表),其内容由查询定义(仅保存SOL查询语句)同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并没有真正存储这些数据,而是通过查询原始表动态生成所需要的数据。
视图的优点
1、视图能简化用户操作
2、视图使用户能以多种角度看待同一数据
3、视图对重构数据库提供了一定程度的逻辑独立性
4、视图可以对机密数据提供安全保护
物化视图
它不是传统意义上虚拟视图,是实体化视图,其本身会存储数据。同时当原始表中的数据更新时,物化视图也会更新。
分布式数据库
数据独立性。
除了数据的逻辑独立性与物理独立性外,还有数据分布独立性(分布透明性)
集中与自治共享结合的控制结构。
各局部的DBMS可以独立地管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。
适当增加数据冗余度。
在不同的场地存储同一数据的多个副本可以提高系统的可靠性和可用性,同时也能提高系统性能。(提高系统的可用性,即当系统中某个节点发生故障时,因为数据有其他副本在非故障场地上,对其他所有场地来说,数据仍然是可用的,从而保证数据的完备性。
全局的一致性、可串行性和可恢复性。
分布式数据库管理系统-组成
局部数据库管理系统LDBMS
全局数据库管理系统GDBMS
全局数据字典
通信管理(CM)
分布式数据库管理系统-结构
全局控制集中的DDBMS
全局控制分散的DDBMS
全局控制部分分散的DDBMS
分布透明性
分片透明性(水平分片、垂直分片、混合分片)
位置透明性
局部数据模型透明性
分片透明:是指用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即如何分片对用户是透明的。
复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。
位置透明:是指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的
局部映像透明性(逻辑透明): 是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。
两阶段提交协议 2PC
2PC事务提交的两个阶段
表决阶段,目的是形成一个共同的决定
执行阶段,目的是实现这个协调者的决定
两条全局提交规则
只要有一个参与者撤销事务,协调者就必须做出全局撤销决定
只有所有参与者都同意提交事务,协调者才能做出全局提交决定
数据库设计过程
概念结构设计
集成的方法:
多个局部E-R图一次集成。
逐步集成,用累加的方式一次集成两个局部E-R。集成产生的冲突及
解决办法:
属性冲突:包括属性域冲突和属性取值冲突。
命名冲突:包括同名异义和异名同义。
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
关系模型基本概念
数据模型
数据模型三要素:
数据结构、数据操作、数据的约束条件
相关概念
目或度:关系模型中属性的个数
候选码(候选键)【唯一标识元组,且无冗余】
主码(主键)
主属性与非主属性:组成候选码的属性就是主属性
外码(外键)【其他关系的主键】
全码:关系模式的所有属性组是这个关系的候选码
完整性约束
实体完整性约束:规定基本关系的主属性不能取空值
参照完整性约束:关系与关系间的引用,其他关系的空值和主键
用户自定义完整性约束:应用环境决定
逻辑结构设计
E-R图向关系模式的转换:
— 实体向关系模式的转换
— 联系向关系模式的转换
关系模式的规范化
确定完整性约束(保证数据的正确性)
用户视图的确定(提高数据的安全性和独立性)
— 根据数据流图确定处理过程使用的视图
— 根据用户类别确定不同用户使用的视图
应用程序设计
关系模式
一个实体型必须转换为一个关系模式
联系转关系模式:
(1)一对一联系的转换有两种方式。
独立的关系模式:并入两端主键及联系自身属性。(主键:任一端主键)
归并 (任意一端) :并入另一端主键及联系自身属性。(主键:保持不变)
(2)一对多联系的转换有两种方式。
独立的关系模式:并入两端主键及联系自身属性
归并 (多端) :并入另一端主键及联系自身属性。(主键:多端主键)(主键: 保持不变)
(3)多对多联系的转换只有一种方式。
独立的关系模式:并入两端主键及联系自身属性。(主键:两端主键的组合键)
关系代数
并、交、差
笛卡尔积、投影、选择
连接
自然连接
规范化理论
非规范化可能存在的问题
数据冗余、更新异常(修改操作一致性问题)、插入异常、删除异常
函数依赖
设R(U,F)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,V,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为X->Y。
键
求候选键
将关系模式的函数依赖关系用“有向图”的方式表示
找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点) 并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
特殊函数依赖
Armstrong公理
关系模式R<U,F>来说有以下的推理规则:
A1.自反律 (Reflexivity) : 若Y⊆X⊆U,则X->Y成立。
A2.增广律(Augmentation):若Z⊆U且X->Y,则XZ->YZ成立。
A3传递律(Transitivity):若X->Y且Y->Z,则X->Z成立。
根据A1,A2,A3这三条推理规则可以得到下面三条推理规则:
合并规则:由X->Y,X->Z,有X->YZ。 (A2,A3)
伪传递规则:由X->Y,WY->Z,有XW->Z。 (A2,A3)
分解规则:由X->>Y及Z⊆Y,有X->Z。 (A1,A3)
范式判断
第一范式 (1NF)
在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式。
简单属性和复合属性、单值属性和多值属性、NULL属性、派生属性
第二范式 (2NF)
在满足第一范式的基础上,要求数据表中的非主键字段必须完全依赖于主键,而不能依赖于主键的一部分。换句话说,非主键字段必须只与整个主键相关,而不能只与主键的某一部分相关。
第三范式 (3NF)
在满足第二范式的基础上,要求数据表中的非主键字段间不能存在传递依赖。
BC范式 (BCNF)
设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
模式分解
保持函数依赖分解
设数据库模式p={R1,R2,···,Rk}是关系模式R的一个分解,F是R上的函数依赖集,p中每个模式Ri上的FD集是Fi。如果{F1,F2,··,Fk}与F是等价的(即相互逻辑蕴涵),那么称分解p保持FD。
无损分解
有损:不能还原。
无损:可以还原。
无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式
并发控制
事务的ACID特性
原子性
是指事务包含的所有操作要么全部成功,要么全部失败回滚。这些操作是一个整体,不能部分地完成。
一致性
是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
隔离性
是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的。
持久性
是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,无论发送何种故障,都不应对其有任何影响。
一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改
二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读“脏”数据
三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据(不可)重复读
两段锁协议。可串行化的。可能发生死锁
数据库的安全性
措施 | 说明 |
---|---|
用户标识和鉴定 | 最外层的安全保护措施,可以使用用户帐户、口令及随机数检验等方式 |
存取控制 | 对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限。(Grant和Revoke) |
密码存储和传输 | 对远程终端信息用密码传输 |
视图的保护 | 对视图进行授权 |
审计 | 使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来 |
数据备份
冷备份也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来
热备份也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
优点 | 缺点 | |
---|---|---|
冷备份 | 非常快速的备份方法(只需复制文件);容易归档(简单复制即可);容易恢复到某个时间点上(只需将文件再复制回去),能与归档方法相结合,做数据库“最佳状态的恢复,低度维护,高度安全 | 单独使用时,只能提供到某一时间点上的恢复;在实施备份的全过程中,数据库必须要作备份而不能做其他工作;若磁盘空间有限只能复制到磁带等其他外部存储设备上,速度会很慢;不能按表或按用户恢复 |
热备份 | 可在表空间或数据库文件级备份,备份的时间短;备份时数据库仍可使用;可达到秒级恢复(恢复到某一时间点上);可对几平所有数据库实体做恢复;恢复是快速的 | 不能出错,否则后果严重;若热备份不成功所得结果不可用于时间点的恢复,因难于维护,所以要特别小心,不允许“以失败告终” |
完全备份:备份所有数据
差量备份:仅备份上一次完全备份之后变化的数据
增量备份:备份上一次备份之后变化的数据
日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中
数据库故障与恢复
故障关系 | 故障原因 | 解决方法 |
---|---|---|
事务本身的可预期故障 | 本身逻辑 | 在程序中预先设置Rollback语句 |
事务本身的不可预期故障 | 算术溢出、违反存储保护 | 由DBMS的恢复子系统通过日志,撤销事务对数据库的修改,回退到事务初始状态 |
系统故障 | 系统停止运转 | 通常使用检查点法(系统重启时自动完成) |
介质故障 | 外存被破坏 | 一般使用日志重做业务 |
撤销事务(UNDO):故障发生时未完成的事务,放入Undo撤销
重做事务(REDO):故障发生前已提交的事务,放入Redo重做。