15.1 数据库模式

1). 关系表类型

  关系的3种类型:

  - 基本关系(基本表/基表):实际存储数据的逻辑表示;

  - 查询表:查询结果对应的表;

  - 视图表:由基表或其他视图表导出的表,本身不独立存储,数据库只存放它的定义,常称为虚表;  

2). 数据库模式

  数据库视图:是一个虚拟表,内容由查询定义(仅保存SQL查询语句)。视图同真实表一样,包含一系列带有名称的列和行数据。但是,视图并没有真正存储这些数据,而是通过查询原始表动态生成所需要的数据。

  视图的优点:

  - 视图能简化用户操作;

  - 视图使用户以多种角度看待同一数据;

  - 视图对重构数据库提供了一定程度的逻辑独立性;

  - 视图可以对机密数据提供安全保护;

  物化视图:并非传统意义上的虚拟视图,是实体化视图,其本身会存储数据。同时当原始表中的数据更新时,物化视图也会更新。

15.2 数据库备份与恢复技术

1). 数据备份

  冷备份:静态备份,将数据库正常关闭,在停止状态下,将数据库文件全部备份下来;

  热备份:动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来;

  完全备份:备份所有数据;

  差量备份:仅备份上一次完全备份之后变化的数据;

  增量备份:备份上一次备份之后变化的数据;

  日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结构保存在独立的文件中;

2). 数据库故障与恢复

  

  撤销事务:故障发生时未完成的事务,放入Undo撤销;

  重做事务:故障发生前已提交的事务,放入Redo重做;

15.3 分布式数据库

1). 分布式数据库特征:

  - 数据独立性:除了数据的逻辑独立性与物理独立性外,还有数据分布独立性(分布透明性);

  - 集中与自治共享结合的控制结构:各局部DBMS可以独立地管理局部数据库,具有自治的功能;同时,系统又设有集中控制机制,协调各部DBMS的工作,执行全局应用;

  - 适当增加数据冗余度:在不同场地存储同一数据的多个副本,可以提高系统的可靠性和可用性,同时也能提高系统性能;

  - 全局的一致性、可串行性和可恢复性;

2). 分布式数据库管理系统组成和结构

  分布式数据库管理系统组成:LDBMS、GDBMS、全局数据字典、通信管理;

  分布式数据库管理系统结构:全局控制集中的DDBMS、全局控制分散的DDBMS、全局控制部分分散的DDBMS;

  分布透明性:分片透明性(水平分片、垂直分片、混合分片)、位置透明性、局部数据模型透明性;

  分片透明:是指用户不必关心数据如何分片的,他们对数据的操作在全局关系上进行,即如何分片对用户是透明的;

  复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新由系统自动完成;

  位置透明:用户不必知道所操作的数据被放在何处,即数据分配到哪个或哪些站点存储对用户是透明的;

  局部映像透明性:最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关心局部DBMS支持哪种数据模型,使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的;

3). 两阶段提交协议2PC

  2PC事务提交的两个阶段:

  - 表决阶段:目的是形成一个共同的决定;

  - 执行阶段:目的是实现这个协调者的决定;

  两条全局提交规则:

  - 只要有一个参与者撤销事务,协调者就必须做出全局撤销的决定;

  - 只有所有参与者都同意提交事务,协调者才能做出全局提交决定;

15.4 数据库设计过程

15.5 概念结构设计

1). 组成

  实体 + 属性 + 联系

2). 不同实体集之间联系

  一对一、一对多、多对多

3). 概念结构设计

  需求分析 -> 【 抽象数据 -> 设计局部ER模型 -> 合并局部模型、消除冲突 -> 重构优化、消除冗余 】 -> 逻辑设计

  集成的方法:

  - 多个局部E-R图一次集成;

  - 逐步集成,用累加的方式一次集成两个局部E-R;

  集成产生的冲突及解决办法:

  - 属性冲突:包括属性域冲突和属性取值冲突;

  - 命名冲突:包括同名异义和异名同义;

  - 结构冲突:同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同;

15.6 关系模型基本概念  

1). 数据模型

  数据模型三要素:数据结构、数据操作、数据的约束条件;

2). 关系模型相关概念

  - 目或度:关系模式中属性的个数;

  - 候选码(候选键)

  - 主码(主键)

  - 主属性与非主属性:组成候选码的属性就是主属性,其他就是非主属性;

  - 外码(外键)

  - 全码:关系模式的所有属性组都是这个关系的候选码;

