数据库重点整理_第1页
数据库重点整理_第2页
数据库重点整理_第3页
数据库重点整理_第4页
数据库重点整理_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业所有内容主要针对期末考试卷内容,也具有一定数据库这门课程的重点指向性。所有写的内容为老师期末考试之前统一带着复习时所说的重点没有写的或者空着的就是老师当时没说的蓝色字体表示比较重要的专业名词红色字体表示重要的程度第一章:数据模型的三个要素数据结构,数据操作,完整性约束数据库领域常用的逻辑模型层次 网状 关系, 最常用的是关系数据模型E-R图是一定要掌握的,一定要会画实体-矩形框 联系-菱形框画E-R图时要注意几个点:每一个实体一定要画上属性联系和联系之间是一对一还是多对

2、多一定要画上三级模式结构外模式 模式 内模式哪两个映像保证了哪两个独立性 这个一定要清楚怎么保证的外模式就是我们说的子模式,也就是数据库里的视图一个数据库里的模式有1个,内模式有?个,外模式有多个第二章:1. 什么叫关系的域简单来说,就是一个属性的取值范围,它的取值是整型还是字符串型2. 什么叫笛卡儿积要会求笛卡儿积,其他的像选择,投影,自然连接等都要会求,看清楚题目是求等值连接还是自然连接,这两个是不一样的3. 什么叫关系关系的元组是什么,属性是什么提到关系有一组码的概念一定要清楚候选码 主码 外部码 这三个码的概念非常重要候选码:它能够唯一的标识出整个元组来,候选码不是只有一个属性,有可能

3、是一个或多个属性,候选码的属性不能是空值主码:多个候选码中选定一个作为主码外部码:一个属性它在当前这个关系中不是码,但是它和另外一个关系当中的主码相对应,我们就说这个属性是当前这个关系的一个外部码。外部码与参照完整性密切相关在外部码中要知道哪一个是参照关系,哪一个是被参照关系外部码的取值约束:外部码的取值不是任意的,或者为空,或者为所参照关系的主码的某一个值全码:所有的属性全部加在一起才能当作码,其中任一部分都不能构成码的叫全码在多值依赖里全码的例子比较多关系数据模型的第二个要素关系数据操作我们分为三大类关系代数 关系演算 SQL关系代数是考察的重点 关系代数的两种考察方法:1.考计算题 2.

4、考表达式8种运算符:4种集合运算符(并,交,差,笛卡儿积)这四个求结果一定要会求 求结果时先把属性列写出来。4种专门的关系运算符(选择,投影,连接,除)符号不要写错选择:选出来满足条件的元组(从行的角度来进行运算)投影:选出来感兴趣的属性列,投影运算对结果的行数也有可能使其发生改变,比如说只在性别上做投影,相同的行就会消去。连接:一定要分清楚自然连接和等值连接。 自然连接和等值连接有两个区别:做自然连接时,两个连接的关系R和S必须要有公共的属性列自然连接结果要把重复的去掉除:4种连接运算的实现:(也是一个重点,要求会用自己的语言解释这4种连接运算具体怎么做的,并且会举例子,课本上都有,重点掌握

5、前两个,嵌套连接和排序合并,Hash连接和索引连接有时间就看一下)嵌套循环 当时讲了两种情况:一种是R和S直接在内存中连接起来一种是内存不够了需要分块把它连接起来,我们还讨论了到底是关系小的当作外层的表还是大的当作外层的表。对大家主要要求第一种情况要知道外层循环的表读了多少遍,内层循环的表读了多少遍假设Student表是外层循环,Student中有n个元组,Student和SC做连接,Student表读了一遍,SC表读了n遍。排序合并 就上面那个问题,在排序合并的方法中,Student表读了1遍,SC表也是读了一遍。索引连接Hash Join关系演算这一次不做要求,不要求大家掌握SQL是具有关

6、系代数和关系演算双重特点的一种语言在SQL里我们讲的全称量词,蕴含谓词大家如果觉得很难理解可以到前面关系演算里面看一看,虽然关系演算我们不要求大家会写,但是里面的思想可以帮助我们理解全称量词啊逻辑蕴含这些思想提到对关系的操作呢主要是4大类查询 插入 删除 修改对关系代数来说呢它的查询操作主要有8种,刚才已经说了,有4种是集合所专门的,有4种是关系代数所专门的。在这8种运算符里,有5种是基本的运算符,它们是并,差,笛卡儿积,选择,投影,这5种是缺一不可的。另外三种不是基本的,也就是交,连接,除,因为它们可以由基本的5种给推导出来,如何推导不要求。三类完整性约束刚刚讲了关系数据模型的数据结构是关系

