关系数据库
一、关系数据库概述
1. 基本特征
使用关系数据模型组织数据,源于数学。
二、关系数据模型
1. 关系数据结构
只包含单一的数据结构,即关系。
2.关系数据库的基本术语
表(Table),也称为关系,一个二维的数据结构。
关系(Relation) ,一个关系逻辑上对一个一张二维表。有基本关系
、查询表
和视图表
三种类型。
列(Column),也称作字段或属性。
属性(Attribute),表中的一列为一个属性。
行(Row),也称作元组或记录。表中的数据按行存储。
元组(Tuple),表中的一行为一个元组。
分量(Component),元组中的一个属性值。
码或键(Key),
超码或超键(Super Key),在码中去除某个属性,仍然是这个关系的码。
候选码或候选键(Candidate Key),不能从中移去任何一个属性。
主码或主键
全码或全键
主属性和非主属性,包含在任何一个候选码中的属性为主属性。
外码或外键
参照关系(也称为从关系,外码所在的关系)和被参照关系(主关系,以外码作为主键)
域(Domain),表示属性的取值范围
数据类型(Data Type)
关系模式(Relation Schema),关系模式是静态的,稳定的,关系是动态的。
关系数据库,以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数据库。
2. 基本的关系操作包括查询
和插入
、删除
、修改
。
3.关系的查询操作分类
选择
、投影
、连接
、除
、并
、差
、交
、笛卡尔积
等。
4. 关系操作特点
集合操作方式,即操作的对象和结果都是集合,也称为一次一集合的方式。
5. 关系数据语言的分类
1. 关系代数语言
2. 关系演算语言
3. 兼具两者双重特点的语言(例如SQL)
6. 关系代数三大要素
1. 操作对象
2. 操作符
3. 操作结果
image.png
7. 传统的集合运算
是二目运算
并(UNION)
记为R3=R1∪R2
差(DIFFERENCE)
记为R3=R1-R2(属于R1不属于R2)
交(INTERSECTION)
记为R3=R1∩R2=R1-(R1-R2)
笛卡尔积(CARTESIAN PRODUCT)
记为R3=R1XR2
image.png
8. 专门的关系运算
分为一元专门关系操作和二元专门关系操作。
选择(SELECT)
SELECT 关系名 WHERE 条件
投影(PROJECTION)
PROJECTION 关系名 (属性1,属性2,...,属性n)(新关系不含重复元组)
连接(JOIN)
JOIN 关系名1 AND 关系名2 WHERE 条件
除(DIVISION)
9. 数据的完整性约束
指数据库中数据的正确性、相容性和一致性
10. 关系模型三类完整性约束
实体完整性约束
指关系的主属性,即主码的组成不能为空。
参照完整性约束
定义外码和主码之间的引用规则。
定义:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R中的每个元组在F上的值只允许两种可能,即要么取空值(F的每个属性值均为空值),要么等于S中某个元组的主码值。其中,关系R与S可以是不同的关系,也可以是同一关系。
用户定义完整性约束
三、关系数据库的规范化理论
1. 关系模式中可能存在的冗余和异常问题
1. 数据冗余
2. 更新异常
3. 插入异常
4. 删除异常
2. 函数依赖
指关系中属性间的对应关系。
若对于关系R中属性X的每一个值,属性Y只有唯一值与之对应,则称X函数决定Y或Y函数依赖于X,记作X→Y。
1.完全函数依赖
若X→Y,且对X中的任何真子集X’都有X‘≯ Y,则Y完全函数依赖于X。
2.部分函数依赖
若X→Y,且X中存在一个真子集X’→Y,则Y部分函数依赖于X。
3. 传递函数依赖
若X→Y,Y≯ X,Y→Z,则又X→Z,称为Z传递函数依赖于X。
3. 范式与关系规范化过程
·第一范式(1NF)
关系R中每个列与行的交点处的取值都是不可再分的基本元素。
image.png
第二范式(2NF)
R为1NF,且其所有非主属性都完全函数依赖于候选关键字。
image.png
第三范式
R为2NF,且其每一个非主属性都不传递函数依赖于候选关键字。
image.png
BCNF
X、Y为R属性集,F为其函数依赖集,若R为3NF,且其F中所有函数依赖X→Y中的X必包含候选关键字