3). 完整性约束

  - 实体完整性约束:规定基本关系的主属性不能取空值;

  - 参照完整性约束:关系与关系间的引用,其他关系的主键或空值;

  - 用户自定义完整性约束:应用环境决定;

15.7 逻辑结构设计

1). 逻辑结构设计

  概念设计 -> 【 转化为数据模型 -> 关系规范化 -> 模式优化 -> 设计用户子模式 】-> 物理设计

  E-R图向关系模式的转换:实体向关系模式的转换、联系向关系模式的转换

  关系模式的规范化

  确定完整性约束(保证数据的正确性)

  用户视图的确定(提高数据的安全性和独立性)

    - 根据数据流图确定处理过程使用的视图

    - 根据用户类别确定不同用户使用的视图

  应用程序设计

2). 联系转关系模式:

  - 一对一联系的转换有两种方式:

    1). 独立关系模式:并入两端主键及联系自身属性(主键:任一端主键);

    2). 归并(任意一端):并入另一端主键及联系自身属性(主键:保持不变);

  - 一对多联系的转换有两种方式:

    1). 独立关系模式:并入两端主键及联系自身属性(主键:多端主键);

    2). 归并(多端):并入另一端主键及联系自身属性(主键:保持不变);

  - 多对多联系的转换只有一种方式:

    1). 独立关系模式:并入两端主键及联系自身属性(主键:两端主键的组合键);

15.8 关系代数

  并、交、差、笛卡尔积、投影、选择、连接

15.9 规范化理论

1). 价值与用途

  非规范化关系模式,可能存在问题包括:数据冗余、更新异常、插入异常、删除异常;

2). 函数依赖

  设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;

  部分函数依赖:{AB->D,A->C},C部分函数依赖于A;

  传递函数依赖:{A->B,B->C},A->C为传递函数依赖;

3). 求候选键

  - 将关系模式的函数依赖关系用"有向图"的方式表示;

  - 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键;

  - 若入度为0的属性集不能遍历途中所有节点,则需要尝试性的将一些中间结点(既有入度、也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键;  

4). Armstrong公理

  关系模式R<U,F>具有以下的推理规则:

  - 自反律:若Y∈X∈U,则X->Y成立;

  - 增广律:若Z∈U且X->Y,则XZ->YZ成立;

  - 传递律:若X->Y且Y->Z,则X->Z成立;

  根据以上三条推理规则可以得到下面三条推理规则:

  - 合并规则:X->Y,X->Z,则X->YZ;

  - 伪传递规则:X->Y,WY->Z,则XW->Z;

  - 分解规则:X->Y,Z∈Y,则X->Z;

5). 规范化理论—范式

  逐步优化,以解决:数据冗余、插入、修改、删除异常;

  1NF:确保属性值都是不可分的原子值;

  2NF:消除非主属性对候选键的部分依赖;

  3NF:消除非主属性对候选键的传递依赖;

  BCNF:消除主属性对候选键的部分和传递依赖;

6). 保持函数依赖分解

  设数据库模式ρ={R1,R2,...,Rk}是关系模式R的一个分解,F是R的函数依赖集,ρ中每个模式Ri上的函数依赖集为Fi。如果{F1,F2,...,Fk}与F是等价的,那么称分解ρ保持函数依赖;

7). 无损分解

  无损联接分解:将一个关系模式分解为若干关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式;

  如果R的分解为ρ={R1,R2},F为R所满足的函数依赖集合,分解ρ具有无损联接性的充分必要条件是:

R1∩R2 -> (R1-R2) 或 R1∩R2 -> (R2-R1);

15.10 并发控制

  并发产生的问题:丢失更新、不可重复读、读脏数据;

  封锁协议:

  - 一级封锁协议:事务T在修改数据R之前先对其加X锁,直到事务结束才释放;(防止丢失更新)

  - 二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁;(防止丢失更新、读脏数据)

  - 三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束后才释放;(防止丢失更新、读脏数据、不可重复读)

  - 两段锁协议:可串行化的,可能发生死锁;

15.11 数据库安全性

  用户标识和鉴定:最外层的安全保护措施,可以使用用户账户、口令、随机数检验等方式;

  存取控制:对用户进行授权,包括操作类型(查找、插入、删除、修改等)和数据对象(数据范围)的权限(Grant和Revoke);

  密码存储和传输:对远程终端信息用密码传输;

  视图的保护:对视图进行授权;

  审计:使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来;

 

posted on 2023-12-25 10:45  VaeSSAQ  阅读(11)  评论(0)    收藏  举报