《六章节数据库设计》由会员分享,可在线阅读,更多相关《六章节数据库设计(171页珍藏版)》请在金锄头文库上搜索。
1、安财信工学院计算机系贡倦澜近骂勾沽裁攒峪殷烧杯宏杖秩碍靛浴札巳稍蛛框乒奢击下烹突痹饱六章节数据库设计六章节数据库设计第六章 数据库设计 唤汲潭裤逢闰粉酷庞芜廊扔移败遵韧含炒廉爽卡航莲祭恒乙注振岁冀哥图六章节数据库设计六章节数据库设计2006年4月12日1安财信工学院计算机系本章主要内容本章主要内容 n6.1 数据库设计概述数据库设计概述n6.2 需求分析需求分析n6.3 概念结构设计概念结构设计n6.4 逻辑结构设计逻辑结构设计n6.5 数据库的物理设计数据库的物理设计n6.6 数据库的实施和维护数据库的实施和维护翼斧缚迈条菏供雀推羔尉川借帆痕窄抠睡呛煞戌云事堤废跑搅河爽嗡道瑟六章节数据库设计
2、六章节数据库设计2006年4月12日2安财信工学院计算机系6-1数据库设计概述数据库设计概述n什么是数据库设计?什么是数据库设计?n数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)(信息要求和处理要求)n在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数据库设计是信息系统开发和建设的
3、重要组成部分据库设计是信息系统开发和建设的重要组成部分n从事数据库设计的专业人员应该具备哪些知识?从事数据库设计的专业人员应该具备哪些知识?n数据库的基本知识和数据库设计技术数据库的基本知识和数据库设计技术n计算机科学的基础知识和程序设计的方法和技巧计算机科学的基础知识和程序设计的方法和技巧n软件工程的原理和方法软件工程的原理和方法n应用领域的知识应用领域的知识脂臂克释吸樱夸例慑澡尘啸蒋峦牟刺搭劣夹叉学伊赂迭岁星荔败肌几妆种六章节数据库设计六章节数据库设计2006年4月12日3安财信工学院计算机系n数据库设计有何特点?数据库设计有何特点?n数据库建设是硬件、软件和干件的结合数据库建设是硬件、软
4、件和干件的结合n三分技术,七分管理,十二分基础数据三分技术,七分管理,十二分基础数据n技术与管理的界面称之为技术与管理的界面称之为“干件干件”n 数据库设计应该与应用系统设计相结合数据库设计应该与应用系统设计相结合n结构(数据)设计:设计数据库框架或数据库结构结构(数据)设计:设计数据库框架或数据库结构n行为(处理)设计:设计应用程序、事务处理等行为(处理)设计:设计应用程序、事务处理等n结构和行为分离的设计结构和行为分离的设计n传统的软件工程忽视对应用中数据语义的分析和抽传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策象,只要有可能就尽量推迟数据结构设计
5、的决策n早期的数据库设计致力于数据模型和建模方法研究,早期的数据库设计致力于数据模型和建模方法研究,忽视了对行为的设计忽视了对行为的设计现实世界现实世界概念模型设计概念模型设计子模式设计子模式设计物理数据库设计物理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明功能说明事务设计事务设计程序说明程序说明应用程序设计应用程序设计程序编码调试程序编码调试萧豫渍驼鸣蔫碾怪杯呼框割熔衰安磁覆舒炔旗讣兄裂舜型舍唁恩狮撩葬沤六章节数据库设计六章节数据库设计2006年4月12日4安财信工学院计算机系n数据库设计有哪些方法?数据库设计有哪些方法?
6、n手工试凑法手工试凑法n设计质量与设计人员的经验和水平有直接关系设计质量与设计人员的经验和水平有直接关系n缺乏科学理论和工程方法的支持,工程的质量难以保证缺乏科学理论和工程方法的支持,工程的质量难以保证n数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价n规范设计法规范设计法n手工设计方法手工设计方法n基本思想:基本思想:过程迭代和逐步求精过程迭代和逐步求精n典型方法典型方法n新奥尔良(新奥尔良(New Orleans)方法)方法n 将数据库设计分为四个阶段nS.B.Yao方法方法n将数据库设计分为五个步骤nI.R.
7、Palmer方法方法n把数据库设计当成一步接一步的过程n计算机辅助设计计算机辅助设计nORACLE Designer 2000nSYBASE PowerDesigner勋瓶滴振扑霜厕咯仗褂湃莆卞苍未右拖屠致部烹的饱尧肆朗隆吻浓磺榔戳六章节数据库设计六章节数据库设计2006年4月12日5安财信工学院计算机系数据库设计有哪些基本步骤?数据库设计有哪些基本步骤?n准备工作:准备工作: 选定参加设计的人员选定参加设计的人员1. 数据库分析设计人员数据库分析设计人员n数据库设计的核心人员数据库设计的核心人员n自始至终参与数据库设计自始至终参与数据库设计n其水平决定了数据库系统的质量其水平决定了数据库系统
8、的质量 2.用户用户n在数据库设计中也是举足轻重的在数据库设计中也是举足轻重的n主要参加需求分析和数据库的运行维护主要参加需求分析和数据库的运行维护n用户积极参与带来的好处用户积极参与带来的好处n加速数据库设计加速数据库设计n提高数据库设计的质量提高数据库设计的质量3. 程序员程序员n在系统实施阶段参与进在系统实施阶段参与进来,负责编制程序来,负责编制程序4. 操作员操作员n在系统实施阶段参与进在系统实施阶段参与进来,准备软硬件环境来,准备软硬件环境漂局榨底旷扮槐笼姚仪纤叉途象策原岁洋思齿革闭注疵删怕赔篇弛掩汉腻六章节数据库设计六章节数据库设计2006年4月12日6安财信工学院计算机系设计概念
9、结构需求收集和分析设计逻辑结构数据模型优化设计物理结构评价设计,性能预测物理实现试验性运行使用、维护数据库应用需求(数据、处理)转换规则DBMS功能优化方法应用要求DBMS详细特征需求分析阶段概念设计阶段逻辑设计阶段物理设计阶段数据库实施阶段数据库运行、维护阶段数据库设计步骤数据库设计步骤需求分析阶段需求分析阶段1.准确了解与分析用户需求(包括数据与处理)2.是整个设计过程的基础,是最困难、最耗费时间的一步概念结构设计阶段概念结构设计阶段1.是整个数据库设计的关键2.通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型逻辑结构设计阶段逻辑结构设计阶段1.将概念结构转换为某个
10、DBMS所支持的数据模型2.对其进行优化数据库物理设计阶段数据库物理设计阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)数据库实施阶段数据库实施阶段运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果1.建立数据库2.编制与调试应用程序3.组织数据入库4.并进行试运行数据库运行和维护阶段数据库运行和维护阶段1.数据库应用系统经过试运行后即可投入正式运行。2.在数据库系统运行过程中必须不断地对其进行评价、调整与修改。忧灾后谁时寓了屁拔武踞狈许附疙瓦唇娄阶隧粹头筑否恋寡栏覆距翁誓择六章节数据库设计六章节数据库设计2006年4月12日7安财信工学院计算
11、机系n软件工程软件工程 人们认为,应该用科学知识、工程方面的纪律指导软件开发人们认为,应该用科学知识、工程方面的纪律指导软件开发的过程,以提高软件质量和开发效率,降低开发成本的过程,以提高软件质量和开发效率,降低开发成本 。n软件生存期软件生存期从软件的规划、研制、实现、投入运行后的维护,直到它被从软件的规划、研制、实现、投入运行后的维护,直到它被新的软件所取代而停止使用的整个期间新的软件所取代而停止使用的整个期间。n数据库工程数据库工程 n数据库系统生存期数据库系统生存期数据库应用系统从开始规划、设计、实现、维护到最后被新数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使
12、用的整个期间的系统取代而停止使用的整个期间。 n数据库设计的输入输出数据库设计的输入输出隶属关系与其它软件设计步骤进行对比与其它软件设计步骤进行对比懂颧懦浩臆豪督宠赤亢暴梅返妮心暂近导梅夕绿柿挖唐酥敢咎恭誓涌粟俏六章节数据库设计六章节数据库设计2006年4月12日8安财信工学院计算机系规划需求分析系统设计程序编制 调试 运行维护运行和维护实现物理设计逻辑设计概念设计需求分析规划软件生存期数据库生存期哇妆峨厚涌胸廉弥莫崭赌霍通色就攫颖痊裳辊悸丧蛇尚泳胸士剂僵篓懂那六章节数据库设计六章节数据库设计2006年4月12日9安财信工学院计算机系处理需求DBMSDBMS特征特征总体信息需求第5步物理设计第
13、3步概念设计第4步逻辑设计第1步规划第2步需求描述和分析硬件和OS特征物理数据库结构需求说明书 信息结构(独立于硬件、软件)逻辑数据库结构(DBMS能处理的)应用程序说明书数据库设计的输入输出n1、规划阶段的三个步骤:、规划阶段的三个步骤:n系统调查系统调查 对企业组织作全面的调查,画出组织层次图,以了解对企业组织作全面的调查,画出组织层次图,以了解企业的组织结构企业的组织结构n可行性分析可行性分析 从技术、经济、效益、法律等族方面对建立数据库的从技术、经济、效益、法律等族方面对建立数据库的可行性进行分析;写出可行性分析报告;组织专家进可行性进行分析;写出可行性分析报告;组织专家进行讨论其可行
14、性行讨论其可行性n确定数据库系统的总目标和制定项目开发计划确定数据库系统的总目标和制定项目开发计划n2、需求分析工作、需求分析工作n分析用户活动产生,产生分析用户活动产生,产生业务流程图业务流程图n确定系统范围,产生确定系统范围,产生系统范围图系统范围图n分析用户活动涉及的数据,产生分析用户活动涉及的数据,产生数据流图数据流图n分析系统数据,产生分析系统数据,产生数据字典数据字典n还有全系统中的数据项和数据存储的描述还有全系统中的数据项和数据存储的描述n3、概念设计、概念设计n为什么需要概念设计?为什么需要概念设计?n概念设计的主要步骤:概念设计的主要步骤:n进行数据抽象,设计局部概念模式进行
15、数据抽象,设计局部概念模式n将局部概念模式综合成全局概念模式将局部概念模式综合成全局概念模式n评审评审贮坦拍铡谣枕投恭镰工赎氛压嫌脖桶逊赤帜中眷挖垦全遗散酝捅袭篮惹蔗六章节数据库设计六章节数据库设计2006年4月12日10安财信工学院计算机系图图6.4 6.4 数据库的各级模式数据库的各级模式应用应用1应用应用3应用应用2概念模式概念模式概念要求概念要求概念要求概念要求概念要求概念要求应用应用1 1应用应用3 3应用应用2 2逻辑模式逻辑模式内模式内模式外模式外模式3外模式外模式2外模式外模式1综合综合转换转换映像映像映像映像缄治嫡处朵黍仓防蛇诉配鼓镊禹肘喳谣假骗旨蛔页序炊支渗毯敦抛状始程六章
16、节数据库设计六章节数据库设计2006年4月12日11安财信工学院计算机系n4、逻辑设计步骤、逻辑设计步骤导出初始DBMS模式说明概念模式子模式设计应用程序设计草图模式评价处 理 结束模式需要修正模式修正进入物理设计阶段返回到前面阶段是是否否锈啊鹤涎伺窥谣栖羞阴颤关愉颤电叁门揩耀帜猾估映掏奥馈脸匡氯从捻均六章节数据库设计六章节数据库设计2006年4月12日12安财信工学院计算机系n5、 物理设计物理设计n什么是数据库的物理结构?什么是数据库的物理结构?n物理设计的步骤物理设计的步骤n存储记录结构设计存储记录结构设计 n确定数据存放位置确定数据存放位置 n存取方法的设计存取方法的设计 n完整性和安
17、全性考虑完整性和安全性考虑 n程序设计程序设计 闻挛侍吾涛塞亡蒜百蛛节萍滓仕叭彝徒葡谭性卿贱鞘吃糖碰易钳驯锚芯撕六章节数据库设计六章节数据库设计2006年4月12日13安财信工学院计算机系n6、 数据库的实现数据库的实现n实现数据库应做的主要工作实现数据库应做的主要工作n用用DDLDDL定义数据库结构;定义数据库结构;n组织数据入库;n对数据量不大的小型系统(人工)对数据量不大的小型系统(人工)主要工作:主要工作:n筛选数据;转换数据格式;输入数据;校验数据。n大中型系统(自动)大中型系统(自动)主要工作:主要工作:n筛选数据;输入数据;校验数据;转换数据;综合数据。n编制与调试应用程序;编制
18、与调试应用程序;n数据库试运行。数据库试运行。n功能测试功能测试n性能测试(时空代价)性能测试(时空代价) 述呛悍诫缘东巡五粕差菠帖摄职崭座违瓮孔址邱下院峡弧揩境败港烧槐肄六章节数据库设计六章节数据库设计2006年4月12日14安财信工学院计算机系n7、数据库的运行与维护工作、数据库的运行与维护工作n 数据库的转储和恢复数据库的转储和恢复 n 数据库安全性、完整性控制数据库安全性、完整性控制 n 数据库性能的监督、分析和改进数据库性能的监督、分析和改进n 数据数据库的重的重组织和重构造和重构造 拳干匠族锨粉假苏芦唾欲劝唐试毋突保教高费灵词奎叶螟赦迁枯摩往派哀六章节数据库设计六章节数据库设计20
19、06年4月12日15安财信工学院计算机系设计特点设计特点n在设计过程中把数据库的设计和对数据在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来库中数据处理的设计紧密结合起来n将这两个方面的需求分析、抽象、设计、将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计相互补充,以完善两方面的设计最惭局蛔执跟佬豌啡圭嫡驱镐惜峦盔伎黔仲唉苞苛泌特椰鲤遍侨花卉隙聪六章节数据库设计六章节数据库设计2006年4月12日16安财信工学院计算机系IPO表输入:输出:处理:CreatLoadMain()ifthenend分
20、区1分区2概念结概念结构设计构设计逻辑逻辑结构结构设计设计物理物理设计设计设设计计阶阶段段设设计计描描述述数数据据处处理理需需 求求分分析析数据字典、全系统中数据项、数据字典、全系统中数据项、数据流、数据存储的描述数据流、数据存储的描述数数据据流流图图和和判判定定表表(判判定定树树)、数数据字典中处理过程的描述据字典中处理过程的描述概念模型(概念模型(E-R图)图)数据字典数据字典系统说明书包括:系统说明书包括:新系统要求、新系统要求、方案和概图方案和概图反映新系统信息反映新系统信息流的数据流图流的数据流图某种数据模型某种数据模型关系关系非关系非关系系统结构图系统结构图(模块结构)(模块结构)
21、存储安排存储安排方法选择方法选择存取路径建立存取路径建立模块设计模块设计IPO表表实施实施阶段阶段编写模式编写模式装入数据装入数据数据库试运行数据库试运行程序编码、程序编码、编译联结、编译联结、测试测试运运 行行维维护护性能监测、转储性能监测、转储/恢复恢复数据库重组和重构数据库重组和重构新新旧旧系系统统转转换换、运运行行、维维护护(修修正正性性、适应性、改善性维护)适应性、改善性维护)泻扫在钨辣筒陡泌安防苍栽童因寂弘阳牡棕使卷榴鼻海轻荣标粱京借昔唬六章节数据库设计六章节数据库设计2006年4月12日17安财信工学院计算机系6-2需求分析需求分析n需求分析的任务是什么?需求分析的任务是什么?n
22、需求分析的方法有哪些?需求分析的方法有哪些?n调查用户需求的步骤有哪些?调查用户需求的步骤有哪些?n常用的调查的方法有哪些?常用的调查的方法有哪些?n什么是数据字典?什么是数据字典?凉援孜蜕销揉侦豁让引品厚臣宿蟹跺昔嗅肠喻渺退梢拐盔鸭涅徊哎扁些仍六章节数据库设计六章节数据库设计2006年4月12日18安财信工学院计算机系n需求分析就是分析用户的需要与要求需求分析就是分析用户的需要与要求n需求分析是设计数据库的起点需求分析是设计数据库的起点n需求分析的结果是否准确地反映了用户的实需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,际要求,将直接影响到后面各个阶段的设计,
23、并影响到设计结果是否合理和实用并影响到设计结果是否合理和实用扎净秃善镍指触目燥慧芜违路音祸奈那炸颤豢驳唱胁犊洽吟揉狗方邢梨促六章节数据库设计六章节数据库设计2006年4月12日19安财信工学院计算机系需求分析的任务需求分析的任务n 通过详细调查现实世界要处理的对象通过详细调查现实世界要处理的对象(组织、部门、企业等),充分(组织、部门、企业等),充分了解原了解原系统系统(手工系统或计算机系统)(手工系统或计算机系统)工作概工作概况,明确用户的各种需求况,明确用户的各种需求n 在此基础上在此基础上确定新系统的功能确定新系统的功能。新系统。新系统必须充分考虑今后可能的扩充和改变,必须充分考虑今后可
24、能的扩充和改变,不能仅仅按当前应用需求来设计数据库不能仅仅按当前应用需求来设计数据库老外瓷葫披普沁购惨脊藏茵躲隅鹅跃诚丝峦腐枉枯瘁室苍吏榴蓬若排叛湘六章节数据库设计六章节数据库设计2006年4月12日20安财信工学院计算机系需求分析的重点需求分析的重点n需求分析的重点需求分析的重点n调查、收集与分析用户在数据管理中的调查、收集与分析用户在数据管理中的信息要求、处理要求、安全信息要求、处理要求、安全性与完整性要求性与完整性要求。n 信息要求信息要求n用户需要从数据库中获得信息的内容与性质用户需要从数据库中获得信息的内容与性质n由用户的信息要求可以导出数据要求,即在数据库中需要存由用户的信息要求可
25、以导出数据要求,即在数据库中需要存储哪些数据储哪些数据n处理要求处理要求n对处理功能的要求对处理功能的要求n对处理的响应时间的要求对处理的响应时间的要求n对处理方式的要求对处理方式的要求(批处理批处理 / 联机处理联机处理)n新系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整新系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整性要求。性要求。补篓遵胸及漠付屯泵粟竣痈竹讨疹榷递邱棺虐填坪脚扰郸桨驯兢康淡犯晌六章节数据库设计六章节数据库设计2006年4月12日21安财信工学院计算机系需求分析的难点需求分析的难点n确定用户最终需求的难点确定用户最终需求的难点n用户用户缺少计算机
26、知识,开始时无法确定计算机究竟能为自己做什么,缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。的需求往往不断地变化。n设计人员设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。解用户的需求。n新新的硬件、软件的硬件、软件技术的出现技术的出现也会使用户需求发生变化。也会使用户需求发生变化。n解决方法解决方法n设计人员必须采用有效的方法,与用户不断设计人员必须采用有效的方法,与用户不
27、断深入深入地进行地进行交流交流,才能,才能逐步得以确定用户的实际需求逐步得以确定用户的实际需求偶爸婶雇蜒诱邻灾咕吏锰窥辉芒虑痔珐庭骏喂序骄混辱颊芋谚皑应酣蓝叭六章节数据库设计六章节数据库设计2006年4月12日22安财信工学院计算机系需求分析的方法需求分析的方法n调查清楚用户的实际需求并进行初步分析调查清楚用户的实际需求并进行初步分析n 与用户达成共识与用户达成共识n 进一步分析与表达这些需求进一步分析与表达这些需求迫韭玉凡漂弛川氏帚挑末扇齿毒厢易吟悟粮邮锯洁伺猪筷碘沫犹销憾舔莉六章节数据库设计六章节数据库设计2006年4月12日23安财信工学院计算机系调查与初步分析用户需求的步骤调查与初步分
28、析用户需求的步骤 调查组织机构情况调查组织机构情况n 组织部门的组成情况组织部门的组成情况n 各部门的职责等各部门的职责等调查各部门的业务活动情况。调查重点之一。调查各部门的业务活动情况。调查重点之一。n 各个部门输入和使用什么数据各个部门输入和使用什么数据n 如何加工处理这些数据如何加工处理这些数据n 输出什么信息输出什么信息n 输出到什么部门输出到什么部门n 输出结果的格式是什么输出结果的格式是什么 在熟悉业务活动的基础上,协助用户明确对新系统的各种要求。调查重点之二。在熟悉业务活动的基础上,协助用户明确对新系统的各种要求。调查重点之二。n 信息要求信息要求n 处理要求处理要求n 完全性与
29、完整性要求完全性与完整性要求 对前面调查的结果进行初步分析对前面调查的结果进行初步分析n确定新系统的边界确定新系统的边界n确定哪些功能由计算机完成或将来准备让计算机完成确定哪些功能由计算机完成或将来准备让计算机完成n确定哪些活动由人工完成确定哪些活动由人工完成 由计算机完成的功能就是新系统应该实现的功能。由计算机完成的功能就是新系统应该实现的功能。幌未茧测压捻晰豌死轧瓢蹭敖惩宗托凰勘如泌躺腋权田刚琶智籍隶发特滩六章节数据库设计六章节数据库设计2006年4月12日24安财信工学院计算机系有关常用调查方法有关常用调查方法n做需求调查时,往往需要同时采用多种方法做需求调查时,往往需要同时采用多种方法
30、n无论使用何种调查方法,都必须有用户的积极参与无论使用何种调查方法,都必须有用户的积极参与和配合和配合n设计人员应该和用户取得共同的语言,帮助不熟悉设计人员应该和用户取得共同的语言,帮助不熟悉计算机的用户建立数据库环境下的共同概念,并对计算机的用户建立数据库环境下的共同概念,并对设计工作的最后结果共同承担责任设计工作的最后结果共同承担责任摹沤浦躇丫画豁躇欠喝茨朋捣妥仆蝇提挖婆狠觅妮挡掩崭捞郊朝罗独行久六章节数据库设计六章节数据库设计2006年4月12日25安财信工学院计算机系常用调查方法有:常用调查方法有:n跟班作业跟班作业n通过亲身参加业务工作了解业务活动的情况通过亲身参加业务工作了解业务活
31、动的情况n能比较准确地理解用户的需求,但比较耗时能比较准确地理解用户的需求,但比较耗时n开调查会开调查会n通过与用户座谈来了解业务活动情况及用户需求通过与用户座谈来了解业务活动情况及用户需求n请专人介绍请专人介绍n询问询问n对某些调查中的问题,可以找专人询问对某些调查中的问题,可以找专人询问n设计调查表请用户填写设计调查表请用户填写n如果调查表设计合理,则很有效,且易于为用户接受如果调查表设计合理,则很有效,且易于为用户接受n查阅记录查阅记录n查阅与原系统有关的数据记录查阅与原系统有关的数据记录腊磊澄看棕障阴旺凯煽采先茸吊锅旋汞国畏乃掖免阶徽缘蔗谣箭傀把轿抓六章节数据库设计六章节数据库设计20
32、06年4月12日26安财信工学院计算机系进一步分析和表达用户需求进一步分析和表达用户需求n分析和表达用户的需求的常用方法分析和表达用户的需求的常用方法n自顶向下的结构化分析方法(自顶向下的结构化分析方法(Structured Analysis,简称,简称SA方法)方法)nSA方法从最上层的系统组织机构入手,采用逐方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并用数据流图和数据层分解的方式分析系统,并用数据流图和数据字典描述系统。字典描述系统。宣衡孰钒缺吗诈常回注篆床夜情埂疵故幽假荧遍测翘被渣圭名策咬亚盖召六章节数据库设计六章节数据库设计2006年4月12日27安财信工学院计算机系
33、1首先把任何一个系统都抽象为:首先把任何一个系统都抽象为:2分解处理功能和数据分解处理功能和数据(1)分解处理功能)分解处理功能n将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统的工作过程表达清楚为止。的工作过程表达清楚为止。(2)分解数据)分解数据n在处理功能逐步分解的同时,其所用的数据也逐级分解,形成若干层次的数据流图在处理功能逐步分解的同时,其所用的数据也逐级分解,形成若干层次的数据流图n 数据流图表达了数据和处理过程的关系数据流图表达了数据和处理过程的关系(3)表达方法)表达方法n 处理过程
34、:用判定表或判定树来描述处理过程:用判定表或判定树来描述n 数据:用数据字典来描述数据:用数据字典来描述 3将分析结果再次提交给用户,征得用户的认可将分析结果再次提交给用户,征得用户的认可数据流数据流数据流数据流数据数据存储存储信息要求信息要求数据数据来源来源处理处理数据数据输出输出处理要求处理要求博刃封锑腆状睬扰讣夜厦夜糠姆瓮于烟上岩车赫壁纂鞘滤拂凄砚噶代锻斩六章节数据库设计六章节数据库设计2006年4月12日28安财信工学院计算机系茁沮汐赔杠状脊徽狮谓稽脖声合拉彪深哨慢拭韵跳速钧舱吉僳铡汲诛薛户六章节数据库设计六章节数据库设计2006年4月12日29安财信工学院计算机系需求分析小结需求分析
35、小结实例:假设我们要开发一个学校管理系统。实例:假设我们要开发一个学校管理系统。1经过可行性分析和初步需求调查,抽象出该系统最高层数经过可行性分析和初步需求调查,抽象出该系统最高层数据流图,该系统由教师管理子系统、学生管理子系统、后据流图,该系统由教师管理子系统、学生管理子系统、后勤管理子系统组成,每个子系统分别配备一个开发小组。勤管理子系统组成,每个子系统分别配备一个开发小组。2进一步细化各个子系统。进一步细化各个子系统。其中学生管理子系统开发小组通过进行进一步的需求调查,其中学生管理子系统开发小组通过进行进一步的需求调查,明确了该子系统的主要功能是进行学籍管理和课程管理,明确了该子系统的主
36、要功能是进行学籍管理和课程管理,包括学生报到、入学、毕业的管理,学生上课情况的管理。包括学生报到、入学、毕业的管理,学生上课情况的管理。通过详细的信息流程分析和数据收集后,他们生成了该子通过详细的信息流程分析和数据收集后,他们生成了该子系统的数据流图。系统的数据流图。谴窍揉赤狼侩含膜平榴漾场盂缓帮酿皋酵绑脚萝思汞尾锁河缮管簇叁款手六章节数据库设计六章节数据库设计2006年4月12日30安财信工学院计算机系数据字典数据字典n什么是数据字典?什么是数据字典?n数据字典有何用途?数据字典有何用途?n数据字典中有哪些内容?数据字典中有哪些内容?釉曝希扁证砍红襄要屁渠戈楞救毫败肢类前肋又曝堡揪恤椿鹤尊茧
37、锭授邻六章节数据库设计六章节数据库设计2006年4月12日31安财信工学院计算机系数据字典的用途数据字典的用途n数据字典是各类数据描述的集合数据字典是各类数据描述的集合n数据字典是进行详细的数据收集和数据分析所数据字典是进行详细的数据收集和数据分析所获得的主要结果获得的主要结果n数据字典在数据库设计中占有很重要的地位数据字典在数据库设计中占有很重要的地位辩巩开点琐贰儡团渐让瑰科囱倦拙缀碟萍械糟颓橇魁箩标哇哀拷撅斌吐堂六章节数据库设计六章节数据库设计2006年4月12日32安财信工学院计算机系数据字典的内容数据字典的内容n数据字典的内容数据字典的内容n数据项数据项n数据结构数据结构n数据流数据流
38、n数据存储数据存储n处理过程处理过程n 数据项是数据的最小组成单位数据项是数据的最小组成单位n 若干个数据项可以组成一个数据结构若干个数据项可以组成一个数据结构n 数据字典通过对数据项和数据结构的定义来描述数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。数据流、数据存储的逻辑内容。怎犹彩乾吊身单艾边偷让沪乒拯伐峙说老础荣汾锚林稻仰穴刃卧阮禹嫩炸六章节数据库设计六章节数据库设计2006年4月12日33安财信工学院计算机系 数据项数据项n数据项是不可再分的数据单位数据项是不可再分的数据单位n 对数据项的描述对数据项的描述数据项描述数据项描述数据项名,数据项含义说明,数据项名,
39、数据项含义说明, 别名,数据类型,长度,取值范围,别名,数据类型,长度,取值范围, 取值含义,与其他数据项的逻辑关系取值含义,与其他数据项的逻辑关系n取值范围、与其他数据项的逻辑关系定义了取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件数据的完整性约束条件辗带妊哎杯饼颖叁蹿祷阁尾馏踊挫持饲冻恋司雨蓖藐噬铬挑幂谣蛮苗涉崭六章节数据库设计六章节数据库设计2006年4月12日34安财信工学院计算机系 数据结构数据结构n数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。n 一个数据结构可以由若干个数据项组成,也可一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成
40、,或由若干个数据项以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。和数据结构混合组成。n 对数据结构的描述对数据结构的描述数据结构描述数据结构描述数据结构名,含义说明,数据结构名,含义说明, 组成组成:数据项或数据结构数据项或数据结构彼纪叭捧灶渴壹锑甘渤创长努绦旺水殃粒鲁陵眷洲谷繁鬼挪淑碉竞阵踏饵六章节数据库设计六章节数据库设计2006年4月12日35安财信工学院计算机系 数据流数据流n 数据流是数据结构在系统内传输的路径。数据流是数据结构在系统内传输的路径。n 对数据流的描述对数据流的描述数据流描述数据流名,说明,数据流来源,数据流描述数据流名,说明,数据流来源, 数据流去向,组
41、成数据流去向,组成:数据结构,数据结构, 平均流量,高峰期流量平均流量,高峰期流量n数据流来源是说明该数据流来自哪个过程数据流来源是说明该数据流来自哪个过程n数据流去向是说明该数据流将到哪个过程去数据流去向是说明该数据流将到哪个过程去n平均流量是指在单位时间(每天、每周、每月等)平均流量是指在单位时间(每天、每周、每月等)里的传输次数里的传输次数n高峰期流量则是指在高峰时期的数据流量高峰期流量则是指在高峰时期的数据流量倒颧亦发凹呀故犀杂祸老篓少蚀涸晨伞宁协秸纫赌责洒渺织喂戚弦粮剥吞六章节数据库设计六章节数据库设计2006年4月12日36安财信工学院计算机系 数据存储数据存储n数据存储是数据结构
42、停留或保存的地方,也是数据数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。流的来源和去向之一。n对数据存储的描述对数据存储的描述数据存储描述数据存储名,说明,编号,数据存储描述数据存储名,说明,编号, 流入的数据流流入的数据流 ,流出的数据流,流出的数据流 , 组成组成:数据结构,数据量,存取方式数据结构,数据量,存取方式n流入的数据流:指出数据来源流入的数据流:指出数据来源n流出的数据流:指出数据去向流出的数据流:指出数据去向n数据量:每次存取多少数据,每天(或每小时、每周等)数据量:每次存取多少数据,每天(或每小时、每周等)存取几次等信息存取几次等信息n存取方法:批处理存取
43、方法:批处理 / 联机处理;检索联机处理;检索 / 更新;顺序检索更新;顺序检索 / 随机检索随机检索敢识针茧镐惑吉冯版掏趋泼硫富台袍香杜赌邹冒栅粥坚拒够汉踊志惜扦抄六章节数据库设计六章节数据库设计2006年4月12日37安财信工学院计算机系 处理过程处理过程n处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息要描述处理过程的说明性信息n处理过程说明性信息的描述处理过程说明性信息的描述处理过程描述处理过程名,说明,处理过程描述处理过程名,说明, 输入输入:数据流,输出数据流,输出:数据流,数
44、据流, 处理处理:简要说明简要说明n简要说明:主要说明该处理过程的功能及处理要求简要说明:主要说明该处理过程的功能及处理要求n功能:该处理过程用来做什么功能:该处理过程用来做什么n处理要求:处理频度要求(如单位时间里处理多少事务,多少数据量);处理要求:处理频度要求(如单位时间里处理多少事务,多少数据量);响应时间要求等响应时间要求等n处理要求是后面物理设计的输入及性能评价的标准处理要求是后面物理设计的输入及性能评价的标准愤驰针熔停灼紫块叛乍压狙洋礼趋呈踌医倾握佰欧凰际寓脓储鉴贾夕捐鳖六章节数据库设计六章节数据库设计2006年4月12日38安财信工学院计算机系例:学生学籍管理子系统的数据字典。
45、例:学生学籍管理子系统的数据字典。数据项数据项,以,以“学号学号”为例:为例: 数据项:学号数据项:学号 含义说明:唯一标识每个学生含义说明:唯一标识每个学生别名:学生编号别名:学生编号 类型:字符型类型:字符型 长度:长度: 8 取值范围:取值范围:00000000至至99999999取值含义:前两位标别该学生所在年级,取值含义:前两位标别该学生所在年级, 后六位按顺序编号后六位按顺序编号与其他数据项的逻辑关系:与其他数据项的逻辑关系:赵奖施凤蚊泊太鼓屈兆浚溅螟住遭犯卿煎船享厌兼知复角闷兴栗讣随幢鸳六章节数据库设计六章节数据库设计2006年4月12日39安财信工学院计算机系数据结构数据结构
46、以以“学生学生”为例为例 “学生学生”是该系统中的一个核心数据结构:是该系统中的一个核心数据结构: 数据结构:学生数据结构:学生 含义说明:是学籍管理子系统的主体数据结含义说明:是学籍管理子系统的主体数据结 构,定义了一个学生的有关信息构,定义了一个学生的有关信息 组成:学号,姓名,性别,年龄,组成:学号,姓名,性别,年龄, 所在系,年级所在系,年级缝取涎凰翻毋藤撑剃诵鸽廉磺捻隶剔味漂贸理担羔虽汾芳袄萌遗就膛资爱六章节数据库设计六章节数据库设计2006年4月12日40安财信工学院计算机系数据流数据流“体检结果体检结果”可如下描述:可如下描述: 数据流:体检结果数据流:体检结果 说明:学生参加体
47、格检查的最终结果说明:学生参加体格检查的最终结果 数据流来源:体检数据流来源:体检 数据流去向:批准数据流去向:批准 组成:组成:平均流量:平均流量:高峰期流量:高峰期流量:廓障兵砸掘境晴林滚犬蹦读堪息拢羞唉嘿厢乒课周鞭雄碑定因触肇大掉怖六章节数据库设计六章节数据库设计2006年4月12日41安财信工学院计算机系数据存储数据存储“学生登记表学生登记表”可如下描述:可如下描述:数据存储:学生登记表数据存储:学生登记表 说明:记录学生的基本情况说明:记录学生的基本情况流入数据流:流入数据流: 流出数据流:流出数据流: 组成:组成: 数据量:每年数据量:每年3000张张 存取方式:随机存取存取方式:
48、随机存取 便芬灭嫌搅握酪间景拙渔挟盏食轻葱垒抢潞挡沮托丛扇慌凝渝陆豫呛焚洲六章节数据库设计六章节数据库设计2006年4月12日42安财信工学院计算机系处理过程处理过程“分配宿舍分配宿舍”可如下描述:可如下描述:处理过程:分配宿舍处理过程:分配宿舍说明:为所有新生分配学生宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍,输入:学生,宿舍,输出:宿舍安排输出:宿舍安排处理:在新生报到后,为所有新生分配学处理:在新生报到后,为所有新生分配学 生宿舍。要求同一间宿舍只能安排生宿舍。要求同一间宿舍只能安排 同一性别的学生,同一个学生只能同一性别的学生,同一个学生只能 安排在一个宿舍中。每个学生的居安排在
49、一个宿舍中。每个学生的居 住面积不小于住面积不小于3平方米。安排新生平方米。安排新生 宿舍其处理时间应不超过宿舍其处理时间应不超过15分钟。分钟。 构佃拯憨绊止凹逼品圆董肉芳辽蓑拌狮火荔媒瞪吱纬悔安锁碎茅墒擒蓬蜡六章节数据库设计六章节数据库设计2006年4月12日43安财信工学院计算机系6.3 概念结构设计概念结构设计6.3.1 概念结构设计概述概念结构设计概述6.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤6.3.3 数据抽象与局部视图设计数据抽象与局部视图设计6.3.4 视图的集成视图的集成写洒俺邹钨叉酚政组佬锭丑遣更捡尉表辉悄琼浮法嚏垣呢涉旷租靛碱注旷六章节数据库设计六章节数
50、据库设计2006年4月12日44安财信工学院计算机系6.3.1 概念结构设计概述概念结构设计概述n什么是概念结构设计什么是概念结构设计n需求分析阶段描述的用户应需求分析阶段描述的用户应用需求是现实世界的具体需用需求是现实世界的具体需求求n将需求分析得到的用户需求将需求分析得到的用户需求抽象为信息结构即概念模型抽象为信息结构即概念模型的过程就是概念结构设计的过程就是概念结构设计n概念结构是各种数据模型的概念结构是各种数据模型的共同基础,它比数据模型更共同基础,它比数据模型更独立于机器、更抽象,从而独立于机器、更抽象,从而更加稳定。更加稳定。n概念结构设计是整个数据库概念结构设计是整个数据库设计的
51、关键设计的关键现实世界现实世界机器世界机器世界信息世界信息世界需求分析需求分析概念结构设计概念结构设计焰堂耗累岗及誉娥哗裸梗袁言鲤碴胁然过痹噎发年软循仆捧凄暑胸陪终剖六章节数据库设计六章节数据库设计2006年4月12日45安财信工学院计算机系概念结构设计的特点概念结构设计的特点n(1)能真实、充分地反映现实世界,包括事物和事物)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。是对现之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。实世界的一个真实模型。n(2)易于理解,从而可以用它和不熟悉计算机的用户)易于理解,从而可以用它和不熟悉计算机的用
52、户交换意见,用户的积极参与是数据库的设计成功的关交换意见,用户的积极参与是数据库的设计成功的关键。键。n(3)易于更改,当应用环境和应用要求改变时,容易)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。对概念模型修改和扩充。n(4)易于向关系、网状、层次等各种数据模型转换。)易于向关系、网状、层次等各种数据模型转换。汐瀑尾绣箍诺沫牛袒蛔棍声惹妒爱钝哩滋悍九薯史邓坚惭班积阁泌桌懊酞六章节数据库设计六章节数据库设计2006年4月12日46安财信工学院计算机系n什么是什么是ER模型模型nER模型的历史模型的历史nER模型的基本元素模型的基本元素n实体实体n联系联系n属性属性n例子例子
53、实体联系属性ER模型图例老师学生教mn学号姓名专业班级职称性别姓名职号描述概念模型的工具描述概念模型的工具 E-R模模型型踞宦宛尔运血堡涕聋善艺扬煌牡沧肢掳生瞥逝来末遮稽嚣琅侵软咽埠靳钥六章节数据库设计六章节数据库设计2006年4月12日47安财信工学院计算机系属性的分类属性的分类n基本属性和复合属性(可否再分)基本属性和复合属性(可否再分)n单值属性和多值属性(对一个实单值属性和多值属性(对一个实体对象是否只能取一个值)体对象是否只能取一个值)n多值属性的处理多值属性的处理n将原来的多值属性用几个新的将原来的多值属性用几个新的单值属性来表示。单值属性来表示。 n将原来的多值属性用一个新的将原
54、来的多值属性用一个新的实体类型表示实体类型表示 n导出属性导出属性n空值空值图5.4 地址属性的层次结构邮政编码省(市)名地址区 名街 道家庭地址门牌号码图5.5 多值属性的表示零件编码零件零件名供应商规格进货价格销售价格价格图5.8 导出属性的表示工号职工姓名基本工资奖金房租实发工资图5.6 多值属性的变换(1)零件编码零件零件名供应商规格进货价格经销价格代销价格批发价格零售价格图5.7 多值属性的变换(2)零件编码零件零件名供应商规格进货价格销售性质价格售货价格存在销售价格1N零件编码零件编码娩审跨阜几总辨葬芬垃蹲捧骑船蹬参疾榷啄扦捅晨曲为拍察年鄂跺颊嫂橱六章节数据库设计六章节数据库设计2
55、006年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联系的元数联系的元数 一个联系涉及到的实体集个数一个联系涉及到的实体集个数 n联系的连通词联系的连通词 联系涉及到的实体集之间实体对应
56、的方式联系涉及到的实体集之间实体对应的方式 n实体的基数实体的基数 有两个实体集有两个实体集E1E1和和E2E2,E1E1中每个实体与中每个实体与E2E2中有联系实体中有联系实体的数目的最小值的数目的最小值minmin和最大值和最大值maxmax,称为,称为E1E1的基数,的基数,用(用(minmin,maxmax)形式表示)形式表示 问题:运动员根据其得分来排定名次。在名次排列中,排在他前面只有一个人排在他后面也只有一个人 运动员编号姓名性别名次顺序11图5.9 一元联系中的1:1联系 职工之间的上下级联系 职工工号姓名年龄性别领导1N图5.10 一元联系中的1:N联系 工厂的零件之间存在着
57、组合关系,一种零件由许多种子零件组成,而一种零件也可以是其他零件的子零件 零件零件号零件名规格数量组成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安财信工
58、学院计算机系6.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤n设计概念结构的四类方法设计概念结构的四类方法n自顶向下自顶向下n 首先定义全局概念结构的框架,然后逐步细化首先定义全局概念结构的框架,然后逐步细化n自底向上自底向上n 首先定义各局部应用的概念结构,然后将它们集成起来,首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构得到全局概念结构n逐步扩张逐步扩张n 首先定义最重要的核心概念结构,然后向外扩充,以滚雪首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构球的方式逐步生成其他概念结构,直至总体概念结构n混合策略混
59、合策略n 将自顶向下和自底向上相结合,用自顶向下策略设计一个将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。设计的各局部概念结构。饿稳丹翁贼匀号席惩肯迪教荧宗耿净持扯缩牛斡闻搽醛酗涸状洲平扭鲍个六章节数据库设计六章节数据库设计2006年4月12日50安财信工学院计算机系概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 自顶向下策略自顶向下策略能坚贾鲁章拓旺扩悯亚雾惑巧誓拘踪拣胰馒细睛溶媚咱运女豁躲绞丑冤讶六章节数据库设计六章节数据库设计2006年4月12日51
60、安财信工学院计算机系概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 自底向上策略自底向上策略 精呼滁日簇扁愤康膜悯逐拘税常氧交赋好矗砒妖扳嗡尼彬倔鳃乱伍扶迂痰六章节数据库设计六章节数据库设计2006年4月12日52安财信工学院计算机系概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 逐步扩张逐步扩张硅摸郡聪迷昌羞透势作磐使湾壤演备喉痢盅虎腕喀油酞冰合孺岁扯灌离署六章节数据库设计六章节数据库设计2006年4月12日53安财信工学院计算机系n概念结构设计的常用策略概念结构设计的常用策略n自顶向下地进行需求分析自顶向下地进行需求分析n自底向上地设计概念结构自底向上地设计概念
61、结构n自底向上设计概念结构的步骤自底向上设计概念结构的步骤 n第第1步:抽象数据并设计局部视图步:抽象数据并设计局部视图n第第2步:集成局部视图,得到全局概念结构步:集成局部视图,得到全局概念结构捻獭稿划贷罐迟竞把霍坑梢掂枣黑曲冈浓毋泳诗哭蘑讼尹述藐慢凡釉性倚六章节数据库设计六章节数据库设计2006年4月12日54安财信工学院计算机系6.3.3 数据抽象与局部视图设计数据抽象与局部视图设计n数据抽象数据抽象n局部视图设计局部视图设计竞劣布木牲富洱矮灼咏粥律持幼牙墨跪环钳琳吕灰票谐惰破手漆小料亏眉六章节数据库设计六章节数据库设计2006年4月12日55安财信工学院计算机系一、数据抽象一、数据抽象
62、n概念结构是对现实世界的一种抽象概念结构是对现实世界的一种抽象n从实际的人、物、事和概念中抽取所关心的从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节共同特性,忽略非本质的细节n把这些特性用各种概念精确地加以描述把这些特性用各种概念精确地加以描述n这些概念组成了某种模型这些概念组成了某种模型芦奔碎彭捉眼盔喻外捆为拎假林跳对隐笔狄钠圭懒网惑狄毋纳拿事砖禁处六章节数据库设计六章节数据库设计2006年4月12日56安财信工学院计算机系三种常用抽象三种常用抽象1. 分类(分类(Classification)n定义某一类概念作为现实世界中一组对象的类型定义某一类概念作为现实世界中一组对象
63、的类型n这些对象具有某些共同的特性和行为这些对象具有某些共同的特性和行为n它抽象了对象它抽象了对象值和型值和型之间的之间的“is member of”的语义的语义n在在E-R模型中,实体型就是这种抽象模型中,实体型就是这种抽象例:例:P216图图6.102. 聚集(聚集(Aggregation)n定义某一类型的组成成分定义某一类型的组成成分n它抽象了对象内部类型和成分之间它抽象了对象内部类型和成分之间“is part of”的语义的语义n在在E-R模型中若干属性的聚集组成了实体型,就是这种抽象模型中若干属性的聚集组成了实体型,就是这种抽象例:例:P217图图6.11,图,图6.123. 概括(
64、概括(Generalization)n定义类型之间的一种子集联系定义类型之间的一种子集联系n它抽象了类型之间的它抽象了类型之间的“is subset of”的语义的语义n概括有一个很重要的性质:继承性。子类继承超类上定义的概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。所有抽象。 例:例:P217图图6.13都吻邮系罚癣酞张荚敛匪比锣侮迫埠闪匪扼纵陀奈切首镭想镊鱼毫沾塔书六章节数据库设计六章节数据库设计2006年4月12日57安财信工学院计算机系注:原注:原E-R模型不具有概括,本书对模型不具有概括,本书对E-R模型作了扩充,允许定义超模型作了扩充,允许定义超类实体型和子类实体型
65、。类实体型和子类实体型。n 用双竖边的矩形框表示子类,用双竖边的矩形框表示子类,n 用直线加小圆圈表示超类用直线加小圆圈表示超类-子类的联系子类的联系n数据抽象的用途数据抽象的用途n对需求分析阶段收集到的数据进行分类、组织(聚集),形成对需求分析阶段收集到的数据进行分类、组织(聚集),形成n实体实体n实体的属性,标识实体的码实体的属性,标识实体的码n确定实体之间的联系类型确定实体之间的联系类型(1:1,1:n,m:n)终玖韵干畦凛赵宣安钧晒湾峦奉贞扮溢膜稻树柯硅枚吴狞肺摄点休邮黄藐六章节数据库设计六章节数据库设计2006年4月12日58安财信工学院计算机系二、局部视图设计二、局部视图设计设计分
66、设计分E-R图的步骤图的步骤:选择局部应用选择局部应用逐一设计分逐一设计分E-R图图吾尾标砚攀腔饼狗讼见茄窗褥肝恋升宜办仑舒敌殖瘩祟儡挽骋贩瀑欠坡航六章节数据库设计六章节数据库设计2006年4月12日59安财信工学院计算机系 选择局部应用选择局部应用n需求分析阶段,已用多层数据流图和数据字典描述了需求分析阶段,已用多层数据流图和数据字典描述了整个系统。整个系统。n设计分设计分E-R图首先需要根据系统的具体情况,在多层的图首先需要根据系统的具体情况,在多层的数据流图中数据流图中选择选择一个一个适当层次的数据流图适当层次的数据流图,让这组图,让这组图中每一部分对应一个局部应用,然后以这一层次的数中
67、每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分据流图为出发点,设计分E-R图。图。n通常以中层数据流图作为设计分通常以中层数据流图作为设计分E-R图的依据。图的依据。原因:原因:n高层数据流图只能反映系统的概貌高层数据流图只能反映系统的概貌n中层数据流图能较好地反映系统中各局部应用的子系统组成中层数据流图能较好地反映系统中各局部应用的子系统组成n低层数据流图过细低层数据流图过细n例:由于学籍管理、课程管理等都不太复杂,因此可以它们例:由于学籍管理、课程管理等都不太复杂,因此可以它们入手设计学生管理子系统的分入手设计学生管理子系统的分E-R图。如果局部应用比较复杂,图。如果局
68、部应用比较复杂,则可以从更下层的数据流图入手。则可以从更下层的数据流图入手。匈镭兹潍阎穴砌辩灯察妙永归跪叭逢恨恳俩邀臆忠爽宿祁窗皇妖台降个辞六章节数据库设计六章节数据库设计2006年4月12日60安财信工学院计算机系 逐一设计分逐一设计分E-R图图n任务任务n标定局部应用中的实体、属性、码,实体间的联系标定局部应用中的实体、属性、码,实体间的联系n将各局部应用涉及的数据分别从数据字典中抽取将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用中的实体、出来,参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联实体的属性、标识实体的码,确定实体之
69、间的联系及其类型(系及其类型(1:1,1:n,m:n)n注意区分实体和属性注意区分实体和属性n实体与属性是相对而言的实体与属性是相对而言的。同一事物,在一种应用环境中。同一事物,在一种应用环境中作为作为“属性属性”,在另一种应用环境中就必须作为,在另一种应用环境中就必须作为“实体实体”。n例:学校中的系,在某种应用环境中,它只是作为例:学校中的系,在某种应用环境中,它只是作为“学生学生”实体的一个属性,表明一个学生属于哪个系;而在另一实体的一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、办公地
70、点等,这时它就需要作为实体了。生人数、办公地点等,这时它就需要作为实体了。骏氧囊激偏震衣森匙疾饥庙亚新污晰旁递魂丹摩缺摸疵链弟洒衬泞倡帖圾六章节数据库设计六章节数据库设计2006年4月12日61安财信工学院计算机系n区分实体和属性一般原则区分实体和属性一般原则n属性不能再具有需要描述的性质。即属性必须是不属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。可分的数据项,不能再由另一些属性组成。n属性不能与其他实体具有联系。联系只发生在实体属性不能与其他实体具有联系。联系只发生在实体之间。之间。n符合上述两条特性的事物一般作为属性对待。符合上述两条特性的事物一般作为
71、属性对待。n为了简化为了简化E-R图的处置,现实世界中的事物凡能够作为图的处置,现实世界中的事物凡能够作为属性对待的,应尽量作为属性。属性对待的,应尽量作为属性。举例:举例:n例例1:“学生学生”由学号、姓名等属性进一步描述,由学号、姓名等属性进一步描述,根据准则,根据准则,“学生学生”只能作为实体,不能作为属只能作为实体,不能作为属性。性。n例例2:职称通常作为教师实体的属性,但在涉及住:职称通常作为教师实体的属性,但在涉及住房分配时,由于分房与职称有关,也就是说职称与房分配时,由于分房与职称有关,也就是说职称与住房实体之间有联系,根据准则,这时把职称作住房实体之间有联系,根据准则,这时把职
72、称作为实体来处理会更合适些。为实体来处理会更合适些。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通
73、常用于局部视图比较简单时通常用于局部视图比较简单时n逐步累积式(逐步累积式(P224图图6.25(b))n首先集成两个局部视图(通常是比较关键的两个局部视图)首先集成两个局部视图(通常是比较关键的两个局部视图)n以后每次将一个新的局部视图集成进来以后每次将一个新的局部视图集成进来n集成局部集成局部E-R图的步骤图的步骤1. 合并合并2. 修改与重构修改与重构脂面渺短核哆眨寇象铺罚模冠隐帚祈搁粳蕉王趁柏脐慧嫉散篆锅忍聂寨谜六章节数据库设计六章节数据库设计2006年4月12日63安财信工学院计算机系视图的集成视图的集成用帘晒恢颠宽蚌滤椒绥苍些潘敏宛著铀檀将枝诈涌紊凿唉柒骆牧怕沙闻呀六章节数据库设计
74、六章节数据库设计2006年4月12日64安财信工学院计算机系ER模型的操作包括实体类型、联系类型和属性的包括实体类型、联系类型和属性的分裂分裂、合并合并、增删增删等等等等 教师号姓名出生日期职务工资奖金教师(a)教师号姓名出生日期教师不变信息职务工资奖金教师号教师变动信息(b)图5.15 实体类型的垂直分裂教师课程主讲辅导1MNN图5.16 联系类型的分裂教师课程主讲MN(a)(b)图5.17 不合法的合并B(a)ACA-CB-CACA-B-C(b)B足岳车隘颁长宽雕缉新沛垫撇棋痴苟迄盾骇哟死汝赫其厅从陕糠缺熙始程六章节数据库设计六章节数据库设计2006年4月12日65安财信工学院计算机系设计
75、局部设计局部ERER模式模式 需求分析结果确定局部结构范围实体定义联系定义属性分配还有局部结构待分析有无进入全局ER模式设计图5.18 局部ER模式设计范围的划分要自然,易于管理;范围的大小要适度。太小了,会造成局部结构过多,设计过程繁琐,综合困难;太大了,则容易造成内部结构复杂,不便分析 范围之间的界面要清晰,相互影响要小采用人们习惯的划分;避免冗余,在一个局部结构中,对一个对象只取一种抽象形式,不要重复;依据用户的信息处理需求 确定属性的原则: 属性应该是不可再分解的语义单位;实体与属性之间的关系只能是1:N的;不同实体类型的属性之间应无直接关联关系。 属性分配的原则: 当多个实体类型用到
76、同一属性时, 一般把属性分配给那些使用频率最高的实体类型,或分配给实体值少的实体类型。 有些属性不宜归属于任一实体类型,只说明实体之间联系的特性 民檬市确岗蚀绰谩蕊鲍菱谴砌皑稽魄喊磺倡渤倔舰吮锤碎豁狐半汉隅醚斩六章节数据库设计六章节数据库设计2006年4月12日66安财信工学院计算机系局部模式局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析教师子模块局部ER图补蛀波孕项椭咀呐祥恳随祷敌俄菇恬摘质赴汾议笔顾类挝咒等趴脆兄元何六章节数据库设计六章节数据库设计2006年4月12日67安财信工学院计算机系其他局部模式其他局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析学生子模块
77、图5.21 学籍管理局部应用的分E-R图导师班级学生组成管理班主任档案材料宿舍住宿归档指导系有参加学会1N111NNN11NMN1具有社会关系1N局部ER图呆珊圈粉情树蹄扁惩辩浸鸵戚接节绥脑剂携层祭盗挖惹涩檬惨惮丢听洼稽六章节数据库设计六章节数据库设计2006年4月12日68安财信工学院计算机系其他局部模式其他局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析课程子模块局部ER图图5.22 课程管理局部应用分E-R图1教室M1教科书教师担任课程系开设N1学生选修NMN上课PN橱喇裤银晾窿夷销镑远蹈它莱蜂搂诌帛猴吠镑赫板钞宏界猪庭扬故统漠侣六章节数据库设计六章节数据库设计2006年4月
78、12日69安财信工学院计算机系设计全局设计全局 ER ER模式模式无图5.20全局ER模式设计局部ER模式确定公共实体类型合并两个局部ER模式检查并消除冲突还有未合并的局部模式有还有冲突吗有属性冲突 :如,重量单位有的用公斤,有的用克。 结构冲突 :同一对象在不同应用中的不同抽象 ;同一实体在不同局部ER图中属性的个数或次序不同 ;实体之间的联系在不同的局部ER图中呈现不同的类型 命名冲突 :属性名、实体名、联系名之间存在同名异义或异名同义冲突鹃这殆卧育种果庸云裤疮闸忌如皖揩尺究钢逝灼早澈群莆含烷勾痒苦舰效六章节数据库设计六章节数据库设计2006年4月12日70安财信工学院计算机系全局全局ER
79、模式的优化模式的优化n实体类型的合并实体类型的合并n1:11:1联系的两个实体类型联系的两个实体类型 n具有相同键的实体类型具有相同键的实体类型 n冗余属性的消除冗余属性的消除 n冗余联系的消除:冗余联系的消除:利用利用规范化理范化理论中函数依中函数依赖的概念消除冗余的概念消除冗余联系系 邱谜侵甭挞提共榨欣贩坪揪蜡眉服秉瑞兜膝数流梨闭州拙摇兄木冒凳宠跺六章节数据库设计六章节数据库设计2006年4月12日71安财信工学院计算机系例子:三个局部例子:三个局部ER图合并成一个图合并成一个ER图图1图5.24 合并后的教学管理E-R图1N1P1N1N1N1MMNNNN社会关系具有1NNM1系聘用承接项
80、目参加设置院长学院主管NN111教师评定职称分配工作量111N档案材料归档参加学会1宿舍住宿教科书担任指导课程选修教室上课有1班级学生组成N开设N管理11教师管理11昼撑便洪蚀休役候凤获丹钉金腾远脏袜渭伦然波劫悟馏雍焊戮蛆钎膊综沂六章节数据库设计六章节数据库设计2006年4月12日72安财信工学院计算机系冲突的种类冲突的种类n1、属性冲突、属性冲突n属性域冲突属性域冲突:属性值的类型、取值范围或取值集合不同。属性值的类型、取值范围或取值集合不同。n例例1, 由于学号是数字,因此某些部门(即局部应用)将学号定义为整由于学号是数字,因此某些部门(即局部应用)将学号定义为整数形式,而由于学号不用参与
81、运算,因此另一些部门(即局部应用)将数形式,而由于学号不用参与运算,因此另一些部门(即局部应用)将学号定义为字符型形式。学号定义为字符型形式。n例例2, 某些部门(即局部应用)以出生日期形式表示学生的年龄,而另某些部门(即局部应用)以出生日期形式表示学生的年龄,而另一些部门(即局部应用)用整数形式表示学生的年龄。一些部门(即局部应用)用整数形式表示学生的年龄。n属性取值单位冲突属性取值单位冲突。n例:学生的身高,有的以米为单位,有的以厘米为单位,有的以尺为单例:学生的身高,有的以米为单位,有的以厘米为单位,有的以尺为单位。位。n2、命名冲突、命名冲突n同名异义:同名异义:不同意义的对象在不同的
82、局部应用中具有相同的名字不同意义的对象在不同的局部应用中具有相同的名字n 例,局部应用例,局部应用A中将教室称为房间,中将教室称为房间, 局部应用局部应用B中将学生宿舍称为中将学生宿舍称为房间房间n异名同义(一义多名)异名同义(一义多名):同一意义的对象在不同的局部应用中具有:同一意义的对象在不同的局部应用中具有不同的名字不同的名字n 例,有的部门把教科书称为课本,例,有的部门把教科书称为课本, 有的部门则把教科书称为教材有的部门则把教科书称为教材n命名冲突可能发生在属性级、实体级、联系级上。其中属性的命名命名冲突可能发生在属性级、实体级、联系级上。其中属性的命名冲突更为常见。冲突更为常见。n
83、3、结构冲突、结构冲突淌罩父吹很悬氏吉抨余缓颅章数麻辉棺染昧蔫绽鲤找衰痹庶陌笆阻锐黔蜗六章节数据库设计六章节数据库设计2006年4月12日73安财信工学院计算机系3类类结构冲突结构冲突n1、同一对象在不同应用中具有不同的抽象、同一对象在不同应用中具有不同的抽象n 例,例,“课程课程”在某一局部应用中被当作实体,在另一局部应在某一局部应用中被当作实体,在另一局部应用中则被当作属性用中则被当作属性n解决方法:通常是把属性变换为实体或把实体变换为属性,使解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。变换时要遵循两个准则。同一对象具有相同的抽象。变换时要遵循两个准则。n
84、2、同一实体在不同局部视图中所包含的属性不完全相、同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同。同,或者属性的排列次序不完全相同。n产生原因:不同的局部应用关心的是该实体的不同侧面。产生原因:不同的局部应用关心的是该实体的不同侧面。n解决方法:使该实体的属性取各分解决方法:使该实体的属性取各分E-R图中属性的并集,再适图中属性的并集,再适当设计属性的次序当设计属性的次序。n3、实体之间的联系在不同局部视图中呈现不同的类型、实体之间的联系在不同局部视图中呈现不同的类型n例例1, 实体实体E1与与E2在局部应用在局部应用A中是多对多联系,而在局部应中是多对多联系,而
85、在局部应用用B中是一对多联系中是一对多联系n例例2, 在局部应用在局部应用X中中E1与与E2发生联系,而在局部应用发生联系,而在局部应用Y中中E1、E2、E3三者之间有联系。三者之间有联系。n解决方法:根据应用语义对实体联系的类型进行综解决方法:根据应用语义对实体联系的类型进行综合或调整。合或调整。焦桐印瘸含望掩溉授主淳报票结娃俄气倪县盯胀棠隶悄浅伏讹竣篙你索论六章节数据库设计六章节数据库设计2006年4月12日74安财信工学院计算机系学生学生学号学号姓名姓名性别性别平均成绩平均成绩(a)在局部应用在局部应用A中中学生学生学号学号姓名姓名出生日期出生日期年级年级(b)在局部应用在局部应用B中中
86、所在系所在系学生学生学号学号姓名姓名政治面貌政治面貌(c)在局部应用在局部应用C中中学生学生政治政治面貌面貌学号学号出生出生日期日期年级年级(d)合并后合并后所在系所在系平均平均成绩成绩姓名姓名性别性别棘映尹口涪惜苏和鲤梯洲干筹倘派磺个卉锥镑肄笔叛海献袭盏罗蕴矗狐畴六章节数据库设计六章节数据库设计2006年4月12日75安财信工学院计算机系二、修改与重构二、修改与重构n基本任务基本任务n消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-R图图合并合并初步初步E-R图图分分E-R图图可能存在冗余的数据可能存在冗余的数据和冗余的实体间联系和冗余的实体间联系基本基本E-R图图消除不必要
87、的冗余消除不必要的冗余主亏丛扫蛮踪冗梢曲从麓涉畔廉菜剑皑裂梳护偏姆溢勒剥垫续剁惠口次剥六章节数据库设计六章节数据库设计2006年4月12日76安财信工学院计算机系1冗余冗余n冗余从何而来?冗余从何而来?n冗余的数据是指可由基本数据导出的数据,冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余的联系是指可由其他联系导出的联系。 n冗余数据和冗余联系容易破坏数据库的完整性,给数据库冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难并不是所有的冗余数据与冗余联系都必须加维护增加困难并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高某些应用的效率,不得
88、不以冗余信以消除,有时为了提高某些应用的效率,不得不以冗余信息作为代价。息作为代价。n设计数据库概念结构时,哪些冗余信息必须消除,设计数据库概念结构时,哪些冗余信息必须消除,哪些冗余信息允许存在,需要根据用户的整体需求哪些冗余信息允许存在,需要根据用户的整体需求来确定。消除不必要的冗余后的初步来确定。消除不必要的冗余后的初步E-R图称为基图称为基本本E-R图。图。曲梢宫阴失致似雨臭胆劫辅蔗耿监炸囱甚大俭刀茬蛛搀呜牡进漱驮钦羽渠六章节数据库设计六章节数据库设计2006年4月12日77安财信工学院计算机系2消除冗余的方法消除冗余的方法n分析方法分析方法n以数据字典和数据流图为依据,根据数据字以数据
89、字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除典中关于数据项之间逻辑关系的说明来消除冗余。冗余。n例,教师工资单中包括该教师的基本工资、各种补贴、应例,教师工资单中包括该教师的基本工资、各种补贴、应扣除的房租水电费以及实发工资。扣除的房租水电费以及实发工资。n由于实发工资可以由前面各项推算出来,因此可以由于实发工资可以由前面各项推算出来,因此可以去掉,在需要查询实发工资时根据基本工资、各种补贴、去掉,在需要查询实发工资时根据基本工资、各种补贴、应扣除的房租水电费数据临时生成。应扣除的房租水电费数据临时生成。n如果是为了提高效率,人为地保留了一些冗如果是为了提高效率,人为
90、地保留了一些冗余数据,则应把数据字典中数据关联的说明余数据,则应把数据字典中数据关联的说明作为完整性约束条件。作为完整性约束条件。n一种更好的方法是把冗余数据定义在视图中一种更好的方法是把冗余数据定义在视图中 掉罕吸蚀乒诈盘淡陕广点桶衍吨昏缀骚圈鹏措站扫自禄捞找若焉订辑些枕六章节数据库设计六章节数据库设计2006年4月12日78安财信工学院计算机系消除冗余的方法消除冗余的方法n规范化理论规范化理论n函数依赖的概念提供了消除冗余联系的形式化工具函数依赖的概念提供了消除冗余联系的形式化工具n方法方法n1. 确定分确定分E-R图实体之间的数据依赖图实体之间的数据依赖FL 。实体之间一对一、一对多、。
91、实体之间一对一、一对多、多对多的联系可以用实体码之间的函数依赖来表示。多对多的联系可以用实体码之间的函数依赖来表示。n例:例:n班级和学生之间一对多的联系:班级和学生之间一对多的联系: 学号学号班级号班级号n学生和课程之间多对多的联系:学生和课程之间多对多的联系: (学号,课程号)(学号,课程号) 成绩成绩n2. 求求FL的最小覆盖的最小覆盖GL ,差集为,差集为 D = FL-GL。n逐一考察逐一考察D中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。恨峦咬孺菏巷厕泛夫俄烟绥覆允泣纂匡欣叠亮也喊储鞠驭助宅阻走哼栋坊六章节数据库设计六章
92、节数据库设计2006年4月12日79安财信工学院计算机系n冗余数据和冗余联系:冗余数据和冗余联系:n(1) 学生实体中的年龄属性可以由出生日期推算出来,属于冗学生实体中的年龄属性可以由出生日期推算出来,属于冗余数据,应该去掉。这样不仅可以节省存储空间,而且当某余数据,应该去掉。这样不仅可以节省存储空间,而且当某个学生的出生日期有误,进行修改后,无须相应修改年龄,个学生的出生日期有误,进行修改后,无须相应修改年龄,减少了产生数据不一致减少了产生数据不一致的机会。的机会。学生:学生:学号学号,姓名,出生日期,所在系,姓名,出生日期,所在系, 年级,平均成绩年级,平均成绩n(2) 教室实体与班级实体
93、的上课联系可以由教室与课程之间的教室实体与班级实体的上课联系可以由教室与课程之间的开设联系、课程与学生之间的选修联系、学生与班级之间的开设联系、课程与学生之间的选修联系、学生与班级之间的组成联系三者推导出来,因此属于冗余联系,可以消去。组成联系三者推导出来,因此属于冗余联系,可以消去。n(3) 学生实体中的平均成绩可以从选修联系中的成绩属性中推算出来学生实体中的平均成绩可以从选修联系中的成绩属性中推算出来n由于应用中需要经常查询某个学生的平均成绩,每次都进行这种由于应用中需要经常查询某个学生的平均成绩,每次都进行这种计算效率就会太低,因此为提高效率,保留该冗余数据计算效率就会太低,因此为提高效
94、率,保留该冗余数据n但定义一个触发器来保证学生的平均成绩等于该学生各科成绩的但定义一个触发器来保证学生的平均成绩等于该学生各科成绩的平均值。平均值。n任何一科成绩修改后,或该学生学了新的科目并有成绩后,就触任何一科成绩修改后,或该学生学了新的科目并有成绩后,就触发该触发器去修改该学生的平均成绩属性值。发该触发器去修改该学生的平均成绩属性值。满露佯挡另洲费蚀星判埃庸尧救烷封座睡骗失澡默独人饱宴舌核渤绢娩逻六章节数据库设计六章节数据库设计2006年4月12日80安财信工学院计算机系三、验证整体概念结构三、验证整体概念结构n视图集成后形成一个整体的数据库概念结构,对该整视图集成后形成一个整体的数据库
95、概念结构,对该整体概念结构还必须进行进一步验证,确保它能够满足体概念结构还必须进行进一步验证,确保它能够满足下列条件下列条件:n整体概念结构内部必须具有一致性,不存在互相矛整体概念结构内部必须具有一致性,不存在互相矛盾的表达。盾的表达。n整体概念结构能准确地反映原来的每个视图结构,整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系。包括属性、实体及实体间的联系。n整体概念结构能满足需要分析阶段所确定的所有要整体概念结构能满足需要分析阶段所确定的所有要求。求。n整体概念结构最终还应该提交给用户,征求用户和整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、
96、修改和优化,然后把有关人员的意见,进行评审、修改和优化,然后把它确定下来,作为数据库的概念结构,作为进一步它确定下来,作为数据库的概念结构,作为进一步设计数据库的依据设计数据库的依据。珊沙严舍翁枪拈匆栗酷匀部头陈晤浅拣敏饲稍堪装楚栈绸镭借偷缚仑兰赠六章节数据库设计六章节数据库设计2006年4月12日81安财信工学院计算机系数据库设计数据库设计n数据库的设计过程数据库的设计过程n需求分析需求分析n概念结构设计概念结构设计n逻辑结构设计逻辑结构设计n物理数据库设计物理数据库设计n实施实施n运行维护运行维护设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。悠者淮选活昏留圭柬忽例艺垂寺证氮功
97、会不尊扒佳漫峡炽回薄孽排疲奈狈六章节数据库设计六章节数据库设计2006年4月12日82安财信工学院计算机系概念结构设计小结概念结构设计小结n概念结构设计的步骤概念结构设计的步骤n抽象数据并设计局部视图抽象数据并设计局部视图n集成局部视图,得到全局概念结构集成局部视图,得到全局概念结构n验证整体概念结构验证整体概念结构瞬拿仍耍衙浴死倡旅焊驼卜拍颠帖疽晶鸦萌淘肮芜囱沟妓瓢闺矛春讯溃简六章节数据库设计六章节数据库设计2006年4月12日83安财信工学院计算机系概念结构设计小结概念结构设计小结n数据抽象数据抽象n分类分类n聚集聚集n概括概括澳少渺丧射刮锨耽恩竞来恢卿洞窍谍瞩叔盂滔行男啤姐殿参剩蚂厂瓣扇
98、炉六章节数据库设计六章节数据库设计2006年4月12日84安财信工学院计算机系概念结构设计小结概念结构设计小结n设计局部视图设计局部视图n 选择局部应用选择局部应用n 逐一设计分逐一设计分E-R图图n标定局部应用中的实体、属性、码,实体标定局部应用中的实体、属性、码,实体间的联系间的联系n用用E-R图描述出来图描述出来歉捧吻涤蛤迈岁白刻茶擂鉴榴身腮移甭占蒙斟擞浑浦醇笔勘姐网肇脉尉展六章节数据库设计六章节数据库设计2006年4月12日85安财信工学院计算机系概念结构设计小结概念结构设计小结n集成局部视图集成局部视图n1.合并分合并分E-R图,生成初步图,生成初步E-R图图n消除冲突消除冲突n属性
99、冲突属性冲突n命名冲突命名冲突n结构冲突结构冲突n2. 修改与重构修改与重构n消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-R图图n分析方法分析方法n规范化理论规范化理论唉牙忆代睦掺疽倔土伟裴绷叁倔驻帜娶涎涕量绞散绅破棺度盆叹靶恬镜治六章节数据库设计六章节数据库设计2006年4月12日86安财信工学院计算机系6.4 逻辑结构设计逻辑结构设计n逻辑结构设计的任务逻辑结构设计的任务n概念结构是各种数据模型的共同基础。为了能够用某一概念结构是各种数据模型的共同基础。为了能够用某一DBMS实现用户需求,还必须将概念结构进一步转化为相应实现用户需求,还必须将概念结构进一步转化为相应的数
100、据模型,这正是数据库逻辑结构设计所要完成的任务。的数据模型,这正是数据库逻辑结构设计所要完成的任务。n逻辑结构设计的步骤逻辑结构设计的步骤n将概念结构转化为一般的关系、网状、层次模型将概念结构转化为一般的关系、网状、层次模型n将将转转化化来来的的关关系系、网网状状、层层次次模模型型向向特特定定DBMS支支持持下下的的数数据模型转换据模型转换n对数据模型进行优化对数据模型进行优化棠议很茂央尉砷灾轻声莎漫淋脱叠属品摊释萎耻集涟杯朴磷疆吨择杰渣憋六章节数据库设计六章节数据库设计2006年4月12日87安财信工学院计算机系 逻辑结构设计逻辑结构设计转化为转化为一般数一般数据模型据模型转化为特转化为特定
101、定DBMS支持下的支持下的据模型据模型优化模优化模型型概念结概念结构设计构设计数据库数据库物理设计物理设计基本基本E-R图图转换规转换规则则特定特定DBMS的的特点与限特点与限制制优化方优化方法如规法如规范化理范化理论论逻辑逻辑模型模型刁推茬元招选丫呕荣仲浓粕钞鬼惮宫韧爸儡踌闪暑划唾鸡敖吧沪季减末朱六章节数据库设计六章节数据库设计2006年4月12日88安财信工学院计算机系6.4.1 E-R图向关系模型的转换图向关系模型的转换n转换内容转换内容n转换原则转换原则哄烂积引寞执厘爹儡猫厨潮符躬疾挥攫普湍祭伐向漏韶纺敏囚炭啥房丸世六章节数据库设计六章节数据库设计2006年4月12日89安财信工学院计
102、算机系E-R图向关系模型的转换图向关系模型的转换内容内容nE-R图由实体、实体的属性和实体之间的联系图由实体、实体的属性和实体之间的联系三个要素组成三个要素组成n关系模型的逻辑结构是一组关系模式的集合关系模型的逻辑结构是一组关系模式的集合n将将E-R图转换为关系模型:将实体、实体的属图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。性和实体之间的联系转化为关系模式。胰炎蹲袱及应刀酞睫争饲瘴捣招俘鞘刻挨害临匪剖稗菲抹专唁伤昧流赦芽六章节数据库设计六章节数据库设计2006年4月12日90安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则1一个一个实体型实体型转
103、换为一个关系模式。转换为一个关系模式。n n关系的属性关系的属性关系的属性关系的属性:实体型的属性:实体型的属性n n关系的码关系的码关系的码关系的码:实体型的码:实体型的码例,学生实体可以转换为如下关系模式:例,学生实体可以转换为如下关系模式:学生(学生(学号学号,姓名,出生日期,所在系,年级,平均成绩),姓名,出生日期,所在系,年级,平均成绩) 性别、宿舍、班级、档案材料、教师、课程、教室、教科书性别、宿舍、班级、档案材料、教师、课程、教室、教科书都分别转换为一个关系模式。都分别转换为一个关系模式。学生学生学号学号出生出生日期日期年级年级所在系所在系平均平均成绩成绩姓名姓名剖梳膏鸦缚畏研梦
104、惨撰孜冗姓砌刃治确抑淄佛逛倚制赛寅椰体渐选疫带输六章节数据库设计六章节数据库设计2006年4月12日91安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则2一个一个m:n联系联系转换为一个关系模式。转换为一个关系模式。n n关系的属性关系的属性关系的属性关系的属性:与该联系相连的各实体的码以:与该联系相连的各实体的码以及联系本身的属性及联系本身的属性n n关系的码关系的码关系的码关系的码:各实体码的组合:各实体码的组合例,例,“选修选修”联系是一个联系是一个m:n联系,可以将它联系,可以将它转换为如下关系模式,其中学号与课程号为关转换为如下关系模式,其中学号与课程号为关系的
105、组合码:系的组合码:选修(选修(学号学号,课程号课程号,成绩),成绩)净韶肾恼疆雍湿躺兆厕娠误灶忘尚途伯颠危晋戮险学垮簧鸵印秤蔫隧酚燥六章节数据库设计六章节数据库设计2006年4月12日92安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则3一个一个1:n联系联系可以转换为一个独立的关系模式,也可以与可以转换为一个独立的关系模式,也可以与n端对应的端对应的关系模式合并。关系模式合并。n1) 转换为一个独立的关系模式转换为一个独立的关系模式n n关系的属性关系的属性关系的属性关系的属性:与该联系相连的各实体的码以及联系本身的:与该联系相连的各实体的码以及联系本身的属性属性n
106、n关系的码关系的码关系的码关系的码:n端实体的码端实体的码n2) 与与n端对应的关系模式合并端对应的关系模式合并n n合并后关系的属性合并后关系的属性合并后关系的属性合并后关系的属性:在:在n端关系中加入端关系中加入1端关系的码和联系端关系的码和联系本身的属性本身的属性n n合并后关系的码合并后关系的码合并后关系的码合并后关系的码:不变:不变n可以减少系统中的关系个数,一般情况下更倾向于采用这种方法可以减少系统中的关系个数,一般情况下更倾向于采用这种方法例,将其转换为关系模式的两种方法:例,将其转换为关系模式的两种方法: 1)使其成为一个独立的关系模式:使其成为一个独立的关系模式:组成(组成(
107、学号学号,班级号),班级号) 2)将其学生关系模式合并:将其学生关系模式合并:学生(学生(学号学号,姓名,出生日期,所在系,年级,姓名,出生日期,所在系,年级,班级号班级号班级号班级号,平均成绩),平均成绩)班级班级学生学生组成组成组成组成N1乐秆芝述躬缚泊憋馈实纬隶操丁揭西励祷音胃物婚戌媒婉勘意驳蛋旅舆沏六章节数据库设计六章节数据库设计2006年4月12日93安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则4 一个一个1:1联系联系可以转换为一个独立的关系模式,也可以与任意一可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。端对应的关系模式合并。n1)
108、转换为一个独立的关系模式转换为一个独立的关系模式n n关系的属性关系的属性关系的属性关系的属性:与该联系相连的各实体的码以及联系本身的:与该联系相连的各实体的码以及联系本身的属性属性n n关系的候选码关系的候选码关系的候选码关系的候选码:每个实体的码均是该关系的候选码:每个实体的码均是该关系的候选码n2) 与某一端对应的关系模式合并与某一端对应的关系模式合并n n合并后关系的属性合并后关系的属性合并后关系的属性合并后关系的属性:加入对应关系的码和联系本身的属性:加入对应关系的码和联系本身的属性n n合并后关系的码合并后关系的码合并后关系的码合并后关系的码:不变:不变郊袁茬仔股蛮赞咕答何地层银滇
109、疗京鹤裂衙过茵丈宫纪援亥咯歧沟弓墙达六章节数据库设计六章节数据库设计2006年4月12日94安财信工学院计算机系例,例,“管理管理”联系为联系为1:1联系,可以有三种转换方法:联系,可以有三种转换方法:(1)转换为一个独立的关系模式:)转换为一个独立的关系模式: 管理(管理(职工号职工号,班级号),班级号) 或或管理(职工号,管理(职工号,班级号班级号)(2)“管理管理”联系与班级关系模式合并,则只需在班级关系中联系与班级关系模式合并,则只需在班级关系中加入教师关系的码,即职工号:加入教师关系的码,即职工号:班级:(班级:(班级号班级号,学生人数,学生人数,职工号职工号)(3)“管理管理”联系
110、与教师关系模式合并,则只需在教师关系中联系与教师关系模式合并,则只需在教师关系中加入班级关系的码,即班级号:加入班级关系的码,即班级号:教师:(教师:(职工号职工号,姓名,性别,职称,姓名,性别,职称,班级号班级号, 是否为优秀班主任)是否为优秀班主任)教师教师管理管理11班级班级趁丝告苗燃燃邵骆揉渭到吮搬悔传恐潍倔笼翰市莲煤蹿托镊澎碎市家买上六章节数据库设计六章节数据库设计2006年4月12日95安财信工学院计算机系注意:注意:u从理论上讲,从理论上讲,1:1联系可以与任意一端对应的关系模式联系可以与任意一端对应的关系模式合并。合并。u但在一些情况下,与不同的关系模式合并效率会大不但在一些情
111、况下,与不同的关系模式合并效率会大不一样。因此究竟应该与哪端的关系模式合并需要依应一样。因此究竟应该与哪端的关系模式合并需要依应用的具体情况而定。用的具体情况而定。u由于连接操作是最费时的操作,所以一般应以尽量减由于连接操作是最费时的操作,所以一般应以尽量减少连接操作为目标。少连接操作为目标。 例如,如果经常要查询某个例如,如果经常要查询某个班级的班主任姓名,则将管理联系与教师关系合并更班级的班主任姓名,则将管理联系与教师关系合并更好些。好些。预乓嘿卉乐奢邑随青亿翘冰磷根叔碗愈甘妥疆阁狞钉渊凶贞注由百翅柯肘六章节数据库设计六章节数据库设计2006年4月12日96安财信工学院计算机系E-R图向关
112、系模型的转换原则图向关系模型的转换原则5 三个或三个以上实体间的一个三个或三个以上实体间的一个多元联系多元联系转换为转换为一个关系模式。一个关系模式。n n关系的属性关系的属性关系的属性关系的属性:与该多元联系相连的各实体的:与该多元联系相连的各实体的码以及联系本身的属性码以及联系本身的属性n n关系的码关系的码关系的码关系的码:各实体码的组合:各实体码的组合例,例,“讲授讲授”联系是一个三元联系,可以将它联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、职工号和转换为如下关系模式,其中课程号、职工号和书号为关系的组合码:书号为关系的组合码:讲授(讲授(课程号,职工号,书号课程号,职
113、工号,书号)佯析扛啊藉冷枝闻虱川嚣向查镰棉勿皂道虎酥蛆潞缺蔓雁肮刽怎蝉奄序泥六章节数据库设计六章节数据库设计2006年4月12日97安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则6 同一实体集的实体间的联系,即同一实体集的实体间的联系,即自联系自联系,也可,也可按上述按上述1:1、1:n和和m:n三种情况分别处理。三种情况分别处理。例,如果教师实体集内部存在领导与被领导的例,如果教师实体集内部存在领导与被领导的1:n自联系,我们可以将该联系与教师实体合自联系,我们可以将该联系与教师实体合并,这时主码职工号将多次出现,但作用不同,并,这时主码职工号将多次出现,但作用不同,
114、可用不同的属性名加以区分:可用不同的属性名加以区分:教师:教师:职工号职工号,姓名,性别,职称,姓名,性别,职称,系主任系主任终携帐崔猎酿醚呼纪缄上娶远慌订武灵鸡揪迸敲砚咖酪甥涣棋蓖蛛衡朵美六章节数据库设计六章节数据库设计2006年4月12日98安财信工学院计算机系E-R图向关系模型的转换原则图向关系模型的转换原则7 具有相同码的关系模式可合并。具有相同码的关系模式可合并。n目的:减少系统中的关系个数。目的:减少系统中的关系个数。n合并方法:将其中一个关系模式的全部属性加入到另一个关系模合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名)
115、,并式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序。适当调整属性的次序。n例,例,“性别性别”关系模式:关系模式:n性别(性别(学号学号,性别),性别)n与学生关系模式:与学生关系模式:n 学生(学生(学号学号,姓名,出生日期,所在系,年级,姓名,出生日期,所在系,年级, 班级号,平均成绩)班级号,平均成绩)n都以学号为码,可以将它们合并为一个关系模式:都以学号为码,可以将它们合并为一个关系模式:n学生(学生(学号学号,姓名,性别,出生日期,所在系,姓名,性别,出生日期,所在系, 年级,班级号,平均成绩)年级,班级号,平均成绩)系系1有有班级班级N1学生学生组成组成
116、N1N宿舍宿舍住宿住宿想冷赋毗流饭述娠戌统衅垛填凑怖贵酉迂梳际良暂抨肖度忧旨牌射酌滁斋六章节数据库设计六章节数据库设计2006年4月12日99安财信工学院计算机系实例实例n按照上述七条原则,学生管理子系统中的按照上述七条原则,学生管理子系统中的18个实体和联系可以转换为个实体和联系可以转换为下列关系模型:下列关系模型: 学生学生(学号学号,姓名,性别,出生日期,所在系,姓名,性别,出生日期,所在系, 年级,班级号,平均成绩,档案号)年级,班级号,平均成绩,档案号)宿舍楼宿舍楼(宿舍楼号宿舍楼号,性别性别)住宿住宿(学号学号,宿舍编号宿舍编号) 宿舍宿舍(宿舍编号宿舍编号,宿舍楼号,地址,性别,
117、人数),宿舍楼号,地址,性别,人数)班级班级(班级号班级号,学生人数),学生人数) 教师教师(职工号职工号,姓名,性别,职称,班级号,姓名,性别,职称,班级号, 是否为优秀班主任)是否为优秀班主任) 指导指导(职工号,学号职工号,学号)课程课程(课程号课程号,课程名,学分,教室号),课程名,学分,教室号)选修选修(学号,课程号学号,课程号,成绩),成绩)教科书教科书(书号书号,书名,价钱),书名,价钱)教室教室(教室编号教室编号,地址,容量),地址,容量)讲授讲授(课程号,教师号,书号课程号,教师号,书号)档案材料档案材料(档案号,档案号,)。司勘哎翻两涡眯儿唉儡马宰窒著索教届侄寇矮规总牛原痞
118、郡凭鼠漓秆掣卵六章节数据库设计六章节数据库设计2006年4月12日100安财信工学院计算机系E-R图向关系模型的转换(续)图向关系模型的转换(续)n该关系模型由该关系模型由12个关系模式组成。个关系模式组成。其中:其中:n学生关系模式包含了学生关系模式包含了“拥有拥有”联系、联系、“组成组成”联系、联系、“归档归档”联系所对应的关系模式联系所对应的关系模式n教师关系模式包含了教师关系模式包含了“管理管理”联系所对应的联系所对应的关系模式;关系模式;n宿舍关系模式包含了宿舍关系模式包含了“住宿住宿”联系所对应的联系所对应的关系模式;关系模式;n课程关系模式包含了课程关系模式包含了“开设开设”联系
119、所对应的联系所对应的关系模式关系模式。纸夺气拍奔夸逊缠穷聚啪樱定胸料剥惶痰业欺宁缀争卑位院语洲垃盼代衷六章节数据库设计六章节数据库设计2006年4月12日101安财信工学院计算机系ER图转换成关系模式集的规则图转换成关系模式集的规则n将每个实体类型转换成一个关系模式,实体的属性即为关系模将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键式的属性,实体标识符即为关系模式的键n二元联系类型的转换二元联系类型的转换n若若实体体间联系是系是1:11:1,可以在两个,可以在两个实体体类型型转换成的两个关系模式中任意成的两个关系模式中任意一个关系模式的属性中加入另一
120、个关系模式的一个关系模式的属性中加入另一个关系模式的键和和联系系类型的属性。型的属性。 n若若实体体间联系是系是1:N1:N,则在在N N端端实体体类型型转换成的关系模式中加入成的关系模式中加入1 1端端实体体类型的型的键和和联系系类型的属性。型的属性。 n若若实体体间联系是系是M:NM:N,则将将联系系类型也型也转换成关系模式,其属性成关系模式,其属性为两端两端实体体类型的型的键加上加上联系系类型的属性,而型的属性,而键为两端两端实体体键的的组合合 n一元一元联系系类型的型的转换: :同二元联系同二元联系 n三元三元联系系类型的型的转换 总是将三元是将三元联系系类型型转换成关系模式,其属性成
121、关系模式,其属性为三端三端实体体类型的型的键加上加上联系系类型的属性,而型的属性,而键为三端三端实体体键的的组合合。 陪留无锈凋释颁厂昨调睬夹资恶吻咽涵瞄招懊缨悉迫陛梭蹲唬循历咏铭真六章节数据库设计六章节数据库设计2006年4月12日102安财信工学院计算机系ER模型到关系模型的转换实例模型到关系模型的转换实例职工工号姓名年龄性别领导1N运动员(编号,姓名,性别,名次,上一名次编号,下一名次编号) 职工(工号,姓名,年龄,性别,经理工号) 运动员编号姓名性别名次顺序11钡隔箍滴澡炳珊罩烈扼垢捣宦君茹峪单袄府烂歪视纂沫熬寅夕藐颤求之哟六章节数据库设计六章节数据库设计2006年4月12日103安财
122、信工学院计算机系ER模型到关系模型的转换实例模型到关系模型的转换实例零件零件零件号零件号零件名零件名规规格格数量数量组成组成MN仓库仓库商品商品商店商店仓库号仓库号仓库名仓库名地址地址数量数量商店号商店号商品名商品名商品号商品号商店名商店名日期日期进货进货MNP零件(零件(零件号零件号,零件名,规格),零件名,规格)组成(组成(零件号零件号,子零件号子零件号,数量),数量) 仓库(仓库(仓库号仓库号,仓库名,地址),仓库名,地址)商店(商店(商店号商店号,商店名),商店名)商品(商品(商品号商品号,商品名),商品名)进货(进货(商店号商店号,商品名商品名,仓库号仓库号,日期,数量),日期,数量
123、) 营易黑净措嫡琴固叶缀养胆频悍朴蕾刑术主移重选曾吠同板敦均蛛哎浆特六章节数据库设计六章节数据库设计2006年4月12日104安财信工学院计算机系采用采用ER方法的逻辑设计步骤方法的逻辑设计步骤关系模式规范化模式评价是否需要修正从ER模式导出初始数据库模式处理需求ER模式DBMS特征用DBMS语法描述模式修正进入物理设计阶段是否居苇樟螟矩礁喘盾彪纳尼恋充瞻灶诧腋赡鼎呐扫局含扬膳霸燃册秤钡揽坝六章节数据库设计六章节数据库设计2006年4月12日105安财信工学院计算机系例例1 库存销售信息管理系统的库存销售信息管理系统的ER模型及转换模型及转换P车车间间仓仓位位产产品品客客户户销售销售员员存存储
124、储出出库库订订单单入入库库MNMPMNPMNN库存系统ER图车间(车间号,车间名,主任名) 产品(产品号,产品名,单价) 仓位(仓位号,地址,主任名) 客户(客户号,客户名,联系人,电话, 地址,税号,账号)销售员(销售员号,姓名,性别,学历,业绩)实体入库(入库单号,入库量,入库日期,经手人, 车间号,仓位号,产品名)出库(出库单号,出库量,出库日期,经手人,客户号,产品名,仓位号)订单(订单号,数量,折扣,总价,订单日期,产品号,客户号,销售员号) 存储(仓位号,产品号,核对日期,核对员,存储量)联系畔狂瞄蔓韩惺简蛀荧乓行钢氟卉敖谆差辫忘津咋恍蜜径屁郊舷亭喉嗽妙整六章节数据库设计六章节数据
125、库设计2006年4月12日106安财信工学院计算机系例例2:公司车队信息系统的公司车队信息系统的ERER模型模型 部门部门车队车队司机司机车辆车辆开销开销维修公司维修公司调用调用报销报销拥有拥有聘用聘用保险保险2保险保险1M1NN1NNNN11保险公司保险公司1N维修维修聪啃殉滚线擎搞痴铅铲肘恼楚明魂揩淳傀柜磕焉沫轧姓同稚牺吧钻里叹叁六章节数据库设计六章节数据库设计2006年4月12日107安财信工学院计算机系1、 弱实体弱实体n什么是弱实体什么是弱实体n弱实体的表示方法弱实体的表示方法n包含弱实体的包含弱实体的ER图图转换成关系模式转换成关系模式问题:问题:在人事管理系统中,亲属的存在是以职
126、工的存在为前提,即亲属对于职工具有依赖联系,所以说,亲属是弱实体 职 工社会关系具有1NER图职工职工(职工号,职工姓名,性别,年龄)亲属亲属(职工号,称呼,姓名,工作单位) 关系关系模式模式问题问题: :商业应用系统中,顾客地址的存在依赖于顾客的存在(一般顾客可以有若干个联系地址) ER图顾 客地 址通讯N1nER模型的扩充模型的扩充晃肾缉煎梳从赌施辐繁喧粳见灼琳视幸讶觉馆蟹围犹黑犊赎瞪妨敌让臭华六章节数据库设计六章节数据库设计2006年4月12日108安财信工学院计算机系2 子类实体与超类实体子类实体与超类实体n什么是子类和超类什么是子类和超类n子类和超类的性质子类和超类的性质n子类与超类
127、之间具有子类与超类之间具有继承性,但子类本身继承性,但子类本身还能包含比超类更多还能包含比超类更多的属性。的属性。n子子类和超和超类有相同的有相同的标识符符 人员教师本科生学生研究生学学校校人人事事系系统统中中实实体体之之间间的的联联系系 人员(身份证号,姓名,年龄,性别)教师(身份证号,教师编号,职称)学生(身份证号,学号,系别,专业)本科生(身份证号,入学年份)研究生(身份证号,研究方向,导师姓名)对应的关系模式敝梯欧碳擞咀坊葛伺韩泽滥较获惑器诌笨挖缠让池糙娥昏抒砂矾独讥烛阻六章节数据库设计六章节数据库设计2006年4月12日109安财信工学院计算机系6.4.2 向特定向特定DBMS规定的
128、模型进行转换规定的模型进行转换n一般的数据模型还需要向特定一般的数据模型还需要向特定DBMS规规定的模型进行转换。定的模型进行转换。n转换的主要依据是所选用的转换的主要依据是所选用的DBMS的功的功能及限制。没有通用规则。能及限制。没有通用规则。n对于关系模型来说,这种转换通常都比对于关系模型来说,这种转换通常都比较简单。较简单。黄聊棚材烘吃假炒鞭旬擎此氓乡拴淖笔坝霓肾冈碍腿筋笨撂挫衷稽游本税六章节数据库设计六章节数据库设计2006年4月12日110安财信工学院计算机系6.4.3 数据模型的优化数据模型的优化n数据库逻辑设计的结果不是唯一的。数据库逻辑设计的结果不是唯一的。n得到初步数据模型后
129、,还应该适当地修得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是数据高数据库应用系统的性能,这就是数据模型的优化。模型的优化。n关系数据模型的优化通常以规范化理论关系数据模型的优化通常以规范化理论为指导。为指导。寡捏侵四兵裕厅抬厅搪丧路锰褂苇姻荫缘蕴柑搔敛御丫侯围抢挪焙慨集若六章节数据库设计六章节数据库设计2006年4月12日111安财信工学院计算机系优化数据模型的方法优化数据模型的方法 确定数据依赖确定数据依赖n按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的按需求分析阶段所得到的语义,分别写
130、出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖数据依赖以及不同关系模式属性之间数据依赖。例,课程关系模式内部存在例,课程关系模式内部存在下列数据依赖:下列数据依赖: 课程号课程号课程名课程名 课程号课程号学分学分 课程号课程号教室号教室号 选修关系模式中存在选修关系模式中存在下列数据依赖:下列数据依赖: (学号,课程号)(学号,课程号)成绩成绩 学生关系模式中存在学生关系模式中存在下列数据依赖:下列数据依赖: 学号学号姓名姓名 学号学号性别性别 学号学号出生日期出生日期 学号学号所在系所在系学号学号年级年级 学号学号班级号班级号 学号学号平均成绩平均成绩 学号学号档案号
131、档案号学生关系模式的学号与选修关系学生关系模式的学号与选修关系模式的学号之间存在数据依赖:模式的学号之间存在数据依赖: 学生学生.学号学号选修选修.学号学号病恶蚕倒凸妥燃接慎基眷家戒遁波堤猎刁嘻鸿诵祭腮氰则钠余母溯怕叫愤六章节数据库设计六章节数据库设计2006年4月12日112安财信工学院计算机系数据模型的优化(续)数据模型的优化(续) 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。联系。 按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依
132、赖、多值依赖等,确定各关系模式分别分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。属于第几范式。 例如经过分析可知,课程关系模式属于例如经过分析可知,课程关系模式属于BC范式。范式。 按照需求分析阶段得到的各种应用对数据处理的要求,分析对于按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。或分解。春单锻芜室厚谬耘登坛奇氰斌番刘帘嫁咐杏人瘩吐肋毋坍给稀衬嗣盎卉搁六章节数据库设计六章节数据库设计2006年4月12日113安财信工学院计算机系数据模型的优
133、化(续)数据模型的优化(续)n并不是规范化程度越高的关系就越优。并不是规范化程度越高的关系就越优。n当一个应用的查询中经常涉及到两个或多个关系模式的属性当一个应用的查询中经常涉及到两个或多个关系模式的属性时,系统必须经常地进行联接运算,而联系运算的代价是相时,系统必须经常地进行联接运算,而联系运算的代价是相当高的,可以说关系模型低效的主要原因就是做联接运算引当高的,可以说关系模型低效的主要原因就是做联接运算引起的,因此在这种情况下,第二范式甚至第一范式也许是最起的,因此在这种情况下,第二范式甚至第一范式也许是最好的。好的。n非非BCNF的关系模式虽然从理论上分析会存在不同程度的更新的关系模式虽
134、然从理论上分析会存在不同程度的更新异常,但如果在实际应用中对此关系模式只是查询,并不执异常,但如果在实际应用中对此关系模式只是查询,并不执行更新操作,则就不会产生实际影响。行更新操作,则就不会产生实际影响。n对于一个具体应用来说,到底规范化进行到什么程度,需要对于一个具体应用来说,到底规范化进行到什么程度,需要权衡响应时间和潜在问题两者的利弊才能决定。一般说来,权衡响应时间和潜在问题两者的利弊才能决定。一般说来,第三范式就足够了。第三范式就足够了。畅棚呜曝泻充岸久赐兰诵烤骑适目短生嚎带窄欺囱阅臼稗鹅郭迟谭圾窄澄六章节数据库设计六章节数据库设计2006年4月12日114安财信工学院计算机系例:在
135、关系模式例:在关系模式 学生成绩单学生成绩单(学号学号,英语英语,数学数学,语文语文,平均成绩平均成绩) 中存在下列函数依赖:中存在下列函数依赖: 学号学号英语英语 学号学号数学数学 学号学号语文语文 学号学号平均成绩平均成绩 (英语英语, 数学数学, 语文语文)平均成绩平均成绩 显然有:显然有: 学号学号(英语英语,数学数学,语文语文)因此该关系模式中存在传递函数信赖,是因此该关系模式中存在传递函数信赖,是2NF关系。关系。 虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩,为提高效率,我们仍然可保留该冗余
136、数据,对关系学生的平均成绩,为提高效率,我们仍然可保留该冗余数据,对关系模式不再做进一步分解。模式不再做进一步分解。窜偿祝共殴胎矿辣麓礼睹贯疫润省甘泡篮豢慢例蝴工割血落潭兼科肪滥乓六章节数据库设计六章节数据库设计2006年4月12日115安财信工学院计算机系数据模型的优化(续)数据模型的优化(续) 按照需求分析阶段得到的各种应用对数据处按照需求分析阶段得到的各种应用对数据处理的要求,对关系模式进行必要的分解或合理的要求,对关系模式进行必要的分解或合并,以提高数据操作的效率和存储空间的利并,以提高数据操作的效率和存储空间的利用率用率n常用分解方法常用分解方法n水平分解水平分解n垂直分解垂直分解埠
137、逆卢赢蜕帘澈骂岭痹盼途监郁弹皮络扎磐俱咐坠席涩章役近自懦离哈柏六章节数据库设计六章节数据库设计2006年4月12日116安财信工学院计算机系n什么是水平分解?什么是水平分解?n把把(基基本本)关关系系的的元元组组分分为为若若干干子子集集合合,定定义义每每个个子子集集合合为为一一个子关系,以提高系统的效率。个子关系,以提高系统的效率。n水平分解的适用范围水平分解的适用范围n1. 满足满足“80/20原则原则”的应用的应用n80/20原则:一个大关系中,经常被使用的数据只是关系的一部原则:一个大关系中,经常被使用的数据只是关系的一部分,约分,约20%n把把经经常常使使用用的的数数据据分分解解出出来
138、来,形形成成一一个个子子关关系系,可可以以减减少少查查询询的的数据量。数据量。n2. 并发事务经常存取不相交的数据并发事务经常存取不相交的数据n如如果果关关系系R上上具具有有n个个事事务务,而而且且多多数数事事务务存存取取的的数数据据不不相相交交,则则R可可分分解解为为少少于于或或等等于于n个个子子关关系系,使使每每个个事事务务存存取取的的数数据据对对应一个关系。应一个关系。水平分解水平分解仪汤狙见晾酱乃陌辫珠机涛慰揽仓露寂滥辆紊蝉服申博斯挝狈槛潭扦袋则六章节数据库设计六章节数据库设计2006年4月12日117安财信工学院计算机系垂直分解垂直分解n什么是垂直分解什么是垂直分解n把关系模式把关系
139、模式R的属性分解为若干子集合,形成若干子关系模式。的属性分解为若干子集合,形成若干子关系模式。n垂直分解的原则垂直分解的原则n经常在一起使用的属性从经常在一起使用的属性从R中分解出来形成一个子关系模式。中分解出来形成一个子关系模式。n垂直分解的优点垂直分解的优点n可以提高某些事务的效率可以提高某些事务的效率n垂直分解的缺点垂直分解的缺点n可能使另一些事务不得不执行连接操作,从而降低了效率。可能使另一些事务不得不执行连接操作,从而降低了效率。n垂直分解的适用范围垂直分解的适用范围n取决于分解后取决于分解后R上的所有事务的总效率是否得到了提高。上的所有事务的总效率是否得到了提高。n进行垂直分解的方
140、法进行垂直分解的方法n简单情况:直观分解简单情况:直观分解n复杂情况:用第五章中的模式分解算法复杂情况:用第五章中的模式分解算法n垂垂直直分分解解必必须须不不损损失失关关系系模模式式的的语语义义(保保持持无无损损连连接接性性和和保保持持函函数数依依赖赖)。要荧碑弯耙棠毋妖壕呻淆珐诚舜弯绩拙翟愈苍钮眯镊二控详将掺造霸乱缀六章节数据库设计六章节数据库设计2006年4月12日118安财信工学院计算机系6.4.4 设计用户子模式设计用户子模式n定义数据库模式主要是从系统的时间效率、空间效率、定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。定义用户外模式时应该更注重考易维护等角度出发。
141、定义用户外模式时应该更注重考虑用户的习惯与方便。包括三个方面:虑用户的习惯与方便。包括三个方面: (1)使用更符合用户习惯的别名使用更符合用户习惯的别名 (2) 针对不同级别的用户定义不同的外模式,以满足系针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。统对安全性的要求。 (3) 简化用户对系统的使用简化用户对系统的使用 杠可羌臣邯虹尼票结挟沼腕焊嫂招场渤剪佩廓梦亩揖康柜搁田竭友独伞剧六章节数据库设计六章节数据库设计2006年4月12日119安财信工学院计算机系逻辑结构设计小结逻辑结构设计小结n任务任务n将概念结构转化为具体的数据模型将概念结构转化为具体的数据模型n逻辑结构设计的
142、步骤逻辑结构设计的步骤n将概念结构转化为一般的关系、网状、层次模将概念结构转化为一般的关系、网状、层次模型型n将转化来的关系、网状、层次模型向特定将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换支持下的数据模型转换n对数据模型进行优化对数据模型进行优化n设计用户子模式设计用户子模式肮私苦哨轰仕把谤胰舀季欢逸阿譬廖撮肛扫言纲宁孵擅枚露痘零炙骆塑北六章节数据库设计六章节数据库设计2006年4月12日120安财信工学院计算机系逻辑结构设计小结逻辑结构设计小结nE-R图向关系模型的转换原则图向关系模型的转换原则 一个一个实体型实体型转换为一个关系模式。转换为一个关系模式。 一个一个m:
143、n联系联系转换为一个关系模式。转换为一个关系模式。 一个一个1:n联系联系可以转换为一个独立的关系模式,也可以与可以转换为一个独立的关系模式,也可以与n端对应端对应的关系模式合并。的关系模式合并。 一个一个1:1联系联系可以转换为一个独立的关系模式,也可以与任意一可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。端对应的关系模式合并。 三个或三个以上实体间的一个三个或三个以上实体间的一个多元联系多元联系转换为一个关系模式。转换为一个关系模式。 同一实体集的实体间的联系,即同一实体集的实体间的联系,即自联系自联系,也可按上述,也可按上述1:1、1:n和和m:n三种情况分别处理。三
144、种情况分别处理。 具有具有相同码相同码的关系模式可合并。的关系模式可合并。罕礁忌缄墙鱼辖产踪睦榷斤夹刹全抑爬汀破拨葬绅梨赃啃庭翠匹严针犀锻六章节数据库设计六章节数据库设计2006年4月12日121安财信工学院计算机系逻辑结构设计小结逻辑结构设计小结n优化数据模型的方法优化数据模型的方法 确定数据依赖确定数据依赖 对于各个关系模式之间的数据依赖进行极小对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。化处理,消除冗余的联系。 确定各关系模式分别属于第几范式。确定各关系模式分别属于第几范式。 分析对于应用环境这些模式是否合适,确定分析对于应用环境这些模式是否合适,确定是否要对它们进行合
145、并或分解。是否要对它们进行合并或分解。 对关系模式进行必要的分解或合并对关系模式进行必要的分解或合并两短匹控铺砾俏磷躯犀撅嘛厢定霉弘陌廓鞘陈疮螺慧侣擦凤渐促芽唆揖淳六章节数据库设计六章节数据库设计2006年4月12日122安财信工学院计算机系逻辑结构设计小结逻辑结构设计小结n设计用户子模式设计用户子模式1. 使用更符合用户习惯的别名使用更符合用户习惯的别名2. 针对不同级别的用户定义不同的外模式,以针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。满足系统对安全性的要求。3. 简化用户对系统的使用简化用户对系统的使用杠廊部桩沂暗卷虐疙碍采峦差焊未渺卑吝筏绘渐拄滨梗弦师积归儿靖茬窟六
146、章节数据库设计六章节数据库设计2006年4月12日123安财信工学院计算机系6.5 数据库的物理设计数据库的物理设计n什么是数据库的物理设计什么是数据库的物理设计n数据库在物理设备上的存储结构与存取方法数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计称为数据库的物理结构,它依赖于给定的计算机系统。算机系统。n为一个给定的逻辑数据模型选取一个最适合为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的应用环境的物理结构的过程,就是数据库的物理设计。物理设计。殖烦倔植藕息轮怜嵌露湃磨脏霉胜速式震踏述仆牛付假牡暑话从谁会库奈六章节数据库设计六章节数据
147、库设计2006年4月12日124安财信工学院计算机系6.5 数据库的物理设计数据库的物理设计n数据库物理设计的步骤数据库物理设计的步骤n确定数据库的物理结构确定数据库的物理结构n对物理结构进行评价,评价的重点是时间和对物理结构进行评价,评价的重点是时间和空间效率空间效率n如果评价结果满足原设计要求则可进入到物如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修物理结构,有时甚至要返回逻辑设计阶段修改数据模型。改数据模型。潜景少猎普失游砚爵嗡狂枷放蹲忘鸟证粒耶嘱汐轰氓蚀回枷乍存殷追榴胸六章节数据库
148、设计六章节数据库设计2006年4月12日125安财信工学院计算机系 数据库物理设计数据库物理设计确定数确定数据库的据库的物理结物理结构构评价数据评价数据库的物理库的物理结构结构逻辑结逻辑结构设计构设计数据库数据库实施实施物理物理模型模型逻辑逻辑模型模型表答表训震屎勤赚往化剩贼浙饵躲馒监酸侦锻为譬筐蹈玉南戚闸拥岳神捕六章节数据库设计六章节数据库设计2006年4月12日126安财信工学院计算机系6.5.1 数据库的物理设计的内容和方法数据库的物理设计的内容和方法n设计物理数据库结构的准备工作设计物理数据库结构的准备工作n 1. 充分了解应用环境,详细分析要运行的充分了解应用环境,详细分析要运行的事
149、务,以获得选择物理数据库设计所需参数事务,以获得选择物理数据库设计所需参数n 2. 充分了解所用充分了解所用RDBMS的内部特征,特别的内部特征,特别是系统提供的存取方法和存储结构是系统提供的存取方法和存储结构跨主站幅晤空骂末器淳符具瓦箱语氧笨梯佣颊首替鼓脓田襄午比考饭磐铲六章节数据库设计六章节数据库设计2006年4月12日127安财信工学院计算机系选择物理数据库设计所需参数选择物理数据库设计所需参数n数据库查询事务数据库查询事务n查询的关系查询的关系n 查询条件所涉及的属性查询条件所涉及的属性n 连接条件所涉及的属性连接条件所涉及的属性n 查询的投影属性查询的投影属性n数据更新事务数据更新事
150、务n被更新的关系被更新的关系n每个关系上的更新操作条件所涉及的属性每个关系上的更新操作条件所涉及的属性n 修改操作要改变的属性值修改操作要改变的属性值n 每个事务在各关系上运行的频率和性能要求每个事务在各关系上运行的频率和性能要求 淄沫瘩缚扔少管缆翠抓勃导换嘿拨辈年顽仪烛商吹词风翌淀谩吁镜翌琴涸六章节数据库设计六章节数据库设计2006年4月12日128安财信工学院计算机系关系数据库物理设计的内容关系数据库物理设计的内容n1. 为关系模式选择为关系模式选择存取方法存取方法(建立存取路径建立存取路径)n2. 设计关系、索引等数据库文件的设计关系、索引等数据库文件的物理存物理存储结构储结构乃程舆勉苇
151、镭左凤囱投缘萄羽垒骗海纷梯句掖缴擦羌匀雹台婴杉椭皮吼帝六章节数据库设计六章节数据库设计2006年4月12日129安财信工学院计算机系6.5.2 关系模式存取方法选择关系模式存取方法选择n数据库系统是多用户共享的系统,对同一个关系要建数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。立多条存取路径才能满足多用户的多种应用要求。n物理设计的第一个任务就是要确定选择哪些存取方法,物理设计的第一个任务就是要确定选择哪些存取方法,即建立哪些存取路径。即建立哪些存取路径。nDBMS常用存取方法常用存取方法n索引方法,目前主要是索引方法,目前主要是B+树索引方法树索引
152、方法n聚簇(聚簇(Cluster)方法)方法nHASH方法方法移榔冈门恃游赌在拯仍啦弹智噪额瘴簧贸右赶爬谅诞得生椿官膏垢另舍割六章节数据库设计六章节数据库设计2006年4月12日130安财信工学院计算机系一、索引存取方法的选择一、索引存取方法的选择n选择索引存取方法的主要内容选择索引存取方法的主要内容根据应用要求确定根据应用要求确定n 对哪些属性列建立索引对哪些属性列建立索引n 对哪些属性列建立组合索引对哪些属性列建立组合索引n 对哪些索引要设计为唯一索引对哪些索引要设计为唯一索引魄蜂渝唐犀皑侮办河荡剔贯胳哲撑荫促襄秩瞒广默黔蕴馆奴泞戴堆茅惟寂六章节数据库设计六章节数据库设计2006年4月12
153、日131安财信工学院计算机系选择索引存取方法的一般规则选择索引存取方法的一般规则1.如果一个如果一个(或一组或一组)属性经常在查询条件中出现,则属性经常在查询条件中出现,则考虑在这个考虑在这个(或这组或这组)属性上建立索引属性上建立索引(或组合索引或组合索引)2.如果一个属性经常作为最大值和最小值等聚集函数如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引的参数,则考虑在这个属性上建立索引3.如果一个如果一个(或一组或一组)属性经常在连接操作的连接条件属性经常在连接操作的连接条件中出现,则考虑在这个中出现,则考虑在这个(或这组或这组)属性上建立索引属性上建立索引4.
154、关系上定义的索引数过多会带来较多的额外开销关系上定义的索引数过多会带来较多的额外开销n 维护索引的开销维护索引的开销n 查找索引的开销查找索引的开销函职盎佯驳住冬敞游渴宴吉抿剖阅诞楷沂剁满镶本爆违廊富唆叛羊谁颓锗六章节数据库设计六章节数据库设计2006年4月12日132安财信工学院计算机系二、聚簇存取方法的选择二、聚簇存取方法的选择n什么是聚簇?什么是聚簇?n为了提高某个属性(或属性组)的查询速度,为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚同值的元组集中存放在连续的物理块称为聚簇簇n
155、许多关系型许多关系型DBMS都提供了聚簇功能都提供了聚簇功能n聚簇存放与聚簇索引的区别聚簇存放与聚簇索引的区别诧趣恨原笔僧塔裁囱靶厄滦评墙怖概蚊钩腻伍抹焊蛊叙芯暗可拇揩馒操测六章节数据库设计六章节数据库设计2006年4月12日133安财信工学院计算机系建立建立聚簇聚簇索引索引n聚簇索引聚簇索引n建建立立聚聚簇簇索索引引后后,基基表表中中数数据据也也需需要要按按指指定定的的聚聚簇簇属属性性值值的的升升序序或或降降序序存存放放。也也即即聚聚簇簇索索引引的的索索引引项项顺顺序序与表中元组的物理顺序一致。与表中元组的物理顺序一致。例:例:CREATE CLUSTER INDEX Stusname ON
156、 Student(Sname); 在在Student表表的的Sname(姓姓名名)列列上上建建立立一一个个聚聚簇簇索索引引,而且,而且Student表中的记录表中的记录将按照将按照Sname值的升序存放值的升序存放 n在一个基本表上最多只能建立一个聚簇索引在一个基本表上最多只能建立一个聚簇索引n聚簇索引的用途:对于某些类型的查询,可以提聚簇索引的用途:对于某些类型的查询,可以提高查询效率高查询效率n聚簇索引的适用范围聚簇索引的适用范围n 很少对基表进行增删操作很少对基表进行增删操作n 很少对其中的变长列进行修改操作很少对其中的变长列进行修改操作 父靠悟夷透癌瘸喊溺溺肌卓窑衅猴条罢饼跋躇罗卯燎炔
157、鸭谰辰看亥洛碧歹六章节数据库设计六章节数据库设计2006年4月12日134安财信工学院计算机系聚簇的用途聚簇的用途n1. 大大提高按聚簇属性进行查询的效率大大提高按聚簇属性进行查询的效率例:假设学生关系按所在系建有索引,现在要查询信息系例:假设学生关系按所在系建有索引,现在要查询信息系的所有学生名单。的所有学生名单。n信息系的信息系的500名学生分布在名学生分布在500个不同的物理块上时,个不同的物理块上时,至少要执行至少要执行500次次I/O操作。操作。n如果将同一系的学生元组集中存放,则每读一个物理如果将同一系的学生元组集中存放,则每读一个物理块可得到多个满足查询条件的元组,从而显著地减少
158、块可得到多个满足查询条件的元组,从而显著地减少了访问磁盘的次数。了访问磁盘的次数。n2. 节省存储空间节省存储空间n聚簇以后,聚簇码相同的元组集中在一起了,因而聚聚簇以后,聚簇码相同的元组集中在一起了,因而聚簇码值不必在每个元组中重复存储,只要在一组中存簇码值不必在每个元组中重复存储,只要在一组中存一次就行了一次就行了弄偿逗盯手晦篷运淋劈榔香额忘泵印胖瓤秸白登视板势耽磺袁铆济依疟谆六章节数据库设计六章节数据库设计2006年4月12日135安财信工学院计算机系聚簇的局限性聚簇的局限性n1. 聚簇只能提高某些特定应用的性能聚簇只能提高某些特定应用的性能n2. 建立与维护聚簇的开销相当大建立与维护聚
159、簇的开销相当大n对已有关系建立聚簇,将导致关系中对已有关系建立聚簇,将导致关系中元组移动其物理存储位置,并使此关元组移动其物理存储位置,并使此关系上原有的索引无效,必须重建。系上原有的索引无效,必须重建。n当一个元组的聚簇码改变时,该元组当一个元组的聚簇码改变时,该元组的存储位置也要做相应移动。的存储位置也要做相应移动。思贷关打赛选魏耸独癣餐橙惩胞酸丙缆忆蠕对尤轩煌郡噬反近钩糕议漂辐六章节数据库设计六章节数据库设计2006年4月12日136安财信工学院计算机系聚簇的适用范围聚簇的适用范围n1. 既适用于单个关系独立聚簇,也适用于多个关系组合既适用于单个关系独立聚簇,也适用于多个关系组合聚簇聚簇
160、n例:假设用户经常要按系别查询学生成绩单,这一查询涉及学例:假设用户经常要按系别查询学生成绩单,这一查询涉及学生关系和选修关系的连接操作,即需要按学号连接这两个关系,生关系和选修关系的连接操作,即需要按学号连接这两个关系,为提高连接操作的效率,可以把具有相同学号值的学生元组和选为提高连接操作的效率,可以把具有相同学号值的学生元组和选修元组在物理上聚簇在一起。这就相当于把多个关系按修元组在物理上聚簇在一起。这就相当于把多个关系按“预连接预连接”的形式存放,从而大大提高连接操作的效率。的形式存放,从而大大提高连接操作的效率。n2. 当通过聚簇码进行访问或连接是该关系的主要应用,当通过聚簇码进行访问
161、或连接是该关系的主要应用,与聚簇码无关的其他访问很少或者是次要的时,可以使与聚簇码无关的其他访问很少或者是次要的时,可以使用聚簇。用聚簇。n尤其当尤其当SQL语句中包含有与聚簇码有关的语句中包含有与聚簇码有关的ORDER BY,GROUP BY,UNION,DISTINCT等子句或短语等子句或短语时,使用聚簇特别有利,可以省去对结果集的排序操时,使用聚簇特别有利,可以省去对结果集的排序操作作阵瞧傈惺芳摧水第除桓娘人缔镍涯足贵扒育肉孺哎易摩乒俗淫廓寒虹卖褥六章节数据库设计六章节数据库设计2006年4月12日137安财信工学院计算机系选择聚簇存取方法选择聚簇存取方法n1. 设计候选聚簇设计候选聚簇
162、n对经常在一起进行连接操作的关系可以建立组合聚簇;对经常在一起进行连接操作的关系可以建立组合聚簇;n如果一个关系的一组属性经常出现在相等比较条件中,如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚簇;则该单个关系可建立聚簇;n如果一个关系的一个如果一个关系的一个(或一组或一组)属性上的值重复率很高,属性上的值重复率很高,则此单个关系可建立聚簇。即对应每个聚簇码值的平均则此单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不太少。太少了,聚簇的效果不明显。元组数不太少。太少了,聚簇的效果不明显。n2. 检查候选聚簇中的关系,取消其中不必要的关系检查候选聚簇中的关系,取消其中不
163、必要的关系n从独立聚簇中删除经常进行全表扫描的关系;从独立聚簇中删除经常进行全表扫描的关系;n从独立从独立/组合聚簇中删除更新操作远多于查询操作的关系;组合聚簇中删除更新操作远多于查询操作的关系;n从独立从独立/组合聚簇中删除重复出现的关系组合聚簇中删除重复出现的关系n当一个关系同时加入多个聚簇时,必须从这多个聚簇当一个关系同时加入多个聚簇时,必须从这多个聚簇方案方案(包括不建立聚簇包括不建立聚簇)中选择一个较优的,即在这个中选择一个较优的,即在这个聚簇上运行各种事务的总代价最小。聚簇上运行各种事务的总代价最小。寄漓典太矩砷兄窃邓咀唐咏脉剁舔瑰档屯朵震胖负驾会佩取泞出毛降泣肯六章节数据库设计六
164、章节数据库设计2006年4月12日138安财信工学院计算机系三、三、HASH存取方法的选择存取方法的选择n选择选择HASH存取方法的规则存取方法的规则n当一个关系满足下列两个条件时,可以选择当一个关系满足下列两个条件时,可以选择HASH存取方法存取方法n该关系的属性主要出现在该关系的属性主要出现在等值连接等值连接条件中条件中或主要出现在或主要出现在相等比较相等比较选择条件中选择条件中n该关系的大小可预知,而且不变;该关系的大小可预知,而且不变; 或或 该关系的大小动态改变,但所选用的该关系的大小动态改变,但所选用的DBMS提供了动态提供了动态HASH存取方法。存取方法。决韶熏厩难杯汾阻忍庚狗帆
165、搭爪裤恢朵云扳胰敬谩做腕丛谦吻韩桃垄督表六章节数据库设计六章节数据库设计2006年4月12日139安财信工学院计算机系6.5.3 确定数据库的存储结构确定数据库的存储结构n确定数据库物理结构的内容确定数据库物理结构的内容n1. 确定数据的存放位置和存储结构确定数据的存放位置和存储结构n 关系关系n 索引索引n 聚簇聚簇n 日志日志n 备份备份n2. 确定系统配置确定系统配置雇滞速哮入嗓纬弹畅诊幢祥蚂宋革亥愤涡案费瓦狞蔚窖靠驭敬抬瞬棒越惕六章节数据库设计六章节数据库设计2006年4月12日140安财信工学院计算机系1. 确定数据的存放位置确定数据的存放位置n影响数据存放位置和存储结构的因素影响数
166、据存放位置和存储结构的因素n硬件环境硬件环境n应用需求应用需求n存取时间存取时间n存储空间利用率存储空间利用率n维护代价维护代价 这三个方面常常是相互矛盾的这三个方面常常是相互矛盾的 例:消除一切冗余数据虽能够节约存储空间和减少维护代价,但往往会例:消除一切冗余数据虽能够节约存储空间和减少维护代价,但往往会导致检索代价的增加导致检索代价的增加 必须进行权衡,选择一个折中方案必须进行权衡,选择一个折中方案。n基本原则基本原则n根据应用情况将根据应用情况将n易变易变部分与部分与稳定稳定部分部分n存取频率较高存取频率较高部分与部分与存取频率较低存取频率较低部分部分 分开存放,以提高系统性能分开存放,
167、以提高系统性能淖要淋叼陨呈薯追卤初源它肘许辜仁宙鲁痉宠法调垂狂疯梨疙丫郁靛欣勤六章节数据库设计六章节数据库设计2006年4月12日141安财信工学院计算机系例:例:n数据库数据备份、日志文件备份等由于只在故数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而且数据量很大,可以考虑障恢复时才使用,而且数据量很大,可以考虑存放在磁带上。存放在磁带上。n如果计算机有多个磁盘,可以考虑将表和索引如果计算机有多个磁盘,可以考虑将表和索引分别放在不同的磁盘上,在查询时,由于两个分别放在不同的磁盘上,在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读磁盘驱动器分别在工作,因而可以保证物理读写速
168、度比较快。写速度比较快。n可以将比较大的表分别放在两个磁盘上,以加可以将比较大的表分别放在两个磁盘上,以加快存取速度,这在多用户环境下特别有效。快存取速度,这在多用户环境下特别有效。n可以将日志文件与数据库对象(表、索引等)可以将日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能。放在不同的磁盘以改进系统的性能。演螟眷佣忱田查毅畸任因汞赢继陈逐糜惩咸闷页婶场韩笔琉太望揽倍萌靛六章节数据库设计六章节数据库设计2006年4月12日142安财信工学院计算机系2. 确定系统配置确定系统配置nDBMS产品一般都提供了一些存储分配参数产品一般都提供了一些存储分配参数n 同时使用数据库的用户数
169、同时使用数据库的用户数n 同时打开的数据库对象数同时打开的数据库对象数n 使用的缓冲区长度、个数使用的缓冲区长度、个数n 时间片大小时间片大小n 数据库的大小数据库的大小n 装填因子装填因子n 锁的数目锁的数目n 等等等等矿疽四诊碌揉噶搀硬赁垣得檄菜篮允馋拇叔吝呢肯莽艇喊浇姿泄妄驮纪啦六章节数据库设计六章节数据库设计2006年4月12日143安财信工学院计算机系确定系统配置(续)确定系统配置(续)n系统都为这些变量赋予了合理的缺省值。但是系统都为这些变量赋予了合理的缺省值。但是这些值不一定适合每一种应用环境,在进行物这些值不一定适合每一种应用环境,在进行物理设计时,需要根据应用环境确定这些参数
170、值,理设计时,需要根据应用环境确定这些参数值,以使系统性能最优。以使系统性能最优。 n在物理设计时对系统配置变量的调整只是初步在物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据系统实际运行情况的,在系统运行时还要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。做进一步的调整,以期切实改进系统性能。急冉疡汞伍悼洼忆魁犯召霖捶逻尊兢凡房律骨詹哦轿弄储犊话恒挞肛恐厄六章节数据库设计六章节数据库设计2006年4月12日144安财信工学院计算机系6.5.4 评价物理结构评价物理结构n评价内容评价内容n对数据库物理设计过程中产生的多种方案进对数据库物理设计过程中产生的多种方案进行细
171、致的评价,从中选择一个较优的方案作行细致的评价,从中选择一个较优的方案作为数据库的物理结构为数据库的物理结构阔队略胡侮兼驳痕堂琵停廷仗人馆懊编械浸芍纬蒲岩氏妥樱氨蹬井叁枕酞六章节数据库设计六章节数据库设计2006年4月12日145安财信工学院计算机系评价物理结构评价物理结构方法方法n定量估算各种方案定量估算各种方案n 存储空间存储空间n 存取时间存取时间n 维护代价维护代价n对估算结果进行权衡、比较,选择出一个较优的对估算结果进行权衡、比较,选择出一个较优的合理的物理结构合理的物理结构n如果该结构不符合用户需求,则需要修改设计如果该结构不符合用户需求,则需要修改设计嘻棠昆讳妄挂露肚歇剔牺津湃也
172、枯腮猛误谢斥话护召窄执佛揣借瑞妖藩建六章节数据库设计六章节数据库设计2006年4月12日146安财信工学院计算机系6.6 数据库的实施数据库的实施n数据库实施的工作内容数据库实施的工作内容n用用DDL定义数据库结构定义数据库结构n组织数据入库组织数据入库n编制与调试应用程序编制与调试应用程序n数据库试运行数据库试运行净昌录怯啊举探赠娩副麻讶叠狐联牟写蔬迄枢容勋随簿贼猛影蓉萝椅壁出六章节数据库设计六章节数据库设计2006年4月12日147安财信工学院计算机系数据库实施数据库实施定义数定义数据库结据库结构构数据数据装载装载数据库数据库试运行试运行数据库物数据库物理设计理设计数据库运数据库运行和维护
173、行和维护物理物理模型模型编制与编制与调试应调试应用程序用程序数据库数据库系统系统帽衔筛吭苍祁斟膛争舱龋歼迁各巢伞器纫种肃您揽入慑酝弄朴纪耀釉蓖麦六章节数据库设计六章节数据库设计2006年4月12日148安财信工学院计算机系一、定义数据库结构一、定义数据库结构n确定了数据库的逻辑结构与物理结构后,就可以用确定了数据库的逻辑结构与物理结构后,就可以用所选用的所选用的DBMS提供的数据定义语言(提供的数据定义语言(DDL)来严格)来严格描述数据库结构。描述数据库结构。例例,对于前面的例子,可以用,对于前面的例子,可以用SQL语句语句如下定义表结构:如下定义表结构:CREATE TABLE 学生学生
174、(学号学号 CHAR(8), );CREATE TABLE 课程课程 ( ); 接下来是在这些基本表上定义接下来是在这些基本表上定义视图:视图:CREATE VIEW . ( ); 如果需要使用聚簇,在建基如果需要使用聚簇,在建基本表之前,应先用本表之前,应先用CREATE CLUSTER语句定义聚族。语句定义聚族。哉海闯烂耗策三搽廖鬃捎立犬署谁桑糜昆炮儒辈驯幂殷勃凑吗古垂傈胖谁六章节数据库设计六章节数据库设计2006年4月12日149安财信工学院计算机系二、数据装载二、数据装载n数据库结构建立好后,就可以向数据库中装载数据库结构建立好后,就可以向数据库中装载数据了。组织数据入库是数据库实施阶
175、段最主数据了。组织数据入库是数据库实施阶段最主要的工作。要的工作。n数据装载方法数据装载方法n人工方法人工方法n计算机辅助数据入库计算机辅助数据入库危锭洽侯液扑撕劈魂献哀戚虎蘸份吠你浪玛护鸦顺弘损趟绥溪瘁乱沃场啥六章节数据库设计六章节数据库设计2006年4月12日150安财信工学院计算机系数据装载数据装载人工方法:适用于小型系统人工方法:适用于小型系统n步骤步骤1) 筛选数据筛选数据。需要装入数据库中的数据通常都分散。需要装入数据库中的数据通常都分散在各个部门的数据文件或原始凭证中,所以首先必在各个部门的数据文件或原始凭证中,所以首先必须把需要入库的数据筛选出来。须把需要入库的数据筛选出来。2
176、) 转换数据格式转换数据格式。筛选出来的需要入库的数据,其。筛选出来的需要入库的数据,其格式往往不符合数据库要求,还需要进行转换。这格式往往不符合数据库要求,还需要进行转换。这种转换有时可能很复杂。种转换有时可能很复杂。 3) 输入数据输入数据。将转换好的数据输入计算机中。将转换好的数据输入计算机中。 4) 校验数据校验数据。检查输入的数据是否有误。检查输入的数据是否有误。唱政舀男苗捂久啃僵喷稚似清佐颁诸商幢砚宗毡海侥极岛过卖恨涝垃痴瞄六章节数据库设计六章节数据库设计2006年4月12日151安财信工学院计算机系数据装载数据装载计算机辅助数据入库:计算机辅助数据入库:适用于中大型系统适用于中大
177、型系统n步骤步骤1) 筛选数据筛选数据2) 输入数据输入数据。由录入员将原始数据直接输入计算机中。由录入员将原始数据直接输入计算机中。数据输入子系统应提供输入界面。数据输入子系统应提供输入界面。3) 校验数据校验数据。数据输入子系统采用多种检验技术检查输。数据输入子系统采用多种检验技术检查输入数据的正确性。入数据的正确性。4) 转换数据转换数据。数据输入子系统根据数据库系统的要求,从。数据输入子系统根据数据库系统的要求,从录入的数据中录入的数据中抽取抽取有用成分,对其进行有用成分,对其进行分类分类,然后,然后转换转换数据格式。抽取、分类和转换数据是数据输入子系统的数据格式。抽取、分类和转换数据
178、是数据输入子系统的主要工作,也是数据输入子系统的复杂性所在。主要工作,也是数据输入子系统的复杂性所在。5) 综合数据综合数据。数据输入子系统对转换好的数据根据系统。数据输入子系统对转换好的数据根据系统的要求进一步综合成最终数据的要求进一步综合成最终数据。哮出捍受歹虚多钡荔湘命捐匪渭或婆讼谷磺淫勤诱诚缅牟檀午豁评天聊蕉六章节数据库设计六章节数据库设计2006年4月12日152安财信工学院计算机系新老系统数据转换新老系统数据转换n如果数据库是在老的文件系统或数据库系统如果数据库是在老的文件系统或数据库系统的基础上设计的,则数据输入子系统只需要的基础上设计的,则数据输入子系统只需要完成转换数据、综合
179、数据两项工作,直接将完成转换数据、综合数据两项工作,直接将老系统中的数据转换成新系统中需要的数据老系统中的数据转换成新系统中需要的数据格式。格式。n为了保证数据能够及时入库,应在数据库物为了保证数据能够及时入库,应在数据库物理设计的同时编制数据输入子系统。理设计的同时编制数据输入子系统。角翅淋铡瘪刁稠殊证汐读萨盖寅衰牡恨膏漓惑恒扶惹玩剩哑嵌楚习茫吸箭六章节数据库设计六章节数据库设计2006年4月12日153安财信工学院计算机系三、编制与调试应用程序三、编制与调试应用程序n数据库应用程序的设计应该与数据设计数据库应用程序的设计应该与数据设计并行进行。并行进行。n在数据库实施阶段,当数据库结构建立
180、在数据库实施阶段,当数据库结构建立好后,就可以开始编制与调试数据库的好后,就可以开始编制与调试数据库的应用程序。调试应用程序时由于数据入应用程序。调试应用程序时由于数据入库尚未完成,可先使用模拟数据。库尚未完成,可先使用模拟数据。谨壬取话析沂朵茧爽贿釜丧堑痈脊椿砍漆屑缔瓦舍拒楔厌睫宿畏徽夷搐严六章节数据库设计六章节数据库设计2006年4月12日154安财信工学院计算机系四、数据库试运行四、数据库试运行n应用程序调试完成,并且已有一小部分数据入库应用程序调试完成,并且已有一小部分数据入库后,就可以开始数据库的试运行。后,就可以开始数据库的试运行。n数据库试运行也称为联合调试,其主要工作包括:数据
181、库试运行也称为联合调试,其主要工作包括:1)功能测试功能测试:实际运行应用程序,执行对数据:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。库的各种操作,测试应用程序的各种功能。2)性能测试性能测试:测量系统的性能指标,分析是否:测量系统的性能指标,分析是否符合设计目标符合设计目标。凶秉钝酌宗哉蛮戍漓儡运孺辆扛羚赔携与丘盏铁胜统下遇准傻屏纸棚瑰侄六章节数据库设计六章节数据库设计2006年4月12日155安财信工学院计算机系数据库试运行数据库试运行数据库性能指标的测量数据库性能指标的测量n数据库物理设计阶段在评价数据库结构估算时间、数据库物理设计阶段在评价数据库结构估算时间、空
182、间指标时,作了许多简化和假设,忽略了许多次空间指标时,作了许多简化和假设,忽略了许多次要因素,因此结果必然很粗糙。要因素,因此结果必然很粗糙。n数据库试运行则是要实际测量系统的各种性能指标数据库试运行则是要实际测量系统的各种性能指标(不仅是时间、空间指标),如果结果不符合设计(不仅是时间、空间指标),如果结果不符合设计目标,则需要返回物理设计阶段,调整物理结构,目标,则需要返回物理设计阶段,调整物理结构,修改参数;有时甚至需要返回逻辑设计阶段,调整修改参数;有时甚至需要返回逻辑设计阶段,调整逻辑结构。逻辑结构。吹徒搀菊硬渣现胺钮疽隙操怯谢缉坐兹招挛饥湃了毁破患徊可麦懂萄博闺六章节数据库设计六章
183、节数据库设计2006年4月12日156安财信工学院计算机系数据库试运行数据库试运行数据的分期入库数据的分期入库n重新设计物理结构甚至逻辑结构,会导致重新设计物理结构甚至逻辑结构,会导致数据重新入库。数据重新入库。n由于数据入库工作量实在太大,所以可以由于数据入库工作量实在太大,所以可以采用分期输入数据的方法采用分期输入数据的方法n先输入小批量数据供先期联合调试使用先输入小批量数据供先期联合调试使用n待试运行基本合格后再输入大批量数据待试运行基本合格后再输入大批量数据n逐步增加数据量,逐步完成运行评价逐步增加数据量,逐步完成运行评价根卓尚膝土致馅箭浊注响日抓骄侮痔份毫却侮母沥漏吃焰袍车啄饺举短机
184、六章节数据库设计六章节数据库设计2006年4月12日157安财信工学院计算机系数据库试运行数据库试运行数据库的转储和恢复数据库的转储和恢复n在数据库试运行阶段,系统还不稳定,在数据库试运行阶段,系统还不稳定,硬、软件故障随时都可能发生硬、软件故障随时都可能发生n系统的操作人员对新系统还不熟悉,误系统的操作人员对新系统还不熟悉,误操作也不可避免操作也不可避免n因此必须做好数据库的转储和恢复工作,因此必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏。尽量减少对数据库的破坏。啃矾钧鹃舜脑局初朱茫豪钧署俺爷去治竖赠夫胯蒸淌遍教陕赘胎档醚织砸六章节数据库设计六章节数据库设计2006年4月12日15
185、8安财信工学院计算机系6.7 数据库运行与维护数据库运行与维护n数据库试运行结果符合设计目标后,数据库就数据库试运行结果符合设计目标后,数据库就可以真正投入运行了。可以真正投入运行了。n数据库投入运行标着开发任务的基本完成和维数据库投入运行标着开发任务的基本完成和维护工作的开始护工作的开始n对数据库设计进行评价、调整、修改等维护工对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和作是一个长期的任务,也是设计工作的继续和提高。提高。n应用环境在不断变化应用环境在不断变化n数据库运行过程中物理存储会不断变化数据库运行过程中物理存储会不断变化翘球援祝融晌客勾蟹遗暮层馅锈
186、吝缘讶几冶也蜜湍鹊蔬缀啼灰熬荔辰交曲六章节数据库设计六章节数据库设计2006年4月12日159安财信工学院计算机系n在数据库运行阶段,对数据库经常性的维护工作主在数据库运行阶段,对数据库经常性的维护工作主要是由要是由DBA完成的,包括:完成的,包括: 数据库的转储和恢复数据库的转储和恢复n转储和恢复是系统正式运行后最重要的维护工转储和恢复是系统正式运行后最重要的维护工作之一。作之一。nDBA要针对不同的应用要求制定不同的转储计要针对不同的应用要求制定不同的转储计划,定期对数据库和日志文件进行备份。划,定期对数据库和日志文件进行备份。n一旦发生介质故障,即利用数据库备份及日志一旦发生介质故障,即
187、利用数据库备份及日志文件备份,尽快将数据库恢复到某种一致性状文件备份,尽快将数据库恢复到某种一致性状态。态。巳牲二桔库贼培痴之坍殖站俊妖吃殉标瞬轻狞炸截拳五弦静剖淄每瓢睹棚六章节数据库设计六章节数据库设计2006年4月12日160安财信工学院计算机系数据库的安全性、完整性控制数据库的安全性、完整性控制nDBA必须根据用户的实际需要授予不同的操必须根据用户的实际需要授予不同的操作权限作权限n在数据库运行过程中,由于应用环境的变化,在数据库运行过程中,由于应用环境的变化,对安全性的要求也会发生变化,对安全性的要求也会发生变化,DBA需要根需要根据实际情况修改原有的安全性控制。据实际情况修改原有的安
188、全性控制。n由于应用环境的变化,数据库的完整性约束条由于应用环境的变化,数据库的完整性约束条件也会变化,也需要件也会变化,也需要DBA不断修正,以满足不断修正,以满足用户要求。用户要求。雁溢遵坠涉敷伊斯公分愤少喜谈戳凶菩亡虎汪浓蓬公僧山栅符刹彻朱稿都六章节数据库设计六章节数据库设计2006年4月12日161安财信工学院计算机系数据库性能的监督、分析和改进数据库性能的监督、分析和改进n在数据库运行过程中,在数据库运行过程中, DBA必须监督系统运必须监督系统运行,对监测数据进行分析,找出改进系统性能行,对监测数据进行分析,找出改进系统性能的方法。的方法。n利用监测工具获取系统运行过程中一系列利用
189、监测工具获取系统运行过程中一系列性能参数的值性能参数的值n通过仔细分析这些数据,判断当前系统是通过仔细分析这些数据,判断当前系统是否处于最佳运行状态否处于最佳运行状态n如果不是,则需要通过调整某些参数来进如果不是,则需要通过调整某些参数来进一步改进数据库性能一步改进数据库性能在悸乳壮拷艾挫距耪褥狸镭艺眩缠隧愿咱霞篷煎鼠找不蛹狠疵迎告盲整邓六章节数据库设计六章节数据库设计2006年4月12日162安财信工学院计算机系数据库的重组织和重构造数据库的重组织和重构造1)数据库的重组织)数据库的重组织n为什么要重组织数据库为什么要重组织数据库n数据库运行一段时间后,由于记录的不断增、删、改,会使数据库的
190、物理数据库运行一段时间后,由于记录的不断增、删、改,会使数据库的物理存储变坏,从而降低数据库存储空间的利用率和数据的存取效率,使数据存储变坏,从而降低数据库存储空间的利用率和数据的存取效率,使数据库的性能下降。库的性能下降。n重组织的形式重组织的形式n全部重组织全部重组织n部分重组织部分重组织n只对频繁增、删的表进行重组织只对频繁增、删的表进行重组织n重组织的目标重组织的目标n提高系统性能提高系统性能n重组织的工作重组织的工作n按原设计要求按原设计要求n重新安排存储位置重新安排存储位置n回收垃圾回收垃圾n减少指针链减少指针链n数据库的重组织不会改变原设计的数据逻辑结构和物理结构数据库的重组织不
191、会改变原设计的数据逻辑结构和物理结构nDBMS一般都提供了供重组织数据库使用的实用程序,帮助一般都提供了供重组织数据库使用的实用程序,帮助DBA重新组织重新组织数据库。数据库。却格渝痈扮冕涤煽糜撮圣逃鹃捆闲悦谴烘嫉堪馈让映班嘲徘涯现倪毛碱卵六章节数据库设计六章节数据库设计2006年4月12日163安财信工学院计算机系2)数据库的重构造)数据库的重构造n为什么要进行数据库的重构造为什么要进行数据库的重构造n数据库应用环境发生变化,会导致实体及实体间的联系也发生数据库应用环境发生变化,会导致实体及实体间的联系也发生相应的变化,使原有的数据库设计不能很好地满足新的需求相应的变化,使原有的数据库设计不
192、能很好地满足新的需求n增加新的应用或新的实体增加新的应用或新的实体n取消某些已有应用取消某些已有应用n改变某些已有应用改变某些已有应用n数据库重构造的主要工作数据库重构造的主要工作n根据新环境调整数据库的模式和内模式根据新环境调整数据库的模式和内模式n增加新的数据项增加新的数据项n改变数据项的类型改变数据项的类型n改变数据库的容量改变数据库的容量n增加或删除索引增加或删除索引n修改完整性约束条件修改完整性约束条件勋戴忽昂蝶具览时捂舟中懦泪馆突易弄年畅啦逗后艾蛋敖局绎评泅米拭膨六章节数据库设计六章节数据库设计2006年4月12日164安财信工学院计算机系n重构造数据库的程度是有限的重构造数据库的
193、程度是有限的n若应用变化太大,已无法通过重构数据库来若应用变化太大,已无法通过重构数据库来满足新的需求,或重构数据库的代价太大,满足新的需求,或重构数据库的代价太大,则表明现有数据库应用系统的生命周期已经则表明现有数据库应用系统的生命周期已经结束,应该重新设计新的数据库系统,开始结束,应该重新设计新的数据库系统,开始新数据库应用系统的生命周期了。新数据库应用系统的生命周期了。搓纯畜赤疥箩罐方脓缮栈豌懦钒琼碾团畏组疆高龚倔厨统壁瞳疹踩羡锁骋六章节数据库设计六章节数据库设计2006年4月12日165安财信工学院计算机系本章小结本章小结n数据库的设计过程数据库的设计过程n需求分析需求分析n概念结构设
194、计概念结构设计n逻辑结构设计逻辑结构设计n物理设计物理设计n实施实施n运行维护运行维护设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。亨竹御煎涛构厕睫垂疗硝槽六纷卞禄氢锈缘搽泳臃俞吻抄娜免兔壤砾五塔六章节数据库设计六章节数据库设计2006年4月12日166安财信工学院计算机系小结小结n数据库各级模式的形成数据库各级模式的形成n数据库的各级模式是在设计过程中逐步形成数据库的各级模式是在设计过程中逐步形成的的n需求分析阶段综合各个用户的应用需求(现需求分析阶段综合各个用户的应用需求(现实世界的需求)。实世界的需求)。n概念设计阶段形成独立于机器特点、独立于概念设计阶段形成独立于机器特点
195、、独立于各个各个DBMS产品的产品的概念模式概念模式(信息世界模型)(信息世界模型),用,用E-R图来描述。图来描述。苞寺衍汪篙奶绊丸堕悯弗象稚匙蝎隘弱给叭扑扣葛坊眷寝锡轨宵鹅狼漂唱六章节数据库设计六章节数据库设计2006年4月12日167安财信工学院计算机系小结小结n在逻辑设计阶段将在逻辑设计阶段将E-R图转换成具体的数据库图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库产品支持的数据模型如关系模型,形成数据库逻辑模式逻辑模式。然后根据用户处理的要求,安全性。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图的考虑,在基本表的基础上再建立必要的视图(VIEW)
196、形成数据的)形成数据的外模式外模式。n在物理设计阶段根据在物理设计阶段根据DBMS特点和处理的需要,特点和处理的需要,进行物理存储安排,设计索引,形成数据库进行物理存储安排,设计索引,形成数据库内内模式模式。嚷勋庆午袱呢样诉不桩饯疹锤未爱臃弄革粮鸽英尾怀刀村交而拓粒卓闭艇六章节数据库设计六章节数据库设计2006年4月12日168安财信工学院计算机系小结小结n整个数据库设计过程体现了结构特征与整个数据库设计过程体现了结构特征与行为特征的紧密结合。行为特征的紧密结合。倒辩舔诡膊豪烘镍从臣雄操拒狼候卫烩保的姆醚庚是坚魔赶率阂肥卡骂瞥六章节数据库设计六章节数据库设计2006年4月12日169安财信工学
197、院计算机系小结小结n目前很多目前很多DBMS都提供了一些辅助工具(都提供了一些辅助工具(CASE工具),为加快数据库设计速度,设计人员可工具),为加快数据库设计速度,设计人员可根据需要选用。根据需要选用。例如需求分析完成之后,设计人员可以使用例如需求分析完成之后,设计人员可以使用ORACLE DESIGNER 2000画画E-R图,将图,将E-R图转换为关系数据模型,生成数据库结图转换为关系数据模型,生成数据库结构;画数据流图,生成应用程序。构;画数据流图,生成应用程序。柳仓讼湘膀霞扩争间圆晒羽裂砚兹相铡沛捐住煌觅数传乃捂阅票泊当狮巫六章节数据库设计六章节数据库设计2006年4月12日170安
198、财信工学院计算机系小结小结n利用利用CASE工具生成的仅仅是数据库应用系工具生成的仅仅是数据库应用系统的一个雏形,比较粗糙,数据库设计人员统的一个雏形,比较粗糙,数据库设计人员需要根据用户的应用需求进一步修改该雏形,需要根据用户的应用需求进一步修改该雏形,使之成为一个完善的系统。使之成为一个完善的系统。n早期就选择某种早期就选择某种CASE工具固然能减少数据工具固然能减少数据库设计的复杂性,加快数据库设计的速度,库设计的复杂性,加快数据库设计的速度,但往往容易将自己限制于某一个但往往容易将自己限制于某一个DBMS上,上,而不是根据概念设计的结果选择合适的而不是根据概念设计的结果选择合适的DBMS。倡狡挪钦挑园匣肥厘酚摔握履睡阮境条挠摄瓶掖埃屡块扳矽拥鹰娟寨蒙挣六章节数据库设计六章节数据库设计2006年4月12日171