《数据库系统》复习资料doc.docx
《《数据库系统》复习资料doc.docx》由会员分享,可在线阅读,更多相关《《数据库系统》复习资料doc.docx(12页珍藏版)》请在冰豆网上搜索。
《数据库系统》复习资料doc
一、考试说明
(一)考试要求:
本考试共分六种题型,即单项选择题、名词解释、简答题、设计题、综合题,共120分钟,总分100分,闭卷考试。
(二)考试题型:
1.单项选择题(30分,2分X15)
只要是了解考生对容易混淆的概念、理论和实践问题掌握的准确度,题冃涉及数据库系统各个章节的概念及实际应用。
2.名词解释(10分,2分X5)
主要考察学牛对基木概念掌握的熟练程度和准确性,一般是木门课程中较为重要的概念,要求学生以教材给出的概念或自己的理解复述出来。
3.简答题(24分,4分X6)
主要考察学生对基本实践和基本理论问题及相互关系掌握的系统性、全面性、和准确性,题目涉及理论与实践问题。
4.设计题(26分左右,8〜10小题)
(1)关系代数表达式
(2)SQL语句(查询语句和视图)
5.综合题(10分左右,2〜3小题)
(1)构建E/R图并转换成关系模型
(2)范式的判断与分解
(3)SQL语句查询(子查询和聚集查询)
(三)时间分配:
本考试为非标准化考试,用钢笔或签字笔按顺序(注明题号)答在答题纸上。
试卷分数和时间分配如下:
题号
题目名称
题数
分值
建议时间(单位:
分钟)
1
选择题
15
30
15
2
名词解释
5
10
15
3
简答题
6
24
30
4
设计题
8〜10
26左右
30
5
综合题
2
10左右
30
合计
36〜38
100
120
二、复习重点
(一)chapO1数据库系统世界
1.主要概念
(1)数据库系统(DBS):
就是在系统中引入数据库的系统,包括硬件(计算机和网络)、软件(操作系统和应用程序开发工具)、数据库(DB)、数据库管理系统(DBMS)、应用程序(Application)、用户(User普通用户,专业用户,应用程序员)、数据库管理员(DBA)
(2)数据库管理系统(DBMS):
能够有效管理数据和维护数据库并为用户应用程序提供访问数据库方法的一套大型软件。
(3)数据独立性:
内模式改变,对模式没有影响,保持数据的物理独立性;模式改变,对外模式影响不大,保持数据的逻辑独立性。
(4)模式:
数据库屮全部数据的逻辑结构和特征的描述。
一个数据库只有一个模式,不仅描述数据的逻辑结构,还描述数据之间的联系、数据的完整性、安全性。
外模式:
数据库用户可以看见和使用的部分数据的逻辑结构和特征的描述,与某一应用相关。
内模式:
数据库物理结构和存储方式的描述,说明数据在数据库内部如何表示。
内模式并不涉及物理记录,也不涉及硬件设备。
2.主要内容
(1)数据库的特点
数据库是按一定方式对所有的数据实行统一、集中管理;大容量且高效;实现数据共享,允许多用户并发访问;使数据存储独立于应用程序;由一组软件(DBMS)对数据进行集中统一的管理。
(2)数据库管理系统的组成及主要功能
基本组成:
查询处理程序(处理三种SQL命令,模式更新、查询、数据更新);存储管理程序(包括文件系统管理和缓冲区管理);事务管理程序(事务特性,原子性、一致性、隔离性、持久性;包括调度器与日志和恢复管理器)。
主要功能:
数据定义(建立数据库及其对彖)、数据存取(对数据库中的数据进行查询、添加、修改和删除操作)、数据控制(保证数据的完整性和安全性;提供多用户的并发控制,避免意外损坏数据,以保证共享数据)、数据维护(当数据库出现故障时对系统进行恢复)、数据通信(与操作系统的联机处理,与网络软件通讯)。
(3)数据库的模式(schema)结构:
数据按外模式的描述提供给用户,按内模式的描述存储在硬盘上。
模式介于它们之间,既不外部访问,也不涉及内部存储,起到隔离作用,有利于保持数据独立性。
外模式是模式的子集,所以外模式乂叫子模式。
可以通过视图来实现外模式,不同用户可以显示表中部分的信息,从而保护数据库数据的安全。
(二)chap04数据库建模
1.主要概念
(1)数据模型:
数据库系统中,用来抽象、表示和处理现实世界信息的工具;包含数据结构、数据操作和完整性约束。
数据模型主要包括概念模型和逻辑模型,其中概念模型主要通过定义一组明确直观的概念对数据库应用中的信息需求进行描述,变成易于用户理解的数据库结构;逻辑模型主要将概念模型描述的数据库结构转换成适合具体DBMS实现的逻辑结构。
(2)实体/联系模型:
作为一种概念模型,用实体、联系和属性等几个基木概念
明确描述用户的信息需求。
E/R图,其实就是用直观的儿何图形简单明了地表示
E/R模型。
(3)键码约束:
能惟一标识实体集中不同实体的属性或属性集合,不能重复,也不能为空。
引用完整性约束:
两个实体集的实体之间或实体集内部的实体之间形成引用关系,要求被引用实体存在且唯一。
(4)弱实体集:
部分或全部依赖于其他一个或多个实体集键码存在的实体集。
2.主要内容
(1)数据模型的分类
1概念模型:
实体-联系(E/R)模型和统一建模语言(UML)等。
2逻辑模型:
层次模型,网状模型,关系模型等。
(2)实体/联系图的基本表示
1实体集:
矩形表示;②联系:
菱形表示;③屈性:
椭圆表示。
注意:
实体集可以连接属性,联系也可以连接属性;实体集之间通过联系连接。
(3)联系的多重性的表示:
有箭头所指的实体集为1;无箭头所连接的实体集为多。
(4)多向联系转换为二元联系
1什么是多元联系:
一个联系涉及两个以上的实体集,该联系就是多元联系。
2如何确定三元联系中的多重性?
实体集A和B先分别确定一个实体,判断联系的C的实体是一个还是多个。
3多向联系转换为二元联系?
把多元联系表示为一个实体集,称为连接实体集;确定连接实体集的属性;分别建立该实体集到多个原实体集的多对1的二元联系。
【注意】何时需要联系转换成连接实体集?
多元联系;多对多联系;有属性的联系
(5)各种约束的表示:
1键码约束:
在键码屈性下方加下划线;
2参照完整性约束:
圆箭头指向“必须有一个”的一方。
3域约束:
限定属性取值范围或限定联系实体的数量
(6)弱实体集的表示:
弱实体集用双边矩形表示;多对1的联系用双边菱形表
ZK©
【注意】弱实体集与依赖其键码存在的实体集之间的联系是弱联系;弱实体集与不依赖其存在的实体集Z间的联系是普通联系。
(7)设计原则
1真实性原则;②避免冗余原则;③简单性原则;④合适性原则(如果事物只描述名称,就用属性表示;如果描述更多特性,就用实体集表示)。
(8)E/R图的构建:
①确定实体集和弱实体集及其属下;②确定联系(联系的种类、角色和多重性)及其属性;③使用设计原则进行核查;④确定键码(若没有合适属性,可考虑增加人工属性)、参照完整性约束和域约束。
(三)chap02关系数据库和chap03关系数据库设计理论
1.主要概念
(1)关系模型:
以集合论中的关系来表示实体集及实体集之间的联系。
(2)关系:
在关系模型中,不管是实体,还是实体Z间的联系都以规范化的二维表结构存储表示。
关系包括表头(heading)和主体(body),表头是一系列属性(包括属性名和数据类型)的集合,而主体是一系列元组的集合。
(3)关系模式=关系名+表头(属性列表)。
(4)函数依赖:
函数依赖其实对同一关系中属性Z间的语义进行约束。
具体定义如下:
如果关系中的任意两个元组在属性A上一致,在属性B上也一致,则属性A函数决定属性B,即A->Bo
(5)关系的键码:
对于关系R,属性全集为U,属性集合A二{A1,A2,…An},任意真子集A'。
若满足A-U(惟一性)且A'>U(最小化)
(6)关系的超键码:
关系屮包含键码的属性集合。
(7)函数依赖规则:
在一个给定关系上,已知一组函数依赖作为前提条件。
根据一组函数依赖规则,推断另一些函数依赖。
包扌舌分解合并规则、平凡依赖规则和传递规则。
1分解合并规则:
A1A2…AnfB1B2…Bm等价于A1A2…AnBl,。
。
。
,
AlA2・・・An-*Bmo
2平凡依赖和平凡依赖规则:
对于函数依赖A1A2-An->B1B2-Bm而言,VBiG{AbA2,-,An},则为平凡依赖;平凡依赖规则:
已知AlA2・・・An—BlB2・・・Bm,且VCie{Bl,B2,…,Bm}ACi«{AbA2,…,An},则AlA2・・・An->ClC2・・・Ck。
3传递规则:
如果AlA2...An->BlB2...Bm,而且BlB2...BmfClC2...Ck,则AlA2...An->ClC2...Ck成立(蕴含于前两个依赖中)。
(8)属性的闭包:
对于关系R上的一组函数依赖S,属性集{A1,A2,・・・An}可函数决定的最大属性集合。
(9)函数依赖的闭包:
对于给定的关系模式R和函数依赖集合F,所有能由F导出的函数依赖的全体称作函数依赖集合F的闭包,记作F+。
(10)范式:
关系模式按照一定要求和条件进行分解后所满足的规范形式。
1BC范式(BCNF):
关系模式R中每一个非平凡函数依赖FD左边包含某个键码,即满足。
2第三范式(3NF):
关系模式R中每一个非平凡函数依赖FD要么左边包含某个键码要么右边是键属性,即满足。
3第二范式(2NF):
在1NF的基础上,要求每个非键属性依赖于键的整体(直接或间接),而不是键的部分属性,即不存在部分依赖。
(11)多值依赖、多值依赖规则、非平凡多值依赖、第四范式(4NF)
1多值依赖:
若关系R(A,B,Z)中的元组在属性A上取某一特定值,则其在属性B上的值(集)与R中不属于A和B的其它属性Z无关,这种条件即为多值依赖。
记作:
AB
2多值依赖规则包括平凡依赖规则、传递规则、复制规则和互补规则。
平凡依赖规则:
若多值依赖A--B在关系R上成立,则A成立,其
屮C是B属性加上A的一个或几个属性;同时A—D成立,其中D是B属性屮不属于A的属性。
传递规则:
若多值依赖A->->B和在关系R上成立,则A->->C也成立。
复制规则:
每个函数依赖都是多值依赖的特例:
若A->B,则A—Bo反之不然。
互补规则:
若A->->B是R的多值依赖,则A—C成立,其中C是R中不属于A和B的所有其它属性。
3非平凡多值依赖:
关系R(A,B,Z)中A--B是非平凡多值依赖,当且仅当
(1)AQB=空;
(2)AUB壬全集。
4第四范式(4NF):
关系模式R中每一个非平凡多值依赖MVD左边包含某个键码,即满足。
2.主要内容
(1)E/R图转换成关系
1实体集转换成关系;关系名二实体集名;关系属性二实体集属性;关系键码二实体集键码
2联系转换成关系
多对多联系(m:
n):
关系名二联系名;关系属性二m端实体集键码+n端实体集键码+联系自身属性;关系键码二m端实体集键码+n端实体集键码
多对一联系(ml):
联系不需要单独转换成关系;但要在n端实体集对应关系模式屮加上1端实体集键码
一对一联系(1:
1):
联系不需要单独转换成关系;但要在其中1端实体集对应关系模式中加上另外1端实体集键码
3弱实体集转换成关系
关系名二弱实体集名;关系属性二被依赖实体集键码+弱实体集自身属性
关系键码二被依赖实体集键码+弱实体集键码;弱联系不需要单独转换成关系。
(2)如何判断关系中的函数依赖
1若关系中任意两元组在属性A上一致,在B上也一致,则有A->B成立。
2若关系屮存在两元组在属性A上一致,在B上不一致,则A->B不成立。
3若关系中任意两元组在属性A上不可能一致,则不管在B上是否一致,有A-B成立。
(3)属性闭包的计算
1设闭包是X,把X初始化为{Al,A2,An},为闭包的最小属性集合。
2重复搜索和判断函数依赖BlB2...Bm->Co如果左边所有的属性B1,B2,…,Bm都在属性集X中,但是属性C不在X中,则将C添加到属性集X中。
3重复第二步,直到没有新屈性可以添加到屈性集X中为止。
4最后得到的不能再添加的属性集合X就是{Al,A2,…,An}\
(4)属性闭包的作用
1利用计算任意属性的闭包检验给定的任意属性函数依赖A1A2…An-B是否蕴含于函数依赖集合S;②利用属性集的闭包计算关系的键码和超键码。
确定过程:
对于关系R,属性全集为U,屈性集合,任意真子集A,。
若满足{A}+=U
(惟一性)且{A'}+HU(最小化)
(5)如何求最小函数依赖集合?
1据分解规则,可得到与F等价的函数依赖集G,G中每个函数依赖右边均为单属性。
2在G中消除冗余的函数依赖。
3在G屮的每个函数依赖屮消除左边冗余的属性。
(6)如何求函数依赖的投影?
对于S的属性集U中的每个属性子集X,计算X+,于是对于满足下列条件的每个属性B,函数X->B在S中成立:
①B是S的一个属性,②B属于X+,而且③B不属于Xo
(7)BC范式的判定:
①找出所有的Key;②检查所有非平凡函数依赖;③左面是否超键?
(8)分解为BC范式(BCNF):
找一个违背BCNF的菲平凡函数依赖A1A2…An-BlB2・・・Bm;把关系R分解成两个关系:
R1(Al,A2,…,An,Bl,B2,Bm),R2(A1,A2,…,An,所有其它属性),若不满足BC范式,则再分解。
(9)分解为第三范式(3NF):
1对于关系模式R和R上的函数依赖集合F,先求出F的最小依赖集合,然后再把最小依赖集合中左部相同的函数依赖用合并规则合并起来;
2对最小依赖集合中的每个函数依赖X-Y去构成一个模式XY;
3构成模式集合屮,若每个模式都不包含R候选键,则把候选键作为一个模式放入其中。
(10)分解为第四范式(4NF):
找一个违背4NF的非平凡多值依赖A――B,A不是超键;
把关系R分解两个关系:
R1(A,B);R2(A,所有其它属性),若不满足4NF,则再分解。
(11)范式间的联系:
满足高级别范式,肯定满足低级别范式;违背低级别范式,肯定违背高级别范式。
对于一个特定关系,应关注其满足的最高范式,或违背的最低范式。
<四)chap05关系代数
1.主要概念
(1)关系代数:
在关系模型上定义了一组标准运算,从已知的关系计算得到新的关系。
(2)基本运算:
并、差、投影、选择、笛卡尔积和改名;导出运算:
交、自然连接、0连接和除法运算。
(3)包及包的运算:
包允许出现重复元素;在包上进行集合运算(并、交、差)、投影、选择、乘积和连接都允许运算之前和之后元组重复。
2•主要内容
(1)关系集合运算(并、交、差):
两个关系R和S,RUS={t|t£RORtcS};RAS={t|teRANDtes};R-S={t|teRANDNOTtus}。
要求R和S模式具有相同属性集。
(2)投影运算口A(R):
产生对应关系R中部分属性集合{A1,A2,•:
An}的新关系。
结果关系的元组由R中元组在属性{A1,A2,…,An}上的分量构成,且元组不重复。
(3)选择运算oc(R):
从关系R中选择只包含满足特定条件c的元组集合。
结果关系保持关系的R属性集且属性次序也相同。
(4)笛卡尔积:
关系R和S中的每个元组自由组合成一个新关系。
RXS属性数量=R属性数量+S属性数量;RXS元组数量=R元组数量XS元组数量
(5)自然连接:
关系R和S的公共属性取值相同;结果关系中除去重复其中一个公共属性。
(6)B连接:
从关系R和S的笛卡尔积中选择只包含满足特定条件c的元组集合,保留所有属性名重复的公共属性。
(7)改名运算
PS(Al,A2,…,An)(S)表示关系名不变,仅改属性名;PS(Al,A2,An)(R)表示关系名和属性名同时改变;PS(R)表示仅关系改名而属性不改名。
(8)用复合运算表示各类复杂查询
把两种以上运算组合起来构成任意复杂的关系代数表达式,完成较复杂的计算和功能强大的查询,关系表达式可以用括号表明运算后前后次序。
为了表达复合运算的先后顺序,可画出关系代数表达式的语法树,从而比较性能优劣。
(9)用关系代数表示约束匸
R=4表示R中没有元组;RS表示R中的每个元组都在s中°r=e等匸匸u
价于厂e;RS等价W-S=4)o参照完整性约束:
TIA(R)nB(S)o
(10)外连接
1自然外连接:
考虑两个关系R和S的自然连接,然后再把来自R或S的悬浮元
丄
组加入其屮,用null的表示符号补齐结果元组屮那些不具有值的属性。
2左外连接:
只是将左变量R的悬浮元组*卜齐加入到结果中。
3右外连接:
只是将右变量S的悬浮元组*卜齐加入到结果中。
40外连接:
先进行o连接,然后将那些不能匹配其他关系的元组+也用补齐。
(五)chap06数据库语言SQL
1•主要概念
(1)约束:
1键码约束:
要求每个表都必须确定自己的键。
一个表只能确定一个主键(PrimaryKey)。
2外键约束:
参照完整性要求具有一对多关系两个表Z间的数据保证一致和对应关系,必须要在这两个表之间创建关系。
两个表创建关系基于主表的主键或候选键与子表的外键之间建立参照关系,即将子表中某个字段声明为外键(foreignkey),那么外键取值要参照主表中的主键取值,就是外键的取值必须包含在主键的取值范围中。
3非空约束:
规定某个字段不允许为空值,即NOTNULLo
4基于属性的Check约束:
定义关系模式吋,限制某属性的值在特定范围。
5基于元组的Check约束:
对某个表中元组的约束而不是对某个属性的约束,限制表中某儿个字段满足的约束条件。
(2)视图:
可以把需要重复执行的一条SELECT语句或组合SELECT语句包装成一个命名的“虚拟关系”,这个就是视图。
(3)空值:
SQL允许属性有一个特殊的值NUI丄称做空值。
未知的值,知道它是一个值但不知道是什么;不适用的值,任何值在这里没有意义;保留的值,属于某对象但无权知道的值。
(4)外部连接:
两个关系进行连接,参与连接的一方(左方或右方),即使不满足条件,也要出现在结果屮。
不满足条件的元组的另一方属性置空值NULLo
2.主要内容
(1)用SQL定义关系模式
使用CREATETABLE关系名(展性列表)定义关系模式;使用ALTERTABLE语句修改关系;使用DropTable语句删除关系。
1)说明键码
①方式1:
CreateTable语句中,某属性说明之后加PrimaryKey;②方式
2:
属性表之后,加PrimaryKcy(属性1,属性2,…)。
若主键有多个属性,则只能用方式2。
2)说明外键
①方式1:
某属性之后加references〈被参照表〉(被参照属性);②方式2:
属性表之后加foreignkey〈参照属性〉references〈被参照表〉(被参照属性)。
3)说明其它约束
1非空约束:
createtable语句1属性说明Z后加NOTNULL;若不显式说明,该属性隐含为允许空值。
2基于属性的Check约束:
属性说明之后,增加check(条件),属性的值应使条件为真。
3基于元组的Check约束:
对某个关系中元组约束而不是对某个屈性约束。
4)维护引用完整性约束的策略:
Restrict限制(缺省);Cascade级联;SetNull置空。
具体语法:
references<被参照表〉(属性表)[Action],其中Action:
ON{Update|Delete}{Restrict|Cascade|SetNull}。
(2)数据更新
1添加数据记录:
INSERTINTOR(A1,A2,An)VALUES(VI,V2,Vn);
2修改数据记录:
UPDATERSETA1=V1,A2=V2,•:
An=VnWHEREcond;
3删除数据记录:
DELETEFROMRWHEREcond;注意,条件省略将删除所有记录。
(3)SQL简单查询:
对单个关系的查询都属于比较简单的查询。
在SQL语言中,查询语句使用Select语句来执行。
简单查询语句最常用的关键字分别是Select>From、Where、还有orderby。
在这四个子句中,只有Select和From子句必须出现,而其他子句则是可选的。
(4)多关系查询
多关系查询就是两个以上的关系在From子句中连接起来进行查询。
SQL用简单的方式在一个查询中处理多个关系:
在From子句屮列出每个关系,然后在SELECT子句和WHERE子句中引用任何出现在FROM子句中关系的属性。
结果是一个包,而不是集合。
多个关系中出现同名屈性,使用关系名•属性名,限定关系和属性。
如果对关系内部不同元组进行连接,要使用元组变量对关系改名(别名)。
(5)集合运算:
查询中并(Union)交仃ntersect)>差(Except)运算的结果是集合。
但如果在其运算符后加上ALL后,则运算的结果则为包。
(6)子查询
子查询就是在其他查询语句中嵌入Select语句。
实质上,子查询就是一个对关系求值的表达式;子查询可以作为一个标量值来使用,也可以用在条件子句中进行判断。
注意,子查询必须使用括号括起来。
通常在Where子句中增强条件。
先处理内层的子查询,再处理外层的查询。
相关子查询是子查询语句中有对外层关系的引用,从而,对外层关系的每一个元组,子查询都进行一次相应计算。
(7)聚合运算:
把关系中所有元组作为整体,对其中某些列多行进行计算,形成单行结果值。
可按某条件先对元组分组,再对每一组作聚合运算,每一组的计算结果形成结果集中的一行。
主要有五种聚集运算符:
Sum(C)求某数值列汇总值;Avg(C)求某数值列平均值;Min(C)求某数值列最小值;Max(C)求某数值列最大值;Count(*IC)对元组计数,或对某列值计数。
(8)关于视图的更新
对视图可进行数据更新,对视图进行insert/delete/update操作,该视图必须满足基于单表;所有非空属性都在视图中;不能有GroupBy子句;不能有聚合计算;不能有UNION;不含DISTINCT;不含相关子查询。
对视图的数据更新亦将转换为对基本关系的更新。
(9)连接表达式
在Select查询的From子句屮,连接表达式口J产生新的关系。
join-type:
CROSSJOIN//交叉连接,即笛卡尔积;R1JOINR2ONcond表示。
连接;R1KEYJOINR2表示键连接;R1NATURALJOINR2表示自然连接;InnerJoin表示内连接。
(10)外部连接
外连接OuterJoin是参与连接的一方(左方或右方),即使不满足条件,也要出现在结果中。
不满足条件的元组的另一方属性置空值NULL。
左外连接LeftOuterJoin表示左面关系的所有元组将出现在结果中;右外连接RightOuterJoin表示右而关系的所有元组将岀现在结果中;全外连接FullOuterJoin表示两面关系的所有元组将出现在结果屮。
(六)chap07数据库中的事务机