数据库期末复习资料整理(2023-06DHU数据库考试)

目录

写在前面

第一部分 教学内容复习提纲(参考书:数据库系统教程 第三版 高等教育出版社)

       第一章 数据库概论

       第二章 关系模型

       第三章 SQL语言(具体略,全靠平时掌握)

       第四章 规范化设计

       第五章 数据库设计

       第七章 系统实现技术

第二部分 复习课划的重点和老师的叮嘱

第三部分 作业实验内容复习(重点题型详细过程)

总结


写在前面

       这篇文章是薯条考完以后整理的所有复习笔记,希望能帮助到有需要的同学。薯条数据库分数90,保证内容都是干货。如果某些内容在文章中反复出现那就一定是重中之重!

        本复习资料可以用来速成免挂科,也可以给各位大佬提供查漏补缺的思路

        ※本资料是2023年6月DHU数据库考试复习资料整理,并不一定适用于您的复习!

        我们一起加油!!!

第一部分 教学内容复习提纲

       第一章 数据库概论

              1.1 数据管理经过的三个阶段与对应图

                     ①人工管理阶段

                    

                     ②文件系统阶段

                    

                     ③数据库技术管理阶段

                    

 

             

              1.2数据抽象的过程

                     ①概念模型

                     ②逻辑模型

                     ③外部模型(如果题目三个空则省略第三个过程)

                     ④内部模型

             

              1.3 三层模式两级映像

                     其中“概念逻辑模式”简称“模式”。

                    

             

              1.4 数据独立

                     含义:应用程序与数据库的数据结构之间相互独立、互不影响。

                     原理:物理结构改变,可通过改变内模式避免应用程序改变;逻辑结构改变,可通过改变外模式避免应用程序改变。

                1.5 DBMS(DataBase Management System)

                工作模式:

                        ①接受应用程序的应用请求与处理请求;

                        ②将用户的数据请求转化为复杂的机械代码;

                        ③实现对数据库的操作;

                        ④从操作中接收查询结果;

                        ⑤对查询结果进行处理;

                        ⑥将处理结果返回给用户。

                主要功能:

                        ①数据库定义;

                        ②数据库操纵;

                        ③数据库运行管理;

                        ④数据库建立和维护;

                        ⑤数据字典。

                DBA职责(数据库管理员):

                        ①与用户联络,定义模式;

                        ②定义内模式;

                        ③与用户联络,定义外模式、设计应用程序;

                        ④定义安全性规则,授予用户访问权限;

                        ⑤定义完整性规则,监督数据库的运行;

                        ⑥数据库的转储与恢复工作。