7、。这个一定要知道。 数据操作有:关系代数,关系演算,SQL 现在来讲一下完整性约束。 关系数据模型有三类完整性约束:实体完整性约束 参照完整性约束 用户定义的完整性约束一定要知道这三种完整性约束的定义实体完整性约束:主码的属性不能是空。参照完整性约束:用户定义的完整性约束:第三章:1. 对SQL考察主要让大家写查询,掌握基本的查询。掌握建表(注意定义主码和外部码的写法,尤其是主码是多个属性的情况),建视图。2. 关于SQL与三级模式结构 这个了解一下就可以了SQL访问基本表时直接操作的是模式SQL对视图的访问就是对外模式的访问SQL对存储文件的访问是内模式3. 创建表和删除表CREATE TA

8、BLEDROP TABLE注意drop和delete的区别:DROP TABLE是整个表的表结构给删除掉,DELETE删除的是数据。4. 查询SELECT FROM WHERE GROUP BY 和 HAVING 这两个一定要会写ORDER BY代码执行顺序:先从from指定的这个关系中把这个表找出来,然后根据where条件挑选出满足条件的元组来,然后如果有group by语句还要进行分组,分组之后呢选出来列去进行排序。having和where的区别一定要清楚:having是对分组进行判断,如果条件是想对分组起作用,那条件写到having中;如果条件是想对所有元组起作用,那条件写到where里

9、面。数据查询中,单表查询,连接查询,嵌套查询都要考。 单表查询中要注意分组的情况(比较难),另外还要注意5个聚集函数:COUNT,SUM,AVG,MAX,MIN连接查询也是考查的一个重点。在写连接时一定要注意写连接条件,经常有同学忘了写。连接我们学的主要有:等值连接,关系和关系的自身连接,外连接,多表连接。经常遇到课本上的一个例题就是“先修课的先修课”,这个一定要弄清楚,在这种自身连接的时候呢一定要注意给它取别名嵌套查询也是经常遇到的,把一个SELECT FROM WHERE这样的一个块嵌套到其他的WHERE条件里面,我们就说这是一个嵌套查询。 注意:嵌套在里面的子查询是不能ORDER BY的

10、,因为ORDER BY是对最终的结果来进行排序。讲到嵌套查询的时候有一组很重要的概念,就是相关子查询和不相关子查询相关子查询:不可以独立执行,如果父查询不给它传递一个参数它就没法执行了。整个查询语句由外向内执行,从父查询到子查询。不相关子查询:查询条件不依赖于父查询,可以独立执行,不需要父查询给它传递一个参数。整个查询语句由内向外执行,从子查询到父查询。在查询里面有一个带有EXISTS的查询,是比较难的,大家一定要理解。一定要注意的就是说存在不存在它只返回true或者是false的值,它实际的列值是没有意义的,所以它的表达式一般都是用*号来表示在EXISTS中,全称问题和蕴含问题也是SQL里面

11、比较难的,全称:比如说查询选修了全部课程的学生,那就是说不存在一个课程,他没有选修;那查询没有选修全部课程的学生就是存在一个课程这个学生没选。蕴含:比如说P逻辑蕴含Q就是非P或Q(打不出符号来只能用文字表达。流汗 -_- )比如查询至少选修了甲同学选修的全部课程的学生,可以转换成不存在这样一门课,甲同学选修了,而这个学生没选。上面两个问题中的例子是SQL查询里面最难的,大家要理解一下,写查询的时候写出来就可以。集合查询我们就不详细说了,因为集合查询用其他方法也可以写出来。 记住:写SQL代码时只要能实现功能,写对就行了,不管用的是哪一种语句和哪一种连接。 数据的更新包括三种情况:插入,删除,修

12、改 插入:insert 一定要会带有子查询的插入语句。删除:delete 一定要会带有子查询的删除语句。修改:update 一定要会带有子查询的修改语句。子查询一定要写到等号的右边,这个一定要记住。视图CREATE VIEW视图是从一个或多个基本表里面导出的表和基本表的最基本的区别是视图是一个虚表,视图里面不存放数据,它只是一个定义,它只是一个SQL的语句,数据是放在基本表里的。不是所有的视图都可以更新的,比如建一个平均成绩的视图,这个视图就不能更新。行列子集视图:行列子集视图的概念(书上有),行列子集视图是可以更新的。如果考题问你哪个视图是可以更新的,你就判断一下哪个是行列子集视图。第四章:

