1.关系数据库设计
前置知识
-
2NF
-
3NF
-
BCNF
求候选键
简答知识点
-
关系数据库设计中,至少应满足的规范化条件是什么?
1NF
- 简述数据库中为何要进行并发控制?
当多个事务在数据库中并发地执行时,数据的一致性可能不再维持,系统有必要控制各事务之间的相互作用。
并发控制机制存在的目的是为了获得高度的并发性,同时保证所产生的调度是冲突可串行化的或视图可串行化可恢复的,并且无级联的
大题
判断范式等级
step1-求候选键
step2-写出非主属性(未出现在候选键中的属性)和候选键
step3-从2NF开始一步一步判断
例题
求候选键
3NF分解
step1.求正则覆盖Fc
step2.观察U找未在Fc中出现的属性,单独划分为一个集合
step3.Fc中左侧相同的划分为一个集合,若没有则一个依赖划分为一个集合
step4.求Fc中的candidate key 若已划分集合中不包含candidate key则单独划分一个集合
2.sql和关系代数
简答知识点
-
函数,过程,触发器
- 函数:显式调用,有显式返回值,返回值可不止一个
- 过程:无显式返回值,需要显式调用,用于执行一系列操作,返回值可不止一个
- 触发器:有触发事件,系统自动调用,无返回值
-
DDL,DML,DCL
DDL:创建,修改,删除 关系模式(表),索引,视图
DML:查询,插入,修改,删除数据
DCL:创建用户角色和权限,控制数据库访问
-
视图
只能更新满足以下条件的视图
- 列只来自一个表(单表视图)
- 没有distinct,聚集函数
- 没有group by,having子句
- 包含所有非空属性
-
简述等值连接和自然连接的异同
等值连接是通过on把两个选中该属性值相等的元组合并
自然连接也是合并,但是是只能遇到同名属性列进行连接
它们两个都是在笛卡尔乘积的情况下进行筛选
-
简述where子句和having子句的区别
having用于从组中选择满足条件的组
where用于从基本表或视图中选择满足条件的元组
大题
-
sql语句顺序
-
(分组) g (聚集函数)
-
除法
套公式 (两个not exists)相当于x / y
例题(刚考完尝试回忆一下真题)
Customer(cid,cname,
Product(pid,pname
Supply(aid