第二章 关系模型

        2.1 关系模型基本概念

               用二维表格表示实体集,用关键码表示实体间联系的数据模型。

               *一个表的外键一定是另一个表的候选键。

        2.2 关系模型三类完整性规则

               ①实体完整性:主键不为空;

               ②参照完整性:不允许引用不存在的实体;

               ③用户自定义完整性。

               三层体系结构:

               ①关系模式

               ②子模式

               ③存储模式

        2.3 关系代数类别

               ①五个基本关系代数:

                      并、差、笛卡尔积、投影、选择;

               ②四个组合关系代数:

                      交、θ连接(条件连接)、自然连接、除法;

               ③七个扩充关系代数:

                      改名、广义投影、赋值、外连接、外部并、半连接、聚集操作。

                      *聚集操作:max、min、avg、sum、count。

        2.4 投影和选择

               在做投影和选择的时候,需要特别注意交集和并集的时机。

               经典例题:选出既选数据库又选C++的学生。

                标准错误答案:

                        第一步 选择course=‘database’并且course=‘cpp’的行;

                        第二步 将符合要求的行投影。

                标准正确答案:

                        第一步 选择course=‘database’的行;

                        第二步 选择course=‘cpp’的行;

                        第三步 两次结果做交集;

                        第四步 将符合要求的行投影。

             

       2.5 语法树

                核心思路:将外侧的选择和投影尽可能放到内侧;注意外侧出现的所有属性都需要在内侧被投影。

                需要熟练掌握:1、写出优化语句 2、转初始语法树 3、转优化语法树。

             

       第三章 SQL语言(具体略,全靠平时掌握)

        3.1 SQL语言的组成及特点

        3.2会用SQL语言创建表格,设立主外键

        3.3 使用SQL语言修改表的列名,数据类型,增加列,删除列

        3.4 给定几个表格,会使用SQL语言完成查询,更新,增加,删除的操作

        3.5 使用SQL语言创建用户,设置口令,赋予各种权限

        3.6视图的特性和作用,会使用SQL语言对视图进行操作

        3.7 SQL语言对某个字段创建唯一索引,簇族索引

      

       第四章 规范化设计

              4.1 各范式定义

                     1NF:关系模型R的每个关系r的属性值都是不可分的原子值;

                     2NF:在1NF的基础上,每一个非主属性值都完全函数依赖于码;

                     3NF:在2NF的基础上,消除了非主属性对于码的传递依赖;

                     BCNF:在3NF的基础上,消除了主属性对于码的部分函数依赖和传递依赖。

                     各范式存在的问题:

                     1NF:冗余、插入异常、删除异常、修改异常;

                     2NF:插入异常、删除异常;

                     3NF:基本解决上述问题,但是主属性必须不为空,仍然存在局限性。

             

              4.2 模式分解特性

                     ①无损连接分解;

                     ②保持函数依赖分解。

                     *规范化操作:符合更高级范式的过程。

             

              4.3 本章大题题型:

                     1、求Fmin(F的最小函数依赖集)

                     2、求候选键

                     3、是否是无损分解?是否是保持函数依赖分解?

                     4、将XX无损分解为3NF/BCNF。

             

       第五章 数据库设计

              5.1 数据库设计的六个阶段(务必知道具体内容,题目可能问XXX操作是哪一个阶段?)

                     ①需求分析;

                     ②概念结构设计;

                     ③逻辑结构设计;

                     ④物理结构设计;

                     ⑤数据库实施;

                     ⑥运行和维护。

             

              5.2 ER模型相关概念

                     ER模型由美籍华人陈品山发明,用于描述概念模型。

             

              5.3 本章大体题型:

                     给ER图,要求转为关系模型。

             

       第七章 系统实现技术

              7.1 事务的性质:ACID

                     A:Atomicity:原子性;

                     C:Consistency:一致性;

                     I:Isolation:隔离性

                     D:Durability:持久性。

             

              7.2 数据库恢复的基本原则:

                     冗余的数据库重复存储。

                     实现方法:

                     ①转出和建立日志;

                     ②装入日志库重做/撤销不可靠修改。

                    

             

              7.3 并发问题

                     ①丢失更新问题;

                     ②读脏数据问题;

                     ③错误求和问题;

                     ④不可重复读问题。

             

              7.4 两种封锁

                     1、X锁:排他锁;

                     2、S锁:共享锁。

             

              7.5 封锁会产生的问题和解决方法

                     ①活锁

                     解决:使用FCFS策略。

                     ②饿死

                     (没有固定方法)

                     ③死锁

                     解决:预防:一次封锁、顺序封锁;解除:超时法、等待图法。

             

              7.6 数据库完整性

                     正确性、有效性、相容性

             

              7.7 数据库安全性

                注意此处安全性和上面完整性的区别

                区别在于:完整性防止已授权用户出错,安全性防止未授权终端的攻击

             

第二部分 复习课划的重点和老师的叮嘱(只列出关键词,比较重要的在第一、三部分肯定有写)

        1、低范式的优点

        2、判断候选键

        3、判断范式等级

        4、最基本的需求分析一定不能出错

        5、求Fmin三步分开写清楚,错了也拿步骤分

        6、无损分解方法(简便方法和chase都要掌握)

        7、模式分解,注意合并

        8、视图的作用

        9、数据库设计过程

        10、概念模型特点

        11、合并ER图问题

        12、ER图转关系模型,注意细节

        13、SQL语言不会有太多难题,要把最基本的语句掌握好

        *SQL语句实际考试感觉介词容易搞混,希望后来者吸取教训

        14、数据独立性保障来源

        15、注意建立表格时外键写法

        16、分解为3NF

        17、索引属于哪个设计阶段?(物理结构设计)视图属于哪个?(逻辑结构设计)等等

        18、事务部分要掌握

第三部分 作业实验内容复习(重点题型详细过程)