13、1. 数据库常用的一些控制的方法 这些了解一下就可以了用户身份鉴别:常用的就是登录用户名密码多重存储控制:?和强制 审计和日志文件有什么区别:审计是把对数据库的所有操作都记录下来。比如用户登录时没登录进去的情况也记录下来。视图也对数据库的安全起了一定的保护机制,因为它把不需要用户知道的一些属性列都屏蔽了。2. 讲安全的时候我们讲了2种标准TCSEC CC3. 存取控制自主存取控制:用?和REVOKE来给用户授权强制存取控制:分为许可证级别和密级,主体的敏感程度叫许可证级别,客体的敏感程度叫密集,当主体的许可证级别大于等于客体的时候它才能读,小于等于时才能写。自主存取控制和强制存取控制分别满足T

14、CSEC的哪个级别? 这个大家要清楚自主存取控制是C2级别,强制存取控制是B1级别第五章:1. 完整性和安全性最主要的区别完整性防止的是合法用户对数据库的合法操作,但是造成数据库不一致的情况。2. 如果在用户的操作过程中违反了完整性约束,我们应该怎么做a. 数据库要提供一个定义完整性约束的机制体现:在CREATE TABLE过程中体现b. 定义了之后就要进行检查c. 进行违约处理违约处理的方式3. 什么叫角色(ROLE) 角色是和数据库操作相关的一组权限的集合。第六章:1. 大家要会分析给的题目中满足第几范式第一范式:第二范式:消除了非主属性对码的部分函数依赖第三范式:消除了非主属性对码的传递

15、函数依赖BCNF(BC范式):判断方法:(非常重要)大家在判断一个范式的时候先根据它的题目把函数依赖写出来,接下来把它的候选码找出来,然后把所有的属性分成主属性和非主属性,最后来判断它满足第几范式. 如果是消除了非主属性对码的部分函数依赖,它就满足第二范式。如果接下来消除了非主属性对码的传递函数依赖,它就满足第三范式。然后看它的决定因素,每一个决定因素是不是都含有码,如果都含有码,那它就满足BC范式。2. 关系模式存在4个问题冗余度大,插入异常,更新异常,删除异常3. 几组大家一定要清楚的函数依赖概念非平凡的函数依赖 平凡的函数依赖 完全函数依赖 部分函数依赖 传递函数依赖4. 多值依赖不要写

16、成多值函数依赖。什么叫多值依赖?很重要,要会举例子多值依赖和函数依赖的区别:多值依赖和属性集的范围是有关的。如果属性集的范围扩大了,多值依赖就不成立了。5. 分解需要掌握什么叫无损分解?要会举例子把一个R分解成R1,R2Rk, 然后把R1,R2Rk连接起来,它两的结果是相同的,我们就说它是一个保持无损连接的分解。第七章:1. 数据库设计的六个阶段 一定要会然后要记住需求分析和概念结构设计这两个阶段和具体的数据库没有关系。和数据库相关的是逻辑结构设计和物理结构设计。数据字典是需求分析阶段生成的。 视图是逻辑结构设计阶段设计的。 物理结构设计主要做的事:索引2. 集成ER图主要有两步: 一定要清楚

17、a. 合并b. 修改和重构3. 冲突 了解一下就可以了属性冲突 结构冲突 命名冲突4. ER图往关系模型的转换第八章:简单看一下就可以了1. 游标为什么要用游标呢,因为SQL是面向集合,高级程序设计是面向记录的,游标就相当于一个指针。第九章:1. 一定要会画语法树,看清楚题目是让画优化以后的语法树还是优化之前的语法树语法树是从下到上画2. 连接操作的实现方法 重点,要求能用自己的话说出来,还要会举例,尤其前面两种方法在本文档整理的第二章第5点当中已将此问题整理了。3. 查询优化的准则(5条)画语法树的时候就是按照这个准则来画的。4. 查询优化的优点是什么(4条) 考简答题 这个大家一定要清楚我整理的PPT中有5. 代数优化6. 查询树的启发式优化考察大家的就是画语法树画基本的原始的语法树时就用5种基本的运算符优化以后呢就变成连接啊等值的这种情况。7. 物理优化的作用a. 具有交换律和结合律的操作符的操作顺

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论