(三)数据库系统

1

主题

6

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2023-1-12 14:51:01 | 显示全部楼层
1、数据库系统概述

1.1 数据库系统的体系结构





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

  • 能简化用户操作 ;
  • 视图使用户能以多种角度看待同一数据;
  • 视图对重构数据库提供了一定程度的逻辑独立性;
  • 视图可以对机密数据提供安全保护
物化视图:不是传统意义上的虚拟视图,是实体化视图,其本身会存储数据,同时当原始表中的数据更新时,物化视图也会更新。



  • 数据独立性:除了数据的逻辑独立性与物理独立性外,还有数据分布独立性(分布透明性)
  • 集中与自治共享结合的控制结构:各局部的DBMS可以独立地管理局部数据库,具有自治的功能,同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用
  • 适当增加数据冗余度:在不同的场地存储同一数据的多个副本,可以提高系统的可靠性和可用性,同时也能提高系统性能,提高系统的可用性,即当系统中某个节点发生故障时,因为数据有其他副本在非故障场地上,对其他所有场地来说,数据仍是可用的,从而保证数据的完备性
  • 全局的一致性、可串行性和可恢复性
<hr/>

  • 分片透明:是指用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即如何分片对用户是透明的
  • 复制透明:用户不必关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成
  • 位置透明:是指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的
  • 局部映像透明性(逻辑透明):是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。
<hr/>

  • 分布透明性:分片透明性(水平分片、垂直分片、混合分片)、位置透明性、局部数据模型透明性
  • 分布式数据库管理系统-组成:LDBMS、GDBMS、全局数据字典、通信管理(CM)
  • 分布式数据库管理系统-结构:全局控制集中的DDBMS、全局控制分散的DDBMS、全局控制部分分散的DDBMS(局部)                                                                                                                                         局部数据库管理系统(LDBMS,Local Database Management System)                                                                    全局数据库管理系统(GDBMS,Global Database Management System)                                                通信管理(CM,Communication Management)                                                                                      分布式数据库管理系统(DDBMS,Distributed Database Management System)
1.2 数据仓库与数据挖掘

数据仓库特点:

  • 面向主题:数据按主题组织
  • 集成的:消除了源数据中的不一致性,提供整个企业的一致性全局的信息
  • 相对稳定的(非易失的):主要进行查询操作,只有少量的修改和删除操作(或不是删除)
  • 反映历史变化(随着时间变化):记录了企业从过去某一时刻到当前各个阶段的信息,可对发展历程和未来趋势做定量分析和预测


1.3 数据库设计过程



1.4 概念结构设计





(1)集成的方法:

  • 多个局部E-R图一次集成
  • 逐步集成,用累加的方式一次集成两个局部E-R
(2)集成产生的冲突及解决方法

  • 属性冲突:包括属性域冲突和属性取值冲突
  • 命名冲突:包括同名异义和异名同义
  • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同
关系模型相关概念

  • 目或度:关系模式中属性的个数
  • 候选码:候选键
  • 主码:主键
  • 主属性与非主属性:组成候选码的属性就是主属性,其它的就是非主属性
  • 外码:外键
  • 全码(ALL-Key):关系模式的所有属性组是这个关系的候选码


关系的三种类型:基本关系、查询表、视图表
完整性约束

  • 实体完整性约束
  • 参照完整性约束
  • 用户自定义完整性约束
  • 触发器
1.5 逻辑结构设计

一个实体型必须转换为一个关系模式;
联系转关系模式:


(1)一对一联系的转换有两种方式
独立的关系模式:并入两端主键及联系自身属性(主键:任一端主键)
归并(任意一端):并入另一端主键及联系自身属性(主键:保持不变)
(2)一对多联系的转换有两种方式
独立的关系模式:并入两端主键及联系自身属性(主键:多端主键)
归并(多端):并入另一端主键及联系自身属性(主键:保持不变)
(3)多对多联系的转换只有一种方式
独立的关系模式:并入两端主键及联系自身属性(主键:两端主键的组合键)


1.6 关系代数







2、 规范化理论

2.1 价值与用途

非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常
学号姓名系号系名系位置
S01张三X01外语系教学楼01
S02李四X01外语系教学楼01
S03王五X01外语系教学楼01
S04老六X02自动化系教学楼02
...............
2.2 函数依赖

设R(U)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为X \rightarrow Y,学号 \rightarrow 系号,系号 \rightarrow 系名


键:主属性与非主属性:组成侯选码的属性就是主属性,其它的就是非主属性


如何求候选键?

  • 将关系模式的函数依赖关系用“有向图”的方式表示
  • 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
  • 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
2.3 范式



