数据联系的描述:
联系是指实体与时之间的关系。与一个联系有关的实体集个数,称为联系的元数。例如:联系有一元联系、二元联系和三元联系等。
二元联系中的三种联系:
一对一联系(简记为1:1)
一对多联系(简记为1:n)
多对多联系(简记为m:n)
数据模型
数据模型是指客观事物及其联系的数据描述,或者说数据模型表了数据库中的组织形式及数据所代表的意义。
20世纪70年代,美国国家标准化协会(ANSI)根据数据抽象的级别定义了四种模型,即概念数据模型、逻辑数据模型、外部数据模型、内部数据模型。
概念模型的设计:
l 现在普遍采用实体联系模型(Entity Relationship, ER)来表示概念模型。E-R模型以图形来表示实体及其联系,因而也可称ER模型为E-R图。
E-R图中有三个基本成分:
l 实体。用矩形框表示。
l 联系。用菱形框表示。
l 属性。用椭圆图形框表示。
逻辑模型的设计:
当今主流关系数据模型
关系模型的基本概念:
关系模型的两个显著特点,
一是:数据结构简单表现为“二维表”,易懂易用
二是:有坚实的理论基础,建立在关系代数基础之上。
关系模型的概念:用二维表格表示实体集,用外键表示实体之间的联系的表格,就称为关系模型。
在关系模型中,不论是实体集还是实体之间的联系,统一表现为二维表,这是关系数据模型的最大特点。
1. 关系中的行称为元组
2. 关系中的列称为属性
3. 属性取值范围称为域
4. 关系模式常采用以下简洁形式表示: 关系名(属性名1、……)
5. 关系中的属性个数称为“元数”
6. 元组的个数称为“基数”
与键有关的概念:
l 候选键:在关系中凡能惟一标识元组的属性(或属性集),称为关系模式的候选键。
l 主键:用户从候选键中选做标识元组的属性(或属性集)称为主键。
l 外键:如果关系模式R中属性K是其它关系的主键,那么K在R中称为外键。
约定:
1. 在关系模式主键属性下面画一条线表示它是主键
2. 在关系模式外键属性下面画一条线表示它是外键
关系模型中的,规范化二维表:
1. 关系中的每一个属性值都是不可分解的,即表中不能再套表。
2. 同一关系中不允许出现相同的属性名
3. 关系中没有重复的元组
4. 由于关系是一个集合,因此不考虑元组间的顺序
5. 关系中的属性在理论上也是无序的
关系模型的三类完整性规则:
——完整性是指数据的正确性和一致性。
1. 实体完整性规则(主键不为空)
2. 参照完整性规则
3. 用户定义完整性规则
E-R模型的设计:
采用E-R模型进行数据库概念设计可以分成三步进行:首设计局部E-R模型、然后把各局部E-R模型综合成一个全局E-R模型,最后对全局E-R模型进行优化,得到最终的E-R模型,即概念模型。
设计局部E-R模型、设计全局E-R模型(注意一个实体类型在全局E-R图中只能出现一次、并尽力合并相关实体)、全局E-R模型的优化
E-R图导出关系模型的基本原则如下:
1、E-R图中每个实体类型都应转换为一个关系模式,实体的属性为关系模式的属性,实体的标识符为关系模式的键。
2、E-R图中的联系类型比较复杂,需据不同情况做以下不同处理。
l 两个实体类型之间一对一的联系(将两个实体类型分别转换为两个关系模式,可以在其中任意一个关系模式的属性中加入键及联系类型的属性)
l 两个实体类型之间一对多的联系(将两个实体类型分别转换为两个关系模式,并在n端加入1端实体类型的键来实现一对多联系)
l 两个实体类型之间多对多的联系(必须将“联系”也转换为模式,有来联系双方的实体。其属性为两端实体类型的键加上联系的属性,而将该关系模式的键为两端实体键的组合)
l 两个以上实体之间的多对多联系,依据上面的原则逐步转化。
关系代数:
关系数据操纵语言建立在关系代数基础之上,关系代数是以关系为运算对象的一组运算集合。由于关系定义为属性个数相同的元组的集合,因此集合代数可以引入到关系代数中来。
这里只讲专用的关系代数:
1、投影
投影操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。
2、选择
根据某些条件作水平分割,选取符合条件的元组。
3、连接
笛卡尔积:(RXS)确定最后的元组个数RxS,及R+S个元数
⊙连接和F连接:从RXS的元组中取出满足操作的元组
4、自然连接
要求被连接的两个关系有若干相同的属性名(先作RXS操作再作,选择和投影操作)
关系规范化:
关系模式的冗余和异常问题:
数据冗余是指同一数据在系统中多次重复出现。
由于数据冗余引起的操作异常:修改异常、插入异常、删除异常
“分解”是解决问题的主要方法,也是规范化的第一条原则。
注:连接的代价是很大的。
函数依赖概念:
关系规范化实际上是围绕函数依赖进行的。
1. 什么是函数依赖:
函数依赖是指关系中,属性之间取值依赖的问题
2. 关系中可能存在不同函数依赖(相对于非主键与主键来说)
完全函数依赖
部分函数依赖
传递函数依赖
一个关系中各非主属性相对于主键存在不同函数依赖,将会导致关系性能变坏。
范示与规范化(各范示向下包容)
关系模式的好坏用什么标准衡量?这个标准就是模式的范示(Normal Forms,简记NF)1NF是关系模式的基础、2NF已成为历史,一般不再提及、3NF是数据库设计中最常用的。
第一范示(1NF):
关系模式R的每个关系r的属性都是不可再分的原子值,那么称R是第一范示的模式。
(是关系模式应具备的最起码的条件)
第二范示(2NF)
如果关系模式中存在传递函数依赖就不是一个好模式,需要把关系模式分解,以排除局部依赖,使之达到2NF。
第三范示(3NF)
对于满足2NF的关系,如果不存在“非主属性”对主键的传递函数依赖,则称属于3NF关系。
分解关系的基本原则:
l 无损分解、数据不丢失
l 分解后关系相互独立
l 遵循“一事一地”原则