文章目录
一、数据模型的分类
1.1、概念数据模型
1.2、结构数据模型
二、三级模式
三、两级映像
四、关系代数
五、SQL语言
笛卡尔积序号为:全部属性
自然连接序号:排除重复属性
混合题
六、查询语句
七、SQL控制语句
grant [权限] on 库.表 to 用户 [with grant option]
with grant option # 允许将权限赋予其他人
八、视图
对视图进行增删改查实际是对实际表进行增删改查
对视图进行操作不必满足 where 条件,但查出来的数据仍需满足 where 条件
create view A as
select * from table_name where dept="计算机系" # 给视图插入数据且dept不一定为计算机系
insert into A values("jiali","计算机") # ok
insert into A values("Laptoy","软件工程") # ok
[with check option]
:对视图进行操作必须满足 where 条件
create view B as
select * from table_name where dept="计算机系"
[with check option] # 给视图插入数据时dept一定为计算机系,否则报错
insert into B values("Laptoy","计算机") # ok
insert into B values("jiali","软件工程") # no
九、索引
CREATE UNIQUE INDEX index_name ON TABLE(Field);
十、关系模式,函数依赖,码,属性闭包计算
1、关系模式
2、函数依赖
1、完全函数依赖
- X->Y,并且X的任何真子集都无法决定Y,那么Y对X完全函数依赖
- (学号+课程号)->成绩,学号或者课程号都无法单独决定成绩
- 如果不是组合函数,那么X->Y一定是完全函数依赖
2、部分函数依赖
- X->Y,但X的其一真子集可以决定Y,那么Y对X部分函数依赖
- (学号+身份证号)->姓名,学号或者身份证号都可以单独确定姓名
3、传递依赖:X->Y,Y->Z,那么Z对X传递依赖,X->Z可以忽略(冗余),员工->岗位,岗位->工资
3、码
简单说就是若候选码中的部分码能决定函数,那么选择该部分码作为候选码
4、属性闭包计算( 无法被决定的键一定是候选键)
真题1
无法被决定的键一定是候选键,比如本题A无法被决定,那么候选键中必定有A
主属性是指候选键包含的属性那就是主属性,例如上面的AC和AB为候选键,那主属性就有ABC
本题A无法推出所有,那么
AB->ABC
AC->ABC
所以ABC都是主属性
真题2
真题3
真题4
真题5
真题6
真题7
真题8
真题9
真题10
真题11
十一、范式
1、第一范式(属性原子化)
2、第二范式(消除部分函数依赖)
函数分解:消除部分函数依赖(复合主键才会可能出现部分函数依赖)
满足第二范式可能也产生传递函数依赖:学号->学院->院长
3、第三范式(消除传递函数依赖)
将中间属性分解出去作为主属性:可能同时存在X->Y->Z1、Z2、Z3
,转化为Y->Z1 Y->Z2 Y->Z3
4、BC范式(消除主属性对候选码的部分和传递依赖)
下图存在主属性对候选码的部分函数依赖
将重复的候选码作为新函数依赖进行分解
5、第四范式
6、规范化步骤
7、判断部分函数依赖
8、判断传递函数依赖
其实也就是若X->Y,且WY->Z,那么其实这个WY(X)->Z,相同(伪传递率)
9、真题
真题1
真题2
真题3
真题4
真题5
真题6
真题7
10、无损连接和保持函数依赖
自然连接得到所有属性为无损连接
10、真题
真题1
真题2
真题3
十二、数据库设计
1、需求分析
2、E-R图
真题1
真题2
3、概念设计
真题1
真题2
4、逻辑结构设计
真题1
真题2
真题3
真题4
真题5
真题6
十三、事务管理
真题1
真题2
十四、数据库备份与恢复
真题1
真题2
真题3
十五、封锁
真题1
真题2
十六、分布式数据库
真题1
真题2
真题3
十七、杂题
真题1
真题2
真题3
真题4
真题5
真题6
真题7
真题8