数据库设计基础知识(完善中...)
1 数据库设计概述
数据库设计属于系统设计的范畴,通常把使用数据库的系统统称为数据库应用系统,把对数据库应用系统的设计简称为数据库设计。
1.1 数据库应用系统的生命期
数据库规划
需求描述与分析
数据库与应用程序设计
数据库设计实现
测试
运行维护
1.2 数据库设计的一般策略
1.3 数据库设计的基本步骤
2 系统需求分析
2.1 需求分析的任务、方法和目标
2.2 需求分析阶段的文档
2.3 案例分析
3 概念结构设计
3.1 概念结构设计策略与方法
3.2 用E-R方法建立概念模型
4 逻辑结构设计
4.1 E-R图向关系模式的转换
1、一对一联系(1:1):
(1)将联系转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性包括该联
系所关联的两个实体的码及联系的属性,关系的码取自任一方实体的码。
任职(班主任工号,班级编号,任职时间)
(2)将联系归并到关联的两个实体的任意一方,给待归并的一方实体属性集中增加另一方实体的码
和该联系的属性即可,归并后的实体码保持不变。
班主任(工号,姓名,身份证号,住址,班级编号,任职时间)
或: 班级(班级编号,名称,人数,班主任编号,任职时间)
2、一对多联系的转换(1:*):
(1)将联系转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系
所关联的两个实体的码及联系的属性,关系的码是多方实体的码。
任职(工号,公司编号,入职时间,离职时间)
(2)将联系归并到关联的两个实体的多方,给待归并的多方实体属性集中增加一方实体的码和该联
系的属性即可,归并后的多方实体码保持不变。
员工(工号,姓名,身份证号,公司编号,入职时间,离职时间)
3、多对多联系的转换(*:*):
多对多联系只能转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取
该联系所关联的两个多方实体的码及联系的属性,关系的码是多方实体的码构成的属性组。
选修(学号,课程编号,成绩,出勤率) • 注:三方联系的多对多对多(*:*:*)也是一样,只能转换成一个独立的关系模式,如:一个供
应商可以给多个项目供应多种零件,一个项目可以使用多个供应商供应的多种零件。
供应关系(供应商编号,项目编号,零件号,数量)
4.2 关系模式的规范化
1NF⊃2NF⊃3NF⊃BCNF⊃4NF⊃5NF
通过分解,可以将一个低一级范式的关系模式转换成若干个高一级范式
的关系模式,这种过程叫做规范化。
1NF(第一范式)
• 定义:
若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式。记为R∈1NF。
• 存在的问题:
(1)数据冗余。
(2)更新异常(修改操作后数据不一致)。
(3)插入异常。
(4)删除异常。
2NF(第二范式)
定义:若关系模式R∈1NF,且每一个非主属性完全依赖于码,则关系模式R∈2NF。
• 换句话说:当1NF消除了非主属性对码的部分函数依赖,则称为2NF
3NF(第三范式)
• 定义:若关系模式R(U,F)中不存在这样的码X,属性组Y及非主属性Z(Z⊈Y)使得
X→Y,(Y⇸X) Y→Z成立,则关系模式R∈3NF。
• 即:当2NF消除了非主属性对码的传递函数依赖,则称为3NF。
BCNF(巴克斯范式)
定义:关系模式R∈1NF,若X→Y且Y⊈X时,X必含有码,则关系模式R∈BCNF。 • 也就是说,当3NF消除了主属性对码的部分函数依赖和传递函数依赖,则称为BCNF。
结论:一个满足BCNF的关系模式,应有如下性质:
(1)所有非主属性对每一个码都是完全函数依赖;
(2)所有主属性对每一个不包含它的码,也是完全函数依赖;
(3)没有任何属性完全函数依赖于非码的任何一组属性。
4NF(第四范式)
• 定义:关系模式R∈1NF,若对于R的每个非平凡多值依赖X→→Y且Y⊈X时,X必含有
码,则关系模式R(U,F)∈4NF。
• 4NF是限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。
• 注意:如果只考虑函数依赖,关系模式最高的规范化程度是BCNF,如果考虑多值
依赖,关系模式最高的规范化程度是4NF。
如何分解关系模式?
- 找候选码
- 根据描述找函数依赖集
- 确定范式:根据找出的函数依赖集,确定是否有部分、传递函数依赖,再来判断属于第几范式
- 分解关系模式:按函数依赖集来分解,即分解要保持函数依赖