目录
第一部分 教学内容复习提纲(参考书:数据库系统教程 第三版 高等教育出版社)
写在前面
这篇文章是薯条考完以后整理的所有复习笔记,希望能帮助到有需要的同学。薯条数据库分数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);
上面只是例子,需要熟练掌握其中每一步。
总结:
高分=好好上课+好好写作业+好好做实验+好好复习考试+考试别紧张+合理的时间安排。
数据库知识点很多、考点很杂,但是都是成体系的,相对更好复习。
考卷题量和时间把握很重要,我们这一届的体量很大,薯条前面做的太仔细后面空了几道题,太可惜了。一定要掌握好时间!
祝同学们取得好成绩!!!