概念设计
实体间的联系
- 一对一联系 1:1
- 一对多联系 1:n
- 多对多联系 n:m
概念模型的表示方法 — E-R模型
E-R模型提供了表示实体、属性和联系的方法,是用来描述现实世界的概念模型。
用“矩形框”表示实体;用“椭圆框”表示实体属性;用“菱形框”表示联系;用“无向边”进行连接。
创建局部E-R图的基本步骤:
- 进行需求分析,确定实体个数
- 分析每个实体所具有的属性
- 确定每个实体的主键(关键字)
- 确定实体间的联系
主要数据模型有层次模型、网状模型、关系模型
关系模型
数据结构
关系模型的数据结构可用一张规范的二维表来表示
- 属性:即表中的列
- 域: 属性的取值范围,即是一组具有相同数据类型的值的集合
- 候选码:关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组
- 主码(主键):从多个候选码中选定一个作为主码
- 外码(外键):关系中某属性是其他关系的主码
关系操作
关系数据模型中常用的关系操作包括查询操作和更新操作
查询操作:选择、投影、连接、笛卡尔积、除、交、并、差
更新操作:插入、删除、修改
关系模型的完整性
关系模型的完整性是用来约束关系的、以确保数据库中数据的完整性和一致性。关系模型的完整性有实体完整性、参照完整性、用户自定义完整性。数据完整性由实体完整性和参照完整性来维护,且这两个完整性是关系模型必须满足的完整性。
- 实体完整性:若属性A 是基本关系R的主属性,则属性A 不能取空值。要求表中的所有行都有唯一的标识符,称为主关键字。主关键字是否可以修改,或整个列是否可以被删除,取决于主关键字与其他表之间要求的完整性
- 参照完整性:若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应(基本关系R和S不一定是不同的关系),则对于R中的每个元组在F上的值必须为:
(1)空值,F的每个属性值均为空值。
(2)S中某个元组中的主键值(主码值)。 - 用户自定义完整性:是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。主要包括非空约束、唯一约束、检查约束、主键约束、外键约束。
概念模型向关系模型的转换
概念模型向关系模型的转换需要将实体与实体间的联系转化为关系模式,并确定这些关系模式的属性和码。
关系模型的逻辑结构是一组关系模式的集合,而E-R图则是由实体、实体的属性和实体间的联系三个要素组成的。
所以将E-R图转换为关系模型,实际上就是将实体、实体的属性、实体间的联系转换为关系模式。一般遵循以下6条原则:
-
一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。
-
一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。 -
一个 1:n 联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 -
一个 m:n 联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
-
三个或三个以上的实体间的一个多元联系可以转换为一个关系模式,与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码是组成关系的码或关系码的一部分。
-
具有相同码的关系模式可以合并。
数据的函数依赖
- 函数依赖
设一个关系为R(U), X与Y为属性集U上的子集,若对X上的每个值都有Y上的一个唯一值与之对应,则称X和Y具有函数依赖关系,称X函数决定Y,或 Y函数依赖于X,记作X→Y
- 当关系中属性集合Y是属性集合X的子集时(Y⊆X),存在函数依赖X→Y,即一组属性函数决定它的所有子集,这种函数依赖称为平凡函数依赖。
- 当关系中属性集合Y不是属性集合X的子集时,存在函数依赖X→Y,则称这种函数依赖为非平凡函数依赖。
- 部分函数依赖和完全函数依赖
- 设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。
- 设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。
- 传递函数依赖
在关系模式为R(U)中, X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y!→X),Y→Z,则称Z传递函数依赖于X。
关系数据库模式的规范化
-
第一范式
如果某个关系的所有属性都是简单属性,即每个属性都是不可再分的(不是集合属性),包括整型、字符型、逻辑型等,则称该关系属于第一范式,简称1NF。 -
第二范式
第二范式是在满足第一范式(1NF)的基础上,关系的实体的每个属性完全依赖于主键,称2NF -
第三范式
第三范式是在满足第二范式(2NF)的基础上,关系R的每一个非主属性都不传递依赖于R的某个候选关键字,称3NF。 -
BCNF范式
在满足第三范式的基础上,不存在主属性与候选关键字之间的传递或部分函数依赖,称为BCNF
若一个关系满足3NF,且只有一个候选码,则该关系通常也满足BCNF