关系数据模型
1.关系的完整性约束
数据库的数据完整性是指数据库中数据的正确性、相容性、一致性。
1)完整性约束的分类
实体完整性约束:主码的组成不能为空,主属性不能是空值NULL
参照完整性约束:定义外码和主码之间的引用规则,要么外码等于主码中某个元组的主码值,要么为空值(NULL)。
以上两个分类称为关系的两个不变性
用户完整性约束:域完整性约束(针对某一应用环境的完整性约束)、其他。
2)执行插入操作的检验
(1)检查实体完整性约束
(2)检查参照完整性约束:向参照关系插入。
(3)检查用户完整性约束
3)执行删除操作
一般只需要对被参照关系检查参照完整性约束。(是否被引用)
4)执行更新操作
上述两种情况的综合。
2.关系模式中可能存在的冗余和异常问题
(1)数据冗余:指同一数据被反复存储的情况
(2)更新异常:数据冗余造成的
(3)插入异常
(4)删除异常
3.函数依赖
设R为任一给定关系,如果对于R中属性X的每一个值,R中的属性Y只有唯一值与之对应,则称X函数决定Y或称Y函数依赖于X,记作X→Y。其中X称为决定因素。
对于关系R中的属性X和Y,若X不能函数决定Y,记作X→Y。
4.函数依赖的分类
完全函数依赖、部分函数依赖、传递函数依赖
5.完全函数依赖
设R为任一给定关系,X、Y为其属性集,若X→Y,且对X中的任何真子集X’,都有X’→Y,则称Y完全函数依赖于X。
6.部分函数依赖
设R为任一给定关系,X、Y为其属性集,若X→Y,且X中存在一个真子集X’,满足X’→Y,则称Y部分函数依赖于X。
7.传递函数依赖
设R为任一给定关系,X、Y、Z为其不同属性子集,若X→Y,Y→X,Y→Z,则有X→Z,称为Z传递函数依赖于X。
8.设R为任一给定关系,U为其所含的全部属性集合,X为U的子集,若有完全函数依赖X→U,则X为R的一个候选关键字。(候选码)
9.规范化
一个低一级范式的关系模式通过模式分解(SchemaDecomposition)可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化(Normalization)。
10.第一范式(1NF)
设R为任一给定关系,若果R中每个列与行的交点处的取值都是不可再分的基本元素,则R为第一范式。
11.1NF的缺点
(1)冗余高
(2)插入操作异常
(3)删除操作异常
12.第二范式(2NF)
设R为任一给定关系,若R为1NF,且其所有非主属性都完全函数依赖于候选关键字,则R为第二范式。
13.第三范式(3NF)
设R为任一给定关系,若R为2NF,且其每一个非主属性都不传递函数依赖于候选关键字,则R为第三范式。
14.第三范式的改进形式BCNF
设R为任一给定关系,X、Y为其属性集,F为其函数依赖集,若R为3NF,且其F中所有函数依赖X→Y(Y不属于X)中的X必包含候选关键字,则R为BCNF。
如何转换(拆拆拆)
1NF->2NF
找到候选关键字,看其余的属性是否完全函数依赖候选关键字,
是的,与候选关键字一同抄下来形成一个表格,
不是的,抄下来,形成第二个表格,并且将候选关键字里能够唯一决定表格2的属性组抄在第一列
2NF->3NF
找到表格中的传递函数依赖关系的三个属性组,设为x,y,z将这三个属性组拆成两个表格
第一个表格为x,y
第二个表格为y,z
3NF->BCNF
列出表格中的所有函数依赖关系
每个关系拆出一个表格
15.数据库的生命周期
(1)数据库分析与设计阶段
(2)数据库实现与操作阶段
16.数据库分析与设计阶段
需求分析
概念设计
逻辑设计
物理设计
17.数据库实现与操作阶段
实现
操作与监督
修改与调整
18.数据库设计的目标
(1)满足应用功能需求:存、取、删、改
(2)良好的数据库性能:共享性、完整性、一致性、安全保密性
19.数据库设计的内容
(1)(静态的)数据库结构设计:数据库概念结构设计、逻辑结构设计、物理结构设计
(2)(动态的)数据库行为设计
20.数据库设计的方法
(1)直观设计法:最原始的数据库设计方法
(2)规范设计法
- 新奥尔良设计方法:需求分析、概念结构设计、逻辑结构设计、物理结构设计
- 基于E-R模型的数据库设计方法
- 基于E-R模型的数据库设计方法
(3)计算机辅助设计法:辅助软件工程工具
21.数据库设计的过程
(1)结构设计:概念结构设计、逻辑结构设计、物理结构设计。
(2)行为设计:功能设计、事务设计、程序设计
(3)数据库实施:加载数据库数据,调试运行应用程序