《第8章数据库设计》由会员分享,可在线阅读,更多相关《第8章数据库设计(90页珍藏版)》请在金锄头文库上搜索。
1、第第8 8章章 数据库设计数据库设计8.1 8.1 数据库设计概述数据库设计概述 8.2 8.2 数据库需求分析数据库需求分析8.3 8.3 数据库结构设计数据库结构设计8.4 8.4 数据库行为设计数据库行为设计8.5 8.5 数据库的实施数据库的实施8.6 8.6 数据库的运行和维护数据库的运行和维护 8.18.1数据库设计概述数据库设计概述o数据库设计数据库设计n数据库设计数据库设计是指对于一个给定的应用环境,是指对于一个给定的应用环境,构造(设计)优化的数据库构造(设计)优化的数据库逻辑模式逻辑模式和和物理物理结构结构,并据此建立,并据此建立数据库数据库及其及其应用系统应用系统,使,使
2、之能够有效地存储和管理数据,满足各种用之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操户的应用需求,包括信息管理要求和数据操作要求。作要求。n目标:为用户和各种应用系统提供一个信息目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境基础设施和高效率的运行环境8.18.1数据库设计概述数据库设计概述8.18.1数据库设计概述数据库设计概述o数据库设计面临的主要问题数据库设计面临的主要问题n同时具备数据库与应用业务知识的人很少。同时具备数据库与应用业务知识的人很少。n应用业务的数据库系统的目标是什么在一开应用业务的数据库系统的目标是什么在一开始往往不能很明确
3、。始往往不能很明确。n缺乏完善的设计工具和设计方法。缺乏完善的设计工具和设计方法。n用户的要求往往并不是一开始就能完全说清用户的要求往往并不是一开始就能完全说清楚。楚。n应用业务系统千差万别,很难找到一种适合应用业务系统千差万别,很难找到一种适合所有应用业务的工具和方法。所有应用业务的工具和方法。8.18.1数据库设计概述数据库设计概述o成功的数据库系统应具备的特点成功的数据库系统应具备的特点n功能强大。功能强大。n能准确地表示业务数据。能准确地表示业务数据。n容易使用和维护。容易使用和维护。n对最终用户操作的响应时间合理。对最终用户操作的响应时间合理。n便于数据库结构的改进。便于数据库结构的
4、改进。n便于数据的检索和修改。便于数据的检索和修改。n较少的数据库维护工作。较少的数据库维护工作。n有效的安全机制能确保数据安全。有效的安全机制能确保数据安全。n冗余数据最少或不存在。冗余数据最少或不存在。n便于数据的备份和恢复。便于数据的备份和恢复。n数据库结构对最终用户透明。数据库结构对最终用户透明。 8.1.1 数据库设计的特点o数据库建设的基本规律数据库建设的基本规律n三分技术,七分管理,十二分基础数据三分技术,七分管理,十二分基础数据 n管理管理 数据库建设项目管理数据库建设项目管理 企业(即应用部门)的业务管理企业(即应用部门)的业务管理 n基础数据基础数据 收集、入库收集、入库
5、更新的数据更新的数据8.1.1 数据库设计的特点o综合性综合性 n涉及面广,需包含涉及面广,需包含计算机专业知识计算机专业知识及及业务系统专业知识业务系统专业知识;n要解决要解决技术技术及及非技术非技术两方面的问题;两方面的问题;o静态结构(数据)设计与动态行为(处理)设计是分离。静态结构(数据)设计与动态行为(处理)设计是分离。n静态结构设计静态结构设计是指数据库的模式框架设计(包括语义结是指数据库的模式框架设计(包括语义结构(概念)、数据结构(逻辑)、存储结构(物理);构(概念)、数据结构(逻辑)、存储结构(物理);n动态行为设计动态行为设计是指应用程序设计(动作操纵:功能组织、是指应用程
6、序设计(动作操纵:功能组织、流程控制)流程控制)8.1.1 数据库设计的特点需求分析需求分析数据分析数据分析功能分析功能分析概念模型设计概念模型设计逻辑模型设计逻辑模型设计物理数据库设计物理数据库设计加载数据库加载数据库功能模型功能模型功能说明功能说明事务设计事务设计用户界面及用户界面及程序设计程序设计调试运行调试运行8.1.2 数据库设计方法概述o规范设计法规范设计法n新奥尔良(新奥尔良(New Orleans)方法方法将数据库设计分为若干阶段和步骤将数据库设计分为若干阶段和步骤 n基于基于E-R模型的数据库设计方法模型的数据库设计方法概念设计阶段广泛采用概念设计阶段广泛采用n3NF(第三范
7、式)的设计方法第三范式)的设计方法逻辑阶段可采用的有效方法逻辑阶段可采用的有效方法 8.1.2 数据库设计方法概述 o新奥尔良(新奥尔良(New Orleans)方法)方法 需求说明需求说明需求需求分析分析概念结构概念结构概念结概念结构设计构设计逻辑结构逻辑结构逻辑结逻辑结构设计构设计物理结构物理结构物理物理设计设计8.1.3 数据库设计的基本步骤 o需求分析需求分析o结构设计结构设计n概念结构设计概念结构设计n逻辑结构设计逻辑结构设计n物理结构设计物理结构设计o行为设计行为设计n(应用系统)功能设计(应用系统)功能设计n事务设计事务设计n用户界面及程序设计用户界面及程序设计o数据库实施数据库
8、实施o数据库运行和维护数据库运行和维护8.1.3 数据库设计的基本步骤o说明说明n需求分析和概念设计独立于任何数据库管理系统需求分析和概念设计独立于任何数据库管理系统 n逻辑设计和物理设计与选用的逻辑设计和物理设计与选用的DBMSDBMS密切相关密切相关o数据库设计的准备工作数据库设计的准备工作-选定参加设计的人选定参加设计的人n系统分析人员系统分析人员、数据库设计人员数据库设计人员:自始至终参与数据库:自始至终参与数据库设计。设计。n用户用户和和数据库管理员数据库管理员:主要参加需求分析和数据库的运:主要参加需求分析和数据库的运行维护行维护n应用开发人员应用开发人员(程序员和操作员):在系统
9、实施阶段参(程序员和操作员):在系统实施阶段参与进来,负责编制程序和准备软硬件环境。与进来,负责编制程序和准备软硬件环境。数数据据库库设设计计各各个个阶阶段段的的设设计计描描述述8.1.3 数据库设计的基本步骤o设计一个完善的数据库应用系统往往是上述几个阶段的不设计一个完善的数据库应用系统往往是上述几个阶段的不断反复断反复o把数据库设计和对数据库中数据处理的设计紧密结合起来把数据库设计和对数据库中数据处理的设计紧密结合起来o将这两个方面的需求分析、抽象、设计、实现在各个阶段将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计同时进行,相互参照,相互
10、补充,以完善两方面的设计8.1.3 数据库设计的基本步骤数据库设计不同阶段形成的数据库各级模式数据库设计不同阶段形成的数据库各级模式8.2 数据库需求分析 o分析用户的要求;分析用户的要求;o是数据库设计的起点;是数据库设计的起点;o其结果将直接影响到后面各阶段的设计;其结果将直接影响到后面各阶段的设计;o并影响到最终的数据库系统能否被合理地使并影响到最终的数据库系统能否被合理地使用。用。 8.2.1 需求分析的任务o详细调查现实世界要处理的对象(组织、部门、详细调查现实世界要处理的对象(组织、部门、企业等)企业等)o充分了解原系统(手工系统或计算机系统)充分了解原系统(手工系统或计算机系统)
11、o明确用户的各种需求明确用户的各种需求o确定新系统的功能确定新系统的功能o充分考虑今后可能的扩充和改变充分考虑今后可能的扩充和改变8.2.1 需求分析的任务o调查的重点是调查的重点是“数据数据”和和“处理处理”,获得用户对,获得用户对数据库要求数据库要求n信息要求信息要求n处理要求处理要求n安全性与完整性要求安全性与完整性要求8.2.1 需求分析的任务o需求分析的难点需求分析的难点n确定用户最终需求确定用户最终需求o用户缺少计算机知识用户缺少计算机知识o设计人员缺少用户的专业知识设计人员缺少用户的专业知识n解决方法解决方法o设计人员必须不断深入地与用户进行交流设计人员必须不断深入地与用户进行交
12、流8.2.2 需求分析方法o调查需求调查需求n业务现状业务现状n信息源流信息源流n外部要求外部要求:安全性、完整性要求等安全性、完整性要求等o达成共识达成共识o分析表达需求:分析表达需求:数据流图、数据流图、数据字典数据字典8.2.2 需求分析方法o调查用户需求的具体步骤调查用户需求的具体步骤 调查组织机构情况调查组织机构情况 调查各部门的业务活动情况。调查各部门的业务活动情况。 在熟悉业务活动的基础上,协助用户明确对新系统的各在熟悉业务活动的基础上,协助用户明确对新系统的各种要求。种要求。 确定新系统的边界确定新系统的边界8.3 数据库结构设计 o数据库结构设计包括数据库结构设计包括n设计数
13、据库的概念结构设计数据库的概念结构n设计数据库的逻辑结构设计数据库的逻辑结构n设计数据库的存储结构设计数据库的存储结构8.3.1 概念结构设计 o什么是概念结构设计什么是概念结构设计n将需求分析得到的用户需求抽象为信息结构即概将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计念模型的过程就是概念结构设计n概念结构是各种数据模型的共同基础,它比数据概念结构是各种数据模型的共同基础,它比数据模型更独立于模型更独立于DBMS 、更抽象,从而更加稳定、更抽象,从而更加稳定n概念结构设计是整个数据库设计的关键概念结构设计是整个数据库设计的关键8.3.1 概念结构设计现实世界现实世界机
14、器世界机器世界信息世界信息世界需求分析需求分析概念结构设计概念结构设计8.3.1 概念结构设计o概念模型的特点概念模型的特点n有丰富的语义表达能力。有丰富的语义表达能力。 n易于交流和理解。易于交流和理解。 n易于更改。易于更改。n易于向各种数据模型转换。易于向各种数据模型转换。8.3.1 概念结构设计o概念结构设计的策略概念结构设计的策略n自底向上自底向上。先定义局部应用的概念结构,然后按一。先定义局部应用的概念结构,然后按一定的规则把它们集成起来,从而得到全局概念模型。定的规则把它们集成起来,从而得到全局概念模型。n自顶向下自顶向下:先定义全局概念模型,然后再逐步细化。:先定义全局概念模型
15、,然后再逐步细化。n由里向外由里向外:先定义最重要的核心结构,然后再逐步:先定义最重要的核心结构,然后再逐步向外扩展。向外扩展。n混合策略混合策略。将自顶向下和自底向上结合起来使用。将自顶向下和自底向上结合起来使用。 自底向上自底向上自顶向下地进行需求分析自底向上地设计概念结构自顶向下地进行需求分析自底向上地设计概念结构自顶向下自顶向下由里向外由里向外混合策略混合策略o将自顶向下和自底向上相结合将自顶向下和自底向上相结合o用自顶向下策略设计一个全局概念结构的框架用自顶向下策略设计一个全局概念结构的框架o以它为骨架集成由自底向上策略中设计的各局部以它为骨架集成由自底向上策略中设计的各局部概念结构
16、概念结构8.3.1 概念结构设计o采用采用E-R模型方法的概念结构设计模型方法的概念结构设计n设计局部设计局部E-R模型模型 E-R模型的设计内容包括确定局部模型的设计内容包括确定局部E-R模型模型的范围、定义实体、联系以及它们的属性。的范围、定义实体、联系以及它们的属性。n设计全局设计全局E-R模型模型 将所有局部将所有局部E-R图集成为一个全局图集成为一个全局E-R图,即图,即全局全局E-R模型。模型。n优化全局优化全局E-R模型模型自底向上设计概念结构的步骤自底向上设计概念结构的步骤8.3.1 概念结构设计o设计局部设计局部E-R模型模型n概念结构是对现实世界的一种概念结构是对现实世界的
17、一种抽象抽象。n所谓抽象是对实际的人、物、事和概念进行所谓抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非人为处理,抽取所关心的共同特性,忽略非本质细节,并把这些特性用各种概念准确的本质细节,并把这些特性用各种概念准确的加以描述。加以描述。n一般有三种抽象方法:一般有三种抽象方法: o分类分类o概括概括o聚集聚集8.3.1 概念结构设计o分类分类n定义某一类概念作为现实世界中一组对象的类型定义某一类概念作为现实世界中一组对象的类型n抽象了对象抽象了对象值和型值和型之间的之间的“is member of”的语义的语义8.3.1 概念结构设计概括概括定义类型之间的一种子集联
18、系定义类型之间的一种子集联系抽象了类型之间的抽象了类型之间的“is subset of”的语义的语义继承性继承性8.3.1 概念结构设计o聚集聚集n定义某一类型的组成成分定义某一类型的组成成分n抽象了对象内部类型和成分之间抽象了对象内部类型和成分之间“is part of”的语义的语义8.3.1 概念结构设计复杂的聚集复杂的聚集某一类型的成分仍是一个聚集某一类型的成分仍是一个聚集 8.3.1 概念结构设计o设计分设计分E-R图的步骤图的步骤n选择局部应用选择局部应用n逐一设计分逐一设计分E-R图图1.选择局部应用选择局部应用o在多层的数据流图中选择一个适当层次的数据流在多层的数据流图中选择一个
19、适当层次的数据流图,作为设计分图,作为设计分E-R图的出发点图的出发点 o通常以通常以中层数据流图中层数据流图作为设计分作为设计分E-R图的依据图的依据选择局部应用(续)选择局部应用(续)设计分设计分E-R图的出发点图的出发点 2.逐一设计分逐一设计分E-R图图o任务任务n将各局部应用涉及的数据分别从数据字典中将各局部应用涉及的数据分别从数据字典中抽取出来抽取出来n参照数据流图,标定各局部应用中的实体、参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码实体的属性、标识实体的码n确定实体之间的联系及其类型(确定实体之间的联系及其类型(1:1,1:n,m:n)逐一设计分逐一设计分E-R
20、图(续)图(续)o两条准则:两条准则:属性不能再具有需要描述的性质。即属性必属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性须是不可分的数据项,不能再由另一些属性组成组成属性不能与其他实体具有联系。联系只发生属性不能与其他实体具有联系。联系只发生在实体之间在实体之间逐一设计分逐一设计分E-R图(续)图(续)职称作为一个实体职称作为一个实体逐一设计分逐一设计分E-R图(续)图(续)病房作为一个实体病房作为一个实体8.3.1 概念结构设计o设计全局设计全局E-R模型模型n各个局部视图即分各个局部视图即分E-R图建立好后,还需要对它们图建立好后,还需要对它们进行合并,集成
21、为一个整体的数据概念结构即全局进行合并,集成为一个整体的数据概念结构即全局E-R图。图。n把局部把局部E-R图集成为全局图集成为全局E-R图时,可以采用一次图时,可以采用一次将所有的将所有的E-R图集成在一起的方式,也可以用逐步图集成在一起的方式,也可以用逐步集成、进行累加的方式,即一次只集成少量几个集成、进行累加的方式,即一次只集成少量几个E-R图,这样实现起来会比较容易些。图,这样实现起来会比较容易些。 8.3.1 概念结构设计o多个分多个分E-R图一次集成图一次集成 一次集成多个分一次集成多个分E-R图图通常用于局部视图比较简单时通常用于局部视图比较简单时8.3.1 概念结构设计o逐步集
22、成逐步集成用累加的方式一次集成两个分用累加的方式一次集成两个分E-R图图 8.3.1 概念结构设计o集成局部集成局部E-R图的步骤图的步骤n合并合并n修改与重构修改与重构8.3.1 概念结构设计8.3.1 概念结构设计o合并分合并分E-R图,生成初步图,生成初步E-R图图n各分各分E-R图存在冲突图存在冲突o各个分各个分E-R图之间必定会存在许多不一图之间必定会存在许多不一致的地方致的地方n合并分合并分E-R图的主要工作与关键图的主要工作与关键o合理消除各分合理消除各分E-R图的冲突图的冲突8.3.1 概念结构设计o 冲突的种类冲突的种类n属性冲突属性冲突n命名冲突命名冲突n结构冲突结构冲突
23、属性冲突属性冲突o两类属性冲突两类属性冲突n属性域冲突属性域冲突属性值的类型属性值的类型取值范围取值范围取值集合不同取值集合不同n属性取值单位冲突(如:斤、公斤)属性取值单位冲突(如:斤、公斤) 命名冲突命名冲突o两类命名冲突两类命名冲突n同名异义:不同意义的对象在不同的局同名异义:不同意义的对象在不同的局部应用中具有相同的名字部应用中具有相同的名字n异名同义(一义多名):同一意义的对异名同义(一义多名):同一意义的对象在不同的局部应用中具有不同的名字象在不同的局部应用中具有不同的名字 结构冲突结构冲突o三类结构冲突三类结构冲突n同一对象在不同应用中具有不同的抽象(职工同一对象在不同应用中具有
24、不同的抽象(职工实体实体/属性?)属性?)n同一实体在不同分同一实体在不同分E-R图中所包含的属性个数图中所包含的属性个数和属性排列次序不完全相同和属性排列次序不完全相同n实体之间的联系在不同局部视图中呈现不同的实体之间的联系在不同局部视图中呈现不同的类型类型8.3.1 概念结构设计o消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-R图图合并合并初步初步E-R图图分分E-R图图可能存在冗余的数据可能存在冗余的数据和冗余的实体间联系和冗余的实体间联系基本基本E-R图图消除不必要的冗余消除不必要的冗余8.3.1 概念结构设计o冗余的数据冗余的数据是指可由基本数据导出的数据是指可由基
25、本数据导出的数据冗余的联系冗余的联系是指可由其他联系导出的联系是指可由其他联系导出的联系 o冗余数据和冗余联系容易破坏数据库的完整冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难性,给数据库维护增加困难o消除不必要的冗余后的初步消除不必要的冗余后的初步E-R图称为基本图称为基本E-R图图 8.3.1 概念结构设计o优化全局优化全局E-R模型模型n实体个数尽可能少;实体个数尽可能少;n实体所包含的属性尽可能少;实体所包含的属性尽可能少;n实体间联系无冗余。实体间联系无冗余。8.3.1 概念结构设计o验证整体概念结构验证整体概念结构n对该整体概念结构还必须进行进一步验证,确保它能够对
26、该整体概念结构还必须进行进一步验证,确保它能够满足下列条件:满足下列条件:o整体概念结构内部必须具有一致性,不存在互相矛盾整体概念结构内部必须具有一致性,不存在互相矛盾的表达的表达o整体概念结构能准确地反映原来的每个视图结构,包整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系括属性、实体及实体间的联系o整体概念结构能满足需要分析阶段所确定的要求整体概念结构能满足需要分析阶段所确定的要求n整体概念结构最终还应该提交给用户,征求用户和有关整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和优化,然后把它确定下人员的意见,进行评审、修改和优化,然后把它
27、确定下来,作为数据库的概念结构,作为进一步设计数据库的来,作为数据库的概念结构,作为进一步设计数据库的依据。依据。示例示例nm产品产品产品号产品号性能参数性能参数零件零件零件号零件号价格价格组成组成零件个数零件个数nm材料材料材料号材料号材料材料类型型零件零件零件号零件号规格规格使用使用使用量使用量库存量库存量局部局部ERER图图pm示例(续)示例(续)nnm产品产品产品号产品号性能参数性能参数零件零件零件号零件号规格规格组成组成零件个数零件个数价格价格使使用用使用量使用量材料号材料号材料类型材料类型库存量库存量材料材料合并合并局部局部ERER图图8.3.2 逻辑结构设计 n步骤:步骤:o将概
28、念模型转换为某种组织层数据将概念模型转换为某种组织层数据模型;模型;o对数据模型进行优化。对数据模型进行优化。8.3.2 逻辑结构设计oE-R模型向关系模型的转换模型向关系模型的转换o一个实体转换为一个关系模式。实体的属性就是关系的属性,实体的码一个实体转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。就是关系的码。o对于实体间的联系有以下不同的情况:对于实体间的联系有以下不同的情况:n一个一个1:1联系可以转换为一个独立的关系模式。联系可以转换为一个独立的关系模式。与该联系相连的各与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码实体的码以及联系本身
29、的属性均转换为关系的属性,每个实体的码均是该关系模式的候选码,可任选一个候选码作为主码。均是该关系模式的候选码,可任选一个候选码作为主码。 n一个一个1:n联系可以转换为一个独立的关系模式。联系可以转换为一个独立的关系模式。与该联系相连的各与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。端实体的码。 n一个一个m:n联系转换为一个关系模式。联系转换为一个关系模式。与该联系相连的各实体的码与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码以及联系本身的属性均转换为关系
30、的属性,而关系的码为各实体码的组合。的组合。 n三个或三个以上实体间的一个多元联系可以转换为一个关系模式。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为此关与该多元联系相连的各实体的码以及联系本身的属性均转换为此关系的属性,而此关系的码为各实体码的组合。系的属性,而此关系的码为各实体码的组合。 o具有相同码的关系模式可以合并。具有相同码的关系模式可以合并。 1:1转换示例转换示例o部门表部门表(部门号部门号,部门名,部门名,经理号经理号)o经理表经理表(经理号经理号,经理名,电话),经理名,电话)或者:或者:o部门表部门表(部门
31、号部门号,部门名),部门名)o经理表经理表(经理号经理号,部门号部门号,经理名,经理名,电话)电话)11经理经理部门部门管理管理部门名部门名部门号部门号经理号经理号经理名经理名电话电话1:n转换示例转换示例o部门表部门表(部门号部门号,部门名),部门名)o职工表职工表(职工号职工号,部门号部门号,职工名,职工名,工资)工资) n1职工职工部门部门工作工作部门名部门名部门号部门号职工号职工号职工名职工名工资工资m:n转换示例转换示例o教师表教师表(教师号教师号,教师名,职称),教师名,职称)o课程表课程表(课程号课程号,课程名,学分),课程名,学分)o授课表授课表(教师号,课程号教师号,课程号,
32、授课时数),授课时数)nm课程课程教师教师授课授课教师名教师名教师号教师号课程号课程号课程名课程名学分学分职称职称授课时数授课时数ER模型到关系模型的转换实例模型到关系模型的转换实例零件零件零件号零件号零件名零件名规规格格数量数量组成组成MN仓库仓库商品商品商店商店仓库号仓库号仓库名仓库名地址地址数量数量商店号商店号商品名商品名商品号商品号商店名商店名日期日期进货进货MNP零件(零件(零件号零件号,零件名,规格),零件名,规格)组成(组成(零件号零件号,子零件号子零件号,数量),数量) 仓库(仓库(仓库号仓库号,仓库名,地址),仓库名,地址)商店(商店(商店号商店号,商店名),商店名)商品(商
33、品(商品号商品号,商品名),商品名)进货(进货(商店号商店号,商品名商品名,仓库号仓库号,日期,数量),日期,数量) o数据模型的优化数据模型的优化n关系数据模型的优化通常以规范化理论为指导,关系数据模型的优化通常以规范化理论为指导,并考虑系统的性能。具体方法为:并考虑系统的性能。具体方法为:o确定各属性间的数据依赖。确定各属性间的数据依赖。o消除冗余的联系。消除冗余的联系。o确定最合适的范式。确定最合适的范式。o确定是否要对某些模式进行分解或合并确定是否要对某些模式进行分解或合并 。o对关系模式进行必要的分解,以提高数据的操对关系模式进行必要的分解,以提高数据的操作效率和存储空间的利用率。作
34、效率和存储空间的利用率。 8.3.2 逻辑结构设计8.3.2 逻辑结构设计o水平分解水平分解n以时间、空间、类型等范畴属性取值为条件,满足相同条件以时间、空间、类型等范畴属性取值为条件,满足相同条件的数据行为一个子表。的数据行为一个子表。n分解的依据一般以范畴属性取值范围划分数据行。这样在操分解的依据一般以范畴属性取值范围划分数据行。这样在操作同表数据时,时空范围相对集中,便于管理。作同表数据时,时空范围相对集中,便于管理。n例如:学校学生情况的例如:学校学生情况的“学生情况表学生情况表”,我们可以将其分解,我们可以将其分解为为“历史学生情况表历史学生情况表”和和“在册学生情况表在册学生情况表
35、”。 K# A1 Am K# A1 Am K# A1 Am8.3.2 逻辑结构设计o垂直分解垂直分解n以非主属性所描述的应用对象生命历程的先后为条件,对应相以非主属性所描述的应用对象生命历程的先后为条件,对应相同历程的属性为一个子表。同历程的属性为一个子表。n分解的依据是将非主属性按其数据生成的时间段划分,描述相分解的依据是将非主属性按其数据生成的时间段划分,描述相同时间段的属性划分在一个组中。同时间段的属性划分在一个组中。n使操作同表数据时时空范围相对集中,便于管理。使操作同表数据时时空范围相对集中,便于管理。n例如,可以将例如,可以将“学生情况表学生情况表”拆为拆为“学生基本信息表学生基本
36、信息表”、“学学生家庭情况表生家庭情况表” 。 K# A11 A1m A21 A2nK# A11 A1m K# A21 A2n o设计外模式设计外模式n将概念模型转换为逻辑数据模型之后,还应该根据局部应用需将概念模型转换为逻辑数据模型之后,还应该根据局部应用需求,并结合具体的数据库管理系统的特点,设计用户的外模式。求,并结合具体的数据库管理系统的特点,设计用户的外模式。n外模式概念对应关系数据库的视图概念,设计外模式是为了更外模式概念对应关系数据库的视图概念,设计外模式是为了更好地满足局部用户的需求。好地满足局部用户的需求。n定义数据库的外模式主要是从系统的时间效率、空间效率、易定义数据库的外
37、模式主要是从系统的时间效率、空间效率、易维护等角度出发。维护等角度出发。o定义外模式考虑事项定义外模式考虑事项n使用更符合用户习惯的别名。使用更符合用户习惯的别名。 n对不同级别的用户定义不同的视图,以保证数据的安全。对不同级别的用户定义不同的视图,以保证数据的安全。n简化用户对系统的使用。简化用户对系统的使用。8.3.2 逻辑结构设计8.3.3 物理结构设计 o对已确定的逻辑数据结构,利用对已确定的逻辑数据结构,利用DBMS提供的方法、技提供的方法、技术,以较优的存储结构、数据存取路径、合理的数据存术,以较优的存储结构、数据存取路径、合理的数据存储位置以及存储分配,设计出一个高效的、可实现的
38、物储位置以及存储分配,设计出一个高效的、可实现的物理数据库结构。理数据库结构。 o数据库的物理设计通常分为两步:数据库的物理设计通常分为两步:n确定数据库的物理结构;确定数据库的物理结构;n对物理结构进行时间和空间效率的评价。对物理结构进行时间和空间效率的评价。1.物理结构设计的内容和方法物理结构设计的内容和方法o物理数据库设计的好,可以使各种事务的响应物理数据库设计的好,可以使各种事务的响应时间小、存储空间利用率高、事务吞吐量大。时间小、存储空间利用率高、事务吞吐量大。o在设计数据库时首先要对经常用到的在设计数据库时首先要对经常用到的查询查询和对和对数据进行数据进行更新更新的事务进行详细地分
39、析,获得物的事务进行详细地分析,获得物理结构设计所需的各种参数。理结构设计所需的各种参数。o要充分了解所使用的要充分了解所使用的DBMS的内部特征,特别的内部特征,特别是系统提供的是系统提供的存取方法存取方法和和存储结构存储结构。 1.物理结构设计的内容和方法物理结构设计的内容和方法 o对于数据查询,需要得到如下信息:对于数据查询,需要得到如下信息:n查询所涉及的关系;查询所涉及的关系;n查询条件所涉及的属性;查询条件所涉及的属性;n连接条件所涉及的属性;连接条件所涉及的属性;n查询列表中涉及的属性。查询列表中涉及的属性。o对于更新数据的事务,需要得到如下信息:对于更新数据的事务,需要得到如下
40、信息:n更新所涉及的关系;更新所涉及的关系;n每个关系上的更新条件所涉及的属性;每个关系上的更新条件所涉及的属性;n更新操作所涉及的属性。更新操作所涉及的属性。 1.物理结构设计的内容和方法物理结构设计的内容和方法o确定存取方法确定存取方法n存取方法是快速存取数据库中的数据的技术,数据库管理系存取方法是快速存取数据库中的数据的技术,数据库管理系统一般都提供多种存取方法。具体采取哪种存取方法由系统统一般都提供多种存取方法。具体采取哪种存取方法由系统根据数据的存储方式来决定,一般用户不能干预。根据数据的存储方式来决定,一般用户不能干预。 n一般用户可以通过建立索引的方法来加快数据的查询效率。一般用
41、户可以通过建立索引的方法来加快数据的查询效率。 n建立索引的一般原则为:建立索引的一般原则为:o在经常作为查询条件的属性上建立索引。在经常作为查询条件的属性上建立索引。o在经常作为连接条件的属性上建立索引。在经常作为连接条件的属性上建立索引。o在经常作为分组依据列的属性上建立索引。在经常作为分组依据列的属性上建立索引。o对经常进行连接操作的表可以建立索引。对经常进行连接操作的表可以建立索引。n一个表可以建立多个索引,但只能建立一个聚簇索引。一个表可以建立多个索引,但只能建立一个聚簇索引。 8.3.3 物理结构设计o确定存储结构确定存储结构n物理结构设计中一个重要的考虑就是确定数据记录的存储方式
42、。物理结构设计中一个重要的考虑就是确定数据记录的存储方式。 n一般的存储方式有:一般的存储方式有:o顺序存储。顺序存储。这种存储方式的平均查找次数为表中记录数的这种存储方式的平均查找次数为表中记录数的1/21/2。 o散列存储。散列存储。这种存储方式的平均查找次数由散列算法决定。这种存储方式的平均查找次数由散列算法决定。 o聚簇存储。聚簇存储。聚簇存储是指将不同类型的记录分配到相同的聚簇存储是指将不同类型的记录分配到相同的物理区域中,充分利用物理顺序性的优点,提高数据访问物理区域中,充分利用物理顺序性的优点,提高数据访问速度。即使经常在一起使用的记录聚簇在一起,以减少物速度。即使经常在一起使用
43、的记录聚簇在一起,以减少物理理I/OI/O次数。次数。 n一般情况下系统都会为数据选择一种最合适的存储方式。一般情况下系统都会为数据选择一种最合适的存储方式。 n用户可以通过建立索引的方法来改变数据的存储方式,其他情用户可以通过建立索引的方法来改变数据的存储方式,其他情况下,数据是采用顺序存储还是散列存储。况下,数据是采用顺序存储还是散列存储。2. 2. 物理结构设计的评价物理结构设计的评价o评价物理结构设计的方法完全依赖于具体的评价物理结构设计的方法完全依赖于具体的DBMS,主,主要考虑的是操作开销,即为使用户获得及时、准确的数据要考虑的是操作开销,即为使用户获得及时、准确的数据所需的开销和
44、计算机的资源的开销。具体可分为如下几类:所需的开销和计算机的资源的开销。具体可分为如下几类:n查询和响应时间查询和响应时间n更新事务的开销更新事务的开销n生成报告的开销生成报告的开销n主存储空间的开销主存储空间的开销n辅助存储空间的开销辅助存储空间的开销 8.4 数据库行为设计 o数据库行为设计一般分为如下几个步骤:数据库行为设计一般分为如下几个步骤:n功能需求分析;功能需求分析;n功能设计;功能设计;n事务设计;事务设计;n应用程序实现。应用程序实现。 8.4.1 功能需求分析功能需求分析o在进行需求分析时,主要进行两项工作,一项是在进行需求分析时,主要进行两项工作,一项是“数据数据流流”的
45、调查分析,另一项是的调查分析,另一项是“事务处理事务处理”过程的调查分过程的调查分析。析。n数据流数据流的调查分析为数据库的信息结构提供了最原始的调查分析为数据库的信息结构提供了最原始的依据,的依据,n事务处理事务处理的调查分析是行为设计的基础。的调查分析是行为设计的基础。o功能需求分析是在需求分析之后功能设计之前的一个步功能需求分析是在需求分析之后功能设计之前的一个步骤。骤。 8.4.1 功能需求分析功能需求分析o对行为特性要进行的分析对行为特性要进行的分析n标识所有的查询、报表、事务及动态特性,指出标识所有的查询、报表、事务及动态特性,指出对数据库所要进行的各种处理;对数据库所要进行的各种
46、处理;n指出对每个实体所进行的操作(增、删、改、查)指出对每个实体所进行的操作(增、删、改、查);n给出每个操作的语义,包括结构约束和操作约束;给出每个操作的语义,包括结构约束和操作约束; n给出每个操作(针对某一对象)的频率;给出每个操作(针对某一对象)的频率;n给出每个操作(针对某一应用)的响应时间;给出每个操作(针对某一应用)的响应时间;n给出该系统总的目标。给出该系统总的目标。8.4.2 功能设计 目标目标功能功能2功能功能n功能功能1功能功能22功能功能23功能功能21系统目标的实现是通过系统的各功能模块来达到的。由于系统目标的实现是通过系统的各功能模块来达到的。由于每个系统功能又可
47、以划分为若干个更具体的功能模块,因每个系统功能又可以划分为若干个更具体的功能模块,因此,可以从目标开始,一层一层分解下去,直到每个子功此,可以从目标开始,一层一层分解下去,直到每个子功能模块只执行一个具体的任务。能模块只执行一个具体的任务。 8.4.2 功能设计学籍管理学籍管理录取分班录取分班入学报到入学报到录入录入修改修改查询查询修课管理修课管理例:例:“学籍管理学籍管理”的功能结构图的功能结构图8.4.3 事务设计 o事务处理是计算机模拟人处理事务的过程,包括:事务处理是计算机模拟人处理事务的过程,包括:n输入设计输入设计n输出设计输出设计n功能设计功能设计n等等等等 1.输入设计输入设计
48、 o在进行输入设计时应作如下几方面工作:在进行输入设计时应作如下几方面工作: n原始单据的设计格式。原始单据的设计格式。对于原有的单据,表格要根对于原有的单据,表格要根据新系统的要求重新设计,其设计的原则是:简单据新系统的要求重新设计,其设计的原则是:简单明了,便于填写,尽量标准化,便于归档,简化输明了,便于填写,尽量标准化,便于归档,简化输入工作。入工作。 n制成输入一览表。制成输入一览表。将全部功能所用的数据整理成表。将全部功能所用的数据整理成表。 n制作输入数据描述文档。制作输入数据描述文档。包括数据的输入频率、数包括数据的输入频率、数据的有效范围和出错校验。据的有效范围和出错校验。 2
49、.输出设计输出设计o在输出设计时要考虑如下因素:在输出设计时要考虑如下因素: n用途用途。区分输出结果是给客户的还是用于内部或。区分输出结果是给客户的还是用于内部或报送上级领导的。报送上级领导的。n输出设备的选择输出设备的选择。是仅仅显示出来,还是要打印。是仅仅显示出来,还是要打印出来或需要永久保存。出来或需要永久保存。n输出量输出量。n输出格式输出格式。 8.5 数据库的实施和维护 o完成数据库的结构设计和行为设计之后,完成数据库的结构设计和行为设计之后,下一步就需要利用下一步就需要利用DBMS提供的功能将提供的功能将数据库逻辑设计和物理设计的结果描述数据库逻辑设计和物理设计的结果描述出来,
50、然后再经过编写实现用户需求的出来,然后再经过编写实现用户需求的应用程序,就可以将整个数据库系统投应用程序,就可以将整个数据库系统投入运行了。这就是数据库的实施阶段。入运行了。这就是数据库的实施阶段。 8.5.18.5.1数据库数据的加载和试运行数据库数据的加载和试运行o数据加载数据加载n在数据库系统中,一般数据量都很大,各应在数据库系统中,一般数据量都很大,各应用环境差异也很大用环境差异也很大 。n为了保证数据库中的数据正确、无误,必须为了保证数据库中的数据正确、无误,必须十分重视数据的校验工作。十分重视数据的校验工作。n在将数据输入系统进行数据转换过程中,应在将数据输入系统进行数据转换过程中
51、,应该进行多次的校验。该进行多次的校验。 n对于重要的数据的校验更应该反复多次,确对于重要的数据的校验更应该反复多次,确认无误后再进入到数据库中。认无误后再进入到数据库中。 8.5.18.5.1数据库数据的加载和试运行数据库数据的加载和试运行o数据库的试运行数据库的试运行n在有一部分数据加载到数据库之后,就可以开始在有一部分数据加载到数据库之后,就可以开始对数据库系统进行联合调试了,这个过程又称为对数据库系统进行联合调试了,这个过程又称为数据库试运行数据库试运行。n这一阶段要实际运行数据库应用程序,执行对数这一阶段要实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足据库
52、的各种操作,测试应用程序的功能是否满足设计要求。如果不满足,则要对应用程序进行修设计要求。如果不满足,则要对应用程序进行修改、调整,直到达到设计要求为止。改、调整,直到达到设计要求为止。n在数据库试运行阶段,还要对系统的性能指标进在数据库试运行阶段,还要对系统的性能指标进行测试,分析其是否达到设计目标。行测试,分析其是否达到设计目标。 8.5.2 数据库的运行和维护 o数据库投入运行标志着开发工作的基本完成和维数据库投入运行标志着开发工作的基本完成和维护工作的开始,数据库只要存在一天,就需要不护工作的开始,数据库只要存在一天,就需要不断地对它进行评价、调整和维护。断地对它进行评价、调整和维护。
53、o在数据库运行阶段,对数据库的经常性的维护工在数据库运行阶段,对数据库的经常性的维护工作主要由作主要由数据库系统管理员数据库系统管理员( (DBA)DBA)完成,其主要完成,其主要工作包括:工作包括:n数据库的备份和恢复数据库的备份和恢复n数据库的安全性和完整性控制数据库的安全性和完整性控制n监视、分析、调整数据库性能监视、分析、调整数据库性能 n数据库的重组数据库的重组 本章小结本章小结o本章介绍了数据库设计的全部过程本章介绍了数据库设计的全部过程o数据库的设计包括需求分析、结构设计。数据库的设计包括需求分析、结构设计。o结结构构设设计计又又分分为为概概念念结结构构设设计计、逻逻辑辑结结构构
54、设设计计、物物理理结结构设计。构设计。n概念结构设计是用概念模型来描述用户的业务需求;概念结构设计是用概念模型来描述用户的业务需求;n逻辑设计是将概念设计的结果转换数据的组织模型;逻辑设计是将概念设计的结果转换数据的组织模型;n物理结构设计是设计数据的存储方式和存储结构。物理结构设计是设计数据的存储方式和存储结构。o数数据据库库的的行行为为设设计计是是对对系系统统的的功功能能需需求求的的设设计计,一一般般设设计计思思想想是是将将大大的的功功能能模模块块划划分分为为功功能能相相对对专专一一的的小小的的功功能模块,这样便于用户的使用和操作。能模块,这样便于用户的使用和操作。o数据库设计完成后,是数据库的实施和维护。数据库设计完成后,是数据库的实施和维护。