1、章数据库设计章数据库设计章数据库设计章数据库设计5.15.1数据库设计概述数据库设计概述5.25.2需求分析需求分析5.35.3概念结构设计概念结构设计5.45.4逻辑结构设计逻辑结构设计5.55.5数据库的物理设计数据库的物理设计5.65.6数据库的实施和维护数据库的实施和维护5.55.5小结小结2021/10/105.4 5.4 5.4 5.4 逻辑结构设计逻辑结构设计逻辑结构设计逻辑结构设计v逻辑结构设计的逻辑结构设计的任务任务任务任务把概念结构设计阶段设计好的基本把概念结构设计阶段设计好的基本E-RE-R图转换为图转换为与选用与选用DBMSDBMS产品所支持的数据模型相符合的逻产品所支
2、持的数据模型相符合的逻辑结构辑结构v逻辑结构设计的逻辑结构设计的步骤步骤步骤步骤将概念结构转化为一般的关系、网状、层次模将概念结构转化为一般的关系、网状、层次模型型将转换来的关系、网状、层次模型向特定将转换来的关系、网状、层次模型向特定DBMSDBMS支持下的数据模型转换支持下的数据模型转换对数据模型进行优化对数据模型进行优化2021/10/106.4 6.4 6.4 逻辑结构设计逻辑结构设计逻辑结构设计v逻辑结构设计分三步进行:转换为一般转换为一般数据模型数据模型转换为特定转换为特定DBMS下的下的数据模型数据模型优化优化数据模型数据模型 逻辑结构设计逻辑结构设计物理物理设计设计概念概念设计
3、设计基本基本E-R图图转换规则转换规则特定特定DBMS的的特点和限制特点和限制优化方法优化方法(如规范化理论)(如规范化理论)逻辑逻辑模型模型2021/10/10物理物理设计设计阶段阶段逻辑结构设计阶段逻辑结构设计阶段逻辑结构设计阶段逻辑结构设计阶段逻辑结构设计阶段逻辑结构设计阶段模式模式优化优化设计设计用户用户子子模式模式概念概念设计设计阶段阶段转化转化为为数据数据模型模型关系关系规范规范化化逻辑模型基本E-R图2021/10/105.4 5.4 5.4 5.4 逻辑结构设计逻辑结构设计逻辑结构设计逻辑结构设计5.4.1 E-R5.4.1 E-R图向关系模型的转换图向关系模型的转换5.4.2
4、 5.4.2 数据模型的优化数据模型的优化5.4.3 5.4.3 设计用户子模式设计用户子模式2021/10/105.4.1 E-R5.4.1 E-R5.4.1 E-R5.4.1 E-R图向关系模型的转换图向关系模型的转换图向关系模型的转换图向关系模型的转换v转换内容转换内容v转换原则转换原则2021/10/10E-RE-RE-RE-R图向关系模型的转换(续)图向关系模型的转换(续)图向关系模型的转换(续)图向关系模型的转换(续)vE-RE-R图向关系模型的图向关系模型的转换要解决的问题转换要解决的问题 如何将实体型和实体间的联系转换为关系模式如何将实体型和实体间的联系转换为关系模式如何确定这
5、些关系模式的属性和码如何确定这些关系模式的属性和码 v转换内容转换内容将将E-RE-R图转换为关系模型:将实体、实体的属性图转换为关系模型:将实体、实体的属性和实体之间的联系转换为关系模式。和实体之间的联系转换为关系模式。2021/10/10转化规则n1)一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键n(1)方法n1.找出主键n2.找出属性间的依赖关系n3.表示为关系模式n4.主键:属性名下加横线n5.函数依赖关系:箭头线n(2)例子2021/10/108实体向关系模式的转换产品产品(产品号,产品名,性能,价格)零件零件(零件号,零件名)材料材料(材料号,材料名,
6、价格)仓库仓库(仓库号,车库名,地点,电话)产品零件仓库材料组装消耗存放产品号产品名价格性能材料号材料名价格存放量仓库号仓库名地点电话零件号零件名零件数消耗量1mmnnn2021/10/109n2)一个联系转换为一个关系模式,相联系实体的码和联系的属性转换为关系的属性n(1)一个m:n联系转换为一个关系模式n1.联系的内容n(1)联系名n(2)相互联系的实体的主键n(3)联系本身的属性n2.主码n(1)关系的码为参加联系的各实体码的组合n3.例子n(1)产品组装成零件n(2)材料存放在仓库2021/10/1010联系向关系模式的转换产品零件一览表产品零件一览表(产品号,零件号,零件数量)零件用
7、料表零件用料表(零件号,材料名,消耗量)材料存放表材料存放表(材料号,仓库号,存放量)产品零件仓库材料组装消耗存放产品号产品名价格性能材料号材料名价格存放量仓库号仓库名地点电话零件号零件名零件数消耗量1mmnnn2021/10/1011n2)一个联系转换为一个关系模式,相联系实体的键和联系的属性转换为关系的属性n(2)一个1:n联系可以转换为一个独立的关系模式,关系的键为n端实体的码。也可以与n端对应的关系模式合并n1.联系的内容n(1)联系名n(2)相互联系的实体的主码n(3)联系本身的属性n2.主键n(1)关系的键为n端实体的码n3.例子n(1)零件消耗材料n(2)带属性的一对多联系202
8、1/10/1012带属性的一对多联系司机汽车驾驶工号姓名性别年龄车号车种载重量载客数值勤日n1技术等级司机(工号,姓名,性别,年龄,技术等级)汽车(车号,车种,载重量,载客数)驾驶(工号,车号,值勤日)2021/10/1013n2)一个联系转换为一个关系模式,相联系实体的码和联系的属性转换为关系的属性n(3)一个1:1联系可以转换为一个独立的关系模式,每个实体的键均为该关系的候选码。也可以与任意一端对应的关系模式合并n1.联系的内容n(1)联系名n(2)相互联系的实体的主码n(3)联系本身的属性n2.主键n(1)每个实体的码均为该关系的候选码2021/10/1014n2)一个联系转换为一个关系
9、模式,相联系实体的码和联系的属性转换为关系的属性n3)三个或三个以上实体间的一个多元联系转换为一个关系模式n(1)存在于三个实体之间的联系n4)同一实体集的实体间的联系,可按1:1,1:n,m:n分别处理2021/10/1015存在于三个实体之间的联系供应(公司名,工程号,材料名)n公司供应工程材料Lm公司名 工程号 材料名华都132钢管华兴215铝板向阳132水泥华都730水泥2021/10/1016E-RE-RE-RE-R图向关系模型的转换(续)图向关系模型的转换(续)图向关系模型的转换(续)图向关系模型的转换(续)(5)(5)具有具有相同码相同码的关系模式可合并的关系模式可合并目的:减少
10、系统中的关系个数目的:减少系统中的关系个数合并方法:将其中一个关系模式的全部属性加入到另一个关合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序名),并适当调整属性的次序2021/10/10E-RE-RE-RE-R图向关系模型的转换(续)图向关系模型的转换(续)图向关系模型的转换(续)图向关系模型的转换(续)例例 把图把图7.307.30中虚线上部的中虚线上部的E-RE-R图转换为关系模型图转换为关系模型 部门实体对应的关系模式部门实体对应的关系模式 部门(部门(
11、部门号部门号,部门名,经理的职工号,部门名,经理的职工号,)此关系模式已包含了联系此关系模式已包含了联系“领导领导”所对应的关系模所对应的关系模式式 经理的职工号是关系的候选码经理的职工号是关系的候选码 职工实体对应的关系模式职工实体对应的关系模式 职工(职工(职工号职工号、部门号,职工名,职务,、部门号,职工名,职务,)该关系模式已包含了联系该关系模式已包含了联系“属于属于”所对应的关系模所对应的关系模式式 2021/10/10E-RE-RE-RE-R图向关系模型的转换(续)图向关系模型的转换(续)图向关系模型的转换(续)图向关系模型的转换(续)例例 把图把图7.307.30中虚线上部的中虚
12、线上部的E-RE-R图转换为关系模型(续)图转换为关系模型(续)产品实体对应的关系模式产品实体对应的关系模式 产品(产品(产品号产品号,产品名,产品组长的职工号,产品名,产品组长的职工号,)供应商实体对应的关系模式供应商实体对应的关系模式 供应商(供应商(供应商号供应商号,姓名,姓名,)零件实体对应的关系模式零件实体对应的关系模式 零件(零件(零件号零件号,零件名,零件名,)2021/10/10E-RE-RE-RE-R图向关系模型的转换(续)图向关系模型的转换(续)图向关系模型的转换(续)图向关系模型的转换(续)例例 把图把图7.307.30中虚线上部的中虚线上部的E-RE-R图转换为关系模型
13、(续)图转换为关系模型(续)联系联系“参加参加”所对应的关系模式所对应的关系模式 职工工作(职工工作(职工号,产品号职工号,产品号,工作天数,工作天数,)联系联系“供应供应”所对应的关系模式所对应的关系模式 供应(供应(产品号,供应商号,零件号产品号,供应商号,零件号,供应量),供应量)2021/10/105.4 5.4 5.4 5.4 逻辑结构设计逻辑结构设计逻辑结构设计逻辑结构设计5.4.1 E-R5.4.1 E-R图向关系模型的转换图向关系模型的转换5.4.2 5.4.2 数据模型的优化数据模型的优化5.4.3 5.4.3 设计用户子模式设计用户子模式2021/10/105.4.2 5.
14、4.2 5.4.2 5.4.2 数据模型的优化数据模型的优化数据模型的优化数据模型的优化v得到初步数据模型后,还应该适当地修改、调整数据模型得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是的结构,以进一步提高数据库应用系统的性能,这就是数数据模型的优化据模型的优化v关系数据模型的优化通常以关系数据模型的优化通常以规范化理论规范化理论为指导为指导2021/10/10数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)v优化数据模型的方法优化数据模型的方法1.1.确定数据依赖确定数据依赖2.2.按需求分析阶段所得到的语义
15、,分别写出每个关系模按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖间数据依赖2.2.消除消除 冗余的联系冗余的联系3.3.对于各个关系模式之间的数据依赖进行极小化处理,对于各个关系模式之间的数据依赖进行极小化处理,消除消除 冗余的联系。冗余的联系。3.3.确定所属范式确定所属范式按照数据依赖的理论对关系模式逐一进行分析按照数据依赖的理论对关系模式逐一进行分析考查是否存在部分函数依赖、传递函数依赖、多值依考查是否存在部分函数依赖、传递函数依赖、多值依赖等赖等确定各关系模式分别属于第几范式确定
16、各关系模式分别属于第几范式2021/10/10数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)4.4.按照需求分析阶段得到的各种应用对数据处理的要求,按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,分析对于这样的应用环境这些模式是否合适,5.5.确定是否要对它们进行合并或分解。确定是否要对它们进行合并或分解。6.注意:注意:并不是规范化程度越高的关系就越优,并不是规范化程度越高的关系就越优,一一般说来,第三范式就足够了般说来,第三范式就足够了2021/10/10数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)数
17、据模型的优化(续)例:在关系模式例:在关系模式 学生成绩单学生成绩单(学号学号,英语英语,数学数学,语文语文,平均成平均成绩绩)中存在下列函数依赖:中存在下列函数依赖:学号学号英语英语 学号学号数学数学 学号学号语文语文 学号学号平均成绩平均成绩 (英语英语,数学数学,语文语文)平均成绩平均成绩2021/10/10数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)显然有:显然有:学号学号(英语英语,数学数学,语文语文)因此该关系模式中存在传递函数信赖,是因此该关系模式中存在传递函数信赖,是2NF2NF关系关系 虽然平均成绩可以由其他属性推算出来,但如果虽然平均成绩
18、可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩,为提高效率,应用中需要经常查询学生的平均成绩,为提高效率,仍然可保留该冗余数据,对关系模式不再做进一步仍然可保留该冗余数据,对关系模式不再做进一步分解分解2021/10/10数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)5.5.按照需求分析阶段得到的各种应用对数据处理的要求,按照需求分析阶段得到的各种应用对数据处理的要求,对关系模式进行必要的分解,以提高数据操作的效率和对关系模式进行必要的分解,以提高数据操作的效率和存储空间的利用率存储空间的利用率常用分解方法常用分解方法水平分解水平分解垂直分解垂
19、直分解2021/10/10数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)水平分解水平分解什么是水平分解什么是水平分解把把(基基本本)关关系系的的元元组组分分为为若若干干子子集集合合,定定义义每每个个子集合为一个子关系,以提高系统的效率子集合为一个子关系,以提高系统的效率水平分解的适用范围水平分解的适用范围满足满足“80/2080/20原则原则”的应用的应用并发事务经常存取并发事务经常存取不相交的数据不相交的数据2021/10/10数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)数据模型的优化(续)垂直分解垂直分解什么是垂直分解什么是垂直分解把把关关
20、系系模模式式R R的的属属性性分分解解为为若若干干子子集集合合,形成若干子关系模式形成若干子关系模式垂直分解的适用范围垂直分解的适用范围取取决决于于分分解解后后R R上上的的所所有有事事务务的的总总效效率率是是否得到了提高否得到了提高2021/10/105.4 5.4 5.4 5.4 逻辑结构设计逻辑结构设计逻辑结构设计逻辑结构设计5.4.1 E-R5.4.1 E-R图向关系模型的转换图向关系模型的转换5.4.2 5.4.2 数据模型的优化数据模型的优化5.4.3 5.4.3 设计用户子模式设计用户子模式2021/10/105.4.3 5.4.3 5.4.3 5.4.3 设计用户子模式设计用户
21、子模式设计用户子模式设计用户子模式v定义用户外模式时应该注重的问题定义用户外模式时应该注重的问题 包括三个方面:包括三个方面:(1)(1)使用更符合用户习惯的别名使用更符合用户习惯的别名 (2)(2)针对不同级别的用户定义不同的针对不同级别的用户定义不同的View View,以满足系统对安全性的要求。,以满足系统对安全性的要求。(3)(3)简化用户对系统的使用简化用户对系统的使用2021/10/10设计用户子模式(续)设计用户子模式(续)设计用户子模式(续)设计用户子模式(续)例 关系模式产品(产品号,产品名,规格,单价,生产车间,生产负关系模式产品(产品号,产品名,规格,单价,生产车间,生产
22、负责人,产品成本,产品合格率,质量等级),可以在产品关系上建立责人,产品成本,产品合格率,质量等级),可以在产品关系上建立两个视图:两个视图:为一般顾客建立视图:为一般顾客建立视图:产品产品1 1(产品号,产品名,规格,单价)(产品号,产品名,规格,单价)为产品销售部门建立视图:为产品销售部门建立视图:产品产品2 2(产品号,产品名,规格,单价,车间,生产负责人)(产品号,产品名,规格,单价,车间,生产负责人)顾客视图中只包含允许顾客查询的属性顾客视图中只包含允许顾客查询的属性销售部门视图中只包含允许销售部门查询的属性销售部门视图中只包含允许销售部门查询的属性生产领导部门则可以查询全部产品数据
23、生产领导部门则可以查询全部产品数据可以防止用户非法访问不允许他们查询的数据,保证系统的安全性可以防止用户非法访问不允许他们查询的数据,保证系统的安全性2021/10/10逻辑结构设计小结逻辑结构设计小结逻辑结构设计小结逻辑结构设计小结v任务任务将概念结构转化为具体的数据模型将概念结构转化为具体的数据模型v逻辑结构设计的步骤逻辑结构设计的步骤将概念结构转化为一般的关系、网状、层次模型将概念结构转化为一般的关系、网状、层次模型将转化来的关系、网状、层次模型向特定将转化来的关系、网状、层次模型向特定DBMSDBMS支持下的数支持下的数据模型转换据模型转换对数据模型进行优化对数据模型进行优化设计用户子
24、模式设计用户子模式2021/10/10逻辑结构设计小结逻辑结构设计小结逻辑结构设计小结逻辑结构设计小结vE-RE-R图向关系模型的转换内容图向关系模型的转换内容vE-RE-R图向关系模型的转换原则图向关系模型的转换原则2021/10/10逻辑结构设计小结逻辑结构设计小结逻辑结构设计小结逻辑结构设计小结v优化数据模型的方法优化数据模型的方法 1.1.确定数据依赖确定数据依赖 2.2.对于各个关系模式之间的数据依赖进行极小化处对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。理,消除冗余的联系。3.3.确定各关系模式分别属于第几范式。确定各关系模式分别属于第几范式。4.4.分析对于应用环境这些模式是否合适,确定是否分析对于应用环境这些模式是否合适,确定是否要对它们进行合并或分解。要对它们进行合并或分解。5.5.对关系模式进行必要的分解或合并对关系模式进行必要的分解或合并2021/10/10逻辑结构设计小结逻辑结构设计小结逻辑结构设计小结逻辑结构设计小结v设计用户子模式设计用户子模式 1.1.使用更符合用户习惯的别名使用更符合用户习惯的别名 2.2.针对不同级别的用户定义不同的外模式,以满足系针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。统对安全性的要求。3.3.简化用户对系统的使用简化用户对系统的使用2021/10/10