数据库基础
三级模式+两级映像
三级模式
分为外模式(视图)+模式(概念模式)+内模式(存储文件.db)

两级映像
数据库系统在三级模式之间提供了两级映像:模式/内模式映像、外模式/模式映像。
(1)外模式/模式映像。这两级映像保证了数据库的逻辑独立性。
(2)模式/内模式映像。这两级映像保证了数据库的物理独立性。
数据模型
E-R图(待填充)
关系模型

关系代数
基本概念(见函数依赖)
- 候选码
- 主码
- 主属性
- 外码
- 全码
![image]()
完整性约束
- 实体完整性:主码不能为空
- 参照完整性:
- 用户定义完整性
关系代数运算(★)


并∪(union)
R∪S将查询结果中属性名一样的放到同一列
select * from R union select * from S
差-(except)
R-S从查询结果R中去掉和S一样的
笛卡尔积×
R×S即将R的元组与S的每一行相联系

积后有n+m列属性,n*m行元组

投影π(select)
π_A,C(R)对表R投影A,C列
select A,C fronm R
在关系代数运算中,可用数字n代替第n列即π_1,3(R)= π_A,C(R)

选择σ(where)
σ_A>B(R)
select * from R where A>B

交∩(intersect)
R∩S将查询结果中既属于R又属于S的放一起
连接(笛卡尔积筛选)
-
θ连接
θ是比较运算符,即条件连接where a θ条件(>=<) b -
等值连接
where a=b -
自然连接
![image]()
先求R.A=S.A且R.C=S.C从笛卡尔积中去除S表中重复的属性列
![image]()
![image]()
除(待填)
外连接

-
左外
![image]()
在自然连接的基础上 保留左表的全部数据 右表无法匹配的数据用null代替 -
右外
![image]()
自然连接的基础上 保留右表的全部数据 左表无法匹配的数据用null代替 -
全外
![image]()
左外+右外再去重复
SQL语言

创建表
CREATE TABLE <表名> (<列名><数据类型>...<表级完整性约束条件>)
修改和删除表
索引
CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>]...)--建立索引
DROP INDEX <索引名>--删除索引
UNIQUE:表明此索引的每一个索引值只对应唯一的数据记录
CLUSTER:表示要建立的索引是聚集索引,意为索引项的顺序与表中记录的物理顺序一致。
视图
视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。视图不是真实存在的基
础表而是一个虚拟表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中
CREATE VIEW 视图名 AS SELECT 查询子句 [WITH CHECK OPTION];
子查询可以是任意复杂的 SELECT 语句,但通常不允许含有 ORDER BY 子句和 DISTINCT 短语
WITH CHECK OPTION 表示对 UPDATE、INSERT、DELETE 操作时要保证更新、插入或删除的行满足视图定
义中的谓词条件(即子查询中的条件表达式)
SQL查询
- 简单查询
- 连接查询
- 子查询
- 聚集函数
- 分组查询
- 更名as
- 视图
SQL数据更新
- 插入
- 删除
- 修改
SQL访问控制
- 授权
- 回收
关系数据库的规范化(★)
函数依赖
有R<U,F>
| 学号 | 姓名 | 课程号 | 课程名 | 成绩 |
|---|
U为属性集合(学号,姓名,课程号,课程名,成绩)
F为依赖关系(学号→姓名,课程号→课程名,学号+课程号→成绩)
-
非平凡的函数依赖:A决定B但B不属于A 如学号→姓名
-
平凡的函数依赖:A决定B且B属于A 如学号→学号
-
完全函数依赖:学号+课程号→成绩,其中单独的学号或课程号都无法决定成绩
-
码:码是属性的一部分K∈U
-
候选码(题目最常考):K→U,对K求闭包=U,K的任一个真子集K'都不能决定U,候选码可以有多个。如(学号+课程号)→U,则(学号+课程号)为1个候选码
-
全码:K=U,即整个属性U为候选码
-
主属性:候选码的每个真子集都是主属性
如U有2个的主属性为学号、课程号 -
主码:可以确定唯一一条元组,主码∈候选码,候选码可以有多个,主码只能有一个
U的主码学号∈(学号,课程号) -
超码:可以唯一标识一行的属性的集合(从超码里面选一个当主码)
学号 姓名 身份证号 超码=(学号,身份证号)都可以确定一行元组都可以当主码,从中确定学号或身份证号为主码
规范化
1NF
若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第1范式(1NF)
2NF
若关系模式R∈1NF,且每一个非主属性完全依赖于候选码,则关系模式R∈2NF
(即对1NF消除了非主属性对候选码的部分函数依赖)
| 学号 | 课程号 | 成绩 | 姓名 |
|---|
F=[(学号,课程号)→成绩,学号→姓名]
该关系中学号部分依赖于候选码,所以不能成立2NF
将关系R分解为R1[学号,课程号→成绩]、R2[学号→姓名],此时成立2NF
3NF
对2NF消除了传递依赖(包含伪传递率)
X→Y,Y→Z则存在传递依赖,不成立3NF,许分解为R1(X→Y)、R2(X→Z)
伪传递率
X→Y;W+Y→Z则W+X→Z此时构成传递依赖
如X1+X2→Y,X1+Y→Z,








浙公网安备 33010602011771号