1、网络数据库管网络数据库管理与设计理与设计王建民王建民信息科学与技术学院信息科学与技术学院2012-3-19-2-23:09第7章 数据库设计7.1 数据库设计概述数据库设计概述7.2 数据库需求分析数据库需求分析7.3 数据库结构设计数据库结构设计7.4 数据库行为设计数据库行为设计7.5 数据库实施数据库实施7.6 数据库运行和维护数据库运行和维护-3-23:097.1 数据库设计概述n目前数据库的应用已非常广泛,涉及各行各业。目前数据库的应用已非常广泛,涉及各行各业。可以说一个国家数据库建设的水平已成为衡量这可以说一个国家数据库建设的水平已成为衡量这个国家信息化程度的重要标志之一。个国家信
2、息化程度的重要标志之一。n通常将使用数据库的各类信息系统都称为数据库通常将使用数据库的各类信息系统都称为数据库应用系统。如各种管理信息系统、办公自动化系应用系统。如各种管理信息系统、办公自动化系统、电子政务系统、电子商务系统、地理信息系统、电子政务系统、电子商务系统、地理信息系统等。统等。-4-23:097.1 数据库设计概述数据库设计的特点数据库设计的特点数据库设计方法概述数据库设计方法概述数据库设计的基本步骤数据库设计的基本步骤 -5-23:09数据库设计面临的主要问题n同时具备数据库与应用业务知识的人很少。同时具备数据库与应用业务知识的人很少。n应用业务的数据库系统的目标是什么在一开始往
3、应用业务的数据库系统的目标是什么在一开始往往不能很明确。往不能很明确。n缺乏完善的设计工具和设计方法。缺乏完善的设计工具和设计方法。n用户的要求往往并不是一开始就能完全说清楚。用户的要求往往并不是一开始就能完全说清楚。n应用业务系统千差万别,很难找到一种适合所有应用业务系统千差万别,很难找到一种适合所有应用业务的工具和方法。应用业务的工具和方法。-6-23:09数据库设计的特点n数据库设计数据库设计 n数据量大且复杂数据量大且复杂n是一项数据库工程是一项数据库工程n是一项软件工程是一项软件工程n特点特点n综合性综合性n结构设计与行为设计相分离结构设计与行为设计相分离-7-23:09数据库设计的
4、特点(Cont.)n综合性综合性 n涉及面广,需包含计算机专业知识及业务系统专业涉及面广,需包含计算机专业知识及业务系统专业知识;知识;n要解决技术及非技术两方面的问题。要解决技术及非技术两方面的问题。 n静态结构设计与动态行为设计是分离的静态结构设计与动态行为设计是分离的 n静态结构设计是指数据库的模式框架设计(包括语静态结构设计是指数据库的模式框架设计(包括语义结构(概念)、数据结构(逻辑)、存储结构(义结构(概念)、数据结构(逻辑)、存储结构(物理);物理);n动态行为设计是指应用程序设计(动作操纵:功能动态行为设计是指应用程序设计(动作操纵:功能组织、流程控制)组织、流程控制)-8-2
5、3:09数据库设计方法n新奥尔良(新奥尔良(New Orleans)方法)方法 需求说明需求分析概念结构概念结构设计逻辑结构逻辑结构设计物 理 结 构结构物理设计v数据库设计方法从本质上看仍然是手工设计方法,数据库设计方法从本质上看仍然是手工设计方法,其基本思想是过程迭代和逐步求精其基本思想是过程迭代和逐步求精。 -9-23:09数据库设计的基本步骤n按照规范化设计的方法,同时考虑数据库及其应用系统按照规范化设计的方法,同时考虑数据库及其应用系统开发的全过程,分以下几个阶段开发的全过程,分以下几个阶段n1 1需求分析需求分析n2 2结构设计:包括概念结构设计、逻辑结构设计、物结构设计:包括概念
6、结构设计、逻辑结构设计、物理结构设计理结构设计n3 3行为设计:包括功能设计、事务设计、程序设计行为设计:包括功能设计、事务设计、程序设计n4 4数据库实施:包括加载数据库数据和调试应用程序数据库实施:包括加载数据库数据和调试应用程序n5 5数据库运行和维护数据库运行和维护 -10-23:09数据库设计的基本步骤(Cont.)n数据库设计的准备工作:数据库设计的准备工作:选定参加设计的人员选定参加设计的人员1.系统分析员、数据库设计员系统分析员、数据库设计员 n自始至终参与数据库设计自始至终参与数据库设计2. 用户和数据库管理员用户和数据库管理员 n主要参加需求分析和数据库的运行维护主要参加需
7、求分析和数据库的运行维护3.应用开发人员(程序员和操作员)应用开发人员(程序员和操作员) n在系统实施阶段参与进来,负责编制程序和准备软硬在系统实施阶段参与进来,负责编制程序和准备软硬件环境件环境 -11-23:097.2 数据库需求分析 n分析用户的要求;分析用户的要求;n是数据库设计的起点;是数据库设计的起点;n其结果将直接影响到后面各阶段的设计;其结果将直接影响到后面各阶段的设计;n并影响到最终的数据库系统能否被合理地使用。并影响到最终的数据库系统能否被合理地使用。 -12-23:09需求分析的任务 n信息需求。信息需求。n处理需求。处理需求。n安全性与完整性要求。安全性与完整性要求。数
8、据存储数据源数据输出处理-13-23:09需求分析的方法n系统调查三方面内容:系统调查三方面内容:业务现状业务现状 信息资源信息资源 外部要求外部要求n调查方式:调查方式:检查文档检查文档 面谈面谈观察操作中的业务观察操作中的业务 研究和问卷调查研究和问卷调查-14-23:097.3 数据库结构设计 n数据库设计分为:数据库结构设计和数据数据库设计分为:数据库结构设计和数据库行为设计。库行为设计。n结构设计结构设计包括设计数据库的概念结构、逻包括设计数据库的概念结构、逻辑结构和存储结构。辑结构和存储结构。n行为设计行为设计包括设计数据库的功能组织和流包括设计数据库的功能组织和流程控制。程控制。
9、 -15-23:09概念结构设计 n着重信息结构的设计;着重信息结构的设计;n是整个数据库系统设计的关键;是整个数据库系统设计的关键;n独立于逻辑结构设计;独立于逻辑结构设计;n独立于独立于DBMS。 -16-23:09概念结构设计的策略 n自底向上自底向上。先定义局部应用的概念结构,然后按一定。先定义局部应用的概念结构,然后按一定的规则把它们集成起来,从而得到全局概念模型。的规则把它们集成起来,从而得到全局概念模型。n自顶向下自顶向下:先定义全局概念模型,然后再逐步细化。:先定义全局概念模型,然后再逐步细化。n由里向外由里向外:先定义最重要的核心结构,然后再逐步向:先定义最重要的核心结构,然
10、后再逐步向外扩展。外扩展。n混合策略混合策略。将自顶向下和自底向上结合起来使用。将自顶向下和自底向上结合起来使用。 -17-23:09采用E-R模型方法的概念结构设计 n设计局部设计局部E-R模型模型 E-R模型的设计内容包括确定局部模型的设计内容包括确定局部E-R模型的模型的范围、定义实体、联系以及它们的属性。范围、定义实体、联系以及它们的属性。n设计全局设计全局E-R模型模型 将所有局部将所有局部E-R图集成为一个全局图集成为一个全局E-R图,即全图,即全局局E-R模型。模型。n优化全局优化全局E-R模型模型-18-23:09(1)设计局部E-R模型 n概念结构是对现实世界的一种抽象。概念
11、结构是对现实世界的一种抽象。n所谓抽象是对实际的人、物、事和概念进行人为处理所谓抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质细节,并把这,抽取所关心的共同特性,忽略非本质细节,并把这些特性用各种概念准确的加以描述。些特性用各种概念准确的加以描述。n一般有三种抽象方法:一般有三种抽象方法: n分类分类n概括概括n聚集聚集-19-23:09分类学生张三李四王五classIs a mumber of-20-23:09概括学生本科生研究生超类子类Is a subset of-21-23:09聚集学生实体型属性学号学号姓名性别Is a part of-22-23:09(2
12、)设计全局E-R模型 n将局部将局部E-R图集成为全局图集成为全局E-R图;图;n需消除各分需消除各分E-R图合并时产生的冲突;图合并时产生的冲突;n解决冲突是合并解决冲突是合并E-R图的主要工作和关键所在。图的主要工作和关键所在。n冲突主要有三类:冲突主要有三类:n属性冲突:属性冲突:属性域冲突、属性取值单位冲突属性域冲突、属性取值单位冲突n命名冲突:命名冲突:同名异义和异名同义同名异义和异名同义 n结构冲突:结构冲突:同一对象在不同应用中具有不同的抽象、同一对象在不同应用中具有不同的抽象、同一实体在不同的局部同一实体在不同的局部E-R图中所包含的属性个数和图中所包含的属性个数和属性的排列次
13、序不完全相同。属性的排列次序不完全相同。 -23-23:09(3)优化全局E-R模型 v实体个数尽可能少;实体个数尽可能少;v实体所包含的属性尽可能少;实体所包含的属性尽可能少;v实体间联系无冗余。实体间联系无冗余。-24-23:09局部ER图nm产品产品号性能参数零件零件号价格组成零件个数nm材料材料号材料类型产品零件号规格使用使用量库存量-25-23:09合并示例nnm产品产品号性能参数零件零件号规格组成零件个数价格使用使用量材料号材料类型库存量材料-26-23:09 逻辑结构设计 v步骤:步骤:将概念模型转换为某种组织层数据模将概念模型转换为某种组织层数据模型;型;对数据模型进行优化。对
14、数据模型进行优化。-27-23:09E-R图向关系模型的转换n转换内容转换内容1)将实体型和实体间的联系转换为关系模式将实体型和实体间的联系转换为关系模式2)确定这些关系模式的属性和码确定这些关系模式的属性和码-28-23:09实体的转换原则n实体的转换原则实体的转换原则n一个一个实体实体转换为一个转换为一个关系模式关系模式u实体的名称实体的名称对应对应关系模式的名称关系模式的名称u实体的属性实体的属性对应对应关系模式的属性关系模式的属性u实体的候选码实体的候选码对应对应关系模式的候选码关系模式的候选码-29-23:09实体的转换原则(Cont.)n例:例:n转换为关系模式:转换为关系模式:学
15、生(学生(学号学号、姓名、性别、年龄)、姓名、性别、年龄)学生学号年龄性别姓名-30-23:09联系的转换原则(1)一个一个1:1联系可以转换为一个独立的关系模式,也可以与联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。任意一端对应的关系模式合并。n转换为一个独立的关系模式:转换为一个独立的关系模式:u相连实体的码、联系的属性相连实体的码、联系的属性新关系的属性,新关系的属性, 每个实体的码均是该关系的候选码。每个实体的码均是该关系的候选码。 n 与某一端实体对应的关系模式合并:与某一端实体对应的关系模式合并:u需在该关系模式的属性中加入另一实体的码和联系需在该关系模式的
16、属性中加入另一实体的码和联系的属性。的属性。 -31-23:09联系的转换原则(Cont.)n例如:例如:工号车间号n 对实体的转换:对实体的转换:u车间主任(车间主任(工号工号, .)u车间(车间(车间号车间号, )n 对联系的转换:对联系的转换:u独立的新关系独立的新关系:管理:管理(工号工号, 车间号车间号)u合并到其中的一个关系中合并到其中的一个关系中:车间主任车间主任(工号工号, ,车间号)车间号)或:车间或:车间(车间车间号号, , 工号工号)车间主任车间主任工号工号-32-23:09联系的转换原则(Cont.)(2)一个一个1:n联系可以转换为一个独立的关系模式,也可以与联系可以
17、转换为一个独立的关系模式,也可以与n端对应的关系模式合并。端对应的关系模式合并。n 转换为一个独立的关系模式:转换为一个独立的关系模式:u相连实体的码、联系的属性相连实体的码、联系的属性新关系的属性,新关系的属性,un端实体的码端实体的码新关系的码。新关系的码。 n与与n端对应的关系模式合并端对应的关系模式合并u在在n端的实体表中增加端的实体表中增加1端实体的候选码。端实体的候选码。 -33-23:09联系的转换原则(Cont.)n例如:例如:车间号职工号n 对实体的转换:u 车间(车间号, )u 车间成员(职工号, .)n 对联系的转换:u独立的新关系模式:职工-车间(职工号,车间号)u合并
18、到n端实体关系中:车间成员(职工号, ,车间号)可否在n端的实体表中增加1端实体的候选码?-34-23:09联系的转换原则(Cont.)(3) 一个一个m:n联系转换为一个关系模式。联系转换为一个关系模式。u相连实体的码、联系的属性相连实体的码、联系的属性属性属性u新关系的码是各实体码的组合。新关系的码是各实体码的组合。 选修(选修(学号,课程号学号,课程号,成绩),成绩)课程选修学生mnm:n联系学号课程号成绩-35-23:09联系的转换原则(Cont.)(4)三个或三个以上实体间的三个或三个以上实体间的多元联系多元联系转换新关系模式。转换新关系模式。u相连实体的码、联系的属性相连实体的码、
19、联系的属性属性属性u新关系的码是各实体码的组合。新关系的码是各实体码的组合。 工程供应零件表(工程供应零件表(供应者号供应者号,零件号零件号,工程号工程号,供应数量),供应数量) -36-23:09数据模型的优化n得到初步数据模型后,还应该适当地修改、调整数据模型得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是的结构,以进一步提高数据库应用系统的性能,这就是数数据模型的优化据模型的优化n关系数据模型的优化通常以关系数据模型的优化通常以规范化理论规范化理论为指导为指导-37-23:09数据模型的优化的方法1.确定数据依赖确定数据依赖1.关系模式内
20、部各属性之间的数据依赖关系模式内部各属性之间的数据依赖2.不同关系模式属性之间数据依赖不同关系模式属性之间数据依赖2.消除冗余的联系消除冗余的联系3.确定所属范式确定所属范式4.按照数据处理的要求,确定是否合并或分解。按照数据处理的要求,确定是否合并或分解。并不是规范化程度越高的关系就越优,一般说来,第并不是规范化程度越高的关系就越优,一般说来,第三范式就足够了三范式就足够了-38-23:09常用分解方法n通过对关系模式进行必要的分解,提高数通过对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。据操作的效率和存储空间的利用率。n常用分解方法常用分解方法u水平分解水平分解u垂直分解
21、垂直分解-39-23:09常用分解方法(Cont.)n水平分解水平分解n什么是水平分解什么是水平分解u把把(基本基本)关系的元组分为若干子集合,定义每个关系的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统的效率子集合为一个子关系,以提高系统的效率n水平分解的适用范围水平分解的适用范围u满足满足“80/20原则原则”的应用的应用u并发事务经常存取并发事务经常存取不相交的数据不相交的数据-40-23:09常用分解方法(Cont.)n垂直分解垂直分解n什么是垂直分解什么是垂直分解u把关系模式把关系模式R的属性分解为若干子集合,形成若干的属性分解为若干子集合,形成若干子关系模式子关系模式n
22、垂直分解的适用范围垂直分解的适用范围u取决于分解后取决于分解后R上的所有事务的总效率是否得到了上的所有事务的总效率是否得到了提高提高-41-23:09设计用户子模式n定义用户子(外模式)时应该注重的问题定义用户子(外模式)时应该注重的问题 (1) 使用更符合用户习惯的别名使用更符合用户习惯的别名 (2) 针对不同级别的用户定义不同的针对不同级别的用户定义不同的View ,以满足系,以满足系统对安全性的要求。统对安全性的要求。 (3) 简化用户对系统的使用简化用户对系统的使用-42-23:09设计用户子模式(Cont.)n例:产品(产品号,产品名,规格,单价,生产车间,生例:产品(产品号,产品名
23、,规格,单价,生产车间,生产负责人,产品成本,产品合格率,质量等级)产负责人,产品成本,产品合格率,质量等级)n可以在产品关系上建立两个视图:可以在产品关系上建立两个视图:u产品产品1(产品号,产品名,规格,单价)(产品号,产品名,规格,单价)u产品产品2(产品号,产品名,规格,单价,车间,生产负责人)(产品号,产品名,规格,单价,车间,生产负责人)n可以防止用户非法访问不允许他们查询的数据,可以防止用户非法访问不允许他们查询的数据, 保证系统的安全性保证系统的安全性u顾客视图中只包含允许顾客查询的属性顾客视图中只包含允许顾客查询的属性u销售部门视图中只包含允许销售部门查询的属性销售部门视图中
24、只包含允许销售部门查询的属性u生产领导部门则可以查询全部产品数据生产领导部门则可以查询全部产品数据为一般顾客建立的视图为产品销售部门建立的视图-43-23:09物理结构设计 n对已确定的逻辑数据结构,利用对已确定的逻辑数据结构,利用DBMS提供的方法提供的方法、技术,以较优的存储结构、数据存取路径、合理、技术,以较优的存储结构、数据存取路径、合理的数据存储位置以及存储分配,设计出一个高效的的数据存储位置以及存储分配,设计出一个高效的、可实现的物理数据库结构。、可实现的物理数据库结构。 n数据库的物理设计通常分为两步:数据库的物理设计通常分为两步:n确定数据库的物理结构;确定数据库的物理结构;n
25、对物理结构进行时间和空间效率的评价。对物理结构进行时间和空间效率的评价。-44-23:09物理结构设计的内容和方法 对于数据查询,需要得到如下信息:对于数据查询,需要得到如下信息:查询所涉及的关系;查询所涉及的关系;查询条件所涉及的属性;查询条件所涉及的属性;连接条件所涉及的属性;连接条件所涉及的属性;查询列表中涉及的属性。查询列表中涉及的属性。n对于更新数据的事务,需要得到如下信息:对于更新数据的事务,需要得到如下信息:更新所涉及的关系;更新所涉及的关系;每个关系上的更新条件所涉及的属性;每个关系上的更新条件所涉及的属性;更新操作所涉及的属性。更新操作所涉及的属性。 -45-23:09确定存
26、取方法 n一般用户可以通过建立索引的方法来加快数据的查询效一般用户可以通过建立索引的方法来加快数据的查询效率。率。 n建立索引的一般原则为:建立索引的一般原则为:n在经常作为查询条件的属性上建立索引。在经常作为查询条件的属性上建立索引。n在经常作为连接条件的属性上建立索引。在经常作为连接条件的属性上建立索引。n在经常作为分组依据列的属性上建立索引。在经常作为分组依据列的属性上建立索引。n对经常进行连接操作的表可以建立索引。对经常进行连接操作的表可以建立索引。n一个表可以建立多个索引,但只能建立一个聚簇索引。一个表可以建立多个索引,但只能建立一个聚簇索引。 -46-23:09确定存储结构n一般的
27、存储方式有:一般的存储方式有:顺序存储顺序存储散列存储散列存储聚簇存储聚簇存储n一般情况下系统都会为数据选择一种最合一般情况下系统都会为数据选择一种最合适的存储方式。适的存储方式。 -47-23:09物理结构设计的评价 n评价物理结构设计的方法完全依赖于具体的评价物理结构设计的方法完全依赖于具体的DBMSDBMS,主要,主要考虑的是操作开销,即为使用户获得及时、准确的数据考虑的是操作开销,即为使用户获得及时、准确的数据所需的开销和计算机的资源的开销。具体可分为如下几所需的开销和计算机的资源的开销。具体可分为如下几类:类:n查询和响应时间查询和响应时间n更新事务的开销更新事务的开销n生成报告的开
28、销生成报告的开销n主存储空间的开销主存储空间的开销n辅助存储空间的开销辅助存储空间的开销-48-23:098.4 数据库行为设计 功能分析功能分析功能设计功能设计事务设计事务设计应用程序设计与实现应用程序设计与实现-49-23:09功能分析n在进行需求分析时,实际上进行了两项工在进行需求分析时,实际上进行了两项工作,一项是作,一项是“数据流数据流”的调查分析,另一的调查分析,另一项是项是“事务处理事务处理”过程的调查分析。过程的调查分析。数据流数据流的调查分析为数据库的信息结构提供了的调查分析为数据库的信息结构提供了最原始的依据,最原始的依据,事务处理事务处理的调查分析是行为设计的基础。的调查
29、分析是行为设计的基础。 -50-23:09行为特性分析n指出对数据库所要进行的指出对数据库所要进行的各种处理各种处理;n指出对每个实体所进行的指出对每个实体所进行的操作操作(增、删、改、查);(增、删、改、查);n给出每个操作的给出每个操作的语义语义,包括结构约束和操作约束;,包括结构约束和操作约束; n给出每个操作(针对某一对象)的给出每个操作(针对某一对象)的频率频率;n给出每个操作(针对某一应用)的给出每个操作(针对某一应用)的响应时间响应时间;n给出该系统的给出该系统的总目标总目标。-51-23:09功能设计 目标功能2功能n功能1功能22功能23功能21-52-23:09例:“学籍管
30、理”的功能结构图 学籍管理录取分班入学报到录入修改查询修课管理-53-23:09事务设计 n事务处理是计算机模拟人处理事务的过程事务处理是计算机模拟人处理事务的过程,包括:,包括:n输入设计输入设计n输出设计输出设计n功能设计功能设计n等等等等 -54-23:09输入设计 n原始单据的设计格式原始单据的设计格式n制成输入一览表制成输入一览表n制作输入数据描述文档制作输入数据描述文档-55-23:09输出设计n用途用途。区分输出结果是给客户的还是用于。区分输出结果是给客户的还是用于内部或报送上级领导的。内部或报送上级领导的。n输出设备的选择输出设备的选择。是仅仅显示出来,还是。是仅仅显示出来,还
31、是要打印出来或需要永久保存。要打印出来或需要永久保存。n输出量输出量。n输出格式输出格式。-56-23:098.5 数据库的实施n数据库实施数据库实施n运行编好的应用程序,检查数据库设计及运行编好的应用程序,检查数据库设计及程序设计是否有问题。程序设计是否有问题。n两大任务两大任务数据库数据加载数据库数据加载调试和运行应用程序调试和运行应用程序-57-23:09数据库数据加载n数据加载数据加载n任务:将现有业务系统的数据按数据库设计的任务:将现有业务系统的数据按数据库设计的要求输入到数据库中。要求输入到数据库中。n方式:输入、导入。方式:输入、导入。-58-23:09调试和运行应用程序n数据库
32、的试运行数据库的试运行n测试应用程序的测试应用程序的功能功能是否满足设计要求是否满足设计要求。如不满足,则应该对应用程序进行修。如不满足,则应该对应用程序进行修改、调整,直至满足要求。改、调整,直至满足要求。n测试应用程序的测试应用程序的性能性能是否满足设计要求是否满足设计要求。如不满足,则应该对应用程序进行修。如不满足,则应该对应用程序进行修改、调整,或调整系统参数,直至满足改、调整,或调整系统参数,直至满足要求。要求。-59-23:098.6 数据库的运行和维护 n数据库投入运行标志着开发工作的基本数据库投入运行标志着开发工作的基本完成完成和维护工作和维护工作的开始,数据库只要存在一天,就
33、需要不断地对它进行的开始,数据库只要存在一天,就需要不断地对它进行评价、调整和维护。评价、调整和维护。n在数据库运行阶段,对数据库的经常性的维护工作主要在数据库运行阶段,对数据库的经常性的维护工作主要由数据库系统管理员完成,其主要工作包括:由数据库系统管理员完成,其主要工作包括:n数据库的备份和恢复数据库的备份和恢复n数据库的安全性和完整性控制数据库的安全性和完整性控制n监视、分析、调整数据库性能监视、分析、调整数据库性能 n数据库的重组数据库的重组n纠正错误、实现新的需求等纠正错误、实现新的需求等但不是结束-60-23:09本章小结数据库设计概述数据库设计概述数据库需求分析数据库需求分析数据库结构设计数据库结构设计数据库数据库行为设计行为设计数据库数据库实施实施数据库数据库运行和维护运行和维护功能设计、事务设计、应用程序设计加载数据和调试程序 纠正错误、实现新的需求等 DBA日常维护概念结构、逻辑结构、物理结构