您好,欢迎访问三七文档
所有内容主要针对期末考试卷内容,也具有一定数据库这门课程的重点指向性。所有写的内容为老师期末考试之前统一带着复习时所说的重点没有写的或者空着的就是老师当时没说的蓝色字体表示比较重要的专业名词红色字体表示重要的程度第一章:1.数据模型的三个要素数据结构,数据操作,完整性约束2.数据库领域常用的逻辑模型层次网状关系,最常用的是关系数据模型3.E-R图是一定要掌握的,一定要会画实体-矩形框联系-菱形框画E-R图时要注意几个点:a.每一个实体一定要画上属性b.联系和联系之间是一对一还是多对多一定要画上4.三级模式结构外模式模式内模式哪两个映像保证了哪两个独立性这个一定要清楚怎么保证的外模式就是我们说的子模式,也就是数据库里的视图一个数据库里的模式有1个,内模式有?个,外模式有多个第二章:1.什么叫关系的域简单来说,就是一个属性的取值范围,它的取值是整型还是字符串型2.什么叫笛卡儿积要会求笛卡儿积,其他的像选择,投影,自然连接等都要会求,看清楚题目是求等值连接还是自然连接,这两个是不一样的3.什么叫关系关系的元组是什么,属性是什么4.提到关系有一组码的概念一定要清楚候选码主码外部码这三个码的概念非常重要候选码:它能够唯一的标识出整个元组来,候选码不是只有一个属性,有可能是一个或多个属性,候选码的属性不能是空值主码:多个候选码中选定一个作为主码外部码:一个属性它在当前这个关系中不是码,但是它和另外一个关系当中的主码相对应,我们就说这个属性是当前这个关系的一个外部码。外部码与参照完整性密切相关在外部码中要知道哪一个是参照关系,哪一个是被参照关系外部码的取值约束:外部码的取值不是任意的,或者为空,或者为所参照关系的主码的某一个值全码:所有的属性全部加在一起才能当作码,其中任一部分都不能构成码的叫全码在多值依赖里全码的例子比较多5.关系数据模型的第二个要素关系数据操作我们分为三大类关系代数关系演算SQL关系代数是考察的重点关系代数的两种考察方法:1.考计算题2.考表达式8种运算符:4种集合运算符(并,交,差,笛卡儿积)这四个求结果一定要会求求结果时先把属性列写出来。4种专门的关系运算符(选择,投影,连接,除)符号不要写错选择:选出来满足条件的元组(从行的角度来进行运算)投影:选出来感兴趣的属性列,投影运算对结果的行数也有可能使其发生改变,比如说只在性别上做投影,相同的行就会消去。连接:一定要分清楚自然连接和等值连接。自然连接和等值连接有两个区别:1.做自然连接时,两个连接的关系R和S必须要有公共的属性列2.自然连接结果要把重复的去掉除:4种连接运算的实现:(也是一个重点,要求会用自己的语言解释这4种连接运算具体怎么做的,并且会举例子,课本上都有,重点掌握前两个,嵌套连接和排序合并,Hash连接和索引连接有时间就看一下)a.嵌套循环当时讲了两种情况:一种是R和S直接在内存中连接起来一种是内存不够了需要分块把它连接起来,我们还讨论了到底是关系小的当作外层的表还是大的当作外层的表。对大家主要要求第一种情况要知道外层循环的表读了多少遍,内层循环的表读了多少遍假设Student表是外层循环,Student中有n个元组,Student和SC做连接,Student表读了一遍,SC表读了n遍。b.排序合并就上面那个问题,在排序合并的方法中,Student表读了1遍,SC表也是读了一遍。c.索引连接d.HashJoin关系演算这一次不做要求,不要求大家掌握SQL是具有关系代数和关系演算双重特点的一种语言在SQL里我们讲的全称量词,蕴含谓词大家如果觉得很难理解可以到前面关系演算里面看一看,虽然关系演算我们不要求大家会写,但是里面的思想可以帮助我们理解全称量词啊逻辑蕴含这些思想6.提到对关系的操作呢主要是4大类查询插入删除修改对关系代数来说呢它的查询操作主要有8种,刚才已经说了,有4种是集合所专门的,有4种是关系代数所专门的。在这8种运算符里,有5种是基本的运算符,它们是并,差,笛卡儿积,选择,投影,这5种是缺一不可的。另外三种不是基本的,也就是交,连接,除,因为它们可以由基本的5种给推导出来,如何推导不要求。7.三类完整性约束刚刚讲了关系数据模型的数据结构是关系。这个一定要知道。数据操作有:关系代数,关系演算,SQL现在来讲一下完整性约束。关系数据模型有三类完整性约束:实体完整性约束参照完整性约束用户定义的完整性约束一定要知道这三种完整性约束的定义实体完整性约束:主码的属性不能是空。参照完整性约束:用户定义的完整性约束:第三章:1.对SQL考察主要让大家写查询,掌握基本的查询。掌握建表(注意定义主码和外部码的写法,尤其是主码是多个属性的情况),建视图。2.关于SQL与三级模式结构这个了解一下就可以了SQL访问基本表时直接操作的是模式SQL对视图的访问就是对外模式的访问SQL对存储文件的访问是内模式3.创建表和删除表CREATETABLEDROPTABLE注意drop和delete的区别:DROPTABLE是整个表的表结构给删除掉,DELETE删除的是数据。4.查询SELECTFROMWHEREGROUPBY和HAVING这两个一定要会写ORDERBY代码执行顺序:先从from指定的这个关系中把这个表找出来,然后根据where条件挑选出满足条件的元组来,然后如果有groupby语句还要进行分组,分组之后呢选出来列去进行排序。having和where的区别一定要清楚:having是对分组进行判断,如果条件是想对分组起作用,那条件写到having中;如果条件是想对所有元组起作用,那条件写到where里面。数据查询中,单表查询,连接查询,嵌套查询都要考。单表查询中要注意分组的情况(比较难),另外还要注意5个聚集函数:COUNT,SUM,AVG,MAX,MIN连接查询也是考查的一个重点。在写连接时一定要注意写连接条件,经常有同学忘了写。连接我们学的主要有:等值连接,关系和关系的自身连接,外连接,多表连接。经常遇到课本上的一个例题就是“先修课的先修课”,这个一定要弄清楚,在这种自身连接的时候呢一定要注意给它取别名嵌套查询也是经常遇到的,把一个SELECTFROMWHERE这样的一个块嵌套到其他的WHERE条件里面,我们就说这是一个嵌套查询。注意:嵌套在里面的子查询是不能ORDERBY的,因为ORDERBY是对最终的结果来进行排序。讲到嵌套查询的时候有一组很重要的概念,就是相关子查询和不相关子查询相关子查询:不可以独立执行,如果父查询不给它传递一个参数它就没法执行了。整个查询语句由外向内执行,从父查询到子查询。不相关子查询:查询条件不依赖于父查询,可以独立执行,不需要父查询给它传递一个参数。整个查询语句由内向外执行,从子查询到父查询。在查询里面有一个带有EXISTS的查询,是比较难的,大家一定要理解。一定要注意的就是说存在不存在它只返回true或者是false的值,它实际的列值是没有意义的,所以它的表达式一般都是用*号来表示在EXISTS中,全称问题和蕴含问题也是SQL里面比较难的,全称:比如说查询选修了全部课程的学生,那就是说不存在一个课程,他没有选修;那查询没有选修全部课程的学生就是存在一个课程这个学生没选。蕴含:比如说P逻辑蕴含Q就是非P或Q(打不出符号来只能用文字表达。流汗-_-``)比如查询至少选修了甲同学选修的全部课程的学生,可以转换成不存在这样一门课,甲同学选修了,而这个学生没选。上面两个问题中的例子是SQL查询里面最难的,大家要理解一下,写查询的时候写出来就可以。集合查询我们就不详细说了,因为集合查询用其他方法也可以写出来。记住:写SQL代码时只要能实现功能,写对就行了,不管用的是哪一种语句和哪一种连接。5.数据的更新包括三种情况:插入,删除,修改插入:insert一定要会带有子查询的插入语句。删除:delete一定要会带有子查询的删除语句。修改:update一定要会带有子查询的修改语句。子查询一定要写到等号的右边,这个一定要记住。6.视图CREATEVIEW视图是从一个或多个基本表里面导出的表和基本表的最基本的区别是视图是一个虚表,视图里面不存放数据,它只是一个定义,它只是一个SQL的语句,数据是放在基本表里的。不是所有的视图都可以更新的,比如建一个平均成绩的视图,这个视图就不能更新。行列子集视图:行列子集视图的概念(书上有),行列子集视图是可以更新的。如果考题问你哪个视图是可以更新的,你就判断一下哪个是行列子集视图。第四章:1.数据库常用的一些控制的方法这些了解一下就可以了用户身份鉴别:常用的就是登录用户名密码多重存储控制:?和强制审计和日志文件有什么区别:审计是把对数据库的所有操作都记录下来。比如用户登录时没登录进去的情况也记录下来。视图也对数据库的安全起了一定的保护机制,因为它把不需要用户知道的一些属性列都屏蔽了。2.讲安全的时候我们讲了2种标准TCSECCC3.存取控制自主存取控制:用?和REVOKE来给用户授权强制存取控制:分为许可证级别和密级,主体的敏感程度叫许可证级别,客体的敏感程度叫密集,当主体的许可证级别大于等于客体的时候它才能读,小于等于时才能写。自主存取控制和强制存取控制分别满足TCSEC的哪个级别?这个大家要清楚自主存取控制是C2级别,强制存取控制是B1级别第五章:1.完整性和安全性最主要的区别完整性防止的是合法用户对数据库的合法操作,但是造成数据库不一致的情况。2.如果在用户的操作过程中违反了完整性约束,我们应该怎么做a.数据库要提供一个定义完整性约束的机制体现:在CREATETABLE过程中体现b.定义了之后就要进行检查c.进行违约处理违约处理的方式3.什么叫角色(ROLE)角色是和数据库操作相关的一组权限的集合。第六章:1.大家要会分析给的题目中满足第几范式第一范式:第二范式:消除了非主属性对码的部分函数依赖第三范式:消除了非主属性对码的传递函数依赖BCNF(BC范式):判断方法:(非常重要)a.大家在判断一个范式的时候先根据它的题目把函数依赖写出来,b.接下来把它的候选码找出来,c.然后把所有的属性分成主属性和非主属性,d.最后来判断它满足第几范式.如果是消除了非主属性对码的部分函数依赖,它就满足第二范式。如果接下来消除了非主属性对码的传递函数依赖,它就满足第三范式。然后看它的决定因素,每一个决定因素是不是都含有码,如果都含有码,那它就满足BC范式。2.关系模式存在4个问题冗余度大,插入异常,更新异常,删除异常3.几组大家一定要清楚的函数依赖概念非平凡的函数依赖平凡的函数依赖完全函数依赖部分函数依赖传递函数依赖4.多值依赖不要写成多值函数依赖。什么叫多值依赖?很重要,要会举例子多值依赖和函数依赖的区别:多值依赖和属性集的范围是有关的。如果属性集的范围扩大了,多值依赖就不成立了。5.分解需要掌握什么叫无损分解?要会举例子把一个R分解成R1,R2……Rk,然后把R1,R2……Rk连接起来,它两的结果是相同的,我们就说它是一个保持无损连接的分解。第七章:1.数据库设计的六个阶段一定要会然后要记住需求分析和概念结构设计这两个阶段和具体的数据库没有关系。和数据库相关的是逻辑结构设计和物理结构设计。数据字典是需求分析阶段生成的。视图是逻辑结构设计阶段设计的。物理结构设计主要做的事:索引2.集成ER图主要有两步:一定要清楚a.合并b.修改和重构3.冲突了解一下就可以了属性冲突结构冲突命名冲突4.ER图往关系模型的转换第八章:简单看一下就可以了1.游标为什么要用游标呢,因为SQL是面向集合,高级程序设计是面向记录的,游标就相当于一个指针。第九章:1.一定要会画语法树,看清楚题目是让画优化以后的语法树还是优化之前的语法树语法树是从下到上画2.连接操作的实现方法重点,要求能用自己的话说出来,还要会举例,尤其前面两种方法在本文档整理的第二章第5点当中已将此问题整理了。3.查询优化的准则(5条)画语法树的时候就是按照这个准则来画的。4.查询优化的优点是什么(4条)考简答题这个大家一定要清楚我整理的PPT中有5.代数优化6.查询树的启发
本文标题:数据库重点整理
链接地址:https://www.777doc.com/doc-4835777 .html