《第六章数据库设计》由会员分享,可在线阅读,更多相关《第六章数据库设计(171页珍藏版)》请在金锄头文库上搜索。
1、安财信工学院计算机系第六章 数据库设计 2006年4月12日1安财信工学院计算机系本章主要内容本章主要内容 n6.1 数据库设计概述数据库设计概述n6.2 需求分析需求分析n6.3 概念结构设计概念结构设计n6.4 逻辑结构设计逻辑结构设计n6.5 数据库的物理设计数据库的物理设计n6.6 数据库的实施和维护数据库的实施和维护2006年4月12日2安财信工学院计算机系6-1数据库设计概述数据库设计概述n什么是数据库设计?什么是数据库设计?n数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能
2、够有效地存储数据,满足各种用户的应用需求据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)(信息要求和处理要求)n在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数据库设计是信息系统开发和建设的重要组成部分据库设计是信息系统开发和建设的重要组成部分n从事数据库设计的专业人员应该具备哪些知识?从事数据库设计的专业人员应该具备哪些知识?n数据库的基本知识和数据库设计技术数据库的基本知识和数据库设计技术n计算机科学的基础知识和程序设计的方法和技巧计算机科学的基础知识和程序设计的方法和
3、技巧n软件工程的原理和方法软件工程的原理和方法n应用领域的知识应用领域的知识2006年4月12日3安财信工学院计算机系n数据库设计有何特点?数据库设计有何特点?n数据库建设是硬件、软件和干件的结合数据库建设是硬件、软件和干件的结合n三分技术,七分管理,十二分基础数据三分技术,七分管理,十二分基础数据n技术与管理的界面称之为技术与管理的界面称之为“干件干件”n 数据库设计应该与应用系统设计相结合数据库设计应该与应用系统设计相结合n结构(数据)设计:设计数据库框架或数据库结构结构(数据)设计:设计数据库框架或数据库结构n行为(处理)设计:设计应用程序、事务处理等行为(处理)设计:设计应用程序、事务
4、处理等n结构和行为分离的设计结构和行为分离的设计n传统的软件工程忽视对应用中数据语义的分析和抽传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策象,只要有可能就尽量推迟数据结构设计的决策n早期的数据库设计致力于数据模型和建模方法研究,早期的数据库设计致力于数据模型和建模方法研究,忽视了对行为的设计忽视了对行为的设计现实世界现实世界概念模型设计概念模型设计子模式设计子模式设计物理数据库设计物理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明功能说明事务设计事务设计程序说明程序说明应用程序设计应用
5、程序设计程序编码调试程序编码调试2006年4月12日4安财信工学院计算机系n数据库设计有哪些方法?数据库设计有哪些方法?n手工试凑法手工试凑法n设计质量与设计人员的经验和水平有直接关系设计质量与设计人员的经验和水平有直接关系n缺乏科学理论和工程方法的支持,工程的质量难以保证缺乏科学理论和工程方法的支持,工程的质量难以保证n数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价n规范设计法规范设计法n手工设计方法手工设计方法n基本思想:基本思想:过程迭代和逐步求精过程迭代和逐步求精n典型方法典型方法n新奥尔良(新奥尔良(N
6、ew Orleans)方法)方法n 将数据库设计分为四个阶段nS.B.Yao方法方法n将数据库设计分为五个步骤nI.R.Palmer方法方法n把数据库设计当成一步接一步的过程n计算机辅助设计计算机辅助设计nORACLE Designer 2000nSYBASE PowerDesigner2006年4月12日5安财信工学院计算机系数据库设计有哪些基本步骤?数据库设计有哪些基本步骤?n准备工作:准备工作: 选定参加设计的人员选定参加设计的人员1. 数据库分析设计人员数据库分析设计人员n数据库设计的核心人员数据库设计的核心人员n自始至终参与数据库设计自始至终参与数据库设计n其水平决定了数据库系统的质
7、量其水平决定了数据库系统的质量 2.用户用户n在数据库设计中也是举足轻重的在数据库设计中也是举足轻重的n主要参加需求分析和数据库的运行维护主要参加需求分析和数据库的运行维护n用户积极参与带来的好处用户积极参与带来的好处n加速数据库设计加速数据库设计n提高数据库设计的质量提高数据库设计的质量3. 程序员程序员n在系统实施阶段参与进在系统实施阶段参与进来,负责编制程序来,负责编制程序4. 操作员操作员n在系统实施阶段参与进在系统实施阶段参与进来,准备软硬件环境来,准备软硬件环境2006年4月12日6安财信工学院计算机系设计概念结构需求收集和分析设计逻辑结构数据模型优化设计物理结构评价设计,性能预测
8、物理实现试验性运行使用、维护数据库应用需求(数据、处理)转换规则DBMS功能优化方法应用要求DBMS详细特征需求分析阶段概念设计阶段逻辑设计阶段物理设计阶段数据库实施阶段数据库运行、维护阶段数据库设计步骤数据库设计步骤需求分析阶段需求分析阶段1.准确了解与分析用户需求(包括数据与处理)2.是整个设计过程的基础,是最困难、最耗费时间的一步概念结构设计阶段概念结构设计阶段1.是整个数据库设计的关键2.通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型逻辑结构设计阶段逻辑结构设计阶段1.将概念结构转换为某个DBMS所支持的数据模型2.对其进行优化数据库物理设计阶段数据库物理设计
9、阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)数据库实施阶段数据库实施阶段运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果1.建立数据库2.编制与调试应用程序3.组织数据入库4.并进行试运行数据库运行和维护阶段数据库运行和维护阶段1.数据库应用系统经过试运行后即可投入正式运行。2.在数据库系统运行过程中必须不断地对其进行评价、调整与修改。2006年4月12日7安财信工学院计算机系n软件工程软件工程 人们认为,应该用科学知识、工程方面的纪律指导软件开发人们认为,应该用科学知识、工程方面的纪律指导软件开发的过程,以提高软件质量和开发效率,降低开
10、发成本的过程,以提高软件质量和开发效率,降低开发成本 。n软件生存期软件生存期从软件的规划、研制、实现、投入运行后的维护,直到它被从软件的规划、研制、实现、投入运行后的维护,直到它被新的软件所取代而停止使用的整个期间新的软件所取代而停止使用的整个期间。n数据库工程数据库工程 n数据库系统生存期数据库系统生存期数据库应用系统从开始规划、设计、实现、维护到最后被新数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间的系统取代而停止使用的整个期间。 n数据库设计的输入输出数据库设计的输入输出隶属关系与其它软件设计步骤进行对比与其它软件设计步骤进行对比2006年4月12日
11、8安财信工学院计算机系规划需求分析系统设计程序编制 调试 运行维护运行和维护实现物理设计逻辑设计概念设计需求分析规划软件生存期数据库生存期2006年4月12日9安财信工学院计算机系处理需求DBMSDBMS特征特征总体信息需求第5步物理设计第3步概念设计第4步逻辑设计第1步规划第2步需求描述和分析硬件和OS特征物理数据库结构需求说明书 信息结构(独立于硬件、软件)逻辑数据库结构(DBMS能处理的)应用程序说明书数据库设计的输入输出n1、规划阶段的三个步骤:、规划阶段的三个步骤:n系统调查系统调查 对企业组织作全面的调查,画出组织层次图,以了解对企业组织作全面的调查,画出组织层次图,以了解企业的组
12、织结构企业的组织结构n可行性分析可行性分析 从技术、经济、效益、法律等族方面对建立数据库的从技术、经济、效益、法律等族方面对建立数据库的可行性进行分析;写出可行性分析报告;组织专家进可行性进行分析;写出可行性分析报告;组织专家进行讨论其可行性行讨论其可行性n确定数据库系统的总目标和制定项目开发计划确定数据库系统的总目标和制定项目开发计划n2、需求分析工作、需求分析工作n分析用户活动产生,产生分析用户活动产生,产生业务流程图业务流程图n确定系统范围,产生确定系统范围,产生系统范围图系统范围图n分析用户活动涉及的数据,产生分析用户活动涉及的数据,产生数据流图数据流图n分析系统数据,产生分析系统数据
13、,产生数据字典数据字典n还有全系统中的数据项和数据存储的描述还有全系统中的数据项和数据存储的描述n3、概念设计、概念设计n为什么需要概念设计?为什么需要概念设计?n概念设计的主要步骤:概念设计的主要步骤:n进行数据抽象,设计局部概念模式进行数据抽象,设计局部概念模式n将局部概念模式综合成全局概念模式将局部概念模式综合成全局概念模式n评审评审2006年4月12日10安财信工学院计算机系图图6.4 6.4 数据库的各级模式数据库的各级模式应用应用1应用应用3应用应用2概念模式概念模式概念要求概念要求概念要求概念要求概念要求概念要求应用应用1 1应用应用3 3应用应用2 2逻辑模式逻辑模式内模式内模
14、式外模式外模式3外模式外模式2外模式外模式1综合综合转换转换映像映像映像映像2006年4月12日11安财信工学院计算机系n4、逻辑设计步骤、逻辑设计步骤导出初始DBMS模式说明概念模式子模式设计应用程序设计草图模式评价处 理 结束模式需要修正模式修正进入物理设计阶段返回到前面阶段是是否否2006年4月12日12安财信工学院计算机系n5、 物理设计物理设计n什么是数据库的物理结构?什么是数据库的物理结构?n物理设计的步骤物理设计的步骤n存储记录结构设计存储记录结构设计 n确定数据存放位置确定数据存放位置 n存取方法的设计存取方法的设计 n完整性和安全性考虑完整性和安全性考虑 n程序设计程序设计
15、2006年4月12日13安财信工学院计算机系n6、 数据库的实现数据库的实现n实现数据库应做的主要工作实现数据库应做的主要工作n用用DDLDDL定义数据库结构;定义数据库结构;n组织数据入库;n对数据量不大的小型系统(人工)对数据量不大的小型系统(人工)主要工作:主要工作:n筛选数据;转换数据格式;输入数据;校验数据。n大中型系统(自动)大中型系统(自动)主要工作:主要工作:n筛选数据;输入数据;校验数据;转换数据;综合数据。n编制与调试应用程序;编制与调试应用程序;n数据库试运行。数据库试运行。n功能测试功能测试n性能测试(时空代价)性能测试(时空代价) 2006年4月12日14安财信工学院
16、计算机系n7、数据库的运行与维护工作、数据库的运行与维护工作n 数据库的转储和恢复数据库的转储和恢复 n 数据库安全性、完整性控制数据库安全性、完整性控制 n 数据库性能的监督、分析和改进数据库性能的监督、分析和改进n 数据数据库的重的重组织和重构造和重构造 2006年4月12日15安财信工学院计算机系设计特点设计特点n在设计过程中把数据库的设计和对数据在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来库中数据处理的设计紧密结合起来n将这两个方面的需求分析、抽象、设计、将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,实现在各个阶段同时进行,相互参照,相互补充
17、,以完善两方面的设计相互补充,以完善两方面的设计2006年4月12日16安财信工学院计算机系IPO表输入:输出:处理:CreatLoadMain()ifthenend分区1分区2概念结概念结构设计构设计逻辑逻辑结构结构设计设计物理物理设计设计设设计计阶阶段段设设计计描描述述数数据据处处理理需需 求求分分析析数据字典、全系统中数据项、数据字典、全系统中数据项、数据流、数据存储的描述数据流、数据存储的描述数数据据流流图图和和判判定定表表(判判定定树树)、数数据字典中处理过程的描述据字典中处理过程的描述概念模型(概念模型(E-R图)图)数据字典数据字典系统说明书包括:系统说明书包括:新系统要求、新系
18、统要求、方案和概图方案和概图反映新系统信息反映新系统信息流的数据流图流的数据流图某种数据模型某种数据模型关系关系非关系非关系系统结构图系统结构图(模块结构)(模块结构)存储安排存储安排方法选择方法选择存取路径建立存取路径建立模块设计模块设计IPO表表实施实施阶段阶段编写模式编写模式装入数据装入数据数据库试运行数据库试运行程序编码、程序编码、编译联结、编译联结、测试测试运运 行行维维护护性能监测、转储性能监测、转储/恢复恢复数据库重组和重构数据库重组和重构新新旧旧系系统统转转换换、运运行行、维维护护(修修正正性性、适应性、改善性维护)适应性、改善性维护)2006年4月12日17安财信工学院计算机
19、系6-2需求分析需求分析n需求分析的任务是什么?需求分析的任务是什么?n需求分析的方法有哪些?需求分析的方法有哪些?n调查用户需求的步骤有哪些?调查用户需求的步骤有哪些?n常用的调查的方法有哪些?常用的调查的方法有哪些?n什么是数据字典?什么是数据字典?2006年4月12日18安财信工学院计算机系n需求分析就是分析用户的需要与要求需求分析就是分析用户的需要与要求n需求分析是设计数据库的起点需求分析是设计数据库的起点n需求分析的结果是否准确地反映了用户的实需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理
20、和实用并影响到设计结果是否合理和实用2006年4月12日19安财信工学院计算机系需求分析的任务需求分析的任务n 通过详细调查现实世界要处理的对象通过详细调查现实世界要处理的对象(组织、部门、企业等),充分(组织、部门、企业等),充分了解原了解原系统系统(手工系统或计算机系统)(手工系统或计算机系统)工作概工作概况,明确用户的各种需求况,明确用户的各种需求n 在此基础上在此基础上确定新系统的功能确定新系统的功能。新系统。新系统必须充分考虑今后可能的扩充和改变,必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库不能仅仅按当前应用需求来设计数据库2006年4月12日20安财信工学院
21、计算机系需求分析的重点需求分析的重点n需求分析的重点需求分析的重点n调查、收集与分析用户在数据管理中的调查、收集与分析用户在数据管理中的信息要求、处理要求、安全信息要求、处理要求、安全性与完整性要求性与完整性要求。n 信息要求信息要求n用户需要从数据库中获得信息的内容与性质用户需要从数据库中获得信息的内容与性质n由用户的信息要求可以导出数据要求,即在数据库中需要存由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据储哪些数据n处理要求处理要求n对处理功能的要求对处理功能的要求n对处理的响应时间的要求对处理的响应时间的要求n对处理方式的要求对处理方式的要求(批处理批处理 / 联机处理联
22、机处理)n新系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整新系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整性要求。性要求。2006年4月12日21安财信工学院计算机系需求分析的难点需求分析的难点n确定用户最终需求的难点确定用户最终需求的难点n用户用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。的需求往往不断地变化。n设计人员设计人员缺少用户的专业知识,不易理解用户
23、的真正需求,甚至误缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。解用户的需求。n新新的硬件、软件的硬件、软件技术的出现技术的出现也会使用户需求发生变化。也会使用户需求发生变化。n解决方法解决方法n设计人员必须采用有效的方法,与用户不断设计人员必须采用有效的方法,与用户不断深入深入地进行地进行交流交流,才能,才能逐步得以确定用户的实际需求逐步得以确定用户的实际需求2006年4月12日22安财信工学院计算机系需求分析的方法需求分析的方法n调查清楚用户的实际需求并进行初步分析调查清楚用户的实际需求并进行初步分析n 与用户达成共识与用户达成共识n 进一步分析与表达这些需求进一步分析与
24、表达这些需求2006年4月12日23安财信工学院计算机系调查与初步分析用户需求的步骤调查与初步分析用户需求的步骤 调查组织机构情况调查组织机构情况n 组织部门的组成情况组织部门的组成情况n 各部门的职责等各部门的职责等调查各部门的业务活动情况。调查重点之一。调查各部门的业务活动情况。调查重点之一。n 各个部门输入和使用什么数据各个部门输入和使用什么数据n 如何加工处理这些数据如何加工处理这些数据n 输出什么信息输出什么信息n 输出到什么部门输出到什么部门n 输出结果的格式是什么输出结果的格式是什么 在熟悉业务活动的基础上,协助用户明确对新系统的各种要求。调查重点之二。在熟悉业务活动的基础上,协
25、助用户明确对新系统的各种要求。调查重点之二。n 信息要求信息要求n 处理要求处理要求n 完全性与完整性要求完全性与完整性要求 对前面调查的结果进行初步分析对前面调查的结果进行初步分析n确定新系统的边界确定新系统的边界n确定哪些功能由计算机完成或将来准备让计算机完成确定哪些功能由计算机完成或将来准备让计算机完成n确定哪些活动由人工完成确定哪些活动由人工完成 由计算机完成的功能就是新系统应该实现的功能。由计算机完成的功能就是新系统应该实现的功能。2006年4月12日24安财信工学院计算机系有关常用调查方法有关常用调查方法n做需求调查时,往往需要同时采用多种方法做需求调查时,往往需要同时采用多种方法
26、n无论使用何种调查方法,都必须有用户的积极参与无论使用何种调查方法,都必须有用户的积极参与和配合和配合n设计人员应该和用户取得共同的语言,帮助不熟悉设计人员应该和用户取得共同的语言,帮助不熟悉计算机的用户建立数据库环境下的共同概念,并对计算机的用户建立数据库环境下的共同概念,并对设计工作的最后结果共同承担责任设计工作的最后结果共同承担责任2006年4月12日25安财信工学院计算机系常用调查方法有:常用调查方法有:n跟班作业跟班作业n通过亲身参加业务工作了解业务活动的情况通过亲身参加业务工作了解业务活动的情况n能比较准确地理解用户的需求,但比较耗时能比较准确地理解用户的需求,但比较耗时n开调查会
27、开调查会n通过与用户座谈来了解业务活动情况及用户需求通过与用户座谈来了解业务活动情况及用户需求n请专人介绍请专人介绍n询问询问n对某些调查中的问题,可以找专人询问对某些调查中的问题,可以找专人询问n设计调查表请用户填写设计调查表请用户填写n如果调查表设计合理,则很有效,且易于为用户接受如果调查表设计合理,则很有效,且易于为用户接受n查阅记录查阅记录n查阅与原系统有关的数据记录查阅与原系统有关的数据记录2006年4月12日26安财信工学院计算机系进一步分析和表达用户需求进一步分析和表达用户需求n分析和表达用户的需求分析和表达用户的需求的常用方法的常用方法n自顶向下的结构化分析方法(自顶向下的结构
28、化分析方法(Structured Analysis,简称简称SA方法)方法)nSA方法从最上层的系统组织机构入手,采用逐方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并用数据流图和数据层分解的方式分析系统,并用数据流图和数据字典描述系统。字典描述系统。2006年4月12日27安财信工学院计算机系1首先把任何一个系统都抽象为:首先把任何一个系统都抽象为:2分解处理功能和数据分解处理功能和数据(1)分解处理功能)分解处理功能n将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统的工作过程表达清
29、楚为止。的工作过程表达清楚为止。(2)分解数据)分解数据n在处理功能逐步分解的同时,其所用的数据也逐级分解,形成若干层次的数据流图在处理功能逐步分解的同时,其所用的数据也逐级分解,形成若干层次的数据流图n 数据流图表达了数据和处理过程的关系数据流图表达了数据和处理过程的关系(3)表达方法)表达方法n 处理过程:用判定表或判定树来描述处理过程:用判定表或判定树来描述n 数据:用数据字典来描述数据:用数据字典来描述 3将分析结果再次提交给用户,征得用户的认可将分析结果再次提交给用户,征得用户的认可数据流数据流数据流数据流数据数据存储存储信息要求信息要求数据数据来源来源处理处理数据数据输出输出处理要
30、求处理要求2006年4月12日28安财信工学院计算机系2006年4月12日29安财信工学院计算机系需求分析小结需求分析小结实例:假设我们要开发一个学校管理系统。实例:假设我们要开发一个学校管理系统。1经过可行性分析和初步需求调查,抽象出该系统最高层数经过可行性分析和初步需求调查,抽象出该系统最高层数据流图,该系统由教师管理子系统、学生管理子系统、后据流图,该系统由教师管理子系统、学生管理子系统、后勤管理子系统组成,每个子系统分别配备一个开发小组。勤管理子系统组成,每个子系统分别配备一个开发小组。2进一步细化各个子系统。进一步细化各个子系统。其中学生管理子系统开发小组通过进行进一步的需求调查,其
31、中学生管理子系统开发小组通过进行进一步的需求调查,明确了该子系统的主要功能是进行学籍管理和课程管理,明确了该子系统的主要功能是进行学籍管理和课程管理,包括学生报到、入学、毕业的管理,学生上课情况的管理。包括学生报到、入学、毕业的管理,学生上课情况的管理。通过详细的信息流程分析和数据收集后,他们生成了该子通过详细的信息流程分析和数据收集后,他们生成了该子系统的数据流图。系统的数据流图。2006年4月12日30安财信工学院计算机系数据字典数据字典n什么是数据字典?什么是数据字典?n数据字典有何用途?数据字典有何用途?n数据字典中有哪些内容?数据字典中有哪些内容?2006年4月12日31安财信工学院
32、计算机系数据字典的用途数据字典的用途n数据字典是各类数据描述的集合数据字典是各类数据描述的集合n数据字典是进行详细的数据收集和数据分析所数据字典是进行详细的数据收集和数据分析所获得的主要结果获得的主要结果n数据字典在数据库设计中占有很重要的地位数据字典在数据库设计中占有很重要的地位2006年4月12日32安财信工学院计算机系数据字典的内容数据字典的内容n数据字典的内容数据字典的内容n数据项数据项n数据结构数据结构n数据流数据流n数据存储数据存储n处理过程处理过程n 数据项是数据的最小组成单位数据项是数据的最小组成单位n 若干个数据项可以组成一个数据结构若干个数据项可以组成一个数据结构n 数据字
33、典通过对数据项和数据结构的定义来描述数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。数据流、数据存储的逻辑内容。2006年4月12日33安财信工学院计算机系 数据项数据项n数据项是不可再分的数据单位数据项是不可再分的数据单位n 对数据项的描述对数据项的描述数据项描述数据项描述数据项名,数据项含义说明,数据项名,数据项含义说明, 别名,数据类型,长度,取值范围,别名,数据类型,长度,取值范围, 取值含义,与其他数据项的逻辑关系取值含义,与其他数据项的逻辑关系n取值范围、与其他数据项的逻辑关系定义了取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件数据的完整性约束条件
34、2006年4月12日34安财信工学院计算机系 数据结构数据结构n数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。n 一个数据结构可以由若干个数据项组成,也可一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。和数据结构混合组成。n 对数据结构的描述对数据结构的描述数据结构描述数据结构描述数据结构名,含义说明,数据结构名,含义说明, 组成组成:数据项或数据结构数据项或数据结构2006年4月12日35安财信工学院计算机系 数据流数据流n 数据流是数据结构在系统内传输的路径。数据流是数据结构在
35、系统内传输的路径。n 对数据流的描述对数据流的描述数据流描述数据流名,说明,数据流来源,数据流描述数据流名,说明,数据流来源, 数据流去向,组成数据流去向,组成:数据结构,数据结构, 平均流量,高峰期流量平均流量,高峰期流量n数据流来源是说明该数据流来自哪个过程数据流来源是说明该数据流来自哪个过程n数据流去向是说明该数据流将到哪个过程去数据流去向是说明该数据流将到哪个过程去n平均流量是指在单位时间(每天、每周、每月等)平均流量是指在单位时间(每天、每周、每月等)里的传输次数里的传输次数n高峰期流量则是指在高峰时期的数据流量高峰期流量则是指在高峰时期的数据流量2006年4月12日36安财信工学院
36、计算机系 数据存储数据存储n数据存储是数据结构停留或保存的地方,也是数据数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。流的来源和去向之一。n对数据存储的描述对数据存储的描述数据存储描述数据存储名,说明,编号,数据存储描述数据存储名,说明,编号, 流入的数据流流入的数据流 ,流出的数据流,流出的数据流 , 组成组成:数据结构,数据量,存取方式数据结构,数据量,存取方式n流入的数据流:指出数据来源流入的数据流:指出数据来源n流出的数据流:指出数据去向流出的数据流:指出数据去向n数据量:每次存取多少数据,每天(或每小时、每周等)数据量:每次存取多少数据,每天(或每小时、每周等)存取
37、几次等信息存取几次等信息n存取方法:批处理存取方法:批处理 / 联机处理;检索联机处理;检索 / 更新;顺序检索更新;顺序检索 / 随机检索随机检索2006年4月12日37安财信工学院计算机系 处理过程处理过程n处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息要描述处理过程的说明性信息n处理过程说明性信息的描述处理过程说明性信息的描述处理过程描述处理过程名,说明,处理过程描述处理过程名,说明, 输入输入:数据流,输出数据流,输出:数据流,数据流, 处理处理:简要说明简要说明n简要说明:主要
38、说明该处理过程的功能及处理要求简要说明:主要说明该处理过程的功能及处理要求n功能:该处理过程用来做什么功能:该处理过程用来做什么n处理要求:处理频度要求(如单位时间里处理多少事务,多少数据量);处理要求:处理频度要求(如单位时间里处理多少事务,多少数据量);响应时间要求等响应时间要求等n处理要求是后面物理设计的输入及性能评价的标准处理要求是后面物理设计的输入及性能评价的标准2006年4月12日38安财信工学院计算机系例:学生学籍管理子系统的数据字典。例:学生学籍管理子系统的数据字典。数据项数据项,以,以“学号学号”为例:为例: 数据项:学号数据项:学号 含义说明:唯一标识每个学生含义说明:唯一
39、标识每个学生别名:学生编号别名:学生编号 类型:字符型类型:字符型 长度:长度: 8 取值范围:取值范围:00000000至至99999999取值含义:前两位标别该学生所在年级,取值含义:前两位标别该学生所在年级, 后六位按顺序编号后六位按顺序编号与其他数据项的逻辑关系:与其他数据项的逻辑关系:2006年4月12日39安财信工学院计算机系数据结构数据结构 以以“学生学生”为例为例 “学生学生”是该系统中的一个核心数据结构:是该系统中的一个核心数据结构: 数据结构:学生数据结构:学生 含义说明:是学籍管理子系统的主体数据结含义说明:是学籍管理子系统的主体数据结 构,定义了一个学生的有关信息构,定
40、义了一个学生的有关信息 组成:学号,姓名,性别,年龄,组成:学号,姓名,性别,年龄, 所在系,年级所在系,年级2006年4月12日40安财信工学院计算机系数据流数据流“体检结果体检结果”可如下描述:可如下描述: 数据流:体检结果数据流:体检结果 说明:学生参加体格检查的最终结果说明:学生参加体格检查的最终结果 数据流来源:体检数据流来源:体检 数据流去向:批准数据流去向:批准 组成:组成:平均流量:平均流量:高峰期流量:高峰期流量:2006年4月12日41安财信工学院计算机系数据存储数据存储“学生登记表学生登记表”可如下描述:可如下描述:数据存储:学生登记表数据存储:学生登记表 说明:记录学生
41、的基本情况说明:记录学生的基本情况流入数据流:流入数据流: 流出数据流:流出数据流: 组成:组成: 数据量:每年数据量:每年3000张张 存取方式:随机存取存取方式:随机存取 2006年4月12日42安财信工学院计算机系处理过程处理过程“分配宿舍分配宿舍”可如下描述:可如下描述:处理过程:分配宿舍处理过程:分配宿舍说明:为所有新生分配学生宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍,输入:学生,宿舍,输出:宿舍安排输出:宿舍安排处理:在新生报到后,为所有新生分配学处理:在新生报到后,为所有新生分配学 生宿舍。要求同一间宿舍只能安排生宿舍。要求同一间宿舍只能安排 同一性别的学生,同一个学生只
42、能同一性别的学生,同一个学生只能 安排在一个宿舍中。每个学生的居安排在一个宿舍中。每个学生的居 住面积不小于住面积不小于3平方米。安排新生平方米。安排新生 宿舍其处理时间应不超过宿舍其处理时间应不超过15分钟。分钟。 2006年4月12日43安财信工学院计算机系6.3 概念结构设计概念结构设计6.3.1 概念结构设计概述概念结构设计概述6.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤6.3.3 数据抽象与局部视图设计数据抽象与局部视图设计6.3.4 视图的集成视图的集成2006年4月12日44安财信工学院计算机系6.3.1 概念结构设计概述概念结构设计概述n什么是概念结构设计什么是
43、概念结构设计n需求分析阶段描述的用户应需求分析阶段描述的用户应用需求是现实世界的具体需用需求是现实世界的具体需求求n将需求分析得到的用户需求将需求分析得到的用户需求抽象为信息结构即概念模型抽象为信息结构即概念模型的过程就是概念结构设计的过程就是概念结构设计n概念结构是各种数据模型的概念结构是各种数据模型的共同基础,它比数据模型更共同基础,它比数据模型更独立于机器、更抽象,从而独立于机器、更抽象,从而更加稳定。更加稳定。n概念结构设计是整个数据库概念结构设计是整个数据库设计的关键设计的关键现实世界现实世界机器世界机器世界信息世界信息世界需求分析需求分析概念结构设计概念结构设计2006年4月12日
44、45安财信工学院计算机系概念结构设计的特点概念结构设计的特点n(1)能真实、充分地反映现实世界,包括事物和事物)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。是对现之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。实世界的一个真实模型。n(2)易于理解,从而可以用它和不熟悉计算机的用户)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关交换意见,用户的积极参与是数据库的设计成功的关键。键。n(3)易于更改,当应用环境和应用要求改变时,容易)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。
45、对概念模型修改和扩充。n(4)易于向关系、网状、层次等各种数据模型转换。)易于向关系、网状、层次等各种数据模型转换。2006年4月12日46安财信工学院计算机系n什么是什么是ER模型模型nER模型的历史模型的历史nER模型的基本元素模型的基本元素n实体实体n联系联系n属性属性n例子例子实体联系属性ER模型图例老师学生教mn学号姓名专业班级职称性别姓名职号描述概念模型的工具描述概念模型的工具 E-R模模型型2006年4月12日47安财信工学院计算机系属性的分类属性的分类n基本属性和复合属性(可否再分)基本属性和复合属性(可否再分)n单值属性和多值属性(对一个实单值属性和多值属性(对一个实体对象是
46、否只能取一个值)体对象是否只能取一个值)n多值属性的处理多值属性的处理n将原来的多值属性用几个新的将原来的多值属性用几个新的单值属性来表示。单值属性来表示。 n将原来的多值属性用一个新的将原来的多值属性用一个新的实体类型表示实体类型表示 n导出属性导出属性n空值空值图5.4 地址属性的层次结构邮政编码省(市)名地址区 名街 道家庭地址门牌号码图5.5 多值属性的表示零件编码零件零件名供应商规格进货价格销售价格价格图5.8 导出属性的表示工号职工姓名基本工资奖金房租实发工资图5.6 多值属性的变换(1)零件编码零件零件名供应商规格进货价格经销价格代销价格批发价格零售价格图5.7 多值属性的变换(
47、2)零件编码零件零件名供应商规格进货价格销售性质价格售货价格存在销售价格1N零件编码零件编码2006年4月12日48安财信工学院计算机系联系的设计之一联系的设计之一n 联系集联系集 联联系系集集是是n n(n2n2)个个实实体体集集上上的的数数学学关关系系,这这些些实实体体集集不不必必互互异异。如如果果E1E1,E2,En为为n个个实实体体集集,那那么么联联系系集集R是是(e1(e1,e2e2,enen)|e1E1 |e1E1 ,e2E2,e2E2,enEnenEn的的一个子集,而(一个子集,而(e1e1,e2e2,enen)是一个联系是一个联系。 n联系的元数联系的元数 一个联系涉及到的实体
48、集个数一个联系涉及到的实体集个数 n联系的连通词联系的连通词 联系涉及到的实体集之间实体对应的方式联系涉及到的实体集之间实体对应的方式 n实体的基数实体的基数 有两个实体集有两个实体集E1E1和和E2E2,E1E1中每个实体与中每个实体与E2E2中有联系实体中有联系实体的数目的最小值的数目的最小值minmin和最大值和最大值maxmax,称为称为E1E1的基数,的基数,用(用(minmin,maxmax)形式表示形式表示 问题:运动员根据其得分来排定名次。在名次排列中,排在他前面只有一个人排在他后面也只有一个人 运动员编号姓名性别名次顺序11图5.9 一元联系中的1:1联系 职工之间的上下级联
49、系 职工工号姓名年龄性别领导1N图5.10 一元联系中的1:N联系 工厂的零件之间存在着组合关系,一种零件由许多种子零件组成,而一种零件也可以是其他零件的子零件 零件零件号零件名规格数量组成MN图5.11 一元联系中的M:N联系 某商业集团中,商店、仓库、商品之间的进货联系 图5.12 三元联系中的M:N:P联系 仓库商品商店仓库号仓库名地址数量商店号商品名商品号商店名日期进货MNP学校里规定每学期学生至少选修1门课程,最多选修6门课程;每门课程至多有50人选修,最少可以没人选修 图5.13 联系的连通词和实体的基数学生课程选课M(1,6)N(0,50)2006年4月12日49安财信工学院计算
50、机系6.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤n设计概念结构的四类方法设计概念结构的四类方法n自顶向下自顶向下n 首先定义全局概念结构的框架,然后逐步细化首先定义全局概念结构的框架,然后逐步细化n自底向上自底向上n 首先定义各局部应用的概念结构,然后将它们集成起来,首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构得到全局概念结构n逐步扩张逐步扩张n 首先定义最重要的核心概念结构,然后向外扩充,以滚雪首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构球的方式逐步生成其他概念结构,直至总体概念结构n混合策略混合策略n
51、 将自顶向下和自底向上相结合,用自顶向下策略设计一个将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。设计的各局部概念结构。2006年4月12日50安财信工学院计算机系概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 自顶向下策略自顶向下策略2006年4月12日51安财信工学院计算机系概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 自底向上策略自底向上策略 2006年4月12日52安财信工学院计算机系概念结构设计的方法与步骤(续)概念结构设计的方法
52、与步骤(续) 逐步扩张逐步扩张2006年4月12日53安财信工学院计算机系n概念结构设计的常用策略概念结构设计的常用策略n自顶向下地进行需求分析自顶向下地进行需求分析n自底向上地设计概念结构自底向上地设计概念结构n自底向上设计概念结构的步骤自底向上设计概念结构的步骤 n第第1步:抽象数据并设计局部视图步:抽象数据并设计局部视图n第第2步:集成局部视图,得到全局概念结构步:集成局部视图,得到全局概念结构2006年4月12日54安财信工学院计算机系6.3.3 数据抽象与局部视图设计数据抽象与局部视图设计n数据抽象数据抽象n局部视图设计局部视图设计2006年4月12日55安财信工学院计算机系一、数据
53、抽象一、数据抽象n概念结构是对现实世界的一种抽象概念结构是对现实世界的一种抽象n从实际的人、物、事和概念中抽取所关心的从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节共同特性,忽略非本质的细节n把这些特性用各种概念精确地加以描述把这些特性用各种概念精确地加以描述n这些概念组成了某种模型这些概念组成了某种模型2006年4月12日56安财信工学院计算机系三种常用抽象三种常用抽象1. 分类(分类(Classification)n定义某一类概念作为现实世界中一组对象的类型定义某一类概念作为现实世界中一组对象的类型n这些对象具有某些共同的特性和行为这些对象具有某些共同的特性和行为n它抽象
54、了对象它抽象了对象值和型值和型之间的之间的“is member of”的语义的语义n在在E-R模型中,实体型就是这种抽象模型中,实体型就是这种抽象例:例:P216图图6.102. 聚集(聚集(Aggregation)n定义某一类型的组成成分定义某一类型的组成成分n它抽象了对象内部类型和成分之间它抽象了对象内部类型和成分之间“is part of”的语义的语义n在在E-R模型中若干属性的聚集组成了实体型,就是这种抽象模型中若干属性的聚集组成了实体型,就是这种抽象例:例:P217图图6.11,图,图6.123. 概括(概括(Generalization)n定义类型之间的一种子集联系定义类型之间的一
55、种子集联系n它抽象了类型之间的它抽象了类型之间的“is subset of”的语义的语义n概括有一个很重要的性质:继承性。子类继承超类上定义的概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。所有抽象。 例:例:P217图图6.132006年4月12日57安财信工学院计算机系注:原注:原E-R模型不具有概括,本书对模型不具有概括,本书对E-R模型作了扩充,允许定义超模型作了扩充,允许定义超类实体型和子类实体型。类实体型和子类实体型。n 用双竖边的矩形框表示子类,用双竖边的矩形框表示子类,n 用直线加小圆圈表示超类用直线加小圆圈表示超类-子类的联系子类的联系n数据抽象的用途数据抽象的
56、用途n对需求分析阶段收集到的数据进行分类、组织(聚集),形成对需求分析阶段收集到的数据进行分类、组织(聚集),形成n实体实体n实体的属性,标识实体的码实体的属性,标识实体的码n确定实体之间的联系类型确定实体之间的联系类型(1:1,1:n,m:n)2006年4月12日58安财信工学院计算机系二、局部视图设计二、局部视图设计设计分设计分E-R图的步骤图的步骤:选择局部应用选择局部应用逐一设计分逐一设计分E-R图图2006年4月12日59安财信工学院计算机系 选择局部应用选择局部应用n需求分析阶段,已用多层数据流图和数据字典描述了需求分析阶段,已用多层数据流图和数据字典描述了整个系统。整个系统。n设
57、计分设计分E-R图首先需要根据系统的具体情况,在多层的图首先需要根据系统的具体情况,在多层的数据流图中数据流图中选择选择一个一个适当层次的数据流图适当层次的数据流图,让这组图,让这组图中每一部分对应一个局部应用,然后以这一层次的数中每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分据流图为出发点,设计分E-R图。图。n通常以中层数据流图作为设计分通常以中层数据流图作为设计分E-R图的依据。图的依据。原因:原因:n高层数据流图只能反映系统的概貌高层数据流图只能反映系统的概貌n中层数据流图能较好地反映系统中各局部应用的子系统组成中层数据流图能较好地反映系统中各局部应用的子系统组成n
58、低层数据流图过细低层数据流图过细n例:由于学籍管理、课程管理等都不太复杂,因此可以它们例:由于学籍管理、课程管理等都不太复杂,因此可以它们入手设计学生管理子系统的分入手设计学生管理子系统的分E-R图。如果局部应用比较复杂,图。如果局部应用比较复杂,则可以从更下层的数据流图入手。则可以从更下层的数据流图入手。2006年4月12日60安财信工学院计算机系 逐一设计分逐一设计分E-R图图n任务任务n标定局部应用中的实体、属性、码,实体间的联系标定局部应用中的实体、属性、码,实体间的联系n将各局部应用涉及的数据分别从数据字典中抽取将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部
59、应用中的实体、出来,参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联实体的属性、标识实体的码,确定实体之间的联系及其类型(系及其类型(1:1,1:n,m:n)n注意区分实体和属性注意区分实体和属性n实体与属性是相对而言的实体与属性是相对而言的。同一事物,在一种应用环境中。同一事物,在一种应用环境中作为作为“属性属性”,在另一种应用环境中就必须作为,在另一种应用环境中就必须作为“实体实体”。n例:学校中的系,在某种应用环境中,它只是作为例:学校中的系,在某种应用环境中,它只是作为“学生学生”实体的一个属性,表明一个学生属于哪个系;而在另一实体的一个属性,表明一个学
60、生属于哪个系;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、办公地点等,这时它就需要作为实体了。生人数、办公地点等,这时它就需要作为实体了。2006年4月12日61安财信工学院计算机系n区分实体和属性一般原则区分实体和属性一般原则n属性不能再具有需要描述的性质。即属性必须是不属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。可分的数据项,不能再由另一些属性组成。n属性不能与其他实体具有联系。联系只发生在实体属性不能与其他实体具有联系。联系只发生在实体之间。之间。n符合上述两条特性的事物一般作为
61、属性对待。符合上述两条特性的事物一般作为属性对待。n为了简化为了简化E-R图的处置,现实世界中的事物凡能够作为图的处置,现实世界中的事物凡能够作为属性对待的,应尽量作为属性。属性对待的,应尽量作为属性。举例:举例:n例例1:“学生学生”由学号、姓名等属性进一步描述,由学号、姓名等属性进一步描述,根据准则,根据准则,“学生学生”只能作为实体,不能作为属只能作为实体,不能作为属性。性。n例例2:职称通常作为教师实体的属性,但在涉及住:职称通常作为教师实体的属性,但在涉及住房分配时,由于分房与职称有关,也就是说职称与房分配时,由于分房与职称有关,也就是说职称与住房实体之间有联系,根据准则,这时把职称
62、作住房实体之间有联系,根据准则,这时把职称作为实体来处理会更合适些。为实体来处理会更合适些。n例例3:销售管理子系统销售管理子系统ER设计实例设计实例2006年4月12日62安财信工学院计算机系6.3.4 视图的集成视图的集成n各个局部视图即分各个局部视图即分E-R图建立好后,还需要对它们进行合图建立好后,还需要对它们进行合并,集成为一个整体的数据概念结构即总并,集成为一个整体的数据概念结构即总E-R图。图。n视图集成的两种方式视图集成的两种方式n一次集成(一次集成(P224图图6.25(a))n一次集成多个分一次集成多个分E-R图图n通常用于局部视图比较简单时通常用于局部视图比较简单时n逐步
63、累积式(逐步累积式(P224图图6.25(b))n首先集成两个局部视图(通常是比较关键的两个局部视图)首先集成两个局部视图(通常是比较关键的两个局部视图)n以后每次将一个新的局部视图集成进来以后每次将一个新的局部视图集成进来n集成局部集成局部E-R图的步骤图的步骤1. 合并合并2. 修改与重构修改与重构2006年4月12日63安财信工学院计算机系视图的集成视图的集成2006年4月12日64安财信工学院计算机系ER模型的操作包括实体类型、联系类型和属性的包括实体类型、联系类型和属性的分裂分裂、合并合并、增删增删等等等等 教师号姓名出生日期职务工资奖金教师(a)教师号姓名出生日期教师不变信息职务工
64、资奖金教师号教师变动信息(b)图5.15 实体类型的垂直分裂教师课程主讲辅导1MNN图5.16 联系类型的分裂教师课程主讲MN(a)(b)图5.17 不合法的合并B(a)ACA-CB-CACA-B-C(b)B2006年4月12日65安财信工学院计算机系设计局部设计局部ERER模式模式 需求分析结果确定局部结构范围实体定义联系定义属性分配还有局部结构待分析有无进入全局ER模式设计图5.18 局部ER模式设计范围的划分要自然,易于管理;范围的大小要适度。太小了,会造成局部结构过多,设计过程繁琐,综合困难;太大了,则容易造成内部结构复杂,不便分析 范围之间的界面要清晰,相互影响要小采用人们习惯的划分
65、;避免冗余,在一个局部结构中,对一个对象只取一种抽象形式,不要重复;依据用户的信息处理需求 确定属性的原则: 属性应该是不可再分解的语义单位;实体与属性之间的关系只能是1:N的;不同实体类型的属性之间应无直接关联关系。 属性分配的原则: 当多个实体类型用到同一属性时, 一般把属性分配给那些使用频率最高的实体类型,或分配给实体值少的实体类型。 有些属性不宜归属于任一实体类型,只说明实体之间联系的特性 2006年4月12日66安财信工学院计算机系局部模式局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析教师子模块局部ER图2006年4月12日67安财信工学院计算机系其他局部模式其他局部模
66、式现有的教学管理系统初步分析系统的对象根据服务种类分析学生子模块图5.21 学籍管理局部应用的分E-R图导师班级学生组成管理班主任档案材料宿舍住宿归档指导系有参加学会1N111NNN11NMN1具有社会关系1N局部ER图2006年4月12日68安财信工学院计算机系其他局部模式其他局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析课程子模块局部ER图图5.22 课程管理局部应用分E-R图1教室M1教科书教师担任课程系开设N1学生选修NMN上课PN2006年4月12日69安财信工学院计算机系设计全局设计全局 ERER模式模式无图5.20全局ER模式设计局部ER模式确定公共实体类型合并两个
67、局部ER模式检查并消除冲突还有未合并的局部模式有还有冲突吗有属性冲突 :如,重量单位有的用公斤,有的用克。 结构冲突 :同一对象在不同应用中的不同抽象 ;同一实体在不同局部ER图中属性的个数或次序不同 ;实体之间的联系在不同的局部ER图中呈现不同的类型 命名冲突 :属性名、实体名、联系名之间存在同名异义或异名同义冲突2006年4月12日70安财信工学院计算机系全局全局ER模式的优化模式的优化n实体类型的合并实体类型的合并n1:11:1联系的两个实体类型联系的两个实体类型 n具有相同键的实体类型具有相同键的实体类型 n冗余属性的消除冗余属性的消除 n冗余联系的消除:冗余联系的消除:利用利用规范化
68、理范化理论中函数依中函数依赖的概念消除冗余的概念消除冗余联系系 2006年4月12日71安财信工学院计算机系例子:三个局部例子:三个局部ER图合并成一个图合并成一个ER图图1图5.24 合并后的教学管理E-R图1N1P1N1N1N1MMNNNN社会关系具有1NNM1系聘用承接项目参加设置院长学院主管NN111教师评定职称分配工作量111N档案材料归档参加学会1宿舍住宿教科书担任指导课程选修教室上课有1班级学生组成N开设N管理11教师管理112006年4月12日72安财信工学院计算机系冲突的种类冲突的种类n1、属性冲突、属性冲突n属性域冲突属性域冲突:属性值的类型、取值范围或取值集合不同。属性值
69、的类型、取值范围或取值集合不同。n例例1, 由于学号是数字,因此某些部门(即局部应用)将学号定义为整由于学号是数字,因此某些部门(即局部应用)将学号定义为整数形式,而由于学号不用参与运算,因此另一些部门(即局部应用)将数形式,而由于学号不用参与运算,因此另一些部门(即局部应用)将学号定义为字符型形式。学号定义为字符型形式。n例例2, 某些部门(即局部应用)以出生日期形式表示学生的年龄,而另某些部门(即局部应用)以出生日期形式表示学生的年龄,而另一些部门(即局部应用)用整数形式表示学生的年龄。一些部门(即局部应用)用整数形式表示学生的年龄。n属性取值单位冲突属性取值单位冲突。n例:学生的身高,有
70、的以米为单位,有的以厘米为单位,有的以尺为单例:学生的身高,有的以米为单位,有的以厘米为单位,有的以尺为单位。位。n2、命名冲突、命名冲突n同名异义:同名异义:不同意义的对象在不同的局部应用中具有相同的名字不同意义的对象在不同的局部应用中具有相同的名字n 例,局部应用例,局部应用A中将教室称为房间,中将教室称为房间, 局部应用局部应用B中将学生宿舍称为中将学生宿舍称为房间房间n异名同义(一义多名)异名同义(一义多名):同一意义的对象在不同的局部应用中具有:同一意义的对象在不同的局部应用中具有不同的名字不同的名字n 例,有的部门把教科书称为课本,例,有的部门把教科书称为课本, 有的部门则把教科书
71、称为教材有的部门则把教科书称为教材n命名冲突可能发生在属性级、实体级、联系级上。其中属性的命名命名冲突可能发生在属性级、实体级、联系级上。其中属性的命名冲突更为常见。冲突更为常见。n3、结构冲突、结构冲突2006年4月12日73安财信工学院计算机系3类类结构冲突结构冲突n1、同一对象在不同应用中具有不同的抽象、同一对象在不同应用中具有不同的抽象n 例,例,“课程课程”在某一局部应用中被当作实体,在另一局部应在某一局部应用中被当作实体,在另一局部应用中则被当作属性用中则被当作属性n解决方法:通常是把属性变换为实体或把实体变换为属性,使解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象
72、具有相同的抽象。变换时要遵循两个准则。同一对象具有相同的抽象。变换时要遵循两个准则。n2、同一实体在不同局部视图中所包含的属性不完全相、同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同。同,或者属性的排列次序不完全相同。n产生原因:不同的局部应用关心的是该实体的不同侧面。产生原因:不同的局部应用关心的是该实体的不同侧面。n解决方法:使该实体的属性取各分解决方法:使该实体的属性取各分E-R图中属性的并集,再适图中属性的并集,再适当设计属性的次序当设计属性的次序。n3、实体之间的联系在不同局部视图中呈现不同的类型、实体之间的联系在不同局部视图中呈现不同的类型n例例1,
73、实体实体E1与与E2在局部应用在局部应用A中是多对多联系,而在局部应中是多对多联系,而在局部应用用B中是一对多联系中是一对多联系n例例2, 在局部应用在局部应用X中中E1与与E2发生联系,而在局部应用发生联系,而在局部应用Y中中E1、E2、E3三者之间有联系。三者之间有联系。n解决方法:根据应用语义对实体联系的类型进行综解决方法:根据应用语义对实体联系的类型进行综合或调整。合或调整。2006年4月12日74安财信工学院计算机系学生学生学号学号姓名姓名性别性别平均成绩平均成绩(a)在局部应用在局部应用A中中学生学生学号学号姓名姓名出生日期出生日期年级年级(b)在局部应用在局部应用B中中所在系所在
74、系学生学生学号学号姓名姓名政治面貌政治面貌(c)在局部应用在局部应用C中中学生学生政治政治面貌面貌学号学号出生出生日期日期年级年级(d)合并后合并后所在系所在系平均平均成绩成绩姓名姓名性别性别2006年4月12日75安财信工学院计算机系二、修改与重构二、修改与重构n基本任务基本任务n消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-R图图合并合并初步初步E-R图图分分E-R图图可能存在冗余的数据可能存在冗余的数据和冗余的实体间联系和冗余的实体间联系基本基本E-R图图消除不必要的冗余消除不必要的冗余2006年4月12日76安财信工学院计算机系1冗余冗余n冗余从何而来?冗余从何而来?
75、n冗余的数据是指可由基本数据导出的数据,冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余的联系是指可由其他联系导出的联系。 n冗余数据和冗余联系容易破坏数据库的完整性,给数据库冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难并不是所有的冗余数据与冗余联系都必须加维护增加困难并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高某些应用的效率,不得不以冗余信以消除,有时为了提高某些应用的效率,不得不以冗余信息作为代价。息作为代价。n设计数据库概念结构时,哪些冗余信息必须消除,设计数据库概念结构时,哪些冗余信息必须消除,哪些冗余信息允许存在,需要根
76、据用户的整体需求哪些冗余信息允许存在,需要根据用户的整体需求来确定。消除不必要的冗余后的初步来确定。消除不必要的冗余后的初步E-R图称为基图称为基本本E-R图。图。2006年4月12日77安财信工学院计算机系2消除冗余的方法消除冗余的方法n分析方法分析方法n以数据字典和数据流图为依据,根据数据字以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除典中关于数据项之间逻辑关系的说明来消除冗余。冗余。n例,教师工资单中包括该教师的基本工资、各种补贴、应例,教师工资单中包括该教师的基本工资、各种补贴、应扣除的房租水电费以及实发工资。扣除的房租水电费以及实发工资。n由于实发工资可
77、以由前面各项推算出来,因此可以由于实发工资可以由前面各项推算出来,因此可以去掉,在需要查询实发工资时根据基本工资、各种补贴、去掉,在需要查询实发工资时根据基本工资、各种补贴、应扣除的房租水电费数据临时生成。应扣除的房租水电费数据临时生成。n如果是为了提高效率,人为地保留了一些冗如果是为了提高效率,人为地保留了一些冗余数据,则应把数据字典中数据关联的说明余数据,则应把数据字典中数据关联的说明作为完整性约束条件。作为完整性约束条件。n一种更好的方法是把冗余数据定义在视图中一种更好的方法是把冗余数据定义在视图中 2006年4月12日78安财信工学院计算机系消除冗余的方法消除冗余的方法n规范化理论规范
78、化理论n函数依赖的概念提供了消除冗余联系的形式化工具函数依赖的概念提供了消除冗余联系的形式化工具n方法方法n1. 确定分确定分E-R图实体之间的数据依赖图实体之间的数据依赖FL 。实体之间一对一、一对多、实体之间一对一、一对多、多对多的联系可以用实体码之间的函数依赖来表示。多对多的联系可以用实体码之间的函数依赖来表示。n例:例:n班级和学生之间一对多的联系:班级和学生之间一对多的联系: 学号学号班级号班级号n学生和课程之间多对多的联系:学生和课程之间多对多的联系: (学号,课程号)(学号,课程号) 成绩成绩n2. 求求FL的最小覆盖的最小覆盖GL ,差集为,差集为 D = FL-GL。n逐一考
79、察逐一考察D中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。2006年4月12日79安财信工学院计算机系n冗余数据和冗余联系:冗余数据和冗余联系:n(1) 学生实体中的年龄属性可以由出生日期推算出来,属于冗学生实体中的年龄属性可以由出生日期推算出来,属于冗余数据,应该去掉。这样不仅可以节省存储空间,而且当某余数据,应该去掉。这样不仅可以节省存储空间,而且当某个学生的出生日期有误,进行修改后,无须相应修改年龄,个学生的出生日期有误,进行修改后,无须相应修改年龄,减少了产生数据不一致减少了产生数据不一致的机会。的机会。学生:学生:学号学号
80、,姓名,出生日期,所在系,姓名,出生日期,所在系, 年级,平均成绩年级,平均成绩n(2) 教室实体与班级实体的上课联系可以由教室与课程之间的教室实体与班级实体的上课联系可以由教室与课程之间的开设联系、课程与学生之间的选修联系、学生与班级之间的开设联系、课程与学生之间的选修联系、学生与班级之间的组成联系三者推导出来,因此属于冗余联系,可以消去。组成联系三者推导出来,因此属于冗余联系,可以消去。n(3) 学生实体中的平均成绩可以从选修联系中的成绩属性中推算出来学生实体中的平均成绩可以从选修联系中的成绩属性中推算出来n由于应用中需要经常查询某个学生的平均成绩,每次都进行这种由于应用中需要经常查询某个
81、学生的平均成绩,每次都进行这种计算效率就会太低,因此为提高效率,保留该冗余数据计算效率就会太低,因此为提高效率,保留该冗余数据n但定义一个触发器来保证学生的平均成绩等于该学生各科成绩的但定义一个触发器来保证学生的平均成绩等于该学生各科成绩的平均值。平均值。n任何一科成绩修改后,或该学生学了新的科目并有成绩后,就触任何一科成绩修改后,或该学生学了新的科目并有成绩后,就触发该触发器去修改该学生的平均成绩属性值。发该触发器去修改该学生的平均成绩属性值。2006年4月12日80安财信工学院计算机系三、验证整体概念结构三、验证整体概念结构n视图集成后形成一个整体的数据库概念结构,对该整视图集成后形成一个
82、整体的数据库概念结构,对该整体概念结构还必须进行进一步验证,确保它能够满足体概念结构还必须进行进一步验证,确保它能够满足下列条件下列条件:n整体概念结构内部必须具有一致性,不存在互相矛整体概念结构内部必须具有一致性,不存在互相矛盾的表达。盾的表达。n整体概念结构能准确地反映原来的每个视图结构,整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系。包括属性、实体及实体间的联系。n整体概念结构能满足需要分析阶段所确定的所有要整体概念结构能满足需要分析阶段所确定的所有要求。求。n整体概念结构最终还应该提交给用户,征求用户和整体概念结构最终还应该提交给用户,征求用户和有关人员的意见
83、,进行评审、修改和优化,然后把有关人员的意见,进行评审、修改和优化,然后把它确定下来,作为数据库的概念结构,作为进一步它确定下来,作为数据库的概念结构,作为进一步设计数据库的依据设计数据库的依据。2006年4月12日81安财信工学院计算机系数据库设计数据库设计n数据库的设计过程数据库的设计过程n需求分析需求分析n概念结构设计概念结构设计n逻辑结构设计逻辑结构设计n物理数据库设计物理数据库设计n实施实施n运行维护运行维护设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。2006年4月12日82安财信工学院计算机系概念结构设计小结概念结构设计小结n概念结构设计的步骤概念结构设计的步骤n抽
84、象数据并设计局部视图抽象数据并设计局部视图n集成局部视图,得到全局概念结构集成局部视图,得到全局概念结构n验证整体概念结构验证整体概念结构2006年4月12日83安财信工学院计算机系概念结构设计小结概念结构设计小结n数据抽象数据抽象n分类分类n聚集聚集n概括概括2006年4月12日84安财信工学院计算机系概念结构设计小结概念结构设计小结n设计局部视图设计局部视图n 选择局部应用选择局部应用n 逐一设计分逐一设计分E-R图图n标定局部应用中的实体、属性、码,实体标定局部应用中的实体、属性、码,实体间的联系间的联系n用用E-R图描述出来图描述出来2006年4月12日85安财信工学院计算机系概念结构
85、设计小结概念结构设计小结n集成局部视图集成局部视图n1.合并分合并分E-R图,生成初步图,生成初步E-R图图n消除冲突消除冲突n属性冲突属性冲突n命名冲突命名冲突n结构冲突结构冲突n2. 修改与重构修改与重构n消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-R图图n分析方法分析方法n规范化理论规范化理论2006年4月12日86安财信工学院计算机系6.4 逻辑结构设计逻辑结构设计n逻辑结构设计的任务逻辑结构设计的任务n概念结构是各种数据模型的共同基础。为了能够用某一概念结构是各种数据模型的共同基础。为了能够用某一DBMS实现用户需求,还必须将概念结构进一步转化为相应实现用户需求,
86、还必须将概念结构进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要完成的任务。的数据模型,这正是数据库逻辑结构设计所要完成的任务。n逻辑结构设计的步骤逻辑结构设计的步骤n将概念结构转化为一般的关系、网状、层次模型将概念结构转化为一般的关系、网状、层次模型n将将转转化化来来的的关关系系、网网状状、层层次次模模型型向向特特定定DBMS支支持持下下的的数数据模型转换据模型转换n对数据模型进行优化对数据模型进行优化2006年4月12日87安财信工学院计算机系 逻辑结构设计逻辑结构设计转化为转化为一般数一般数据模型据模型转化为特转化为特定定DBMS支持下的支持下的据模型据模型优化模优化模型型概念结
87、概念结构设计构设计数据库数据库物理设计物理设计基本基本E-R图图转换规转换规则则特定特定DBMS的的特点与限特点与限制制优化方优化方法如规法如规范化理范化理论论逻辑逻辑模型模型2006年4月12日88安财信工学院计算机系6.4.1 E-R图向关系模型的转换图向关系模型的转换n转换内容转换内容n转换原则转换原则2006年4月12日89安财信工学院计算机系E-R图向关系模型的转换图向关系模型的转换内容内容nE-R图由实体、实体的属性和实体之间的联系图由实体、实体的属性和实体之间的联系三个要素组成三个要素组成n关系模型的逻辑结构是一组关系模式的集合关系模型的逻辑结构是一组关系模式的集合n将将E-R图
88、转换为关系模型:将实体、实体的属图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。性和实体之间的联系转化为关系模式。2006年4月12日90安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则1一个一个实体型实体型转换为一个关系模式。转换为一个关系模式。n n关系的属性关系的属性关系的属性关系的属性:实体型的属性:实体型的属性n n关系的码关系的码关系的码关系的码:实体型的码:实体型的码例,学生实体可以转换为如下关系模式:例,学生实体可以转换为如下关系模式:学生(学生(学号学号,姓名,出生日期,所在系,年级,平均成绩),姓名,出生日期,所在系,年级,平均成绩
89、) 性别、宿舍、班级、档案材料、教师、课程、教室、教科书性别、宿舍、班级、档案材料、教师、课程、教室、教科书都分别转换为一个关系模式。都分别转换为一个关系模式。学生学生学号学号出生出生日期日期年级年级所在系所在系平均平均成绩成绩姓名姓名2006年4月12日91安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则2一个一个m:n联系联系转换为一个关系模式。转换为一个关系模式。n n关系的属性关系的属性关系的属性关系的属性:与该联系相连的各实体的码以:与该联系相连的各实体的码以及联系本身的属性及联系本身的属性n n关系的码关系的码关系的码关系的码:各实体码的组合:各实体码的组合例
90、,例,“选修选修”联系是一个联系是一个m:n联系,可以将它联系,可以将它转换为如下关系模式,其中学号与课程号为关转换为如下关系模式,其中学号与课程号为关系的组合码:系的组合码:选修(选修(学号学号,课程号课程号,成绩),成绩)2006年4月12日92安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则3一个一个1:n联系联系可以转换为一个独立的关系模式,也可以与可以转换为一个独立的关系模式,也可以与n端对应的端对应的关系模式合并。关系模式合并。n1) 转换为一个独立的关系模式转换为一个独立的关系模式n n关系的属性关系的属性关系的属性关系的属性:与该联系相连的各实体的码以及联
91、系本身的:与该联系相连的各实体的码以及联系本身的属性属性n n关系的码关系的码关系的码关系的码:n端实体的码端实体的码n2) 与与n端对应的关系模式合并端对应的关系模式合并n n合并后关系的属性合并后关系的属性合并后关系的属性合并后关系的属性:在:在n端关系中加入端关系中加入1端关系的码和联系端关系的码和联系本身的属性本身的属性n n合并后关系的码合并后关系的码合并后关系的码合并后关系的码:不变:不变n可以减少系统中的关系个数,一般情况下更倾向于采用这种方法可以减少系统中的关系个数,一般情况下更倾向于采用这种方法例,将其转换为关系模式的两种方法:例,将其转换为关系模式的两种方法: 1)使其成为
92、一个独立的关系模式:使其成为一个独立的关系模式:组成(组成(学号学号,班级号),班级号) 2)将其学生关系模式合并:将其学生关系模式合并:学生(学生(学号学号,姓名,出生日期,所在系,年级,姓名,出生日期,所在系,年级,班级号班级号班级号班级号,平均成绩),平均成绩)班级班级学生学生组成组成组成组成N12006年4月12日93安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则4 一个一个1:1联系联系可以转换为一个独立的关系模式,也可以与任意一可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。端对应的关系模式合并。n1) 转换为一个独立的关系模式转换为一个独
93、立的关系模式n n关系的属性关系的属性关系的属性关系的属性:与该联系相连的各实体的码以及联系本身的:与该联系相连的各实体的码以及联系本身的属性属性n n关系的候选码关系的候选码关系的候选码关系的候选码:每个实体的码均是该关系的候选码:每个实体的码均是该关系的候选码n2) 与某一端对应的关系模式合并与某一端对应的关系模式合并n n合并后关系的属性合并后关系的属性合并后关系的属性合并后关系的属性:加入对应关系的码和联系本身的属性:加入对应关系的码和联系本身的属性n n合并后关系的码合并后关系的码合并后关系的码合并后关系的码:不变:不变2006年4月12日94安财信工学院计算机系例,例,“管理管理”
94、联系为联系为1:1联系,可以有三种转换方法:联系,可以有三种转换方法:(1)转换为一个独立的关系模式:)转换为一个独立的关系模式: 管理(管理(职工号职工号,班级号),班级号) 或或管理(职工号,管理(职工号,班级号班级号)(2)“管理管理”联系与班级关系模式合并,则只需在班级关系中联系与班级关系模式合并,则只需在班级关系中加入教师关系的码,即职工号:加入教师关系的码,即职工号:班级:(班级:(班级号班级号,学生人数,学生人数,职工号职工号)(3)“管理管理”联系与教师关系模式合并,则只需在教师关系中联系与教师关系模式合并,则只需在教师关系中加入班级关系的码,即班级号:加入班级关系的码,即班级
95、号:教师:(教师:(职工号职工号,姓名,性别,职称,姓名,性别,职称,班级号班级号, 是否为优秀班主任)是否为优秀班主任)教师教师管理管理11班级班级2006年4月12日95安财信工学院计算机系注意:注意:u从理论上讲,从理论上讲,1:1联系可以与任意一端对应的关系模式联系可以与任意一端对应的关系模式合并。合并。u但在一些情况下,与不同的关系模式合并效率会大不但在一些情况下,与不同的关系模式合并效率会大不一样。因此究竟应该与哪端的关系模式合并需要依应一样。因此究竟应该与哪端的关系模式合并需要依应用的具体情况而定。用的具体情况而定。u由于连接操作是最费时的操作,所以一般应以尽量减由于连接操作是最
96、费时的操作,所以一般应以尽量减少连接操作为目标。少连接操作为目标。 例如,如果经常要查询某个例如,如果经常要查询某个班级的班主任姓名,则将管理联系与教师关系合并更班级的班主任姓名,则将管理联系与教师关系合并更好些。好些。2006年4月12日96安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则5 三个或三个以上实体间的一个三个或三个以上实体间的一个多元联系多元联系转换为转换为一个关系模式。一个关系模式。n n关系的属性关系的属性关系的属性关系的属性:与该多元联系相连的各实体的:与该多元联系相连的各实体的码以及联系本身的属性码以及联系本身的属性n n关系的码关系的码关系的码关
97、系的码:各实体码的组合:各实体码的组合例,例,“讲授讲授”联系是一个三元联系,可以将它联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、职工号和转换为如下关系模式,其中课程号、职工号和书号为关系的组合码:书号为关系的组合码:讲授(讲授(课程号,职工号,书号课程号,职工号,书号)2006年4月12日97安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则6 同一实体集的实体间的联系,即同一实体集的实体间的联系,即自联系自联系,也可,也可按上述按上述1:1、1:n和和m:n三种情况分别处理。三种情况分别处理。例,如果教师实体集内部存在领导与被领导的例,如果教师实体集内部
98、存在领导与被领导的1:n自联系,我们可以将该联系与教师实体合自联系,我们可以将该联系与教师实体合并,这时主码职工号将多次出现,但作用不同,并,这时主码职工号将多次出现,但作用不同,可用不同的属性名加以区分:可用不同的属性名加以区分:教师:教师:职工号职工号,姓名,性别,职称,姓名,性别,职称,系主任系主任2006年4月12日98安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则7 具有相同码的关系模式可合并。具有相同码的关系模式可合并。n目的:减少系统中的关系个数。目的:减少系统中的关系个数。n合并方法:将其中一个关系模式的全部属性加入到另一个关系模合并方法:将其中一个关系
99、模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序。适当调整属性的次序。n例,例,“性别性别”关系模式:关系模式:n性别(性别(学号学号,性别),性别)n与学生关系模式:与学生关系模式:n 学生(学生(学号学号,姓名,出生日期,所在系,年级,姓名,出生日期,所在系,年级, 班级号,平均成绩)班级号,平均成绩)n都以学号为码,可以将它们合并为一个关系模式:都以学号为码,可以将它们合并为一个关系模式:n学生(学生(学号学号,姓名,性别,出生日期,所在系,姓名,性别,出生日期,所在系, 年
100、级,班级号,平均成绩)年级,班级号,平均成绩)系系1有有班级班级N1学生学生组成组成N1N宿舍宿舍住宿住宿2006年4月12日99安财信工学院计算机系实例实例n按照上述七条原则,学生管理子系统中的按照上述七条原则,学生管理子系统中的18个实体和联系可以转换为个实体和联系可以转换为下列关系模型:下列关系模型: 学生学生(学号学号,姓名,性别,出生日期,所在系,姓名,性别,出生日期,所在系, 年级,班级号,平均成绩,档案号)年级,班级号,平均成绩,档案号)宿舍楼宿舍楼(宿舍楼号宿舍楼号,性别性别)住宿住宿(学号学号,宿舍编号宿舍编号) 宿舍宿舍(宿舍编号宿舍编号,宿舍楼号,地址,性别,人数),宿舍
101、楼号,地址,性别,人数)班级班级(班级号班级号,学生人数),学生人数) 教师教师(职工号职工号,姓名,性别,职称,班级号,姓名,性别,职称,班级号, 是否为优秀班主任)是否为优秀班主任) 指导指导(职工号,学号职工号,学号)课程课程(课程号课程号,课程名,学分,教室号),课程名,学分,教室号)选修选修(学号,课程号学号,课程号,成绩),成绩)教科书教科书(书号书号,书名,价钱),书名,价钱)教室教室(教室编号教室编号,地址,容量),地址,容量)讲授讲授(课程号,教师号,书号课程号,教师号,书号)档案材料档案材料(档案号,档案号,)。2006年4月12日100安财信工学院计算机系E-R图向关系模
102、型的转换(续)图向关系模型的转换(续)n该关系模型由该关系模型由12个关系模式组成。个关系模式组成。其中:其中:n学生关系模式包含了学生关系模式包含了“拥有拥有”联系、联系、“组成组成”联系、联系、“归档归档”联系所对应的关系模式联系所对应的关系模式n教师关系模式包含了教师关系模式包含了“管理管理”联系所对应的联系所对应的关系模式;关系模式;n宿舍关系模式包含了宿舍关系模式包含了“住宿住宿”联系所对应的联系所对应的关系模式;关系模式;n课程关系模式包含了课程关系模式包含了“开设开设”联系所对应的联系所对应的关系模式关系模式。2006年4月12日101安财信工学院计算机系ER图转换成关系模式集的
103、规则图转换成关系模式集的规则n将每个实体类型转换成一个关系模式,实体的属性即为关系模将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键式的属性,实体标识符即为关系模式的键n二元联系类型的转换二元联系类型的转换n若若实体体间联系是系是1:11:1,可以在两个,可以在两个实体体类型型转换成的两个关系模式中任意成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的一个关系模式的属性中加入另一个关系模式的键和和联系系类型的属性。型的属性。 n若若实体体间联系是系是1:N1:N,则在在N N端端实体体类型型转换成的关系模式中加入成的关系模式中加入1 1端端
104、实体体类型的型的键和和联系系类型的属性。型的属性。 n若若实体体间联系是系是M:NM:N,则将将联系系类型也型也转换成关系模式,其属性成关系模式,其属性为两端两端实体体类型的型的键加上加上联系系类型的属性,而型的属性,而键为两端两端实体体键的的组合合 n一元一元联系系类型的型的转换: :同二元联系同二元联系 n三元三元联系系类型的型的转换 总是将三元是将三元联系系类型型转换成关系模式,其属性成关系模式,其属性为三端三端实体体类型的型的键加上加上联系系类型的属性,而型的属性,而键为三端三端实体体键的的组合合。 2006年4月12日102安财信工学院计算机系ER模型到关系模型的转换实例模型到关系模
105、型的转换实例职工工号姓名年龄性别领导1N运动员(编号,姓名,性别,名次,上一名次编号,下一名次编号) 职工(工号,姓名,年龄,性别,经理工号) 运动员编号姓名性别名次顺序112006年4月12日103安财信工学院计算机系ER模型到关系模型的转换实例模型到关系模型的转换实例零件零件零件号零件号零件名零件名规规格格数量数量组成组成MN仓库仓库商品商品商店商店仓库号仓库号仓库名仓库名地址地址数量数量商店号商店号商品名商品名商品号商品号商店名商店名日期日期进货进货MNP零件(零件(零件号零件号,零件名,规格),零件名,规格)组成(组成(零件号零件号,子零件号子零件号,数量),数量) 仓库(仓库(仓库号
106、仓库号,仓库名,地址),仓库名,地址)商店(商店(商店号商店号,商店名),商店名)商品(商品(商品号商品号,商品名),商品名)进货(进货(商店号商店号,商品名商品名,仓库号仓库号,日期,数量),日期,数量) 2006年4月12日104安财信工学院计算机系采用采用ER方法的逻辑设计步骤方法的逻辑设计步骤关系模式规范化模式评价是否需要修正从ER模式导出初始数据库模式处理需求ER模式DBMS特征用DBMS语法描述模式修正进入物理设计阶段是否2006年4月12日105安财信工学院计算机系例例1 库存销售信息管理系统的库存销售信息管理系统的ER模型及转换模型及转换P车车间间仓仓位位产产品品客客户户销售销
107、售员员存存储储出出库库订订单单入入库库MNMPMNPMNN库存系统ER图车间(车间号,车间名,主任名) 产品(产品号,产品名,单价) 仓位(仓位号,地址,主任名) 客户(客户号,客户名,联系人,电话, 地址,税号,账号)销售员(销售员号,姓名,性别,学历,业绩)实体入库(入库单号,入库量,入库日期,经手人, 车间号,仓位号,产品名)出库(出库单号,出库量,出库日期,经手人,客户号,产品名,仓位号)订单(订单号,数量,折扣,总价,订单日期,产品号,客户号,销售员号) 存储(仓位号,产品号,核对日期,核对员,存储量)联系2006年4月12日106安财信工学院计算机系例例2:公司车队信息系统的公司车
108、队信息系统的ERER模型模型 部门部门车队车队司机司机车辆车辆开销开销维修公司维修公司调用调用报销报销拥有拥有聘用聘用保险保险2保险保险1M1NN1NNNN11保险公司保险公司1N维修维修2006年4月12日107安财信工学院计算机系1、 弱实体弱实体n什么是弱实体什么是弱实体n弱实体的表示方法弱实体的表示方法n包含弱实体的包含弱实体的ER图图转换成关系模式转换成关系模式问题:问题:在人事管理系统中,亲属的存在是以职工的存在为前提,即亲属对于职工具有依赖联系,所以说,亲属是弱实体 职 工社会关系具有1NER图职工职工(职工号,职工姓名,性别,年龄)亲属亲属(职工号,称呼,姓名,工作单位) 关系
109、关系模式模式问题问题: :商业应用系统中,顾客地址的存在依赖于顾客的存在(一般顾客可以有若干个联系地址) ER图顾 客地 址通讯N1nER模型的扩充模型的扩充2006年4月12日108安财信工学院计算机系2 子类实体与超类实体子类实体与超类实体n什么是子类和超类什么是子类和超类n子类和超类的性质子类和超类的性质n子类与超类之间具有子类与超类之间具有继承性,但子类本身继承性,但子类本身还能包含比超类更多还能包含比超类更多的属性。的属性。n子子类和超和超类有相同的有相同的标识符符 人员教师本科生学生研究生学学校校人人事事系系统统中中实实体体之之间间的的联联系系 人员(身份证号,姓名,年龄,性别)教
110、师(身份证号,教师编号,职称)学生(身份证号,学号,系别,专业)本科生(身份证号,入学年份)研究生(身份证号,研究方向,导师姓名)对应的关系模式2006年4月12日109安财信工学院计算机系6.4.2 向特定向特定DBMS规定的模型进行转换规定的模型进行转换n一般的数据模型还需要向特定一般的数据模型还需要向特定DBMS规规定的模型进行转换。定的模型进行转换。n转换的主要依据是所选用的转换的主要依据是所选用的DBMS的功的功能及限制。没有通用规则。能及限制。没有通用规则。n对于关系模型来说,这种转换通常都比对于关系模型来说,这种转换通常都比较简单。较简单。2006年4月12日110安财信工学院计
111、算机系6.4.3 数据模型的优化数据模型的优化n数据库逻辑设计的结果不是唯一的。数据库逻辑设计的结果不是唯一的。n得到初步数据模型后,还应该适当地修得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是数据高数据库应用系统的性能,这就是数据模型的优化。模型的优化。n关系数据模型的优化通常以规范化理论关系数据模型的优化通常以规范化理论为指导。为指导。2006年4月12日111安财信工学院计算机系优化数据模型的方法优化数据模型的方法 确定数据依赖确定数据依赖n按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间
112、的按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖数据依赖以及不同关系模式属性之间数据依赖。例,课程关系模式内部存在例,课程关系模式内部存在下列数据依赖:下列数据依赖: 课程号课程号课程名课程名 课程号课程号学分学分 课程号课程号教室号教室号 选修关系模式中存在选修关系模式中存在下列数据依赖:下列数据依赖: (学号,课程号)(学号,课程号)成绩成绩 学生关系模式中存在学生关系模式中存在下列数据依赖:下列数据依赖: 学号学号姓名姓名 学号学号性别性别 学号学号出生日期出生日期 学号学号所在系所在系学号学号年级年级 学号学号班级号班级号 学号
113、学号平均成绩平均成绩 学号学号档案号档案号学生关系模式的学号与选修关系学生关系模式的学号与选修关系模式的学号之间存在数据依赖:模式的学号之间存在数据依赖: 学生学生.学号学号选修选修.学号学号2006年4月12日112安财信工学院计算机系数据模型的优化(续)数据模型的优化(续) 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。联系。 按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别分函数依赖、传递函数依赖、
114、多值依赖等,确定各关系模式分别属于第几范式。属于第几范式。 例如经过分析可知,课程关系模式属于例如经过分析可知,课程关系模式属于BC范式。范式。 按照需求分析阶段得到的各种应用对数据处理的要求,分析对于按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。或分解。2006年4月12日113安财信工学院计算机系数据模型的优化(续)数据模型的优化(续)n并不是规范化程度越高的关系就越优。并不是规范化程度越高的关系就越优。n当一个应用的查询中经常涉及到两个或多个关系模式的属性当一
115、个应用的查询中经常涉及到两个或多个关系模式的属性时,系统必须经常地进行联接运算,而联系运算的代价是相时,系统必须经常地进行联接运算,而联系运算的代价是相当高的,可以说关系模型低效的主要原因就是做联接运算引当高的,可以说关系模型低效的主要原因就是做联接运算引起的,因此在这种情况下,第二范式甚至第一范式也许是最起的,因此在这种情况下,第二范式甚至第一范式也许是最好的。好的。n非非BCNF的关系模式虽然从理论上分析会存在不同程度的更新的关系模式虽然从理论上分析会存在不同程度的更新异常,但如果在实际应用中对此关系模式只是查询,并不执异常,但如果在实际应用中对此关系模式只是查询,并不执行更新操作,则就不
116、会产生实际影响。行更新操作,则就不会产生实际影响。n对于一个具体应用来说,到底规范化进行到什么程度,需要对于一个具体应用来说,到底规范化进行到什么程度,需要权衡响应时间和潜在问题两者的利弊才能决定。一般说来,权衡响应时间和潜在问题两者的利弊才能决定。一般说来,第三范式就足够了。第三范式就足够了。2006年4月12日114安财信工学院计算机系例:在关系模式例:在关系模式 学生成绩单学生成绩单(学号学号,英语英语,数学数学,语文语文,平均成绩平均成绩) 中存在下列函数依赖:中存在下列函数依赖: 学号学号英语英语 学号学号数学数学 学号学号语文语文 学号学号平均成绩平均成绩 (英语英语, 数学数学,
117、 语文语文)平均成绩平均成绩 显然有:显然有: 学号学号(英语英语,数学数学,语文语文)因此该关系模式中存在传递函数信赖,是因此该关系模式中存在传递函数信赖,是2NF关系。关系。 虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩,为提高效率,我们仍然可保留该冗余数据,对关系学生的平均成绩,为提高效率,我们仍然可保留该冗余数据,对关系模式不再做进一步分解。模式不再做进一步分解。2006年4月12日115安财信工学院计算机系数据模型的优化(续)数据模型的优化(续) 按照需求分析阶段得到的各种应用对数据处按照需求分
118、析阶段得到的各种应用对数据处理的要求,对关系模式进行必要的分解或合理的要求,对关系模式进行必要的分解或合并,以提高数据操作的效率和存储空间的利并,以提高数据操作的效率和存储空间的利用率用率n常用分解方法常用分解方法n水平分解水平分解n垂直分解垂直分解2006年4月12日116安财信工学院计算机系n什么是水平分解?什么是水平分解?n把把(基基本本)关关系系的的元元组组分分为为若若干干子子集集合合,定定义义每每个个子子集集合合为为一一个子关系,以提高系统的效率。个子关系,以提高系统的效率。n水平分解的适用范围水平分解的适用范围n1. 满足满足“80/20原则原则”的应用的应用n80/20原则:一个
119、大关系中,经常被使用的数据只是关系的一部原则:一个大关系中,经常被使用的数据只是关系的一部分,约分,约20%n把把经经常常使使用用的的数数据据分分解解出出来来,形形成成一一个个子子关关系系,可可以以减减少少查查询询的的数据量。数据量。n2. 并发事务经常存取不相交的数据并发事务经常存取不相交的数据n如如果果关关系系R上上具具有有n个个事事务务,而而且且多多数数事事务务存存取取的的数数据据不不相相交交,则则R可可分分解解为为少少于于或或等等于于n个个子子关关系系,使使每每个个事事务务存存取取的的数数据据对对应一个关系。应一个关系。水平分解水平分解2006年4月12日117安财信工学院计算机系垂直
120、分解垂直分解n什么是垂直分解什么是垂直分解n把关系模式把关系模式R的属性分解为若干子集合,形成若干子关系模式。的属性分解为若干子集合,形成若干子关系模式。n垂直分解的原则垂直分解的原则n经常在一起使用的属性从经常在一起使用的属性从R中分解出来形成一个子关系模式。中分解出来形成一个子关系模式。n垂直分解的优点垂直分解的优点n可以提高某些事务的效率可以提高某些事务的效率n垂直分解的缺点垂直分解的缺点n可能使另一些事务不得不执行连接操作,从而降低了效率。可能使另一些事务不得不执行连接操作,从而降低了效率。n垂直分解的适用范围垂直分解的适用范围n取决于分解后取决于分解后R上的所有事务的总效率是否得到了
121、提高。上的所有事务的总效率是否得到了提高。n进行垂直分解的方法进行垂直分解的方法n简单情况:直观分解简单情况:直观分解n复杂情况:用第五章中的模式分解算法复杂情况:用第五章中的模式分解算法n垂垂直直分分解解必必须须不不损损失失关关系系模模式式的的语语义义(保保持持无无损损连连接接性性和和保保持持函函数数依依赖赖)。2006年4月12日118安财信工学院计算机系6.4.4 设计用户子模式设计用户子模式n定义数据库模式主要是从系统的时间效率、空间效率、定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。定义用户外模式时应该更注重考易维护等角度出发。定义用户外模式时应该更注重考虑用户的
122、习惯与方便。包括三个方面:虑用户的习惯与方便。包括三个方面: (1)使用更符合用户习惯的别名使用更符合用户习惯的别名 (2) 针对不同级别的用户定义不同的外模式,以满足系针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。统对安全性的要求。 (3) 简化用户对系统的使用简化用户对系统的使用 2006年4月12日119安财信工学院计算机系逻辑结构设计小结逻辑结构设计小结n任务任务n将概念结构转化为具体的数据模型将概念结构转化为具体的数据模型n逻辑结构设计的步骤逻辑结构设计的步骤n将概念结构转化为一般的关系、网状、层次模将概念结构转化为一般的关系、网状、层次模型型n将转化来的关系、网状、
123、层次模型向特定将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换支持下的数据模型转换n对数据模型进行优化对数据模型进行优化n设计用户子模式设计用户子模式2006年4月12日120安财信工学院计算机系逻辑结构设计小结逻辑结构设计小结nE-R图向关系模型的转换原则图向关系模型的转换原则 一个一个实体型实体型转换为一个关系模式。转换为一个关系模式。 一个一个m:n联系联系转换为一个关系模式。转换为一个关系模式。 一个一个1:n联系联系可以转换为一个独立的关系模式,也可以与可以转换为一个独立的关系模式,也可以与n端对应端对应的关系模式合并。的关系模式合并。 一个一个1:1联系联系可以转换
124、为一个独立的关系模式,也可以与任意一可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。端对应的关系模式合并。 三个或三个以上实体间的一个三个或三个以上实体间的一个多元联系多元联系转换为一个关系模式。转换为一个关系模式。 同一实体集的实体间的联系,即同一实体集的实体间的联系,即自联系自联系,也可按上述,也可按上述1:1、1:n和和m:n三种情况分别处理。三种情况分别处理。 具有具有相同码相同码的关系模式可合并。的关系模式可合并。2006年4月12日121安财信工学院计算机系逻辑结构设计小结逻辑结构设计小结n优化数据模型的方法优化数据模型的方法 确定数据依赖确定数据依赖 对于各个关
125、系模式之间的数据依赖进行极小对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。化处理,消除冗余的联系。 确定各关系模式分别属于第几范式。确定各关系模式分别属于第几范式。 分析对于应用环境这些模式是否合适,确定分析对于应用环境这些模式是否合适,确定是否要对它们进行合并或分解。是否要对它们进行合并或分解。 对关系模式进行必要的分解或合并对关系模式进行必要的分解或合并2006年4月12日122安财信工学院计算机系逻辑结构设计小结逻辑结构设计小结n设计用户子模式设计用户子模式1. 使用更符合用户习惯的别名使用更符合用户习惯的别名2. 针对不同级别的用户定义不同的外模式,以针对不同级别的用户
126、定义不同的外模式,以满足系统对安全性的要求。满足系统对安全性的要求。3. 简化用户对系统的使用简化用户对系统的使用2006年4月12日123安财信工学院计算机系6.5 数据库的物理设计数据库的物理设计n什么是数据库的物理设计什么是数据库的物理设计n数据库在物理设备上的存储结构与存取方法数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计称为数据库的物理结构,它依赖于给定的计算机系统。算机系统。n为一个给定的逻辑数据模型选取一个最适合为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的应用环境的物理结构的过程,就是数据库的物理设计。物理设计。200
127、6年4月12日124安财信工学院计算机系6.5 数据库的物理设计数据库的物理设计n数据库物理设计的步骤数据库物理设计的步骤n确定数据库的物理结构确定数据库的物理结构n对物理结构进行评价,评价的重点是时间和对物理结构进行评价,评价的重点是时间和空间效率空间效率n如果评价结果满足原设计要求则可进入到物如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修物理结构,有时甚至要返回逻辑设计阶段修改数据模型。改数据模型。2006年4月12日125安财信工学院计算机系 数据库物理设计数据库物理设计确定数确定数
128、据库的据库的物理结物理结构构评价数据评价数据库的物理库的物理结构结构逻辑结逻辑结构设计构设计数据库数据库实施实施物理物理模型模型逻辑逻辑模型模型2006年4月12日126安财信工学院计算机系6.5.1 数据库的物理设计的内容和方法数据库的物理设计的内容和方法n设计物理数据库结构的准备工作设计物理数据库结构的准备工作n 1. 充分了解应用环境,详细分析要运行的充分了解应用环境,详细分析要运行的事务,以获得选择物理数据库设计所需参数事务,以获得选择物理数据库设计所需参数n 2. 充分了解所用充分了解所用RDBMS的内部特征,特别的内部特征,特别是系统提供的存取方法和存储结构是系统提供的存取方法和存
129、储结构2006年4月12日127安财信工学院计算机系选择物理数据库设计所需参数选择物理数据库设计所需参数n数据库查询事务数据库查询事务n查询的关系查询的关系n 查询条件所涉及的属性查询条件所涉及的属性n 连接条件所涉及的属性连接条件所涉及的属性n 查询的投影属性查询的投影属性n数据更新事务数据更新事务n被更新的关系被更新的关系n每个关系上的更新操作条件所涉及的属性每个关系上的更新操作条件所涉及的属性n 修改操作要改变的属性值修改操作要改变的属性值n 每个事务在各关系上运行的频率和性能要求每个事务在各关系上运行的频率和性能要求 2006年4月12日128安财信工学院计算机系关系数据库物理设计的内
130、容关系数据库物理设计的内容n1. 为关系模式选择为关系模式选择存取方法存取方法(建立存取路径建立存取路径)n2. 设计关系、索引等数据库文件的设计关系、索引等数据库文件的物理存物理存储结构储结构2006年4月12日129安财信工学院计算机系6.5.2 关系模式存取方法选择关系模式存取方法选择n数据库系统是多用户共享的系统,对同一个关系要建数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。立多条存取路径才能满足多用户的多种应用要求。n物理设计的第一个任务就是要确定选择哪些存取方法,物理设计的第一个任务就是要确定选择哪些存取方法,即建立哪些存取路径。即建立哪
131、些存取路径。nDBMS常用存取方法常用存取方法n索引方法,目前主要是索引方法,目前主要是B+树索引方法树索引方法n聚簇(聚簇(Cluster)方法)方法nHASH方法方法2006年4月12日130安财信工学院计算机系一、索引存取方法的选择一、索引存取方法的选择n选择索引存取方法的主要内容选择索引存取方法的主要内容根据应用要求确定根据应用要求确定n 对哪些属性列建立索引对哪些属性列建立索引n 对哪些属性列建立组合索引对哪些属性列建立组合索引n 对哪些索引要设计为唯一索引对哪些索引要设计为唯一索引2006年4月12日131安财信工学院计算机系选择索引存取方法的一般规则选择索引存取方法的一般规则1.
132、如果一个如果一个(或一组或一组)属性经常在查询条件中出现,则属性经常在查询条件中出现,则考虑在这个考虑在这个(或这组或这组)属性上建立索引属性上建立索引(或组合索引或组合索引)2.如果一个属性经常作为最大值和最小值等聚集函数如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引的参数,则考虑在这个属性上建立索引3.如果一个如果一个(或一组或一组)属性经常在连接操作的连接条件属性经常在连接操作的连接条件中出现,则考虑在这个中出现,则考虑在这个(或这组或这组)属性上建立索引属性上建立索引4.关系上定义的索引数过多会带来较多的额外开销关系上定义的索引数过多会带来较多的额外开销
133、n 维护索引的开销维护索引的开销n 查找索引的开销查找索引的开销2006年4月12日132安财信工学院计算机系二、聚簇存取方法的选择二、聚簇存取方法的选择n什么是聚簇?什么是聚簇?n为了提高某个属性(或属性组)的查询速度,为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚同值的元组集中存放在连续的物理块称为聚簇簇n许多关系型许多关系型DBMS都提供了聚簇功能都提供了聚簇功能n聚簇存放与聚簇索引的区别聚簇存放与聚簇索引的区别2006年4月12日133安财信工学院计算机系建立建立聚簇聚簇索引索引
134、n聚簇索引聚簇索引n建建立立聚聚簇簇索索引引后后,基基表表中中数数据据也也需需要要按按指指定定的的聚聚簇簇属属性性值值的的升升序序或或降降序序存存放放。也也即即聚聚簇簇索索引引的的索索引引项项顺顺序序与表中元组的物理顺序一致。与表中元组的物理顺序一致。例:例:CREATE CLUSTER INDEX Stusname ON Student(Sname); 在在Student表表的的Sname(姓姓名名)列列上上建建立立一一个个聚聚簇簇索索引引,而且,而且Student表中的记录表中的记录将按照将按照Sname值的升序存放值的升序存放 n在一个基本表上最多只能建立一个聚簇索引在一个基本表上最多只
135、能建立一个聚簇索引n聚簇索引的用途:对于某些类型的查询,可以提聚簇索引的用途:对于某些类型的查询,可以提高查询效率高查询效率n聚簇索引的适用范围聚簇索引的适用范围n 很少对基表进行增删操作很少对基表进行增删操作n 很少对其中的变长列进行修改操作很少对其中的变长列进行修改操作 2006年4月12日134安财信工学院计算机系聚簇的用途聚簇的用途n1. 大大提高按聚簇属性进行查询的效率大大提高按聚簇属性进行查询的效率例:假设学生关系按所在系建有索引,现在要查询信息系例:假设学生关系按所在系建有索引,现在要查询信息系的所有学生名单。的所有学生名单。n信息系的信息系的500名学生分布在名学生分布在500
136、个不同的物理块上时,个不同的物理块上时,至少要执行至少要执行500次次I/O操作。操作。n如果将同一系的学生元组集中存放,则每读一个物理如果将同一系的学生元组集中存放,则每读一个物理块可得到多个满足查询条件的元组,从而显著地减少块可得到多个满足查询条件的元组,从而显著地减少了访问磁盘的次数。了访问磁盘的次数。n2. 节省存储空间节省存储空间n聚簇以后,聚簇码相同的元组集中在一起了,因而聚聚簇以后,聚簇码相同的元组集中在一起了,因而聚簇码值不必在每个元组中重复存储,只要在一组中存簇码值不必在每个元组中重复存储,只要在一组中存一次就行了一次就行了2006年4月12日135安财信工学院计算机系聚簇的
137、局限性聚簇的局限性n1. 聚簇只能提高某些特定应用的性能聚簇只能提高某些特定应用的性能n2. 建立与维护聚簇的开销相当大建立与维护聚簇的开销相当大n对已有关系建立聚簇,将导致关系中对已有关系建立聚簇,将导致关系中元组移动其物理存储位置,并使此关元组移动其物理存储位置,并使此关系上原有的索引无效,必须重建。系上原有的索引无效,必须重建。n当一个元组的聚簇码改变时,该元组当一个元组的聚簇码改变时,该元组的存储位置也要做相应移动。的存储位置也要做相应移动。2006年4月12日136安财信工学院计算机系聚簇的适用范围聚簇的适用范围n1. 既适用于单个关系独立聚簇,也适用于多个关系组合既适用于单个关系独
138、立聚簇,也适用于多个关系组合聚簇聚簇n例:假设用户经常要按系别查询学生成绩单,这一查询涉及学例:假设用户经常要按系别查询学生成绩单,这一查询涉及学生关系和选修关系的连接操作,即需要按学号连接这两个关系,生关系和选修关系的连接操作,即需要按学号连接这两个关系,为提高连接操作的效率,可以把具有相同学号值的学生元组和选为提高连接操作的效率,可以把具有相同学号值的学生元组和选修元组在物理上聚簇在一起。这就相当于把多个关系按修元组在物理上聚簇在一起。这就相当于把多个关系按“预连接预连接”的形式存放,从而大大提高连接操作的效率。的形式存放,从而大大提高连接操作的效率。n2. 当通过聚簇码进行访问或连接是该
139、关系的主要应用,当通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无关的其他访问很少或者是次要的时,可以使与聚簇码无关的其他访问很少或者是次要的时,可以使用聚簇。用聚簇。n尤其当尤其当SQL语句中包含有与聚簇码有关的语句中包含有与聚簇码有关的ORDER BY,GROUP BY,UNION,DISTINCT等子句或短语等子句或短语时,使用聚簇特别有利,可以省去对结果集的排序操时,使用聚簇特别有利,可以省去对结果集的排序操作作2006年4月12日137安财信工学院计算机系选择聚簇存取方法选择聚簇存取方法n1. 设计候选聚簇设计候选聚簇n对经常在一起进行连接操作的关系可以建立组合聚簇;对经常在一
140、起进行连接操作的关系可以建立组合聚簇;n如果一个关系的一组属性经常出现在相等比较条件中,如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚簇;则该单个关系可建立聚簇;n如果一个关系的一个如果一个关系的一个(或一组或一组)属性上的值重复率很高,属性上的值重复率很高,则此单个关系可建立聚簇。即对应每个聚簇码值的平均则此单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不太少。太少了,聚簇的效果不明显。元组数不太少。太少了,聚簇的效果不明显。n2. 检查候选聚簇中的关系,取消其中不必要的关系检查候选聚簇中的关系,取消其中不必要的关系n从独立聚簇中删除经常进行全表扫描的关系;从独立聚
141、簇中删除经常进行全表扫描的关系;n从独立从独立/组合聚簇中删除更新操作远多于查询操作的关系;组合聚簇中删除更新操作远多于查询操作的关系;n从独立从独立/组合聚簇中删除重复出现的关系组合聚簇中删除重复出现的关系n当一个关系同时加入多个聚簇时,必须从这多个聚簇当一个关系同时加入多个聚簇时,必须从这多个聚簇方案方案(包括不建立聚簇包括不建立聚簇)中选择一个较优的,即在这个中选择一个较优的,即在这个聚簇上运行各种事务的总代价最小。聚簇上运行各种事务的总代价最小。2006年4月12日138安财信工学院计算机系三、三、HASH存取方法的选择存取方法的选择n选择选择HASH存取方法的规则存取方法的规则n当一
142、个关系满足下列两个条件时,可以选择当一个关系满足下列两个条件时,可以选择HASH存取方法存取方法n该关系的属性主要出现在该关系的属性主要出现在等值连接等值连接条件中条件中或主要出现在或主要出现在相等比较相等比较选择条件中选择条件中n该关系的大小可预知,而且不变;该关系的大小可预知,而且不变; 或或 该关系的大小动态改变,但所选用的该关系的大小动态改变,但所选用的DBMS提供了动态提供了动态HASH存取方法。存取方法。2006年4月12日139安财信工学院计算机系6.5.3 确定数据库的存储结构确定数据库的存储结构n确定数据库物理结构的内容确定数据库物理结构的内容n1. 确定数据的存放位置和存储
143、结构确定数据的存放位置和存储结构n 关系关系n 索引索引n 聚簇聚簇n 日志日志n 备份备份n2. 确定系统配置确定系统配置2006年4月12日140安财信工学院计算机系1. 确定数据的存放位置确定数据的存放位置n影响数据存放位置和存储结构的因素影响数据存放位置和存储结构的因素n硬件环境硬件环境n应用需求应用需求n存取时间存取时间n存储空间利用率存储空间利用率n维护代价维护代价 这三个方面常常是相互矛盾的这三个方面常常是相互矛盾的 例:消除一切冗余数据虽能够节约存储空间和减少维护代价,但往往会例:消除一切冗余数据虽能够节约存储空间和减少维护代价,但往往会导致检索代价的增加导致检索代价的增加 必
144、须进行权衡,选择一个折中方案必须进行权衡,选择一个折中方案。n基本原则基本原则n根据应用情况将根据应用情况将n易变易变部分与部分与稳定稳定部分部分n存取频率较高存取频率较高部分与部分与存取频率较低存取频率较低部分部分 分开存放,以提高系统性能分开存放,以提高系统性能2006年4月12日141安财信工学院计算机系例:例:n数据库数据备份、日志文件备份等由于只在故数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而且数据量很大,可以考虑障恢复时才使用,而且数据量很大,可以考虑存放在磁带上。存放在磁带上。n如果计算机有多个磁盘,可以考虑将表和索引如果计算机有多个磁盘,可以考虑将表和索引分别放在
145、不同的磁盘上,在查询时,由于两个分别放在不同的磁盘上,在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。写速度比较快。n可以将比较大的表分别放在两个磁盘上,以加可以将比较大的表分别放在两个磁盘上,以加快存取速度,这在多用户环境下特别有效。快存取速度,这在多用户环境下特别有效。n可以将日志文件与数据库对象(表、索引等)可以将日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能。放在不同的磁盘以改进系统的性能。2006年4月12日142安财信工学院计算机系2. 确定系统配置确定系统配置nDBMS产品一般都提供了一些存储分配参
146、数产品一般都提供了一些存储分配参数n 同时使用数据库的用户数同时使用数据库的用户数n 同时打开的数据库对象数同时打开的数据库对象数n 使用的缓冲区长度、个数使用的缓冲区长度、个数n 时间片大小时间片大小n 数据库的大小数据库的大小n 装填因子装填因子n 锁的数目锁的数目n 等等等等2006年4月12日143安财信工学院计算机系确定系统配置(续)确定系统配置(续)n系统都为这些变量赋予了合理的缺省值。但是系统都为这些变量赋予了合理的缺省值。但是这些值不一定适合每一种应用环境,在进行物这些值不一定适合每一种应用环境,在进行物理设计时,需要根据应用环境确定这些参数值,理设计时,需要根据应用环境确定这
147、些参数值,以使系统性能最优。以使系统性能最优。 n在物理设计时对系统配置变量的调整只是初步在物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据系统实际运行情况的,在系统运行时还要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。做进一步的调整,以期切实改进系统性能。2006年4月12日144安财信工学院计算机系6.5.4 评价物理结构评价物理结构n评价内容评价内容n对数据库物理设计过程中产生的多种方案进对数据库物理设计过程中产生的多种方案进行细致的评价,从中选择一个较优的方案作行细致的评价,从中选择一个较优的方案作为数据库的物理结构为数据库的物理结构2006年4月12日14
148、5安财信工学院计算机系评价物理结构评价物理结构方法方法n定量估算各种方案定量估算各种方案n 存储空间存储空间n 存取时间存取时间n 维护代价维护代价n对估算结果进行权衡、比较,选择出一个较优的对估算结果进行权衡、比较,选择出一个较优的合理的物理结构合理的物理结构n如果该结构不符合用户需求,则需要修改设计如果该结构不符合用户需求,则需要修改设计2006年4月12日146安财信工学院计算机系6.6 数据库的实施数据库的实施n数据库实施的工作内容数据库实施的工作内容n用用DDL定义数据库结构定义数据库结构n组织数据入库组织数据入库n编制与调试应用程序编制与调试应用程序n数据库试运行数据库试运行200
149、6年4月12日147安财信工学院计算机系数据库实施数据库实施定义数定义数据库结据库结构构数据数据装载装载数据库数据库试运行试运行数据库物数据库物理设计理设计数据库运数据库运行和维护行和维护物理物理模型模型编制与编制与调试应调试应用程序用程序数据库数据库系统系统2006年4月12日148安财信工学院计算机系一、定义数据库结构一、定义数据库结构n确定了数据库的逻辑结构与物理结构后,就可以用确定了数据库的逻辑结构与物理结构后,就可以用所选用的所选用的DBMS提供的数据定义语言(提供的数据定义语言(DDL)来严格来严格描述数据库结构。描述数据库结构。例例,对于前面的例子,可以用,对于前面的例子,可以用
150、SQL语句语句如下定义表结构:如下定义表结构:CREATE TABLE 学生学生 (学号学号 CHAR(8), );CREATE TABLE 课程课程 ( ); 接下来是在这些基本表上定义接下来是在这些基本表上定义视图:视图:CREATE VIEW . ( ); 如果需要使用聚簇,在建基如果需要使用聚簇,在建基本表之前,应先用本表之前,应先用CREATE CLUSTER语句定义聚族。语句定义聚族。2006年4月12日149安财信工学院计算机系二、数据装载二、数据装载n数据库结构建立好后,就可以向数据库中装载数据库结构建立好后,就可以向数据库中装载数据了。组织数据入库是数据库实施阶段最主数据了。
151、组织数据入库是数据库实施阶段最主要的工作。要的工作。n数据装载方法数据装载方法n人工方法人工方法n计算机辅助数据入库计算机辅助数据入库2006年4月12日150安财信工学院计算机系数据装载数据装载人工方法:适用于小型系统人工方法:适用于小型系统n步骤步骤1) 筛选数据筛选数据。需要装入数据库中的数据通常都分散。需要装入数据库中的数据通常都分散在各个部门的数据文件或原始凭证中,所以首先必在各个部门的数据文件或原始凭证中,所以首先必须把需要入库的数据筛选出来。须把需要入库的数据筛选出来。2) 转换数据格式转换数据格式。筛选出来的需要入库的数据,其。筛选出来的需要入库的数据,其格式往往不符合数据库要
152、求,还需要进行转换。这格式往往不符合数据库要求,还需要进行转换。这种转换有时可能很复杂。种转换有时可能很复杂。 3) 输入数据输入数据。将转换好的数据输入计算机中。将转换好的数据输入计算机中。 4) 校验数据校验数据。检查输入的数据是否有误。检查输入的数据是否有误。2006年4月12日151安财信工学院计算机系数据装载数据装载计算机辅助数据入库:计算机辅助数据入库:适用于中大型系统适用于中大型系统n步骤步骤1) 筛选数据筛选数据2) 输入数据输入数据。由录入员将原始数据直接输入计算机中。由录入员将原始数据直接输入计算机中。数据输入子系统应提供输入界面。数据输入子系统应提供输入界面。3) 校验数
153、据校验数据。数据输入子系统采用多种检验技术检查输。数据输入子系统采用多种检验技术检查输入数据的正确性。入数据的正确性。4) 转换数据转换数据。数据输入子系统根据数据库系统的要求,从。数据输入子系统根据数据库系统的要求,从录入的数据中录入的数据中抽取抽取有用成分,对其进行有用成分,对其进行分类分类,然后,然后转换转换数据格式。抽取、分类和转换数据是数据输入子系统的数据格式。抽取、分类和转换数据是数据输入子系统的主要工作,也是数据输入子系统的复杂性所在。主要工作,也是数据输入子系统的复杂性所在。5) 综合数据综合数据。数据输入子系统对转换好的数据根据系统。数据输入子系统对转换好的数据根据系统的要求
154、进一步综合成最终数据的要求进一步综合成最终数据。2006年4月12日152安财信工学院计算机系新老系统数据转换新老系统数据转换n如果数据库是在老的文件系统或数据库系统如果数据库是在老的文件系统或数据库系统的基础上设计的,则数据输入子系统只需要的基础上设计的,则数据输入子系统只需要完成转换数据、综合数据两项工作,直接将完成转换数据、综合数据两项工作,直接将老系统中的数据转换成新系统中需要的数据老系统中的数据转换成新系统中需要的数据格式。格式。n为了保证数据能够及时入库,应在数据库物为了保证数据能够及时入库,应在数据库物理设计的同时编制数据输入子系统。理设计的同时编制数据输入子系统。2006年4月
155、12日153安财信工学院计算机系三、编制与调试应用程序三、编制与调试应用程序n数据库应用程序的设计应该与数据设计数据库应用程序的设计应该与数据设计并行进行。并行进行。n在数据库实施阶段,当数据库结构建立在数据库实施阶段,当数据库结构建立好后,就可以开始编制与调试数据库的好后,就可以开始编制与调试数据库的应用程序。调试应用程序时由于数据入应用程序。调试应用程序时由于数据入库尚未完成,可先使用模拟数据。库尚未完成,可先使用模拟数据。2006年4月12日154安财信工学院计算机系四、数据库试运行四、数据库试运行n应用程序调试完成,并且已有一小部分数据入库应用程序调试完成,并且已有一小部分数据入库后,
156、就可以开始数据库的试运行。后,就可以开始数据库的试运行。n数据库试运行也称为联合调试,其主要工作包括:数据库试运行也称为联合调试,其主要工作包括:1)功能测试功能测试:实际运行应用程序,执行对数据:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。库的各种操作,测试应用程序的各种功能。2)性能测试性能测试:测量系统的性能指标,分析是否:测量系统的性能指标,分析是否符合设计目标符合设计目标。2006年4月12日155安财信工学院计算机系数据库试运行数据库试运行数据库性能指标的测量数据库性能指标的测量n数据库物理设计阶段在评价数据库结构估算时间、数据库物理设计阶段在评价数据库结构估
157、算时间、空间指标时,作了许多简化和假设,忽略了许多次空间指标时,作了许多简化和假设,忽略了许多次要因素,因此结果必然很粗糙。要因素,因此结果必然很粗糙。n数据库试运行则是要实际测量系统的各种性能指标数据库试运行则是要实际测量系统的各种性能指标(不仅是时间、空间指标),如果结果不符合设计(不仅是时间、空间指标),如果结果不符合设计目标,则需要返回物理设计阶段,调整物理结构,目标,则需要返回物理设计阶段,调整物理结构,修改参数;有时甚至需要返回逻辑设计阶段,调整修改参数;有时甚至需要返回逻辑设计阶段,调整逻辑结构。逻辑结构。2006年4月12日156安财信工学院计算机系数据库试运行数据库试运行数据
158、的分期入库数据的分期入库n重新设计物理结构甚至逻辑结构,会导致重新设计物理结构甚至逻辑结构,会导致数据重新入库。数据重新入库。n由于数据入库工作量实在太大,所以可以由于数据入库工作量实在太大,所以可以采用分期输入数据的方法采用分期输入数据的方法n先输入小批量数据供先期联合调试使用先输入小批量数据供先期联合调试使用n待试运行基本合格后再输入大批量数据待试运行基本合格后再输入大批量数据n逐步增加数据量,逐步完成运行评价逐步增加数据量,逐步完成运行评价2006年4月12日157安财信工学院计算机系数据库试运行数据库试运行数据库的转储和恢复数据库的转储和恢复n在数据库试运行阶段,系统还不稳定,在数据库
159、试运行阶段,系统还不稳定,硬、软件故障随时都可能发生硬、软件故障随时都可能发生n系统的操作人员对新系统还不熟悉,误系统的操作人员对新系统还不熟悉,误操作也不可避免操作也不可避免n因此必须做好数据库的转储和恢复工作,因此必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏。尽量减少对数据库的破坏。2006年4月12日158安财信工学院计算机系6.7 数据库运行与维护数据库运行与维护n数据库试运行结果符合设计目标后,数据库就数据库试运行结果符合设计目标后,数据库就可以真正投入运行了。可以真正投入运行了。n数据库投入运行标着开发任务的基本完成和维数据库投入运行标着开发任务的基本完成和维护工作的开始
160、护工作的开始n对数据库设计进行评价、调整、修改等维护工对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和作是一个长期的任务,也是设计工作的继续和提高。提高。n应用环境在不断变化应用环境在不断变化n数据库运行过程中物理存储会不断变化数据库运行过程中物理存储会不断变化2006年4月12日159安财信工学院计算机系n在数据库运行阶段,对数据库经常性的维护工作主在数据库运行阶段,对数据库经常性的维护工作主要是由要是由DBA完成的,包括:完成的,包括: 数据库的转储和恢复数据库的转储和恢复n转储和恢复是系统正式运行后最重要的维护工转储和恢复是系统正式运行后最重要的维护工作之
161、一。作之一。nDBA要针对不同的应用要求制定不同的转储计要针对不同的应用要求制定不同的转储计划,定期对数据库和日志文件进行备份。划,定期对数据库和日志文件进行备份。n一旦发生介质故障,即利用数据库备份及日志一旦发生介质故障,即利用数据库备份及日志文件备份,尽快将数据库恢复到某种一致性状文件备份,尽快将数据库恢复到某种一致性状态。态。2006年4月12日160安财信工学院计算机系数据库的安全性、完整性控制数据库的安全性、完整性控制nDBA必须根据用户的实际需要授予不同的操必须根据用户的实际需要授予不同的操作权限作权限n在数据库运行过程中,由于应用环境的变化,在数据库运行过程中,由于应用环境的变化
162、,对安全性的要求也会发生变化,对安全性的要求也会发生变化,DBA需要根需要根据实际情况修改原有的安全性控制。据实际情况修改原有的安全性控制。n由于应用环境的变化,数据库的完整性约束条由于应用环境的变化,数据库的完整性约束条件也会变化,也需要件也会变化,也需要DBA不断修正,以满足不断修正,以满足用户要求。用户要求。2006年4月12日161安财信工学院计算机系数据库性能的监督、分析和改进数据库性能的监督、分析和改进n在数据库运行过程中,在数据库运行过程中, DBA必须监督系统运必须监督系统运行,对监测数据进行分析,找出改进系统性能行,对监测数据进行分析,找出改进系统性能的方法。的方法。n利用监
163、测工具获取系统运行过程中一系列利用监测工具获取系统运行过程中一系列性能参数的值性能参数的值n通过仔细分析这些数据,判断当前系统是通过仔细分析这些数据,判断当前系统是否处于最佳运行状态否处于最佳运行状态n如果不是,则需要通过调整某些参数来进如果不是,则需要通过调整某些参数来进一步改进数据库性能一步改进数据库性能2006年4月12日162安财信工学院计算机系数据库的重组织和重构造数据库的重组织和重构造1)数据库的重组织)数据库的重组织n为什么要重组织数据库为什么要重组织数据库n数据库运行一段时间后,由于记录的不断增、删、改,会使数据库的物理数据库运行一段时间后,由于记录的不断增、删、改,会使数据库
164、的物理存储变坏,从而降低数据库存储空间的利用率和数据的存取效率,使数据存储变坏,从而降低数据库存储空间的利用率和数据的存取效率,使数据库的性能下降。库的性能下降。n重组织的形式重组织的形式n全部重组织全部重组织n部分重组织部分重组织n只对频繁增、删的表进行重组织只对频繁增、删的表进行重组织n重组织的目标重组织的目标n提高系统性能提高系统性能n重组织的工作重组织的工作n按原设计要求按原设计要求n重新安排存储位置重新安排存储位置n回收垃圾回收垃圾n减少指针链减少指针链n数据库的重组织不会改变原设计的数据逻辑结构和物理结构数据库的重组织不会改变原设计的数据逻辑结构和物理结构nDBMS一般都提供了供重
165、组织数据库使用的实用程序,帮助一般都提供了供重组织数据库使用的实用程序,帮助DBA重新组织重新组织数据库。数据库。2006年4月12日163安财信工学院计算机系2)数据库的重构造)数据库的重构造n为什么要进行数据库的重构造为什么要进行数据库的重构造n数据库应用环境发生变化,会导致实体及实体间的联系也发生数据库应用环境发生变化,会导致实体及实体间的联系也发生相应的变化,使原有的数据库设计不能很好地满足新的需求相应的变化,使原有的数据库设计不能很好地满足新的需求n增加新的应用或新的实体增加新的应用或新的实体n取消某些已有应用取消某些已有应用n改变某些已有应用改变某些已有应用n数据库重构造的主要工作
166、数据库重构造的主要工作n根据新环境调整数据库的模式和内模式根据新环境调整数据库的模式和内模式n增加新的数据项增加新的数据项n改变数据项的类型改变数据项的类型n改变数据库的容量改变数据库的容量n增加或删除索引增加或删除索引n修改完整性约束条件修改完整性约束条件2006年4月12日164安财信工学院计算机系n重构造数据库的程度是有限的重构造数据库的程度是有限的n若应用变化太大,已无法通过重构数据库来若应用变化太大,已无法通过重构数据库来满足新的需求,或重构数据库的代价太大,满足新的需求,或重构数据库的代价太大,则表明现有数据库应用系统的生命周期已经则表明现有数据库应用系统的生命周期已经结束,应该重
167、新设计新的数据库系统,开始结束,应该重新设计新的数据库系统,开始新数据库应用系统的生命周期了。新数据库应用系统的生命周期了。2006年4月12日165安财信工学院计算机系本章小结本章小结n数据库的设计过程数据库的设计过程n需求分析需求分析n概念结构设计概念结构设计n逻辑结构设计逻辑结构设计n物理设计物理设计n实施实施n运行维护运行维护设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。2006年4月12日166安财信工学院计算机系小结小结n数据库各级模式的形成数据库各级模式的形成n数据库的各级模式是在设计过程中逐步形成数据库的各级模式是在设计过程中逐步形成的的n需求分析阶段综合各个用户
168、的应用需求(现需求分析阶段综合各个用户的应用需求(现实世界的需求)。实世界的需求)。n概念设计阶段形成独立于机器特点、独立于概念设计阶段形成独立于机器特点、独立于各个各个DBMS产品的产品的概念模式概念模式(信息世界模型)(信息世界模型),用,用E-R图来描述。图来描述。2006年4月12日167安财信工学院计算机系小结小结n在逻辑设计阶段将在逻辑设计阶段将E-R图转换成具体的数据库图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库产品支持的数据模型如关系模型,形成数据库逻辑模式逻辑模式。然后根据用户处理的要求,安全性。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要
169、的视图的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的形成数据的外模式外模式。n在物理设计阶段根据在物理设计阶段根据DBMS特点和处理的需要,特点和处理的需要,进行物理存储安排,设计索引,形成数据库进行物理存储安排,设计索引,形成数据库内内模式模式。2006年4月12日168安财信工学院计算机系小结小结n整个数据库设计过程体现了结构特征与整个数据库设计过程体现了结构特征与行为特征的紧密结合。行为特征的紧密结合。2006年4月12日169安财信工学院计算机系小结小结n目前很多目前很多DBMS都提供了一些辅助工具(都提供了一些辅助工具(CASE工具),为加快数据库设计速度,设计人员可
170、工具),为加快数据库设计速度,设计人员可根据需要选用。根据需要选用。例如需求分析完成之后,设计人员可以使用例如需求分析完成之后,设计人员可以使用ORACLE DESIGNER 2000画画E-R图,将图,将E-R图转换为关系数据模型,生成数据库结图转换为关系数据模型,生成数据库结构;画数据流图,生成应用程序。构;画数据流图,生成应用程序。2006年4月12日170安财信工学院计算机系小结小结n利用利用CASE工具生成的仅仅是数据库应用系工具生成的仅仅是数据库应用系统的一个雏形,比较粗糙,数据库设计人员统的一个雏形,比较粗糙,数据库设计人员需要根据用户的应用需求进一步修改该雏形,需要根据用户的应用需求进一步修改该雏形,使之成为一个完善的系统。使之成为一个完善的系统。n早期就选择某种早期就选择某种CASE工具固然能减少数据工具固然能减少数据库设计的复杂性,加快数据库设计的速度,库设计的复杂性,加快数据库设计的速度,但往往容易将自己限制于某一个但往往容易将自己限制于某一个DBMS上,上,而不是根据概念设计的结果选择合适的而不是根据概念设计的结果选择合适的DBMS。2006年4月12日171