《《数据库设计步骤》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库设计步骤》PPT课件.ppt(30页珍藏版)》请在金锄头文库上搜索。
1、 1.7 数据库设计数据库设计n 数据库设计数据库设计: :是指对于一个给定的应用环境,构造最优的数据模是指对于一个给定的应用环境,构造最优的数据模型,然后据此建立数据库及其应用系统,使之能够有效地存储数型,然后据此建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。据,满足各种用户的应用需求。 n 数据库设计的内容数据库设计的内容: :n结构特性设计结构特性设计n行为特性设计行为特性设计n 数据库设计的目标数据库设计的目标: :满足要求与模拟精确程度满足要求与模拟精确程度 良好的数据库性能良好的数据库性能数据库设计数据库设计步骤步骤需求分析需求分析概念结构设计概念结构设计
2、逻辑结构设计逻辑结构设计数据库物理设计数据库物理设计数据库实施数据库实施数据库数据库运行和维护运行和维护需求收集和分析需求收集和分析设计概念结构设计概念结构设计逻辑结构设计逻辑结构数据模型优化数据模型优化设计物理结构设计物理结构评价设计、性能预测评价设计、性能预测物理实现物理实现试运行试运行对数据库系统对数据库系统进行评价、调整与修改进行评价、调整与修改需求分析需求分析1.7.1 1.7.1 需求分析需求分析一、需求分析的任务一、需求分析的任务 收集与分析用户的信息及应用处理的要求,并将结果按照一收集与分析用户的信息及应用处理的要求,并将结果按照一定的格式形成需求说明书。定的格式形成需求说明书
3、。二、需求分析的方法二、需求分析的方法 1. 1. 需求信息的收集需求信息的收集 (1 1)了解组织的机构设置)了解组织的机构设置 (2 2)主要业务活动和职能)主要业务活动和职能 (3 3)了解系统的各种外部要求)了解系统的各种外部要求 (4 4)确定系统边界)确定系统边界需求分析需求分析 2.2.需求信息的分析整理需求信息的分析整理 用数据流图和数据字典描述。用数据流图和数据字典描述。 三、数据流图三、数据流图( (DFDDFD-D Data ata F Flow low D Diagram)iagram) DFD DFD用来表示收集到的各业务流程中涉及到的数据和处理过程用来表示收集到的各
4、业务流程中涉及到的数据和处理过程的关系。的关系。n 数据流图的基本成分:数据流图的基本成分:表示同类数据的集中存放处,通常指数据文件表示同类数据的集中存放处,通常指数据文件表示对数据的处理表示对数据的处理表示不同处理过程之间传递的数据表示不同处理过程之间传递的数据表示数据的发送者和接收者表示数据的发送者和接收者需求分析需求分析四、数据字典四、数据字典(DDDD-Data -Data D Dictionary)ictionary)n 数据库应用系统的数据字典包括:数据库应用系统的数据字典包括:数据项、数据结构、数据流、数据项、数据结构、数据流、数据存储、处理过程。数据存储、处理过程。n 例:例:
5、下图给出了某机器制造厂的零配件采购子系统的数据流图。下图给出了某机器制造厂的零配件采购子系统的数据流图。该子系统要处理的工作是生产部门提出的生产计划根据零配件当前该子系统要处理的工作是生产部门提出的生产计划根据零配件当前价格计算成本送主管部门审批,对已批准生产计划制定采购计划,价格计算成本送主管部门审批,对已批准生产计划制定采购计划,准备好订货单给供应商。准备好订货单给供应商。 零配件采购子系统零配件采购子系统DFD核对核对预算预算确定采确定采购计划购计划编制编制定货单定货单供应商供应商零配件采购记录零配件采购记录生产计划生产计划批准批准/不批准不批准批准批准/不批准不批准核对核对预算预算产品
6、产品预算预算零件零件价格价格零件零件库存库存量量报价单报价单供应商报价供应商报价采购采购计划计划订单细节订单细节订货单订货单零配件采购子系统的数据字典零配件采购子系统的数据字典数据项数据项描述数据项名,数据项含义说明,别名,数据类型,长描述数据项名,数据项含义说明,别名,数据类型,长度,度, 取值范围,取值含义,与其他数据项的逻辑关系取值范围,取值含义,与其他数据项的逻辑关系例:数据项名:订货单号例:数据项名:订货单号 类型:类型: CHARCHAR 长度:长度: 8 8 别名:别名: 采购单号采购单号 取值范围:取值范围:10000000-9999999910000000-99999999零
7、配件采购子系统的数据字典零配件采购子系统的数据字典 数据结构是若干数据项有意义的集合。数据结构是若干数据项有意义的集合。数据结构数据结构描述数据结构名,含义说明,组成描述数据结构名,含义说明,组成: :数据项或数据数据项或数据结构结构例:例: 数据结构:采购细节数据结构:采购细节 说明:作为采购计划的组成部分,说明对某个产品要说明:作为采购计划的组成部分,说明对某个产品要 采购哪些零件,哪种零件采购多少数量。采购哪些零件,哪种零件采购多少数量。 组成:零件号、零件名、数量组成:零件号、零件名、数量 零配件采购子系统的数据字典零配件采购子系统的数据字典 数据流表示加工处理过程的输入或输出数据。数
8、据流表示加工处理过程的输入或输出数据。数据流数据流描述数据流名,说明,数据流来源,数据流去向,描述数据流名,说明,数据流来源,数据流去向, 组成组成: :数据结构,平均流量,高峰期流量数据结构,平均流量,高峰期流量例:数据流名:采购计划例:数据流名:采购计划 说明:由各产品所需零件数、选定的供应商、审核情况说明:由各产品所需零件数、选定的供应商、审核情况 组成采购零配件计划。组成采购零配件计划。 来源:确定采购计划来源:确定采购计划 去向:编制订货单去向:编制订货单 数据结构:数据结构:-采购细节采购细节 -采购审核采购审核零配件采购子系统的数据字典零配件采购子系统的数据字典 数据存储是处理过
9、程中要存取的数据。数据存储是处理过程中要存取的数据。数据存储数据存储描述数据存储名,说明,编号,流入的数据流,描述数据存储名,说明,编号,流入的数据流, 流出的数据流,组成流出的数据流,组成: :数据结构,数据量,存取方式数据结构,数据量,存取方式例:数据存储名:产品例:数据存储名:产品 说明:对每种产品的品名、规格的描述,并对每种产说明:对每种产品的品名、规格的描述,并对每种产 品做成本预算。在核对生产计划书的成本时用。品做成本预算。在核对生产计划书的成本时用。 输出数据流:预算输出数据流:预算 组成:产品号、产品名、预算组成:产品号、产品名、预算 数据量:每月数据量:每月30-4030-4
10、0件件 存取方式:随机存取存取方式:随机存取零配件采购子系统的数据字典零配件采购子系统的数据字典 处理过程是对加工处理过程的描述。处理过程是对加工处理过程的描述。处理过程处理过程描述处理过程名,说明,输入描述处理过程名,说明,输入: :数据流,数据流, 输出输出: :数据流,处理数据流,处理: :简要说明简要说明例:处理过程:确定采购计划例:处理过程:确定采购计划 说明:对要采购的每一零件,根据零件库存量确定采购数量,说明:对要采购的每一零件,根据零件库存量确定采购数量, 再根据每位供应商的报价选择适当的供应商,制定采购再根据每位供应商的报价选择适当的供应商,制定采购 计划。计划。 输入:供应
11、商报价、零件库存、已批准生产计划输入:供应商报价、零件库存、已批准生产计划 输出:采购计划输出:采购计划 简要说明简要说明:(:(1 1)对应采购的每种零件查找供应商报价表,选)对应采购的每种零件查找供应商报价表,选 择报价最低的供应商号。择报价最低的供应商号。 (2 2)将此供应商号填入应采购零件表的相应列中。将此供应商号填入应采购零件表的相应列中。概念结构设计概念结构设计1.7.2 1.7.2 概念结构设计概念结构设计 将需求分析得到的用户需求抽象为概念模型的过程就是概念结将需求分析得到的用户需求抽象为概念模型的过程就是概念结构设计。构设计。 在进行数据库设计时,如果将现实世界中的客观对象
12、直接转换在进行数据库设计时,如果将现实世界中的客观对象直接转换为机器世界中的对象,就会感到比较复杂,注意力往往被牵扯到更为机器世界中的对象,就会感到比较复杂,注意力往往被牵扯到更多的细节限制方面,而不能集中在最重要的信息的组织结构和处理多的细节限制方面,而不能集中在最重要的信息的组织结构和处理模式上。因此通常是将现实世界中的客观对象首先抽象为不依赖任模式上。因此通常是将现实世界中的客观对象首先抽象为不依赖任何何DBMSDBMS和具体机器的信息结构,即概念模型,然后再把概念模型转和具体机器的信息结构,即概念模型,然后再把概念模型转换成具体机器上换成具体机器上DBMSDBMS支持的数据模型。支持的
13、数据模型。 常用的概念结构的设计方法是常用的概念结构的设计方法是自底向上自底向上的设计方法。下面就介的设计方法。下面就介绍采用这种设计方法的设计步骤。绍采用这种设计方法的设计步骤。 概念结构设计概念结构设计一一. . 数据抽象与局部视图设计数据抽象与局部视图设计 根据需求分析的结果(数据流图、数据字典等)对现实世界的根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图,即分数据进行抽象,设计各个局部视图,即分E-RE-R图。图。1. 1. 选择局部应用选择局部应用 可利用机构职能关系进行局部处理。可利用机构职能关系进行局部处理。2. 2. 逐一设计分逐一设计分E
14、-RE-R图图 设计时注意:设计时注意: (1 1)实体与属性的划分原则)实体与属性的划分原则n 属性应是系统中最小的信息单位,不再具有描述性质。属性应是系统中最小的信息单位,不再具有描述性质。n 属性不能与其他实体有联系。属性不能与其他实体有联系。 概念结构设计概念结构设计例:有职工、部门及其相关信息。例:有职工、部门及其相关信息。enoeno职工职工E E部门部门D DE-DE-Dageagenamenamednodnodnamedname部门部门D Ddnodno部门名部门名.职工职工E Eenoeno部门部门.概念结构设计概念结构设计病人病人住院号住院号姓名姓名病房号病房号病人病人住院
15、号住院号姓名姓名住在住在1 1n n医疗医疗病房号病房号病房病房医生医生级别级别床位数床位数医生号医生号医生名医生名1 1m m职称职称概念结构设计概念结构设计二二. . 视图集成(全局视图设计)视图集成(全局视图设计)1. 1. 合并分合并分E-RE-R图,生成初步图,生成初步E-RE-R图图 合并的过程实际上是一个发现冲突和解决冲突的过程。合并的过程实际上是一个发现冲突和解决冲突的过程。 冲突主要有:冲突主要有: (1 1)属性冲突)属性冲突 属性值类型、取值范围等发生冲突。属性值类型、取值范围等发生冲突。 (2 2)命名冲突)命名冲突 同名异义、异名同义。同名异义、异名同义。 (3 3)
16、结构冲突)结构冲突 同一对象在不同视图中有不同抽象。同一对象在不同视图中有不同抽象。同一实体在不同视图中属性组成不同。同一实体在不同视图中属性组成不同。相同实体间联系在不同视图中呈现不同类型。相同实体间联系在不同视图中呈现不同类型。 概念结构设计概念结构设计2.2.消除不必要的冗余,设计基本消除不必要的冗余,设计基本E-RE-R图图 冗余的数据是指可由基本数据导出的数据,冗余的联系是指可冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。由其他联系导出的联系。例:实发工资、应发工资例:实发工资、应发工资 逻辑结构设计逻辑结构设计1.7.3 1.7.3 逻辑结构设计逻辑结
17、构设计n 逻辑结构设计的主要任务:逻辑结构设计的主要任务:将基本将基本E-RE-R模型转换为模型转换为DBMSDBMS所支持所支持的数据模型。的数据模型。n 关系型逻辑结构设计的步骤:关系型逻辑结构设计的步骤:1) 1) 将概念结构转换为关系模型将概念结构转换为关系模型2) 2) 优化模型优化模型3) 3) 设计适合设计适合DBMSDBMS的子模式的子模式逻辑结构设计逻辑结构设计一、一、E-RE-R模型向关系模型的转换模型向关系模型的转换1.1.实体的转换实体的转换 每一个实体型转换为一个关系模式,实体的属性就是关系的属每一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的关键字就是
18、关系的关键字。性,实体的关键字就是关系的关键字。 2.2.联系的转换联系的转换(1)(1)一一般般1:11:1和和1:m1:m联联系系不不产产生生新新的的关关系系模模式式,而而是是将将一一方方实实体体的的关关键键字字加加入入到到多多方方实实体体对对应应的的关关系系模模式式中中,若若有有联联系系的的属属性性也也一一并并加加入。入。(2) (2) m:nm:n联联系系要要产产生生一一个个新新的的关关系系模模式式,该该关关系系模模式式由由联联系系涉涉及及实实体的关键字加上联系的属性体的关键字加上联系的属性( (若有若有) )组成。组成。逻辑结构设计逻辑结构设计之例之例职职 工工商商 品品商商 店店店
19、号店号店址店址店名店名产地产地单价单价品名品名工资工资性别性别姓名姓名工号工号店经理店经理商品号商品号开始时间开始时间月销售量月销售量经经营营隶隶属属1 1n nm mm m将百货公司的将百货公司的E-RE-R模型转换为关系模型。模型转换为关系模型。转换的关系模型如下:转换的关系模型如下:商店商店( (店号店号,店名,店址,店经理,店名,店址,店经理) )商品商品( (商品号商品号,品名,单价,产地,品名,单价,产地) )职工职工( (工号工号,姓名,性别,工资,店号,开始时间,姓名,性别,工资,店号,开始时间) )经营经营( (店号,商品号店号,商品号,月销售量,月销售量) )逻辑结构设计逻
20、辑结构设计二、数据模型的优化二、数据模型的优化 1. 1. 分析函数依赖。分析函数依赖。 2. 2. 确定各关系模式的范式。确定各关系模式的范式。 3. 3. 按照处理要求,对某些模式进行合并或分解。按照处理要求,对某些模式进行合并或分解。 4. 4. 为提高效率和利用率,对关系模式进一步分解。为提高效率和利用率,对关系模式进一步分解。常用的两种分解方法:常用的两种分解方法:垂直分解垂直分解水平分解水平分解三、设计用户子模式三、设计用户子模式 n考虑:系统的使用安全、简便、用户习惯。考虑:系统的使用安全、简便、用户习惯。R R1 R2r1r2R物理结构设计物理结构设计1.7.4 1.7.4 物
21、理结构设计物理结构设计n 数据库物理设计:数据库物理设计:是指对给定的数据模型选取一个最适合应是指对给定的数据模型选取一个最适合应用要求的物理结构的过程。用要求的物理结构的过程。n 物理设计步骤:物理设计步骤:n确定确定DBDB的物理结构的物理结构 ( (存取方法、存储结构存取方法、存储结构) )n评价结构的时、空效率评价结构的时、空效率 ( (取决于取决于DBMS)DBMS)n 物理设计目标:物理设计目标:n设计优化的物理设计优化的物理DBDB结构,使得响应时间短、空间利用率高。结构,使得响应时间短、空间利用率高。 物理结构设计物理结构设计关系数据库物理设计的主要内容:关系数据库物理设计的主
22、要内容:1. 1. 为关系模式选择存取方法为关系模式选择存取方法n索引方法索引方法n聚簇方法聚簇方法n建立索引的一般原则是:建立索引的一般原则是: 主关键字和外关键字上一般建立索引。主关键字和外关键字上一般建立索引。 可在经常按某列的顺序访问记录的列上建立索引。可在经常按某列的顺序访问记录的列上建立索引。 在经常作为连接操作的连接条件中出现的列上建立索引。在经常作为连接操作的连接条件中出现的列上建立索引。物理结构设计物理结构设计n不适合建立索引的情况有:不适合建立索引的情况有: 太小的表。太小的表。 不出现或很少出现在查询条件中的属性。不出现或很少出现在查询条件中的属性。 属性值可能取值的个数
23、很少的属性(如:性别)。属性值可能取值的个数很少的属性(如:性别)。 属性值分布严重不均的属性(如:年龄)。属性值分布严重不均的属性(如:年龄)。 经常更新的属性和表。经常更新的属性和表。 属性的值过长。属性的值过长。物理结构设计物理结构设计n 聚簇聚簇是将相关数据集中存放的物理存储技术。是将相关数据集中存放的物理存储技术。 把某属性组把某属性组( (聚簇码聚簇码) )上具有相同值的元组集中存放在连续的物理上具有相同值的元组集中存放在连续的物理块上称为块上称为聚簇聚簇。n 建立聚簇的一般原则是:建立聚簇的一般原则是: 通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无通过聚簇码进行访问或连
24、接是该关系的主要应用,与聚簇码无关的其他访问很少或者是次要的关的其他访问很少或者是次要的 。 对应每个聚簇码值的平均元组数既不太少,也不太多。太少了,对应每个聚簇码值的平均元组数既不太少,也不太多。太少了,聚簇效益不明显,甚至浪费块的空间;太多了,就要采用多个连接聚簇效益不明显,甚至浪费块的空间;太多了,就要采用多个连接块,同样对提高性能不利。块,同样对提高性能不利。 聚簇码值相对稳定,以减少修改聚簇码值所引起的维护开销。聚簇码值相对稳定,以减少修改聚簇码值所引起的维护开销。 物理结构设计物理结构设计2. 2. 确定系统的存储结构确定系统的存储结构 (1 1)确定数据的存放位置)确定数据的存放
25、位置 减少访问磁盘时的冲突,提高减少访问磁盘时的冲突,提高I/OI/O的并行性。的并行性。 分散热点数据,均衡分散热点数据,均衡I/OI/O负载。负载。 保证关键数据的快速访问,缓解系统的瓶颈。保证关键数据的快速访问,缓解系统的瓶颈。 (2 2)确定系统的配置参数)确定系统的配置参数 DBMSDBMS产品一般都提供了一些存储分配参数,供设计人员和产品一般都提供了一些存储分配参数,供设计人员和DBADBA对数据库进行物理优化。初始情况下,系统为这些变量都赋予对数据库进行物理优化。初始情况下,系统为这些变量都赋予了合理的默认值。但是这些值不一定适合每一种应用环境,在进行了合理的默认值。但是这些值不
26、一定适合每一种应用环境,在进行物理设计时,需要重新对这些变量赋值以改善系统的性能。物理设计时,需要重新对这些变量赋值以改善系统的性能。数据库实施数据库实施1.7.5 1.7.5 数据库实施数据库实施数据库实施阶段主要任务:数据库实施阶段主要任务: (1 1)定义数据库结构)定义数据库结构 (2 2)组织数据入库)组织数据入库 (3 3)编制与调试应用程序)编制与调试应用程序 (4 4)数据库试运行)数据库试运行 数据库运行维护数据库运行维护1.7.6 1.7.6 数据库运行维护数据库运行维护数据库运行维护阶段主要任务:数据库运行维护阶段主要任务: (1 1)数据的转储与恢复)数据的转储与恢复
27、(2 2)数据库的安全性、完整性控制)数据库的安全性、完整性控制 (3 3)数据库的性能监督、分析和改造)数据库的性能监督、分析和改造 (4 4)数据库的重组织与重构造)数据库的重组织与重构造 练习题练习题1.1.什么是数据冗余?数据库系统与文件系统相比怎样减少数据冗余什么是数据冗余?数据库系统与文件系统相比怎样减少数据冗余?2.2.什么是数据库?什么是数据库?3.3.什么是什么是DBMS? DBMSDBMS? DBMS有哪些功能?有哪些功能? 4.4.已已知知一一个个软软件件开开发发管管理理的的关关系系是是:每每个个软软件件公公司司有有若若干干个个软软件件工工程程师师,每每个个软软件件工工程
28、程师师只只属属于于一一个个软软件件公公司司;一一个个软软件件公公司司可可以以同同时时开开发发多多个个项项目目,每每个个项项目目只只属属于于一一个个软软件件公公司司,一一个个项项目目可可以以有有多个软件工程师参加,一个软件工程师可以同时参加多个项目。多个软件工程师参加,一个软件工程师可以同时参加多个项目。所涉及的实体是:所涉及的实体是:工程师:职工号,姓名,性别,职称工程师:职工号,姓名,性别,职称公司:公司号,公司名称,经理,地址,电话公司:公司号,公司名称,经理,地址,电话项目:项目号,项目名称,经费,完成日期项目:项目号,项目名称,经费,完成日期试画出该系统的试画出该系统的E-RE-R图,
29、并将其转换为关系模型。图,并将其转换为关系模型。 5.5.试试述述数据库设计的基本步骤,各设计阶段的主要任务。数据库设计的基本步骤,各设计阶段的主要任务。练习题练习题6. 6. 下下面面给给出出的的关关系系R R为为第第几几范范式式? ?是是否否存存在在操操作作异异常常? ?若若存存在在,则则将将其其分分解解为为高高一一级级范范式式。分分解解完完成成的的高高级级范范式式中中是是否否可可以以避避免分解前关系中存在的操作异常免分解前关系中存在的操作异常? ? 关系关系R R 工程号工程号材料号材料号数量数量开工日期开工日期完工日期完工日期价格价格p1p1I1I14 49805980599029902250250p1p1I2I26 69805980599029902300300p1p1I3I315159805980599029902180180p2p2I1I16 69811981199129912250250p2p2I4I418189811981199129912350350