2022年数据库原理期末复习文件 .pdf
莽莽整理製作,轉載注明出處第 1 页 共 12 页一、名词解释:1) 数据库基本术语a)数据( DATA ) :描述事物的符号记录,具有广义性、语义性、结构性等特征b)数据库 (DB) :是长期存储在计算机内、有组织、可共享、统一管理的相关数据集合。c)数据库管理系统(DBMS) :位于用户和操作系统之间的数据管理软件,主要功能包括数据定义(定义表、索引等对象)、数据操纵(查询、插入、删除等操作)以及数据控制(安全性、完整性、并发、恢复等)。d)数据库系统 (DBS):采用了数据库技术的计算机系统,包括数据库、数据库管理系统、应用系统、数据库管理员、用户等,在不引起混淆的情况下简称为数据库。2) 关系模型的基本概念a)概念 : 用二维表格表示实体集,用关键字表示实体间联系的数据模型称为关系模型b)超键: 在关系中能够惟一标识元组的属性集合(如学号 +姓名 ) ;c)侯选键: 不含有多余属性的超建称为候选键(如学号 ) ;d)主键: 被用户选定作为表示元组的候选键称为主键;e)外键: 在某个模式R 中的属性 K,如果为其它模式的主键,则K 称为 R 的外键(如 系别 ) ;3) 封锁技术a)只要在锁释放之前有高优先级的事务申请锁,低优先级的事务将得不到锁,当事务繁忙时可能永远得不到锁-活锁 。b)两个或两个以上的事务处于等待状态,每个事务都在等待其中另一个事务释放封锁,它才能继续,结果所有事务都不能继续,这种现象称为死锁。二、简答1) 数据库中的数据模型(看图描述)a)数据模型包括四种:概念模型、逻辑模型、外部模型和内部模型。概念模型表达 用户需求观点 的数据库 全局 逻辑结构模型;概念模型按用户的观点描述客观世界的信息,不涉及这些信息在计算机系统中的物理实现;概念模型是 数据库设计人员与用户之间 进行交流的工具, 目前常用的是实体关系模型(ER 模型)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 莽莽整理製作,轉載注明出處第 2 页 共 12 页逻辑模型表达 计算机实现观点的数据库 全局 逻辑结构模型;逻辑模型从数据库实现的观点出发对数据建模,独立于硬件实现, 但是依赖于软件实现;逻辑模型是 数据库设计人员与应用程序员 之间进行交流的工具, 目前常用的包括层次模型、网状模型、关系模型 和对象模型等。上图的 ER 图可以转换为如下关系模型:学生表(学号 #,性别,姓名)教师表(编号 #,性别,姓名)课程表(课程号 #,课程名, 编号 #)课程成绩(学号 # ,课程号 # ,分数)外部模型表达 用户使用观点 的数据库 局部 逻辑结构模型;外部模式是用户与数据库系统的接口,是用户用到的那一部分数据的描述;内部模型表达数据库物理结构的模型称为内部模型;内部模型描述数据在磁盘或磁带上的存储方式(文件的结构)、存储设备(外存的分配)和存取方法(如索引结构)等;内部模型与 软硬件 紧密相关,并与操作系统关系密切。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 莽莽整理製作,轉載注明出處第 3 页 共 12 页第三节 数据抽象级别用户 A需求用户 B需求用户 C需求概念模型外部模型 1外部模型 2外部模型 3逻辑模型内部模型数据库模型转换模型映射模型映射用户 1用户 2用户 3DBMS操作系统2) 数据库的三个层次和两个独立性a)现有的 DBMS 都采用 三级模式结构 (即外部模式、逻辑模式和内部模式),提供两级映象功能,从而保证了数据的物理独立性 和逻辑独立性 。物理独立性: 当数据库的内模式修改时,即物理结构发生变化时,仅需要改变逻辑模式 /内模式间的映射方法即可,逻辑模式可以保持尽量不变。逻辑独立性: 当数据库的逻辑模式发生变化时,如改变记录的结构,仅需要改变外模式 /逻辑模式间的映射方法,从而保持外模式和应用程序尽量不变。3) 什么是数据库的可恢复性,为什么要对其恢复a)DBMS能把数据库从被破坏、不正确的状态恢复到最近一个正确的状态,这种能力称为数据库的可恢复性。b)为什么要对数据库进行恢复DBMS 运行中出现的各种故障,都可能造成数据的破坏或丢失,恢复机制可以有效地解决这类问题。DBMS 恢复子系统的主要目的是,保证数据库事务的原子性和一致性。4) 数据库的典型故障,分别应该如何恢复a)事务故障名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - 莽莽整理製作,轉載注明出處第 4 页 共 12 页可预期故障:在事务代码中,加入判断和ROLLBACK语句, 触发系统的UNDO 机制 处理故障;非预期故障:当发生运算溢出、死锁等故障时,系统自动调用UNDO 机制处理故障。b)系统故障当发生掉电、操作系统故障时,DBMS 终止所有正在运行的事务,造成数据不一致,但不破坏物理数据库。对未完成的事务一般采用UNDO 进行处理,对已提交但数据仍在缓冲区的事务则 REDO 。c)介质故障当存储介质发生破坏时,物理数据库遭到毁灭,此时需要进行以下三个步骤的恢复:(1)重新装载最近一次备份的数据库;(2)根据日志文件,找出上次备份以来,数据库成功提交的事务;(3)对这些事务进行REDO。(注意:上述三种故障中,事务故障和系统故障称为软故障,由系统自动进行恢复;介质故障称为硬故障,需要DBA 干预。 )5) 数据库的完整性,以及数据库有哪些完整性a)数据库的完整性是指数据的 正确性、 有效性和相容性,防止错误数据进入数据库。正确性:数据必须合法无误,如年龄中不能含有字符;有效性:数据处于有效的范围内,如年龄必须属于区间 0-200 ;相容性: 表示同一个事物的多个数据必须一致,例如不同表中用户的家庭住址必须相同。6) 什么叫触发器,触发器的组成是什么a)触发器 是一个能由系统自动执行的对数据库进行操作的语句,该语句当某个事件被触发时得到执行。b)触发器的组成触发事件 :当该事件发生时,触发器开始准备 工作;触发条件 :满足触发条件的事件发生时,触发器工作;动作 :对数据库进行的操作;7) 检查点技术的思路,检查点方法的恢复算法a)检查点技术的思路数据库运行时,DBMS 定时设置检查点,在检查点时刻将对数据的修改写回硬盘,并在日志文件中写入一条记录。当发生故障时,只有检查点后的事务才需要恢复,并且由计算机自动进行控制。b)检查点方法的恢复算法根据日志文件建立重做事务队列和撤销事务队列;根据重做队列, 正向扫描日志文件进行重做;根据撤销队列, 反向扫描日志文件,将更新消除。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 莽莽整理製作,轉載注明出處第 5 页 共 12 页三、计算与综合1) 关系代数的基本操作a)并:若关系 A 和 B 具有相同的模式, 则 A 与 B 的并是由属于A 或者属于B的元组构成的集合。b)差:若关系 A 和 B 具有相同的模式, 则 A 与 B 的差是由属于A 但不属于B的元组构成的集合,记为A-B 。c)笛卡儿积:若关系A 和 B 的属性数分别为a 和 b,则 A 与 B 的笛卡儿积为包含 a+b 个属性元组的集合,每个元组的前a 个属性来自于A,后 b 个属性来自于 B,记为 A B。d)选择:返回关系r 中满足条件 F 的所有元组,记作:F (r) = t | t r F ( t ) = True 其中选择条件F 的形式为( X1Y1)(X2 Y2) ,这里 是比较运算符和逻辑运算符, X1、Y1 等是属性、常量或其简单函数,属性可用序号表示。(注意:选择是水平方向进行的运算。)e)投影:从关系r 中挑选一些列来组成结果关系,记作:X(r) t X | t r ,其中 X 为 r 的属性组。(注意:投影是垂直方向进行的运算)2) 关系代数的组合操作a)交:关系 A 和 B 的交是由属于A 且属于 B 的元组构成的集合,记为 AB,且 AB=A- (A-B ) 。b)除:给定关系r(X, Y) 和 s(Y, Z),其中 X, Y, Z 为属性组,则:rs = x | x X(r) Y ( X=x(r) ) Y (s) c) 连接:从关系R 和 S的笛卡儿积中选取满足某种操作的元组。若R 的属性数为 r,则 R 与 S 的连接可以记为:)()(SRSRjriji若 为“=”号,则称为等值连接。d)F 连接:与 连接类似,只是连接条件可以为多个操作的逻辑运算。若R的属性数为r,F 连接形式如下:)()()()()(SRSRnrmjrinmjie)自然连接:与其它连接类似,具体步骤如下:1.计算 R S;2.设 A1, , Ak为 R 和 S的公共属性,挑选R S 中满足 R.A1 = S.A1, , R.Ak = S.Ak 的那些元组;3.去掉 R.A1, ,R.Ak这些列。3) 基本表的创建、修改和撤销名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 莽莽整理製作,轉載注明出處第 6 页 共 12 页a)基本表的创建语句CREATE TABLE ( 列级完整性约束 , 列级完整性约束. , ) 列级完整性约束: 规定列要满足的约束条件,涉及一个属性, 如值非空(NOT NULL ) 、值惟一( Unique)等;表级完整性约束条件:规定表要满足的约束条件,涉及一个或多个属性,包括主键、外键和检查 三类约束。b)基本表结构的修改ALTER TABLE Add 完整性约束 Drop Cascade | Restrict Modify : 指定要修改的基本表;Add 子句 :用于增加新列和新的完整性约束;Drop 子句 :用于删除原有的列;Modify 子句 :用于修改原有的列定义;c)基本表的撤销当基本表不需要时可以对其进行撤销,撤销后所有的数据都将丢失。撤销基本表的语句如下:DROP TABLE Cascade | Restrict Cascade:同时撤销该模式及其下属的所有表、视图、索引等元素;Restrict:只有当模式下不包含任何元素时,才能被撤销;4) 索引的创建和撤销a)索引的创建CREATE UNIQUE INDEX ON ( , . ) :指定要建索引的列名,索引可以建在一列或多列上,各列名之间用逗号分隔。:每个后可指定索引值的排列次序,包括ASC(升序)和 DESC(降序)两种;UNIQUE :表明每一个索引值只对应唯一的数据记录。b)索引的撤销DROP INDEX c)对索引的一些补充说明SQL 中的索引为非显示索引,索引一经建立,就由系统使用和维护它,不需用户直接干预;如果数据增、删、改频繁,系统会花费许多时间来维护索引,这时可以删除一些不必要的索引,以提高系统性能。5) SELECT 查询语句的基本结构a)SELECT 查询语句的基本结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 莽莽整理製作,轉載注明出處第 7 页 共 12 页SELECT A1, ,An FROM R1, ,Rn WHER E F b)SELECT 查询语句完整形式SELECT ,. FROM , . WHERE GROUP BY HA VING ORDER BY ASC|DESC (只有满足HAVING 条件的组才会被选出来。WHERE 与 HAVING 的区别:作用对象不同。?WHERE 作用于基本表或视图,选择满足条件的元组。?HAVING 作用于组,选择满足条件的组。)c)SELECT 语句输出列名的一些规定SELECT ALL|DISTINCT | * ?ALL :将所有符合条件的记录都返回,包括重复记录;?DISTICNT :将重复的记录(行)删除后返回;?列名:如普通的“ 学号 ” 等;?列表达式:对列的值进行运算,得到的目标值,如“ 2006 -AGE ”;?*:返回表的所有列;6) SQL 数据更新a)数据插入?插入单个元组INSERT INTO ( 列名列表 ) VALUES ( ) 将元组值插入指定表中的各个列,形成一条新元组;没有在 INTO 子句中出现的列取空值;如果 INTO 子句不含列名,则VALUES 子句必须指定所有列的值。?插入子查询结果INSERT INTO (列名列表 ) 将子查询的结果全部插入指定表中;子查询语句的返回结构必须与列名列表完全一致;?插入表INSERT INTO ( 列名列表 ) TABLE 将表 2的元组全部插入表1 中;两个表的结构必须完全一致;b)数据修改UPDATE SET = | ROW=( ) WHERE 修改指定表中满足WHERE 条件的元组;用 SET的值取代相应的列值;c)数据删除名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - 莽莽整理製作,轉載注明出處第 8 页 共 12 页DELETE FROM WHERE 从指定表中删除满足WHERE 条件的元组;若省略 WHERE ,则删除表中全部元组,但表的定义仍在数据字典中;数据删除存在着与数据修改同样的问题;7) 视图的创建和更新a)创建视图CREATE VIEW (,.) AS DBMS 只把上述定义存入数据字典,并不执行其中的SELECT 语句。只有对视图进行查询时,才按视图的定义从基本表中将数据查出。b)撤销视图DROP VIEW 视图删除后,由它导出的视图也将失效,应将他们删除。c)视图的查询(示例)视图查询语句的语法与基本表查询完全相同。(例 在计算机系学生视图中找出年龄小于20 岁的学生。查询语句如下:SELECT 学号, 年龄FROM IS_Student WHERE 年龄20 视图定义如下:CREATE VIEW IS_Student AS SELECT 学号 , 姓名, 年龄FROM 学生WHERE 院系名称 =,计算机系 查询语句的执行过程:执行时,将视图查询语句与视图定义中的子查询结合起来,转换成对“ 学生 ” 基本表的查询:SELECT 学号 , 年龄FROM 学生WHERE 院系名称 = 计算机系 AND 年龄 3) 部分依赖一定是传递依赖,反之不成立。例如:e)逻辑蕴涵 :若 F 是关系模式R 上的函数依赖集合,XY 是一个函数依赖,如果每个满足F 的关系都满足XY,则 F 逻辑蕴涵 XY,记为 F XY。f)函数依赖的闭包若F 是函数依赖集合,被F 逻辑蕴涵的函数依赖全体构成的集合,称为F 的闭包,记为F+,即:F+= X Y | F XY g)Armstrong 公理 : 给定关系模式R(U)和 FD 集 F, 可以推出哪些FD?怎样推导?包括下列公理:1) 自反律:若YXU, 则 XY 成立。平凡依赖2) 增广律:若Z U 且 XY, 则 X Y 成立。3) 传递律:若XY, YZ, 则 XZ 成立。根据以上三条公理,可证明以下推导规则:4) 并规则:若XY, XZ, 则 XYZ 成立。5) 伪传递规则:若XY, WYZ, 则 WXZ 成立。6) 分解规则:若XY, 且 Z Y, 则 XZ 成立。7) 复合规则:若XY, 且 WZ, 则 XWZY 成立。h)键的严格定义和求解1) 定义:设 K 为关系模式R(U)的属性组,若KU, 则称 K 为 R 的 候选码 。若候选码有多个,则选定一个为主码。2) 说明?KU , 即不存在 K 的真子集 K?, 满足 K?U。?什么是属性的闭包?设 F 是属性集 U 上的 FD 集,X 是 U 的子集,则相对于F 属性集X 的闭包 X+ 表示,使用F 中的规则能够推出的所有满足XA 的属性A 的集合,即: X+ = A | AU 并且 XA可由 F 推出 属性集 X 闭包的计算方法:X+ =X;do if F 中有某个 FD UV 满足 U X+then X+ = X+V ; while (X+有改变 ) ?给定 R(U) 的 FD 集 F,如何计算候选码?对 U 的每个子集X,进行下列步骤: a) 计算的属性集闭包X+ b) 如果 X+ = U, 且不存在 X 的真子集 Y, 满足 Y+ = U, 则 X 是候选码。i)求候选键?例 已知: R(U), U=ABCD, F = ABC, CD, DA, 求候选码。?解:对 U 的所有子集,逐一计算属性集闭包:?一属性集:A+= A B+= B C+= A , C , D 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 莽莽整理製作,轉載注明出處第 11 页 共 12 页D+= A , D ?二属性集 : (AB)+ = A , B , C , D (AC)+ = A , C , D (AD)+ = A , D (BC)+ = A , B , C , D (BD)+ = A , B , C , D (CD)+ = A , C , D ?三属性集 :(ABC)+不用考察(ABD)+不用考察(BCD)+不用考察(ACD)+ = A , C , D ?四属性集 :不用考察?候选码 : AB、BC、 BDj)最小依赖集?定义 1:如果关系模式R(U) 上的两个函数依赖集F 和 G,有 F+=G+,则称 F 和 G 是等价的函数依赖集。?定义 2: 设 F 是属性集 U 上的 FD 集, Fmin是 F 的最小依赖集意味着:(1) (Fmin )+=F+;(2)每个 FD 的右边都是单属性;(3) Fmin没有冗余的FD;(4) Fmin中的每个FD 的左边都没有冗余的属性。k)最小依赖集合算法过程算法过程:(1)根据 Armstrong 公理的分解性, 得到与 F 等价的 FD 集 G,G中每个 FD 的右边都为单属性;(2)在 G 的每个 FD 中消除左边的冗余属性;(3)消除 G 中冗余的 FD。例:属性集 ABC 上的 FD 集 F=A BC,BC,A B,AB C,求 Fmin。(一) 将 F 的右边写成单属性形式,F=A B,AC, BC,AB C ;(二) 消除 AB C 左边的冗余属性A(或 B) ,得到 F=A B,AC, BC ;(三) 删除冗余的AC,所以 Fmin=A B,BC 。3) 范式a)概念: 为减少冗余和增删改异常而对关系模式提出的规范化要求。关系模式R 符合第 n 范式 ,记为 RnNF 符合高级范式一定符合低级范式。例如:若 R3NF, 则 R2NF 和 1NF 1NF:R 的所有属性都是不可分的数据项2NF:R 的所有非主属性完全依赖 于候选码3NF:R 的所有非主属性不传递依赖 于候选码BCNF: R 的所有属性 不传递依赖 于候选码b)关系模式规范化: 将一个符合低一级范式的关系模式分解为若干个符合高一级范式的关系模式。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 莽莽整理製作,轉載注明出處第 12 页 共 12 页c)第一范式: 若关系模式R 的所有属性都是不可分的基本数据项,则 R1NF。这是关系模型对关系模式的基本要求!d)第二范式: 若 R1NF,且每一个非主属性完全依赖于R 的候选码,则R2NF。第二范式分解算法:设关系模式R(U) ,主键是W,R 上存在 XZ,Z 是非主属性且XW,此时 W Z 就是一个局部依赖,应将 R 进行如下分解:( 1)将 R 分解为 R1(XZ) (主键是 X)和 R2(U-Z)(主键是W,外键为 X) ,利用主外键的连接可以得到R;( 2)如果 R1 和 R2 还不是 2NF,则重复上述过程,直到所有关系都满足2NF 。e)第三范式: 若 R1NF,且每一个非主属性都不传递依赖于R 的候选码,则R3NF。第三范式分解算法:设关系模式R(U) ,主键是W,R 上存在 XZ,Z 是非主属性且ZX,X 不是候选键,此时WZ 就是一个传递依赖,应将R进行如下分解:( 1)将 R 分解为 R1(XZ) (主键是 X)和 R2(U-Z)(主键是W,外键为 X) ,利用主外键的连接可以得到R;( 2)如果 R1 和 R2 还不是 2NF,则重复上述过程,直到所有关系都满足2NF 。f)BC 范式: 若 R1NF,且每一个属性都不传递依赖于R 的候选码,则RBCNF 。在函数依赖范畴内,BCNF 是目前最高的范式,已消除了插入和删除异常。4) 关系模式分解特性a)关系模式规范化:将一个 符合低一级范式的关系模式分解 为若干个 符合高一级范式的关系模式的过程。b)关系模式分解:设有关系模式R(U),R1、Rk 是属性集U 的子集,且有 R1 Rk=U,则称 = R1, , Rk 为关系模式R(U) 的一个 分解。一般称 R(U)为 泛关系模式 ;称 为关系数据库模式;称 R 的一个实例为 泛关系 ,记为 r;r 被分解为 r1, , rk,称为关系数据库c)无损分解: 设 F 是关系模式R 的 FD 集。R 分解成 =R1, , Rk 。如果对R 的每一个满足F 的关系 r,都有 :r = R1(r) R2(r)Rk(r)则称 相对于 F 是“ 无损分解 ” ,否则称 为“ 损失分解 ” 。优点:(1)消除数据冗余和操作异常现象;(2)能够存储悬挂元组;缺点:(1)分解后,检索数据需要进行笛卡儿积操作,时间复杂度较高;(2)容易产生寄生元组;d)保持函数依赖的分解:设= R1, , Rk是关系模式R 的一个分解, F 是 R上的 FD 集,如果 : R1 (F)Rk(F)与 F 等价,则称分解 保持函数依赖集 F。两个函数依赖集F 和 G 是等价的,当且仅当:1) 凡是能够由 F推出的 FD 都能够由 G 推出;2) 凡是不能由 F推出的 FD 也不能由 G 推出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -