数据库试卷题型:
选择题 20*2 =40
填空题 10*1 =10
简答题  3*4 =12SQL 30分+
插入 2
建视图 2
单表查询条件 2
平均成绩avg 2
多表查询 4
触发器
存储函数
存储过程设计题 20分+
1. 画ER图
2. 写关系模式
3. 分析范式
4. 分解范式

一、概念题

  • 数据库系统

    数据库具有永久存储,有组织,可共享的特点。 (泳游课

    DBMS提供数据安全型保护,完整性保护,恢复策略,并发控制等功能。

    数据库设计过程:需求分析,(概念,逻辑,物理)结构设计,数据库实施,数据库运行和维护

    SQL语言是集 数据定义,数据查询,数据操作,数据控制 于一体的。。

    ER图的主要元素是 实体,联系, 关键词。

    完整性控制包括:实体完整性,参照完整性,用户定义完整性。

    违反三个完整性的时候怎么办:违反实体和用户自定义,一般拒绝执行。违反参照,一般根据语义附加操作,确保数据正确性。

    关系规范化1NF问题:插入异常(无法插入),修改异常,删除异常(删了不改删的

    三级模式,两级映射,两个独立性。

    关系的完整性原则是什么?:即主属性不可以取空值。若属性F是关系R的外码,当F不是主属性时可以取空值。

    是能唯一标识元组的属性集。候选码是能唯一标识,又不含多余属性的。主码是候选码中的一个

    主属性是主码中的每个属性。F是R的属性,不是R的主码,是S的主码,所以是R的外码。

  • 视图的特点:与select语句一一对应,是虚表。

    视图的优点:简化用户操作,使用户多个角度看问题,对重构数据库提供帮助。

    索引的概念:关于物理结构设计的,聚簇索引可以影响记录表顺序,其他不行。

  • 并发控制:

    使用封锁技术,保证可串行化
    封锁类型:排它锁(X锁),共享锁(Share)锁

    避免三种数据不一致:丢失修改,不可重复读,读脏数据。

    死锁是什么?两个事务各自锁定了数据,需要对方的数据,使用顺序封锁法避免。

    存储过程与事务的区别: 事务是保存在项目里的,存储过程是保存在数据库里的。事务中编程语言(java,C++等),存储过程中只有SQL语言。

  • 事务的特性:原子性,一致性,隔离性,持久性 (重点),,(愿一个吃)

    实现事务持久性的子系统:恢复管理

  • 故障与恢复

    故障的分类:事务内部故障,系统故障,介质故障**(重点)**

    恢复技术的实现:数据转储日志等级文件

    登记日志文件的原则:先写日志后写数据库,按照执行顺序登记。

    日志是记录事务对数据库更新操作的文件。

    日志文件的两种格式单位:记录数据块(重要)

  • 关系代数

    自然连接,等值连接区别:都是重要的连接运算,自然连接是特殊的等值连接,要求连接属性组中有相同的属性,并在结果中去掉该重复属性。

    规范化理论的指导意义:为判断关系优劣提供标准,指导关系数据模型的优化,提供理论基础。

参考资料:
高数帮4小时数据库不挂科+微信公众号尚学青年不挂科期末试卷和复习资料+学校复习试卷

二、SQL题

插入 2 (重要)
insert
into student(Sno, Sname, Ssex, Sdept, Sage)
values('201215128','陈冬','男','CS',18);删除(与select语句格式相同)
DELETE
FROM sc
WHERE Cno = 1;增加列(alter对应改变,table对应from,改变类型)
ALTER
TABLE Student
ADD Sbirthday datetime NULL;
ALTER
TABLE SC
CHANGE Grade Grade INT;更新
update sc
SET Grade = 89
WHERE Cno = 3 AND Sno = 201215122;---------------------------------------------------------------------建视图 2(与select语句一一对应)
create VIEW Boy_Student AS
select * From student WHERE ssex='男';创建表(与创建视图一样,把as_select换成()即可 )
CREATE TABLE sc(Sno CHAR(9) NOT NULL,Cno CHAR(4) NOT NULL, Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno)
);创建数据库(与创建表一样)
CREATE DATABASE Student_DB;
SHOW DATABASES;
USE Student_DB;---------------------------------------------------------------------单表查询条件 2
SELECT * FROM Student
WHERE Class=95031 OR Ssex='女'平均成绩avg,子查询 2
(DISTINCT 可以消除重复数据,可以select DISTINCT sno from score;)
(AVG计算的时候去掉重复数据,所以加一个distinct)
SELECT AVG(DISTINCT Degree)
FROM Score
WHERE Sno IN(SELECT SnoFROM StudentWHERE Class=95031
)函数查询
SELECT COUNT(DISTINCT Sno) //不能与*一起用,*可以单独用
FROM Student
WHERE Class=95031;分组查询 2
每组只选择一个显示, having判断是否显示该组(根据整租), where根据显示结果判断是否显示
SELECT Sno
FROM Score
GROUP BY Sno
HAVING MIN(Degree)>70 AND MAX(Degree)<90多表查询 4
因为可能有两个name列,所以多表的时候,用表名.列名区分
SELECT Teacher.Tname, Course.Cno, Score.Degree
FROM Teacher, Course, Score
WHERE Teacher.Tno= Course.Tno AND Course.Cno= Score.Cno AND Teacher.Tname='张旭'连接查询
是多表查询的一种,多表基于笛卡尔积,连接以一张表全部数据为根基
等值连接即内连接(INNER JOIN),等价于where写法
自然连接(范围更大)即外连接,分为LEFT OUTER JOIN 和RIGHT OUTER JOIN
SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
FROM students s
LEFT OUTER JOIN classes c
ON s.class_id = c.id;字符串查询
"%":能匹配任意长度的字符,"_":只能匹配任意一个字符。
SELECT * FROM Student WHERE Sname LIKE '%王%';查询空值
SELECT * FROM 表名 WHERE 字段名 IS NULL;
SELECT * FROM 表名 WHERE 字段名 IS NOT NULL;---------------------------------------------------------------------
触发器
插入学生信息后,新建默认选课并给null成绩
Create trigger t2
AFTER delete ON student FOR EACH ROW
BEGIN
UPDATE course
SET Tno = NULL
WHERE Tno = old.Tno;
END存储函数
本质一样,存储函数的限制比较多,例如不能用临时表,只能返回一个变量,而存储过程的限制较少。
drop function if exists myfunc;
create function myfunc(a int, b int) returns int
begindeclare str char(3);declare x int default 0;declare bir datetime default null;set x=a+b;return x;
end
select myfunc(2,3);存储过程
drop procedure if exists myproce;
Create procedure myproce()
begindeclare i int default 1;while i <> 10 doselect i;set i = i+1;end while;
end
call myproce;游标(指向一个select查询结果)
declare mycursor CURSOR for
SELECT `Sno`, `Sbirthday` FROM `Student` ORDER BY `Sno`;
OPEN mycursor; //打开游标
FETCH mycursor INTO na, birth; //检索游标(拿出一行,把该行的各个列值保存到各个变量中)
CLOSE mycursor;参考资料:
结合实验1,2,3阅读

三、设计题

1. 画ER图
2. 写关系模式
3. 分析范式
4. 分解范式E-R图
画E-R图(实体,关系,属性)
转关系模式:
对于[A]-n-<C>-1-[B],可以将C放在A的属性中,再把B的主码放在A的属性中。(1:1随意放一端)
对于[A]-n-<C>-m-[B],两边的主码+自己的属性,再开一个关系模式。
具体例子来说、
对于实体[A] 有 n:1的关系,需要把另一端的主码作为外码放过来(还要标上关系的属性)。否则就不用理会。
对于m:n的关系(连三个的关系也要),单独开一个,自己的属性加两边的主码。求AB闭包:从AB出发,使用关系递推,直到推不出来更多(或者全部推出来)为止。
求最小依赖集:右部只有一个属性。 然后对于所有关系除本求包,如果能推出右边的就可以把这个关系删掉,最后左边最小化(看看有没有能删的)范式:(重要)
1NF->2NF:消除非主属性对码的部分依赖。比如主码(A,B)存在A->C关系。分解的时候把AC拆分成一个关系即可。
2NF->3NF:消除非主属性对码的传递依赖。比如A->B,B->D。分解的时候把BD拆成一个关系。
3NF->BCNF:每一个左边的决定因素都是候选码。如果有{AB,CB} {(A,B)->C, C->D},C是决定性不是候选码,所以不是BCNF。( 定义回答的时候:不存在部分和传递依赖。)几个注意点:
1.第二三范式是针对非主属性的,BCNF范式是针对主属性的。
(一定要注意  判断部分依赖的时候  看后面的是不是  主属性元素)
2.对于传递函数依赖,左边的一定是码,码->属性,属性->另一个属性
举个例子{AB->C, CE->D} 候选码 ABE 主属性 A B E
而AB->C, CE->D, 不是传递依赖,因为AB不是码 (强调)范式例题:
如何判断候选码:从这几个属性出发,能推出所有的属性,那么就是候选码。
写出基本函数依赖?
每个商店,每个商品只在一个部门销售 ----> (商店编号,商品编号)->部门编号
每个商店,每个部门只有一个负责人   ----> (商店编号,部门编号)->负责人(商店编号,商品编号)->数量
判断第几范式?
根据依赖,发现没有左边单个的能唯一的决定右边的,所以是2NF
然后(商店编号,商品编号)->部门编号->负责人,存在传递,所以不是3NF
如何分解?
先分解关系R2(商店编号,部门编号,负责人)
得出R1(商店编号,商品编号,数量,部门编号)特殊样例:
对于只有一个函数依赖的关系,没有传递和部分,直接3NF,左边直接是码那就BCNF了。
F={Y->Z, XZ->Y}, 候选码XY和XZ, 主属性XYZ,没有部分依赖,没有传递依赖,所以3NF。Y是决定性但不是码,所以不是BCNF。占坑待填:
无损分解,保持依赖关系,树查询,有关锁的题这里ABD也是3NF范式,我来解释一下:
F={AB->C, AB->E, CDE->AB}
第一步:候选码:ABD    /    CDE          主属性:ABCDE
第二步:(其实这里与其他题不同,这个所有属性都是主属性,而第二第三范式是对非主属性的要求,所以直接就可以判断它是3NF范式以上)然后再看决定性因素,AB是决定性因素,但不包含码,所以是3NF范式
(注意一点就是:第二三范式   是对非主属性的        BCNF范式  是对主属性的)所以这里的AB->C,  AB->E  是主属性对码的部分依赖参考资料:
https://www.bilibili.com/video/BV1P5411e7rU

【mysql】期末数据库复习指南(《数据库系统概率》知识点总结,数据库系统原理,数据库设计课程复习)相关推荐

  1. 算法分析与设计课程复习之回溯法

    算法分析与设计课程复习之回溯法 一.基本思想 1.解空间 设问题的解向量为X=(x1,x2,-,xn) ,xi的取值范围为有穷集Si .把xi的所有可能取值组合,称为问题的解空间.每一个组合是问题的一 ...

  2. SQL数据库语言基础之SqlServer数据库原理与设计课程期末复习-条件查询实例练习【学生表、选课表、家庭作业表】

    文章目录 1.简单查询 2.查询在1999年出生的学生学号.姓名.出生日期 3.三次作业成绩都在60分以上的学生学号.课程号 4.查询姓张学生学号.姓名和专业班级 5.查询03级的男生信息 6.查询没 ...

  3. 【软考】软考简易版知识点复习指南汇总

    1.考试相关 2021软件设计师复习开坑指南 https://gwj1314.blog.csdn.net/article/details/121069520 2.知识点概要 10-12分 算法与数据结 ...

  4. JavaWeb课程复习资料——用于突击考试总结

    环境使用: 系统:win10 开发工具:IntelliJ IDEA 2021以上版本 数据库:MySQL 需求jar包:mysql-connector-java-5.1.39.jar Tomcat版本 ...

  5. mysql 事物状态有几种_MySQL知识点汇总:亿级高并发数据库运转原理大公开!

    - 点击上方"中国统计网"订阅我吧!- 做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离... 数据库的使用,是开发人员的基本功,对 ...

  6. 【软考】数据库数据库建模复习指南

    1.根据考纲 数据库知识 (1)数据库模型(概念模式.外模式.内模式) (2)数据模型,ER图,规范化 (3)数据操作 (4)数据库语言 (5)数据库管理系统的功能和特征 (6)数据库的控制功能 (7 ...

  7. MySQL Workbench 使用教程 - 如何使用 Workbench 操作 MySQL / MariaDB 数据库中文指南

    MySQL Workbench 是一款专门为 MySQL 设计的可视化数据库管理软件,我们可以在自己的计算机上,使用图形化界面远程管理 MySQL 数据库. 有关 MySQL 远程管理软件,你可以选择 ...

  8. Mysql复习计划(四)- 索引失效和数据库设计规范

    Mysql复习计划(四)- 索引失效和数据库设计规范 一. 索引失效 1.1 数据准备 1.2 最左匹配原则 1.3 计算.函数.类型转换导致索引失效 1.4 范围条件右侧的列索引失效 1.5 不等于 ...

  9. 数据库笔记整理--基于《数据库系统概论》第五版王珊一书|复习提纲和错题整合

    数据库原理复习大纲 第一章 数据库概述 1.1 概述 1.基本概念 数据库(DB).数据库管理系统(DBMS).数据库系统(DBS)概念 数据库是存储在计算机内.有组织的.可共享的数据集合. 数据库管 ...

最新文章

  1. 如何管理多个 SSH 连接
  2. Android 设置界面的圆角选项
  3. 【CodeForces - 289C】Polo the Penguin and Strings (水题,字符串,思维构造,有坑)
  4. 使用OpenCV可视化Intel Realsensen D435 深度图为彩色图
  5. c# mysql 链接池溢出_C#MySQL连接池限制,并清理连接
  6. 关于这个错误的不明原因的解决之道
  7. Schlumberger.SPAN.Rock.v9.1.5 1CD跨度岩石强调岩石射孔分析软件
  8. 易优插件采集伪原创发布插件免费
  9. macbook连接外接键盘
  10. 回归分析beta值的标准_线性回归分析其中“β、 T 、F”分别是什么含义?
  11. 支付宝企业转账到个人账户
  12. python爬虫系列——拉勾网
  13. c语言strict函数的作用,C语言实现进制转换函数的实例详解
  14. Ansible之Inventory定义
  15. input主动获取焦点
  16. 详解如何使用VS code搭建JavaScript环境(适合小白)
  17. Windows 10 PE的程序包
  18. 在腾讯的第二堂产品课——改变大河的流向
  19. Thinkphp6-make() 、依赖注入 、 容器
  20. Linux系统网络桥接

热门文章

  1. 经典卷积神经网络的学习(一)—— AlexNet
  2. Python 下的数据结构实现
  3. 唐诗辑注 —— 辛夷坞、南园十三首、问六十九
  4. 数据结构与算法 —— 动态数组
  5. 【剑指 offer】(十)—— 二进制形式 1 的个数
  6. C++基础——对函数模板的类型推导的补充
  7. matlab gui怎样将结果保存_Matlab将工作区变量保存到文件中的方法
  8. python画3d图-Python绘制3D图形
  9. python语言的主网址-Python简介
  10. python画曲线图-python绘制多个曲线的折线图