第一范式(1NF)
在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称为关系模式R是第一范式。
第二范式(2NF)
当且仅当实体E是第一范式(1NF),且每一个非主属性完全依赖主键(不存在部分依赖)时,则称实体E是第二范式。
第三范式(3NF)
当且仅当实体E是第二范式(2NF),且E中没有非主属性传递依赖码时,则称实体E是第三范式。
BC范式
设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
无损分解
(1)保持函数依赖分解:设数据库模式 \rho= \left[ R_{1},R_{2},...,R_{k} \right] 是关系模式R的一个分解,F是R上的函数依赖集, \rho 中每个模式 R_{i} 上的FD集是 F_{i} ,如果 \left[ F_{1},F_{2},...,F_{k} \right] 与F是等价的(即相互逻辑蕴涵),那么称分解 \rho 保持FD
(2)无损分解:不能还原的是有损,可以还原的是无损
无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式。
2.4 Armstrong公理

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

  • 自反律(Reflexivity):若 Y\subseteq X\subseteq U ,则 X\rightarrow Y 成立
  • 增广律(Augmentation):若 Z\subseteq U 且 X\rightarrow Y ,则 XZ\rightarrow YZ 成立
  • 传递律(Transitivity):若 X\rightarrow Z 且 Y\rightarrow Z ,则 X\rightarrow Z 成立
根据上面三条规则可以得到下面三条推理规则:

  • 合并规则:由 X\rightarrow Y , X\rightarrow Z ,有 X\rightarrow YZ (增广律+传递律)
证明过程: 增广律(X\rightarrow Y )\Rightarrow(X\rightarrow XY) &&增广律 (X\rightarrow Z )\Rightarrow(XY\rightarrow YZ) 从而传递律推出 X\rightarrow YZ

  • 伪传递规则:由 X\rightarrow Y , WY\rightarrow Z ,有 XW\rightarrow Z (增广律+传递律)
证明过程: 增广律(X\rightarrow Y )\Rightarrow(WX\rightarrow WY) &&WY\rightarrow Z 从而传递律推出 XW\rightarrow Z

  • 分解规则:由 X\rightarrow Y 及 Z\subseteq Y ,有 X\rightarrow Z (自反律+传递律)
证明过程: 自反律(Z\subseteq Y)\Rightarrow(Y\rightarrow Z) &&X\rightarrow Y 从而传递律推出 X\rightarrow Z
无损分解定理:
如果R的分解为 \rho=\left\{ R_{1} , R_{2}\right\} ,F为R所满足的函数依赖集合,分解 \rho 具有无损联接性的充分必要条件是:
R_{1}\cap R_{2}\rightarrow(R_{1}-R_{2}) 或 R_{1}\cap R_{2}\rightarrow(R_{2}-R_{1})
其中 R_{1}\cap R_{2} 表示模式的交,为 R_{1} 与 R_{2} 中公共属性组成, R_{1}-R_{2} 或 R_{2}-R_{1} 表示模式的差集, R_{1}-R_{2} 表示 R_{1} 中去除 R_{1} 和 R_{2} 的公共属性所组成。当模式R分解成两个关系模式 R_{1} 和 R_{2} 时,如果 R_{1} 和 R_{2} 的公共属性能函数决定 R_{1} 中或 R_{2} 中的其它属性,这样的分解就具有无损联接性。
3、 并发控制

3.1 基本概念



3.2 存在的问题示例



3.3 封锁协议


  • 一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,可防止丢失修改
  • 二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁,可防止丢失修改,还可防止读“脏”数据
  • 三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放,可防止丢失修改,防止读“脏”数据与防止数据重复读
  • 两段锁协议:可串行化,可能发生死锁
3.4 丢失更新加锁



3.5 读”脏“数据加锁



3.6 不可重复读加锁



4、 数据库安全性

措施说明
用户标识和鉴定最外层的安全保护措施,可以使用用户账户、口令及随机数检验等方式
存取控制对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限
密码存储和传输对远程终端信息用密码传输
视图的保护对视图进行授权
审计使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来
4.1 数据备份

冷备份也称为静态备份,是将数据库正常关闭,在停止状态下,净数据库的文件全部备份(复制)下来
热备份也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来
备份方式优点缺点
冷备份非常快速的备份方法(只需要复制文件);
容易归档(简单复制即可);
容易恢复到某个时间点上(只需将文件再复制回去);
能与归档方法相结合,做数据库”最佳状态“的恢复;
低度维护,高度安全;
单独使用时,只能提供到某一时间点上的恢复;
在实施备份的全过程中,数据库必须要做备份而不能做其他工作;
若磁盘空间有限,只能复制到磁带等其他外部存储设备上,速度会很慢;
不能按表或按用户恢复;
热备份可在表空间或数据库文件级备份,备份的时间短;
备份时数据库仍可使用;
可达到秒级恢复(恢复到某一时间点上);
可对几乎所有数据库实体做恢复;
恢复是快速的;
不能出错,否则后果严重;
若热备份不成功,所得结果不可用于时间点的恢复;
因难于维护,所以要特别小心,不允许”以失败告终“;
完全备份:备份所有数据
差量备份:仅备份上一次完全备份之后变化的数据
增量备份:备份上一次备份之后变化的数据
日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中
4.2 数据库故障与恢复

故障关系故障原因解决方法
事务本身的可预期故障本身逻辑在程序中预先设置Rollback语句
事务本身的不可预期故障算术溢出、违反存储保护由DBMS的恢复子系统通日志,撤销事务对数据库的修改,回退到事务初始状态
系统故障系统停止运转通常使用检查点法
介质故障外存被破坏一般使用日志重做业务
回复

举报 使用道具

您需要登录后才可以回帖 登录 | 立即注册
快速回复 返回顶部 返回列表