*这里很多过程使用简写,看不懂的话去翻书找更详细解释

       1、低范式的优点

              在某些情况下可以更少地进行连接,便于查询

      

       2、判断候选键(两种问题)

              ①根据实际情况和ER图

              ②根据关系模式

                     (1)只在左侧

                     (2)只在右侧

                     (3)两侧同时出现

                     计算闭包,判断是否为全集U

                            *计算闭包过程:例:

                                   令X=A,Xf1+=…,Xf2+=…,Xf3+= Xf2+=U,即A为候选键(之一)

              *如果有多个候选键需要全部列出,注意主属性是所有候选键中出现的属性的集合

      

       3、判断属于第几范式?

              需要从低向高依次说明。

              1NF:关系模型R的每个关系r的属性值都是不可分的原子值;

              2NF:在1NF的基础上,每一个非主属性值都完全函数依赖于码;

              3NF:在2NF的基础上,消除了非主属性对于码的传递依赖;

              BCNF:在3NF的基础上,消除了主属性对于码的部分函数依赖和传递依赖。

              *单元素属性作为码,至少2NF起步

      

       4、求最小函数依赖集

              (1)右侧拆分

              (2)左侧拆分,去除部分依赖

              (3)逐一检查是否可以删除,去除传递依赖

      

       5、无损连接判断

              ①两张表判断:采用简便办法

                (1)求交集R1R2;

                (2)求差集R1-R2和R2-R1;

                (3)根据依赖集判断R1R2是否可以推出R1-R2或R2-R1,若可以推出其中之一则是无损。

              ②多张(3及以上)表判断:Chase法

                *Chase不懂一定要看书

                     (1)求Fmin

                     (2)构造Rp表(就是那个a和b的)

                     (3)反复根据Fmin进行推导,直到Rp表不再发生变化

                     (4)若有某一行全部变为a则为无损。

      

       6、模式分解为3NF(无损并保持函数依赖)

              (1)求Fmin,并做右侧合并变为Fmin’;

              (2)对Fmin’中的每一个FD(函数依赖)构造一个模式

              (3)若出现候选键丢失则需要补充一个新的关系模式表示候选键

              *(3)是区别优良学生的细节考点

      

       7、视图的作用

              ①简化用户的操作

              ②使用户能以多角度看待同一数据

              ③对重构数据库提供了一定程度的逻辑独立性

              ④对机密数据提供安全保护

              ⑤可以更清晰地表达查询

      

       8、数据库设计过程(需要知道每一步具体对应哪一种题目,你总要知道你学了某一类题目是为了啥吧)

              ①需求分析; //分析依赖

              ②概念结构设计; //ER图——应用需求

              ③逻辑结构设计; //关系模型、视图——转换规则、管理系统基本功能、优化

              ④物理结构设计; //索引——应用要求、管理系统特征、存储和读取设计

              ⑤数据库实施;

              ⑥运行和维护。

      

       9、概念模型的特点

                ①能真实、充分地反应现实世界,是现实世界的一个真实模型;

                ②易于理解,从而可以用它和不熟悉计算机的用户交换意见;

                ③易于更改,当应用环境和应用要求改变时,容易对概念模型作出修改;

                ④易于向关系、网状、层次等各种数据模型转换。

      

       10、合并ER图需要注意的问题

              ①属性冲突:属性域冲突、属性单位冲突

              ②命名冲突:同名同义、异名同义

              ③结构冲突:同一对象在不同应用中有不同抽象、同一实体在不同子系统的ER图中所包含属性个数和属性排列次序不完全相同、实体间的联系在不同的ER图中为不同的类型。

      

       11、ER图转关系模型细节

       *重要考点,看不懂的去看书和PPT

              ①一对一关系:

                     任意单向加入

              ②一对n关系:

                     1端实体属性与关系全部加入n端实体属性(作为外键)

              ③n对m关系:

                     不互加,将关系与关系属性转化为新模型(同时为两张表的外键)

      

       12、数据独立性由什么来保障?

              独立性:应用程序与数据库的数据结构之间相互独立。

              保障:三层模式两级映射结构。

      

       13、建表语句(注意主键外键设置)

create table STUDENT(
    SID char(15) PRIMARY KEY NOT NULL,
    SNAME VARCHAR(30),
    SSEX CHAR(10),
    SLOCATION VARCHAR(20),
    SAGE SMALLINT
);
INSERT INTO STUDENT
    VALUES ('001','LI YANG','MALE','BEIJING',20);

INSERT INTO STUDENT
    VALUES('002','ZHANG FAN','MALE','SHANGHAI',21);
    
INSERT INTO STUDENT
    VALUES ('003','WANG MEI','FEMALE','BEIJING',22);
    
INSERT INTO STUDENT
    VALUES('004','LI XIU','FEMALE','SHENZHEN',NULL);
    
CREATE TABLE COURSE(
    SID CHAR(15) NOT NULL,
    CNAME VARCHAR(20),
    CTEACHER VARCHAR(20),
    CGRADE SMALLINT,
    PRIMARY KEY (SID,CNAME),
    FOREIGN KEY(SID) REFERENCES STUDENT(SID)
);
INSERT INTO COURSE
    VALUES
    ('001','DATABASE','SUN',88);
INSERT INTO COURSE
    VALUES
    ('001','JAVA','YANG',84);
INSERT INTO COURSE
    VALUES
    ('002','DATABASE','SUN',96);
INSERT INTO COURSE
    VALUES
    ('003','JAVA','YANG',90);

              上面只是例子,需要熟练掌握其中每一步。

      

总结:

       高分=好好上课+好好写作业+好好做实验+好好复习考试+考试别紧张+合理的时间安排。

       数据库知识点很多、考点很杂,但是都是成体系的,相对更好复习。

       考卷题量和时间把握很重要,我们这一届的体量很大,薯条前面做的太仔细后面空了几道题,太可惜了。一定要掌握好时间!

       祝同学们取得好成绩!!!

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值