第15章 数据库系统

张开发
2026/4/3 18:39:13 15 分钟阅读
第15章 数据库系统
目录15.1 数据库模式15.2 关系表类型15.3 数据库模式15.4 数据备份15.5 数据库故障与恢复15.6 分布式数据库15.7 数据库设计过程15.8 概念结构设计15.9 数据模型15.10 数据约束条件选择题15.11 逻辑结构设计15.12 物理设计15.13 数据库实施阶段15.14 关系代数15.15 规范化理论-价值与用途15.16 规范化理论-函数依赖15.17 规范化理论-键15.18 规范化理论-求候选键15.19 规范化理论-Armstrong公理15.20 规范化理论-范式15.21 并发控制-事务的ACID特性15.22 并发控制-并发产生的问题15.23 并发控制-封锁协议15.24 数据库安全性15.1数据库模式三级模式外模式、概念模式、内模式二级映像外模式/概念模式、概念模式/内模式逻辑独立性对应外模式/概念模式物理独立性对应概念模式/内模式概念模式:基本表外模式:(子模式、用户模式)用以描述用户看到或使用的那部分逻辑结构内模式:物理结构和存储方式的描述索引、文件组织方式。15.2关系表类型关系的3种类型基本关系(通常又称为基本表或基表)实际存在的表实际存储数据的逻辑表示。查询表查询结果对应的表。视图表由基表或其他视图表导出的表本身不独立存储数据库只存放它的定义常称为虚表。15.3数据库模式数据库视图它一个虚拟表(逻辑上的表)其内容由查询定义(仅保存SQL查询语句)同真实的表一样视图包含一系列带有名称的列和行数据。但是视图并没有真正存储这些数据而是通过查询原始表动态生成所需要的数据。视图的优点:1、视图能简化用户操作2、视图使用户能以多种角度看待同一数据3、视图对重构数据库提供了一定程度的逻辑独立性4、视图可以对机密数据提供安全保护视图的缺点:性能差物化视图它不是传统意义上虚拟视图是实体化视图其本身会存储数据。同时当原始表中的数据更新时物化视图也会更新。适用于多查询少更新的场景。15.4数据备份冷备份也称为静态备份是将数据库正常关闭在停止状态下将数据库的文件全部备份(复制)下来。热备份也称为动态备份是利用备份软件在数据库正常运行的状态下将数据库中的数据文件备份出来。完全备份备份所有数据差量备份仅备份上一次完全备份之后变化的数据增量备份备份上一次备份之后变化的数据日志文件事务日志是针对数据库改变所做的记录它可以记录针对数据库的任何操作并将记录结果保存在独立的文件中。15.5数据库故障与恢复撤销事务(UNDO)故障发生时未完成的事务放入Undo撤销。重做事务(REDO)故障发生前已提交的事务放入Redo重做。事务故障的恢复步骤:反向扫描文件日志查找该事务的更新操作;对该事务的更新操作执行逆操作;继续反向扫描日志文件查找该事务的其他更新操作并做同样处理如此处理下去直至读到此事务的开始标记事务故障恢复完成。系统故障的恢复步骤:两个原因:一是:由于一些未完成事务对数据库的更新已写入数据库;二是:由于一些已提交事务对数据库的更新还留在缓冲区没来得及写入数据库。系统故障的恢复是在重启时自动完成不需要用户干预。步骤如下:正向扫描日志文件找出在故障发生前已经提交的事务将其事务标记重做Redo队列。同时找出故障发生时尚未完成的事务将其事务标识为记入撤销Undo队列。对撤销队列中的各个事务进行撤销处理:反向扫描文件对Undo事务的更新操作执行逆操作对重做队列中的各个事务进行重做处理:正向扫描文件对每个Redo事务重新执行日志文件登记操作。15.6分布式数据库1.数据独立性。除了数据的逻辑独立性与物理独立性外还有数据分布独立性(分布透明性)。2.集中与自治共享结合的控制结构。各局部的DBMS可以独立地管理局部数据库具有自治的功能。同时系统又设有集中控制机制协调各局部DBMS的工作执行全局应用。3.适当增加数据冗余度。在不同的场地存储同一数据的多个副本可以提高系统的可靠性和可用性同时也能提高系统性能。(提高系统的可用性即当系统中某个节点发生故障时因为数据有其他副本在非故障场地上对其他所有场地来说数据仍然是可用的从而保证数据的完备性。4.全局的一致性、可串行性和可恢复性。分布式数据库管理系统-组成LDBMSGDBMS全局数据字典通信管理(CM)分布式数据库管理系统-结构全局控制集中的DDBMS全局控制分散的DDBMS全局控制部分分散的DDBMS局部数据库管理系统(LDBMSLocal Database Management System)全局数据库管理系统(GDBMSGlobal Database Management System)通信管理(CMCommunication Management)分布式数据库管理系统(DDBMSDistributed Database Management System)分布透明性分片透明性水平分片、垂直分片、混合分片位置透明性局部数据模型透明性分片透明是指用户不必关心数据是如何分片的它们对数据的操作在全局关系上进行即如何分片对用户是透明的。这是分布透明性的最高层次。复制透明用户不用关心数据库在网络中各个节点的复制情况被复制的数据的更新都由系统自动完成。位置透明是指用户不必知道所操作的数据放在何处即数据分配到哪个或哪些站点存储对用户是透明的局部映像透明性(逻辑透明)是最低层次的透明性该透明性提供数据到局部数据库的映像即用户不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言数据模型和操纵语言的转换是由系统完成的。因此局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。两阶段提交协议 2PC2PC事务提交的两个阶段1表决阶段目的是形成一个共同的决定2执行阶段目的是实现这个协调者的决定两条全局提交规则1只要有一个参与者撤销事务协调者就必须做出全局撤销决定2只有所有参与者都同意提交事务协调者才能做出全局提交决定15.7数据库设计过程ER模型ER图在信息系统生命周期当中是属于系统分析当中数据建模的产物在数据库设计当中属于概念结构设计的产物。15.8概念结构设计概念结构设计是对信息进行分析和定义形成独立于计算机系统的企业信息模型。E-R模型-联系类型判断两个不同实体集之间联系一对一11一对多:1n)多对多mn集成的方法:多个局部E-R图一次集成。逐步集成用累加的方式一次集成两个局部E-R。集成产生的冲突及解决办法:属性冲突包括属性域冲突和属性取值冲突。命名冲突包括同名异义和异名同义。结构冲突包括同一对象在不同应用中具有不同的抽象以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。15.9数据模型数据模型三要素数据结构、数据操作、数据的约束条件。关系型数据模型两大分类概念数据模型按照用户的观点来对数据和信息建模。比如ER图。基本数据模型按照计算机系统的观点来对数据和信息建模。主要用于DBMS的实现。常见的基本数据模型有层次模型、网状模型、关系模型和面向对象模型。1层次模型2网状模型3面向对象模型4关系模型关系模型相关概念学生(学号姓名年龄班级编号)目或度关系模式中属性的个数。候选码(候选键)主码(主键)主属性与非主属性组成候选码的属性就是主属性其它的就是非主属性。外码(外键)外码是指关系模式R中的属性或属性组它不是R的码但它是其他关系的码。全码(ALL-Key)关系模式的所有属性组是这个关系的候选码。15.10数据约束条件选择题实体完整性约束主键不能为空参照完整性约束外键参照的完整性外键可以为空用户自定义完整性约束反映的某一个具体应用所对应的数据必须满足一定的约束条件。比如年范围、性别男女等触发器15.11逻辑结构设计逻辑结构设计阶段将抽象的概念模型转化为与选用的DBMS产品所支持的数据模型相符合的逻辑模型。E-R图向关系模式的转换:1实体向关系模式的转换2联系向关系模式的转换关系模式的规范化确定完整性约束(保证数据的正确性)用户视图的确定(提高数据的安全性和独立性)1根据数据流图确定处理过程使用的视图2根据用户类别确定不同用户使用的视图应用程序设计★一个实体型必须转换为一个关系模式★ 联系转关系模式:一对一联系的转换有两种方式。独立的关系模式并入两端主键及联系自身属性。(主键任一端主键)归并(任意一端)并入另一端主键及联系自身属性。(主键保持不变)2.一对多联系的转换有两种方式。独立的关系模式并入两端主键及联系自身属性。(主键多端主键)归并(多端)并入另一端主键及联系自身属性。(主键保持不变)3.多对多联系的转换只有一种方式独立的关系模式并入两端主键及联系自身属性。(主键两端主键的组合键)15.12物理设计物理结构设计是逻辑模型在计算机中的具体实现方案。建立实际的数据库结构包括数据库模式与子模式的描述、数据库完整性描述、数据库安全性描述和数据库物理存储参数描述。15.13数据库实施阶段数据库实施阶段是根据逻辑设计和物理设计的结果建立数据库编制与调试应用程序。15.14关系代数属性列目元组行/记录实例交n并U差-笛卡尔积x投影π选择σ自然连接⋈连接的性能略微优于笛卡尔积会做压缩操作。15.15规范化理论-价值与用途非规范化的关系模式可能存在的问题包括:数据几余、更新异常(修改操作一致性问题)、插入异常、删除异常。15.16规范化理论-函数依赖设R(U,F)是属性U上的一个关系模式X和Y是U的子集r为R的任一关系如果对于r中的任意两个元组uv只要有u[X]v[X]就有u[Y]v[Y]则称X函数决定Y或称Y函数依赖于X记为X→Y。15.17规范化理论-键主属性与非主属性组成候选码的属性就是主属性其它的就是非主属性。15.18规范化理论-求候选键1将关系模式的函数依赖关系用“有向图”的方式表示2找入度为0的属性并以该属性集合为起点尝试遍历有向图若能正常遍历图中所有结点则该属性集即为关系模式的候选键3若入度为0的属性集不能遍历图中所有结点则需要尝试性的将一些中间结点(既有入度也有出度的结点)并入入度为0的属性集中直至该集合能遍历所有结点集合为候选键15.19规范化理论-Armstrong公理关系模式RUF来说有以下的推理规则A1.自反律(Reflexivity)若Y⊆X⊆U则X →Y成立。A2.增广律(Augmentation)若Z⊆U且X→Y则XZ→YZ成立。A3.传递律(Transitivity)若X→Y且Y→Z则X→Z成立。根据A1A2A3这三条推理规则可以得到下面三条推理规则合并规则由X→YX→Z有X→YZ。 (A2A3)伪传递规则由X→YWY→Z有XW→Z。 (A2A3)分解规则由X→Y及Z⊆Y有X→Z。 (A1A3)15.20规范化理论-范式BCNF⊂3NF⊂2NF⊂1NF规范化理论-第一范式第一范式(1NF)在关系模式R中当且仅当所有域只包含原子值即每个属性都是不可再分的数据项则称关系模式R是第一范式。简单属性和复合属性、单值属性和多值属性、NULL属性、派生属性规范化理论-第二范式第二范式(2NF)当且仅当实体E是第一范式(1NF)且每一个非主属性完全依赖主键(不存在部分依赖)时则称实体E是第二范式。规范化理论-第三范式第三范式(3NF)当且仅当实体E是第二范式(2NF)且E中没有非主属性传递依赖于码时则称实体E是第三范式。规范化理论-BC范式BC范式(BCNF)设R是一个关系模式F是它的依赖集R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。规范化理论-是否保持函数依赖★保持函数依赖分解设数据库模式p{R1R2…Rk}是关系模式R的一个分解F是R上的函数依赖集p中每个模式Ri上的FD集是Fi。如果{F1F2…Fk}与F是等价的(即相互逻辑蕴涵)那么称分解p保持FD。规范化理论-无损分解★保持函数依赖分解★ 无损分解什么是有损什么又是无损?有损不能还原。无损可以还原。无损联接分解指将一个关系模式分解成若干个关系模式后通过自然联接和投影等运算仍能还原到原来的关系模式定理如果R的分解为p{RR}F为R所满足的函数依赖集合分解p具有无损联接性的充分必要条件是RI n R2→(R1-R2)或RI n R2→(R2-R1)交-差其中 R,∩R,表示模式的交为R1与R2中公共属性组成R1-R2或R2-R1表示模式的差集R1-R2表示R1中去除R1和R2的公共属性所组成。当模式R分解成两个关系模式R1和R2时如果R1与R2的公共属性能函数决定R1中或R2中的其它属性这样的分解就具有无损联接性。判断无损分解的2个方法表格法具有通用性公式法只能应用于2个的情况15.21并发控制-事务的ACID特性15.22并发控制-并发产生的问题15.23并发控制-封锁协议一级封锁协议事务T在修改数据R之前必须先对其加X锁直到事务结束才释放。可防止丢失修改二级封锁协议一级封锁协议加上事务T在读取数据R之前先对其加S锁读完后即可释放S锁。可防止丢失修改还可防止读“脏”数据三级封锁协议一级封锁协议加上事务T在读取数据R之前先对其加S锁直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据(不可)重复读两段锁协议可串行化的。可能发生死锁两阶段锁协议是实现事务隔离性的常见方案该协议通过定义锁的增长和收缩两个阶段约束事务的加锁和解锁过程能够保证事务的串行化执行但由于事务不能一次得到所有需要的锁因此该协议会可能会导致死锁。两阶段提交协议分为准备阶段和提交/回滚阶段这是一种在分布式数据库系统或分布式事务中使用的算法其核心目标是确保所有参与分布式事务的节点要么全部提交事务要么全部回滚事务从而维护数据的强一致性。两阶段提交协议通常包含两种角色协调者负责驱动整个提交流程并做出最终决定。参与者分布式系统中所有涉及该事务的数据库或服务节点。它们各自管理自己的数据并执行事务操作。在准备阶段协调者向所有参与者发送一条“准备”消息。每个参与者在收到“准备”消息后会执行本地事务、记录日志等操作。如果所有准备工作都成功参与者会回复协调者一个“同意”消息。在提交/回滚阶段协调者根据第一阶段的回复结果做出全局决策并通知所有参与者。这里分为两种情况情况一所有参与者都回复“同意”协调者向所有参与者发送“提交”命令。参与者在收到“提交”命令后正式将本地事务提交永久性地更新数据并释放所有锁。参与者完成提交后向协调者发送“已完成”的确认消息。情况二任何一个或多个参与者回复“中止”或协调者在规定时间内未收到某个参与者的回复协调者向所有参与者发送“回滚”命令。参与者在收到“回滚”命令后利用之前写入的撤销日志来回滚整个事务撤销所有本地操作并释放所有锁。参与者完成回滚后向协调者发送“已回滚”的确认消息。在每个参与者在执行本地事务的操作时都需要依赖数据库本身的排他锁和共享锁机制。排他型封锁(简称X封锁、写锁:如果事务T对数据A可以是数据项、记录、数据集乃至整个数据库实现了X封锁那么只允许事务读取和修改数据(写数据)A其他事务要等事务解除X封锁以后才能对数据A实现任何类型的封锁。共享型封锁(简称S封锁、读锁如果事务T对数据A实现了S封锁那么允许事务T读取数据A但不能修改数据(写数据A在所有S封锁解除之前绝不允许任何事务对数据A实现X封锁。15.24数据库安全性数据库的安全机制中通过提供(存储过程)第三方开发人员调用进行数据更新从而保证数据库的关系模式不被第三方所获取。存储过程(Stored Procedure)是在大型数据库系统中一组为了完成特定功能的SQL语句集它存储在数据库中一次编译后永久有效用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数来执行它。

更多文章