数据库
- 绪论:核心知识点、黄色部分、标题
- 关系数据库:概念、算子+操作2.2、2.3、2.4
- 关系数据库标准语言SQL:作业+实验看清题目是关系代数还是SQL
- 安全性:考察概念
- 完整性:概念+应用
- 习题+作业(关系数据库理论:范式、模式分解)
- 可能考点:7.3、7.4、7.5(概念结构设计、逻辑结构设计、物理结构设计)
- 应用
- 效率判断+策略选择
Chapter 1¶
Chapter 2¶
- 候选码:值能唯一标识一个元组,子集不能即为候选码
- 主属性:候选码的属性,非候选码属性为非主属性 候选码可以唯一标识一个元组,候选码可以为码的组合(eg:学号+课程号 为成绩表的候选码),主属性不可为空
- 主码:多个候选码时选取其中之一为主码
- 全码:所有属性为候选码(不可去除) 考点:区分主码/候选码/码
- 关系模式:\(R(U,D,DOM,F)\) R->关系名,U->属性名集合,D->U中属性来自的域,DOM->属性对域的指向集合,F属性域当中的依赖关系集合
- 算子:选择、投影、并、差、笛卡尔积基本操作(其他操作可以由基本操作推导)算子的操作对象和结果都是集合
- 完整性约束:实体完整性、参照完整性、用户自定义的完整性,前二者为关系的两个不变性(必须满足的条件)
- 实体完整性:规则:主属性不为空
- 参照完整性(相容性):考点(区分参照关系与被参照关系)Ps:往引用方向思考(一般情况:外码为参照关系,主码为被参照关系)
- 用户定义的完整性(一般只作为填空,与上二者同时出现)
- 关系代数:
- 二元运算:交、并、差、笛卡尔积
- 专门的关系运算:选择、投影、连接、除(连接=笛卡尔积+选择、)
- 连接:
- 自然连接
- 外连接(保留悬浮元组)(悬浮元组:不存在公共属性被舍弃的元组),保留左边为左外连接,同理右边为右外连接
- 除:难点
- \(R÷S\)的结果为\(R-S\)的属性的取值
- 象集:
- 连接:
Ps: 1. 关系操作中,操作对象和结果都是 集合 2. 关系数据模型组成要素:数据结构、操作集合、关系完整性约束(Cp 1 内容) 3. 三大模型特点:——>Cp 1 内容(数据模型) 1. 概念模型(信息模型):按照用户的观点对数据和信息进行建模主要用于数据库设计 概念模型首先将现实世界抽象为信息世界,数据库管理系统支持的数据模型再把信息世界转换为机器世界 3. 逻辑模型和物理模型:(非重点考点 maybe ) 4. 数据是信息的符号表示或者载体,信息是数据的内涵,是数据的语义解释。 5. 同一列的值必须来自同一个域
Chapter 3¶
S:供应商、P:零件表、J:工程项目表
select JNO
from SPJ
where SNO='S1'
select PNAME,COLOR,WEIGHT
from P
select SNAME,CITY
from S
select JNAME
from P,SPJ,S,J
where CITY='上海'
select PNO
from SPJ,S,P
where city='上海'
select PNAME,QTY
from SPJ,P
where JNO='J2',SPJ.PNO=P.pno
select JNO
from SPJ,S
where SPJ.SNO=S.SNO and SPJ.SNO not in(
select SNO
from SPJ,S
where SPJ.SNO=S.SNO and CITY='天津'
)
select SNO
FROM Student
where SNO not in(
select SNO
from SC
where CNO='C1'
group by SNO
)
select
作业5:
update P
set color='蓝色'
where color ='红色'
select *
from P
update spj
set sno='S3'
where sno='S5' and pno='P6' and jno='J4'
select *
from SPJ
delete
from SPJ
where SNO='S2'
delete
from S
where SNO='S2'
select *
from spj
insert
into SPJ(SNO,JNO,PNO,QTY)
value(S2,J6,P4,200)
select *
from SPJ
Chapter 4¶
Chapter 5¶
- 完整性:正确性、相容性。完整性是是为了防止数据库中出现不正确的数据
- 完整性与安全性的区别: 完整性:防止出现不正确的数据,对象:不合语意、不正确的数据 安全性:保护数据库被恶意的破坏,对象:非法用户、非法操作
Chapter 6¶
- 范式:
- 第一范式:满足最低要求(不可再分)
- 第二范式:第一范式的基础上——>去除非主属性的部分依赖关系
- 函数依赖:A→B,如果通过A属性(属性组)的值,可以确定唯一的B属性的值,则称B依赖于A
- 例如:学号---->姓名 (学号、课程名称 的属性组)→ 分数 2. 完全函数依赖:A→B 如果A是一个属性组,则B属性值的确定需要依赖A属性组的中所有的属性值 1. 例如:(学号、课程名称)→ 分数 2. 由左端所有属性可以推得右端 3. 多端可推出一端 3. 部分函数依赖: A→B 如果A是一个属性组,则B属性值的确定只需要依赖A属性组的中某一些的属性值(第二范式就是消除这个) 1. 例如:(学号 、课程名称)→ 姓名 2. 由左端部份属性可以推出右端 4. 传递函数依赖:A -- >B , B -- >C 如果通过A属性(属性组)的值,可以确定唯一的B属性的值,再通过B属性(属性组)的值,可以唯一确定C属性的值,那么称C传递依赖于A
- 函数依赖:A→B,如果通过A属性(属性组)的值,可以确定唯一的B属性的值,则称B依赖于A
- 第三范式:第二范式的基础上——>去除非主属性的传递函数依赖
- 传递函数依赖:
- BC范式:第三范式的基础上——>去除主属性的部份依赖(P)和主属性的传递函数依赖(T) 关系数据理论练习:
求最小函数依赖集:重点