数据库第四章--数据库设计
数据库第四章--数据库设计
- 数据库设计概述
- E-R模型方法(概念、逻辑)
- 基本建模
- E-R模型:实体-联系模型
- 实体Entity:描述事物的对象
- 属性:描述实体特征的数据项
- 标识符:标识不同实体实例的属性
- 标识符是一个逻辑概念,主键是物理概念
- 联系:是指实体之间的联系
- 联系度数:联系中关联的实体数目
- 实体-联系类型
- 二元实体联系类型
- 1对1
- 1对多
- 多对多
- 基数:实体有多少实例与另一实体存在的数量对应关系
- 实体参与关系:可选、强制
- 二元实体联系类型
- E-R模型:实体-联系模型
- 扩展建模
- 实体继承联系
- 互斥性继承
- 非互斥性继承
- 完整继承:父实体实例必须属于子实体中的某一个
- 非完整继承
- 强弱实体联系
- 强实体:被依赖的实体
- 弱实体:对另外实体有依赖关系的实体
- 标识符ID依赖弱实体:弱实体的标识符中含有所依赖实体的标识符
- 非标识(非ID)依赖弱实体
- 实体继承联系
- 基本建模
- 数据库建模设计
- 概念数据模型
- CDM/LDM/PDM模型转换设计
- 数据模型元素对应关系
- 概念数据模型:实体、属性、标识符、联系
- 逻辑数据模型:实体、属性、标识符(Primary/Foreign)、联系
- 物理数据模型:表、列、键、参照完整性约束
- E-R模型到关系模型转换原理
- 将每一个实体转换成一个关系表,实体属性转换为关系表的列,实体标识符转换为关系表的主键或外键
- 将实体之间的联系转化为关系表之间的参照完整性约束
- 数据模型元素对应关系
- 数据库规范化设计
- 函数依赖
- 为什么需要规范化数据库设计?
- 减少冗余数据
- 便于实现数据完整性和实体一致性
- 对数据高效访问
- 函数依赖理论
- 定义:设有一关系模式R(U), U 为关系R的属性集合,X和Y为属性U的子集。设t,s是关系R中的任意两个元组,如果t[X] = s[X],则t[Y] = s[Y]。那么称Y函数依赖于X,表示为X→Y。
- 决定因子:函数依赖的左部
- 依赖函数:右部
- 函数依赖的类型
- 设X、Y是某关系的不同属性集,如X→Y,且不存在X’∈X ,使X’→Y,则Y称完全函数依赖,否则称Y部分函数依赖。
- 设X、Y、Z是某关系的不同属性集,有X→Y,Y→\X , Y→Z,若X→Z,称Z对X存在函数传递依赖
- 设U是关系模式R的属性集,X和Y是U的子集,Z=U-X-Y,xyz表示属性集XYZ的值。对于R的关系r,在r中存在元组(x, y1, z1)和(x, y2, z2)时,也存在元组(x, y1, z2)和(x, y2, z1),那么在模式R上存在多值函数依赖
- 为什么需要规范化数据库设计?
- 关系规范化范式
- 关系规范化:把一个有访问异常的关系分解成结构良好的关系的过程,使得这些关系有最小的冗余或没有冗余
- 规范化范式:关系表符合特定规范化程度的模式
- 第1范式:关系表中的属性不可再细分
- 第2范式:满足第1范式,且消除了关系中的属性部分函数依赖
- 第3范式:满足第2范式,且切断了关系中的属性传递函数依赖
- 巴斯-科德范式BCNF:所有函数依赖的决定因子都是候选键
- 第4范式:满足BCNF,且消除多值函数依赖
- 1NF→ 2NF → 3NF→ BNCF → 4NF(关系的规范化程度依次提升)
- 关系的规范化程度越高,关系数据库存储的冗余数据就越少,可消除的数据访问异常就越多
- 函数依赖