二 .关系数据库
关系数据库概述
系统而严格的提出关系模型的是美国IBM公司的E.F.Codd
- 1970年提出关系数据模型
- E.F.Codd在美国计算机学会会刊《Communications of the ACM》发表了题为"A Relational Model of Data for shared Data Banks"
- 之后,提出了关系代数和关系演算的概念
- 1972年提出了关系的第一、第二、第三范式
- 1974年提出了关系的BC范式
关系数据模型
关系数据结构
- 表(Table)
也称为关系,是一个二维的数据结构。它由表名、构成表的各个列、及若干行数据组成
- 关系(Relation)
一个关系逻辑上对应一张二维表,可以为每个关系取一个名称进行标识
- 列(Column)
字段(Field)或属性(Attribute)
- 属性(Attribute)
表中的一列即为一个属性,表中属性的个数称为关系的元或度
- 行(Row)
也称做元组(Tuple)或记录(Record)
- 元组(Tuple)
表中的一行
- 分量(Component)
元组中的一个属性值
- 码或键(Key)
- 超码或超键(Super Key)
关系的一个码移去某个属性,它仍然是这个关系的码
- 候选码或候选键(Candidate Key)
关系的一个码或键中,不能从中移去任意一个属性
- 主码或主键(Primary Key)
在一个关系的若干候选码或候选键中制定一个用来唯一标识关系的元组
- 全码或全键(All-Key)
一个关系模式中所有属性集合是这个关系的主码或主键
- 主属性(Primary Atribute)和非主属性(NonPrimary Attribute)
关系中包含再任意一个候选码的属性称为主属性或码属性,不包含反之
- 外码或外键(Foreign Key)
当关系中的某个属性不是这个关系的主码或候选码,而是另一个关系的主码
- 参照关系(Referencing Relation)和被参照关系(Referenced Relation)
参照关系也称为从关系,被参照关系也称为主关系,它们是指以外码相关联的二个关系,以外码作为主码的关系称为被参照关系,外码所在的关系称为参照关系
- 域(Domain)
取值范围
- 数据类型(Data Type)
- 关系模式(Relation Schema)
在关系数据库中,关系模式是型,关系是值
- 关系数据库(Relation Database)
关系数据库是以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数据库,其数据库操作建立在关系代数的基础上,在一个给定的应用领域中,所有关系的集合构成一个关系数据库
- 每一个属性都是不可分解的
- 每一个关系仅仅有一个关系模式
- 每一个关系模式中的属性必须命名
- 同一个关系中不允许出现候选码或候选键值完全相同的元组
- 在关系中元组的顺序可以任意交换
- 在关系中属性的顺序可以任意交换
关系操作集合
- 基本的关系操作
查询(Query)、插入(Insert)、删除(Delete)、修改(Update)
查询操作又可以分为选择、投影、连接、除、并、差、交、笛卡尔积等,关系操作的特点是集合的操作方式,即操作的对象和结果都是集合
- 关系数据语言的分类
代数方式和逻辑方式,代数方式主要有关系代数。它是通过对关系的操作来表达查询要求的方式;逻辑当时主要有关系演算、它是用谓词来表达查询要求的方式
- 关系代数
- 传统的集合运算
- 并(UNION)
- 差(DIFFERENCE)
- 交(INTERSECTION)
- 笛卡尔积(CARTESIAN PRODUCT)
- 专门的关系运算
- 选择(SELECT)
> 行变
- 投影(PROJECTION)
> 列变
- 连接(JOIN)
- 除(DICISION)
关系的完整性约束
- 实体完整性约束(Entity Intergrity Constraint)
实体完整性约束是指关系的主属性,即主码的组成不能为空,也就是关系的主属性不能是空值NULL.
- 参照完整性约束(Referential Intergrity Constraint)
- 用户定义完整性约束(User-defined Integrity Constraint)
用户定义的完整性约束是针对某一应用环境的完整性约束条件,它反映了某一具体应用所涉及的数据应满足的条件
- 关系数据完整性约束的检验
对数据执行插入、删除、和更新操作
关系数据库的规范化理论
关系模式中可能存在的冗余和异常问题
- 数据冗余
- 更新异常
- 插入异常
- 删除异常
函数依赖与关键字
如果对于R中属性X的每一个值,R中的属性Y只有唯一的值与之对应,则称为X函数决定Y或称为Y函数依赖与X,记做X->Y
举个小例子
身份证号->性别
身份证号->姓名
身份证号->年龄
- 完全函数依赖
设R为任意给定关系,X、Y为其属性集,若X->Y,且对与X的任意真子集都有X不能决定Y,则称为Y完全依赖X
sno, cno, cname, age (学号、课程号、课程名字,成绩)
(sno,cno)->age 为完全依赖
其中sno、cno单独拿出来,不能决定age
- 部分函数依赖
- 传递函数依赖
X->Y,Y不决定X,Y->Z,则X->Z,称为Z传递函数依赖于X
范式与关系规范化过程
满足最低要求的称为第一范式,INF,这是最基本的范式
- 第一范式
不可再分
- 第二范式
所有非主属性都完全函数依赖与候选关键字
- 第三范式
每一个非主属性都不传递函数依赖与候选关键字
关系规范化理论的应用
关系规范化理论主要应用于数据库设计中的概念设计阶段