还剩6页未读,继续阅读
文本内容:
1关系模型的基本概念
1.1二维表格的基本术语考核要求达到“识记”层次知识点主要是一些基本概念1二维表格在关系模型中,一张二维表格对应一个关系2元组表中的一行(即一个记录),表示一个实体;关系是由元组组成的3域是一组具有相同数据类型的值的__4笛卡尔积域上的一种__运算5关系是一个元数为KK=1的元组的__一张二维表格对应一个关系表中的一行称为关系的一个元组;表中的一列称为关系的一个属性在关系模型中,对关系作了下列规范性的限制关系中每一个属性值都是不可分解的;关系中不允许出现相同的元组(没有重复元组;不考虑元组间的顺序,即没有行序;在理论上,属性间的顺序(即列序)也是不存在的;列是同质的,即每一列中的分量是同一类型的数据,来自同一个域;不同的列可出自同一个域,不同的属性要给予不同的属性名 6超码(SuperKey)在关系中能唯一标识元组的属性集称为关系模式的超码; 7候选码CandidateKey不含有多余属性的超码称为候选码; 8主码(Pri__ryKey)用户选作元组标识的一个候选码在以上概念中,主码一定可作候选码,候选码一定可作超码;反之,则不成立比如,在学生表中,如果有“学号”、“姓名”、“出生年月”等字段,其中学号是唯一的,那么(学号)属于超码,(学号,姓名)的组合也是超码同时,(学号)是候选码,而(学号,姓名)由于含有多余属性,所以不是候选码在这三个概念中,主码的概念最为重要,它是用户选作元组标识的一个关键字如果一个关系中有两个或两个以上候选码,用户就选其中之一作为主码
1.2关系模型的三类完整性规则考核要求达到“领会”层次知识点三类完整性规则的理解1实体完整性规则要求关系中元组在组成主码的属性上不能有空值如果出现空值,那么主码值就起不了唯一标识元组的作用(对关系主码的约束)2参照完整性规则要求外码值必须是另一个关系的主码的有效值,或者是空值(对关系外码的约束)外码(外来关键字)将一个关系的主码(比如学生关系S中的S#)放到另一个关系(比如SC)中,此时称S#是关系SC的外码注意事项外码和相应的主码可以不同名,只要定义在相同值于域上即可;两个关系可以是同一个关系模式,表示了属性之间的__外码值是否允许空,应视具体情况而定假设数据库有如下关系学生关系SS#、SNAME、AGE、___课程关系C(C#、CNAME、TEACHER)学习关系SC(S#、C#、GRADE)那么1S#是关系S的主码,因此在关系S中不能为空;(实体完整性规则)2C#是关系C的主码,因此在关系C中不能为空;(实体完整性规则)关系SC中S#、C#的组合为主码,因此S#、C#不能为空;(实体完整性规则)S#是来自S的外码,因此它必须和关系S中某个元组的S#相同(参照完整性规则)C#是来自C的外码,因此它必须和关系C中某个元组的C#相同(参照完整性规则)3用户定义的完整性规则这是针对某一具体数据的约束条件,由应用环境决定,例如,学生的年龄限制为15~30周岁用户定义的完整性规则反映某一具体应用涉及的数据必须满足的语义要求系统提供定义和检验这类完整性的机制
1.3关系模型的形式定义考核要求达到“识记”层次知识点三个组成部分的了解关系模型有三个组成部分数据结构、数据操作和完整性规则关系模型的的数据结构是关系;关系模型提供一组完备的高级关系运算(关系代数+关系演算),支持数据库的各种操作;关系模型包括三类完整性规则2关系代数运算
2.1关系代数的五个基本操作考核要求达到“简单应用”层次知识点五个基本操作的含义和运算应用1并∪两个关系需有相同的关系模式,并的对象是元组,由两个关系所有元组构成 RUS≡{t|t∈R∨t∈S}2差-同样,两个关系有相同的模式,R和S的差是由属于R但不属于S的元组构成的__ R-S≡{t|t∈R∧t不属于S}3笛卡尔积(×)对两个关系R和S进行操作,产生的关系中元组个数为两个关系中元组个数之积 R×S≡{t|t=trts∧tr∈R∧ts∈S}4投影σ对关系进行垂直分割,消去某些列,并重新安排列的顺序5选择π根据某些条件关系作水平分割,即选择符合条件的元组
2.2关系代数的四个组合操作考核要求达到“简单应用”层次知识点四个组合操作的含义和运算应用1交∩R和S的交是由既属于R又属于S的元组构成的__2连接:包括θ算术比较符连接和F公式连接. 选择R×S中满足iθr+j或F条件的元组构成的__;概念上比较难理解,关键理解运算实例等值连接θ为等号“=”的连接3自然连接RS在R×S中,选择R和S公共属性值均相等的元组,并去掉R×S中重复的公共属性列如果两个关系没有公共属性,则自然连接就转化为笛卡尔积4除法÷首先除法的结果中元数为两个元数的差,R÷S的操作思路如下---把S看作一个块,如果R中相同属性集中的元组有相同的块,且除去此块后留下的相应元组均相同,那么可以得到一条元组,所有这些元组的__就是除法的结果对于上述的五个基本操作和四个组合操作,应当从实际运算方面进行理解和运用应用举例设有关系R和S(如下)计算
2.3关系代数表达式及应用考核要求达到“简单应用”层次知识点关系代数表达式的应用有关实际应用,应该多看例题,多做习题,必须达到以下要求能够根据给出的关系代数表达式计算关系值,也能够根据相应查询要求列出关系表达式
(1)在列关系表达式时,通常有以下形式π...σ...R×S或者π...σ...RS首先把查询涉及到的关系取来,执行笛卡尔积或自然连接操作得到一张大的表格,然后对大表格执行水平分割选择和垂直分割投影操作
(2)当查询涉及到否定或全部的逻辑时,往往要用到差或除法操作关系代数表达式举例 [例]设教学数据库中有3个关系 学生关系SSNOSNAMEAGE___ 学习关系SCSNOCNOGRADE 课程关系CCNOCNAMETEACHER 下面用关系代数表达式表达每个查询语句1检索学习课程号为C2的学生学号与成绩 πSNO,GRADEσCNO=C2SC2检索学习课程号为C2的学生学号与姓名 πSNO,SNAMEσCNO=C2SSC 由于这个查询涉及到两个关系S和SC,因此先对这两个关系进行自然连接,同一位学生的有关的信息,然后再执行选择投影操作此查询亦可等价地写成 πSNO,SNAME(S)(πSNOσCNO=C2SC) 这个表达式中自然连接的右分量为学了C2课的学生学号的__这个表达式比前一个表达式优化,执行起来要省时间,省空间
(3)检索选修课程名为__THS的学生学号与姓名 πSNO,SA__EσCNAME=__THSSSCC
(4)检索选修课程号为C2或C4的学生学号 πSNOσCNO=C2∨CNO=C4SC
(5)检索至少选修课程号为C2或C4的学生学号 π1σ1=4∧2=C2∧5=C4(SC×SC) 这里(SC×SC)表示关系SC自身相乘的乘积操作,其中数字1,2,4,5都为它的结果关系中的属性序号 比较这一题与上一题的差别
(6)检索不学C2课的学生姓名与年龄 πSNAME,AGE(S)-πSNAME,AGEσCNO=C2(SSC) 这个表达式用了差运算,差运算的左分量为全体学生的姓名和年龄,右分量为学了C2课的学生姓名与年龄
(7)检索学习全部课程的学生姓名编写这个查询语句的关系代数过程如下a学生选课情况可用πSNOCNOSC表示;b全部课程可用πCNOC表示;c学了全部课程的学生学号可用除法操作表示 操作结果为学号SNO的__,该__中每个学生(对应SNO与C中任一门课程号CNO配在一起都在πSCO,CNO(SC)中出现(即SC中出现),所以结果中每个学生都学了全部的课程(这是除法操作的含义) πSNOCNOSC÷πCNOCd从SNO求学生姓名SNAME,可以用自然连结和投影操作组合而成 πSNAMESπSNOCNOSC÷πCNOC这就是最后得到的关系代数表达式
(8)检索所学课程包含S3所学课程的学生学号注意学生S3可能学多门课程,所以要用到除法操作来表达此查询语句 学生选课情况可用操作 πSNOCNOSC表示; 所学课程包含学生S3所学课程的学生学号,可以用除法操作求得 πSNOCNOSC÷ πCNOσSNO=S3SC)3查询优化
3.1关系代数表达式的优化问题考核要求达到“领会”层次知识点关系代数表达式的优化问题查询优化的目的就是为了系统在执行时既省时间又能提高效率在关系代数运算中,通常是先进行笛卡尔积或连接运算,再进行选择和投影笛卡尔积或连接运算却往往花费教多的时间因此,恰当地安排选择、投影和连接的顺序直接影响到整个操作所需要的时间和空间如何安排若干关系的运算操作步骤,是查询优化所要考虑的问题
3.2关系代数表达式的等价变换规则考核要求达到“识记”层次知识点等价变换规则 两个关系代数表达式等价是指用同样的关系实例代替两个表达式中相应关系时所得到的结果是完全一样的 等价变换规则有很多,不要死记,从语义上理解其实,只要在前面的学习中已经掌握关系运算的真正含义,就可以判断两个关系代数表达式是否等价
3.3优化的策略考核要求达到“领会”层次知识点优化的策略及其简单应用优化的策略主要有以下几点1在关系代数表达式中尽可能早地执行选择操作;2把笛卡尔积和随后的选择操作合并成F连接运算;3同时计算一连串的选择和投影操作;4保留同一子表达式的结果;5适当对关系文件进行预处理;6计算表达式之前先估计一下怎么计算合算以上优化策略要求会简单应用先做选择,运用投影去除多余属性等等
3.4关系代数表达式的优化算法考核要求达到“简单应用”层次知识点语法树学会画语法树,并掌握优化算法举例在教学数据库S、SC、C中,用户有一查询语句检索女同学选修课程的课程名和任课教师名1试写出该查询的关系代数表达式;2试写出查询优化的关系代数表达式;3画出该查询初始的关系代数表达式的语法树;4使用
2.
4.4节的优化算法,对语法树进行优化,并画出优化后的语法树 1πCNAMETEACHERσ___=女SSCC2优化为πCNAME,TEACHERCπC#πS#C#SCπS#σ___=女S基本思路尽量提前做选择操作;在每个操作后,应做个投影操作,去掉不用的属性值。