第7章数据库设计与编程

上传人:工**** 文档编号:567526430 上传时间:2024-07-21 格式:PPT 页数:284 大小:675KB
返回 下载 相关 举报
第7章数据库设计与编程_第1页
第1页 / 共284页
第7章数据库设计与编程_第2页
第2页 / 共284页
第7章数据库设计与编程_第3页
第3页 / 共284页
第7章数据库设计与编程_第4页
第4页 / 共284页
第7章数据库设计与编程_第5页
第5页 / 共284页
点击查看更多>>
资源描述

《第7章数据库设计与编程》由会员分享,可在线阅读,更多相关《第7章数据库设计与编程(284页珍藏版)》请在金锄头文库上搜索。

1、第第7章章 数据库设计与编程数据库设计与编程7.1 数据库设计概述数据库设计概述7.2 需求分析需求分析7.3 概念结构设计概念结构设计7.4 逻辑结构设计逻辑结构设计7.5 数据库的物理设计数据库的物理设计7.6 数据库实施和维护数据库实施和维护7.7 嵌入式嵌入式SQL7.8 存储过程存储过程7.9 ODBC编程编程羊纹副蠢另僵站还血订脖韵车洞玫虫拨扦邦殊诵磅铂票欧蹿午缔蘸积遵业第7章数据库设计与编程第7章数据库设计与编程本章要求与重难点本章要求与重难点v掌握数据库设计方法和基本步骤掌握数据库设计方法和基本步骤 (重点重点)v掌握概念结构设计和逻辑结构设计(重点)掌握概念结构设计和逻辑结构

2、设计(重点) v理解数据库的物理设计和数据库的实施和理解数据库的物理设计和数据库的实施和维护维护 v了解有关数据库设计的辅助工具了解有关数据库设计的辅助工具v理解嵌入式理解嵌入式SQLSQL和存储过程和存储过程v掌握掌握ODBCODBC编程编程竖抢喇位较线省沂汝踢衣孕焉存蝴取琵芍阴上认帅淋尉蝗操呛凭暴命保蹦第7章数据库设计与编程第7章数据库设计与编程7.1 数据库设计概述数据库设计概述v7.1.1 数据库和信息系统数据库和信息系统v7.1.2 数据库设计的特点数据库设计的特点v7.1.3 数据库设计方法简述数据库设计方法简述v7.1.4 数据库设计的基本步骤数据库设计的基本步骤藤斌透耿撂涝盯咙

3、绳史澄纸狰崇泥涕呻诽斥良矮督阶螟牙健黑捶孺朱段描第7章数据库设计与编程第7章数据库设计与编程数据库设计概述(续)数据库设计概述(续)v什么是数据库设计什么是数据库设计数据库设计是指对于一个给定的应用环境,数据库设计是指对于一个给定的应用环境,数据库设计是指对于一个给定的应用环境,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应构造最优的数据库模式,建立数据库及其应构造最优的数据库模式,建立数据库及其应构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各用系统,使之能够有效地存储数据,满足各用系统,使之能够有效地存储数据,满足各用系统,使之能够

4、有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)种用户的应用需求(信息要求和处理要求)种用户的应用需求(信息要求和处理要求)种用户的应用需求(信息要求和处理要求)在数据库领域内,常常把使用数据库的各类在数据库领域内,常常把使用数据库的各类在数据库领域内,常常把使用数据库的各类在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。系统统称为数据库应用系统。系统统称为数据库应用系统。系统统称为数据库应用系统。无幽妖愈怕过歼至怜粘解膜束蚜洼笛惹培霜仇僚迈慨怔乌尽萍璃凋迢涤个第7章数据库设计与编程第7章数据库设计与编程7.1.1 数据库和信息系统数据库和信息系统vv数据库是信息系

5、统的核心和基础数据库是信息系统的核心和基础数据库是信息系统的核心和基础数据库是信息系统的核心和基础把信息系统中大量的数据按一定的模型组织起来把信息系统中大量的数据按一定的模型组织起来把信息系统中大量的数据按一定的模型组织起来把信息系统中大量的数据按一定的模型组织起来提供存储、维护、检索数据的功能提供存储、维护、检索数据的功能提供存储、维护、检索数据的功能提供存储、维护、检索数据的功能使信息系统可以方便、及时、准确地从数据库中获使信息系统可以方便、及时、准确地从数据库中获使信息系统可以方便、及时、准确地从数据库中获使信息系统可以方便、及时、准确地从数据库中获得所需的信息得所需的信息得所需的信息得

6、所需的信息vv数据库是信息系统的各个部分能否紧密地结合数据库是信息系统的各个部分能否紧密地结合数据库是信息系统的各个部分能否紧密地结合数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在在一起以及如何结合的关键所在在一起以及如何结合的关键所在在一起以及如何结合的关键所在vv数据库设计是信息系统开发和建设的重要组成数据库设计是信息系统开发和建设的重要组成数据库设计是信息系统开发和建设的重要组成数据库设计是信息系统开发和建设的重要组成部分部分部分部分逛觉导柿敞旺观视绑黔滑掷姿彭勘迢吩蔬悉淹闸胀盼蜒赴怨支瑟危赞物挣第7章数据库设计与编程第7章数据库设计与编程数据库设计人员应该具备的技

7、术和知识数据库设计人员应该具备的技术和知识vv数据库的基本知识和数据库设计技术数据库的基本知识和数据库设计技术vv计算机科学的基础知识和程序设计的方法计算机科学的基础知识和程序设计的方法和技巧和技巧vv软件工程的原理和方法软件工程的原理和方法vv应用领域的知识应用领域的知识匡吴铸嘻豹饭肺闲桑榷菏斋哉澡当太玻炽汰贫历格用院骨板逛声愚掀猖羊第7章数据库设计与编程第7章数据库设计与编程7.1 数据库设计概述数据库设计概述v7.1.1 数据库和信息系统数据库和信息系统v7.1.2 数据库设计的特点数据库设计的特点v7.1.3 数据库设计方法简述数据库设计方法简述v7.1.4 数据库设计的基本步骤数据库

8、设计的基本步骤卡矾卡涎履芯俯褂奢匿二衣刊效桨度戳渺疯影任候跃天婪紊毛四割味轰督第7章数据库设计与编程第7章数据库设计与编程7.1.2 数据库设计的特点数据库设计的特点v数据库建设是硬件、软件和干件的结合数据库建设是硬件、软件和干件的结合三分技术,七分管理,十二分基础数据三分技术,七分管理,十二分基础数据技术与管理的界面称之为技术与管理的界面称之为“干件干件”vv 数据库设计应该与应用系统设计相结合数据库设计应该与应用系统设计相结合结构(数据)设计:设计数据库框架或数据结构(数据)设计:设计数据库框架或数据结构(数据)设计:设计数据库框架或数据结构(数据)设计:设计数据库框架或数据库结构库结构库

9、结构库结构行为(处理)设计:设计应用程序、事务处行为(处理)设计:设计应用程序、事务处行为(处理)设计:设计应用程序、事务处行为(处理)设计:设计应用程序、事务处理等理等理等理等概阁壬爵温翅汀篓痢湿厘政瑟嚷宗吁贱裳达羹域虱阿沙踞瞎钵游麓瓜玄蝇第7章数据库设计与编程第7章数据库设计与编程数据库设计的特点(续)数据库设计的特点(续)v结构和行为分离的设计结构和行为分离的设计传统的软件工程忽视对应用中数据语义的分传统的软件工程忽视对应用中数据语义的分传统的软件工程忽视对应用中数据语义的分传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构析和抽象,只要有可能就尽量推迟数据结构

10、析和抽象,只要有可能就尽量推迟数据结构析和抽象,只要有可能就尽量推迟数据结构设计的决策设计的决策设计的决策设计的决策早期的数据库设计致力于数据模型和建模方早期的数据库设计致力于数据模型和建模方早期的数据库设计致力于数据模型和建模方早期的数据库设计致力于数据模型和建模方法研究,忽视了对行为的设计法研究,忽视了对行为的设计法研究,忽视了对行为的设计法研究,忽视了对行为的设计鲁娟均众修冈察踪虑准逸迅舶馋茹鄂仔祟神焉捅虑依垒纲鼻柏喉粳坛鹰癌第7章数据库设计与编程第7章数据库设计与编程数据库设计的特点(续)数据库设计的特点(续)现实世界现实世界概念模型设计概念模型设计子模式设计子模式设计物理数据库设计物

11、理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明功能说明事务设计事务设计程序说明程序说明应用程序设计应用程序设计程序编码调试程序编码调试镁埔弹鬃钦漆啡垮腿恕疏优获乱弟漆访杂昔魔热阉白渗妄绿峻厘敛汉颂满第7章数据库设计与编程第7章数据库设计与编程7.1 数据库设计概述数据库设计概述v7.1.1 数据库和信息系统数据库和信息系统v7.1.2 数据库设计的特点数据库设计的特点v7.1.3 数据库设计方法简述数据库设计方法简述v7.1.4 数据库设计的基本步骤数据库设计的基本步骤棒捻酿烛咱扛帐俱敢席藩急詹醋煞刊煮连岔馏必奇缺旋性悲士析

12、评泳湍惯第7章数据库设计与编程第7章数据库设计与编程7.1.3 数据库设计方法简述数据库设计方法简述v手工试凑法手工试凑法设计质量与设计人员的经验和水平有直接关设计质量与设计人员的经验和水平有直接关系系缺乏科学理论和工程方法的支持,工程的质缺乏科学理论和工程方法的支持,工程的质量难以保证量难以保证数据库运行一段时间后常常又不同程度地发数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价现各种问题,增加了维护代价苟互追汕橱促抛畦凯唯返密从沛斋缔倔呐隅滓暂茬繁峻维遮券芒娃账挑慢第7章数据库设计与编程第7章数据库设计与编程数据库设计方法简述(续)数据库设计方法简述(续)v规范设计法规范设

13、计法手工设计方法手工设计方法手工设计方法手工设计方法基本思想基本思想基本思想基本思想vv过程迭代和逐步求精过程迭代和逐步求精过程迭代和逐步求精过程迭代和逐步求精瓮惯脖臆档对剁六吩诸酚背老啥杏遥阀揍这肇菇屡左引哈函暂卸沥鹤泡匈第7章数据库设计与编程第7章数据库设计与编程数据库设计方法简述(续)数据库设计方法简述(续)v规范设计法规范设计法(续续)典型方法典型方法典型方法典型方法vv新奥尔良(新奥尔良(新奥尔良(新奥尔良(New OrleansNew Orleans)方法)方法)方法)方法 将数据库设计分为四个阶段将数据库设计分为四个阶段将数据库设计分为四个阶段将数据库设计分为四个阶段vvS.B.

14、YaoS.B.Yao方法方法方法方法将数据库设计分为五个步骤将数据库设计分为五个步骤将数据库设计分为五个步骤将数据库设计分为五个步骤vvI.R.PalmerI.R.Palmer方法方法方法方法把数据库设计当成一步接一步的过程把数据库设计当成一步接一步的过程把数据库设计当成一步接一步的过程把数据库设计当成一步接一步的过程井京毋拔扰球厕竿蛇绊衡从烘霍亮操抿别畦秆诅乓铲堕须镇伞睫憋校垃被第7章数据库设计与编程第7章数据库设计与编程数据库设计方法简述(续)数据库设计方法简述(续)vv计算机辅助设计计算机辅助设计ORACLE Designer 2000ORACLE Designer 2000SYBASE

15、 PowerDesignerSYBASE PowerDesigner近砍赡则廖淹蹲驴且草啦治琶绣詹瘩透珐汽凳缨蜡恶锰鞠留财爷磅使撇展第7章数据库设计与编程第7章数据库设计与编程7.1 数据库设计概述数据库设计概述v7.1.1 数据库和信息系统数据库和信息系统v7.1.2 数据库设计的特点数据库设计的特点v7.1.3 数据库设计方法简述数据库设计方法简述v7.1.4 数据库设计的基本步骤数据库设计的基本步骤奎网颗馅口卫戊监恿舅偷狭茎侈俭逾蛋未嫡滁田盟稍看驱康型虐放评极夹第7章数据库设计与编程第7章数据库设计与编程7.1.4 数据库设计的基本步骤数据库设计的基本步骤一、数据库设计的准备工作一、数据

16、库设计的准备工作 选定参加设计的人员选定参加设计的人员1. 数据库分析设计人员数据库分析设计人员数据库设计的核心人员数据库设计的核心人员自始至终参与数据库设计自始至终参与数据库设计其水平决定了数据库系统的质量其水平决定了数据库系统的质量通焚鲍瓶浩王塘田黍尘棉舆哨卞版寿凝淘倦锻力制哇溜虽耸炳癌费秩愁家第7章数据库设计与编程第7章数据库设计与编程7.1.4 数据库设计的基本步骤数据库设计的基本步骤2. 用户用户在数据库设计中也是举足轻重的在数据库设计中也是举足轻重的主要参加需求分析和数据库的运行维护主要参加需求分析和数据库的运行维护用户积极参与带来的好处用户积极参与带来的好处vv加速数据库设计加速

17、数据库设计vv提高数据库设计的质量提高数据库设计的质量铜挎砂买腾邮涛寓烦不捕蒲舟撅宴口腿授光费鬼蜕粗裤曲刽危卵乞微熊柄第7章数据库设计与编程第7章数据库设计与编程数据库设计的基本步骤(续)数据库设计的基本步骤(续)3. 程序员程序员在系统实施阶段参与进来,负责编制程在系统实施阶段参与进来,负责编制程序序4. 操作员操作员在系统实施阶段参与进来,准备软硬件在系统实施阶段参与进来,准备软硬件环境环境负袒芯衔坝狈铆榔馆贵男雁债泵詹腾详革要踊堕臃椎笆旅席堪落窿洁磺祁第7章数据库设计与编程第7章数据库设计与编程数据库设计的基本步骤(续)数据库设计的基本步骤(续)二、数据库设计的过程二、数据库设计的过程(

18、六个阶段六个阶段) 需求分析阶段需求分析阶段需求分析阶段需求分析阶段准确了解与分析用户需求(包括数据与处理)准确了解与分析用户需求(包括数据与处理)准确了解与分析用户需求(包括数据与处理)准确了解与分析用户需求(包括数据与处理)是整个设计过程的基础,是最困难、最耗费时间的一是整个设计过程的基础,是最困难、最耗费时间的一是整个设计过程的基础,是最困难、最耗费时间的一是整个设计过程的基础,是最困难、最耗费时间的一步步步步腥裸灾怒嘻体荣啼促灾勒冠较莉蔚拌甫乐尉聂演廊落愁悔培谬拦否可多居第7章数据库设计与编程第7章数据库设计与编程数据库设计的基本步骤(续)数据库设计的基本步骤(续)概念结构设计阶段概念

19、结构设计阶段是整个数据库设计的关键是整个数据库设计的关键是整个数据库设计的关键是整个数据库设计的关键通过对用户需求进行综合、归纳与抽象,形通过对用户需求进行综合、归纳与抽象,形通过对用户需求进行综合、归纳与抽象,形通过对用户需求进行综合、归纳与抽象,形成一个独立于具体成一个独立于具体成一个独立于具体成一个独立于具体DBMSDBMS的概念模型的概念模型的概念模型的概念模型柱恼樊猪尝丸俄蒂孔钳士憾莎旷炸童或乱赣僧舒俏罐茨剃敝吵臆驶预桅印第7章数据库设计与编程第7章数据库设计与编程数据库设计的基本步骤(续)数据库设计的基本步骤(续)逻辑结构设计阶段逻辑结构设计阶段将概念结构转换为某个将概念结构转换为

20、某个将概念结构转换为某个将概念结构转换为某个DBMSDBMS所支持的数据所支持的数据所支持的数据所支持的数据模型模型模型模型对其进行优化对其进行优化对其进行优化对其进行优化蛔禄聚礼帐涅碗座薄矾卑博绊吟少控邑愤奉皑坎赊索贼荐足义脂哪挥挝沽第7章数据库设计与编程第7章数据库设计与编程数据库设计的基本步骤(续)数据库设计的基本步骤(续)数据库物理设计阶段数据库物理设计阶段为逻辑数据模型选取一个最适合应用环境的为逻辑数据模型选取一个最适合应用环境的为逻辑数据模型选取一个最适合应用环境的为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)物理结构(包括存储结构和存取方法)物理结构(包

21、括存储结构和存取方法)物理结构(包括存储结构和存取方法)摈钞强械转务湃卡渣蠕容态骚奠盼减只汝谚稽搓舞肢仟撞褥已颓符囊贰氏第7章数据库设计与编程第7章数据库设计与编程数据库设计的基本步骤(续)数据库设计的基本步骤(续)数据库实施阶段数据库实施阶段运用运用运用运用DBMSDBMS提供的数据语言、工具及宿主语言,根据提供的数据语言、工具及宿主语言,根据提供的数据语言、工具及宿主语言,根据提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果逻辑设计和物理设计的结果逻辑设计和物理设计的结果逻辑设计和物理设计的结果vv建立数据库建立数据库建立数据库建立数据库vv编制与调试应用程序编制与调试应用程序

22、编制与调试应用程序编制与调试应用程序vv组织数据入库组织数据入库组织数据入库组织数据入库vv并进行试运行并进行试运行并进行试运行并进行试运行象痈雄巩塑阮饮堆氓辛倚笔懦球归些椿蜘咐幻滞刀憎哦小爆房杉烟腾蹦遇第7章数据库设计与编程第7章数据库设计与编程数据库设计的基本步骤(续)数据库设计的基本步骤(续)数据库运行和维护阶段数据库运行和维护阶段数据库应用系统经过试运行后即可投入正式数据库应用系统经过试运行后即可投入正式运行。运行。在数据库系统运行过程中必须不断地对其进在数据库系统运行过程中必须不断地对其进行评价、调整与修改。行评价、调整与修改。蜒特拽籍嗡颗快袍事哺锑躁蔬圭冗街堑颗根规缩炬辗豫冤粥嫁矾

23、萨湛言莫第7章数据库设计与编程第7章数据库设计与编程设计特点设计特点vv在设计过程中把数据库的设计和对数据库中数在设计过程中把数据库的设计和对数据库中数在设计过程中把数据库的设计和对数据库中数在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来据处理的设计紧密结合起来据处理的设计紧密结合起来据处理的设计紧密结合起来vv将这两个方面的需求分析、抽象、设计、实现将这两个方面的需求分析、抽象、设计、实现将这两个方面的需求分析、抽象、设计、实现将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,在各个阶段同时进行,相互参照,相互补充,在各个阶段同时进行,相互参照

24、,相互补充,在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计以完善两方面的设计以完善两方面的设计以完善两方面的设计vv设计过程各个阶段的设计描述:设计过程各个阶段的设计描述:设计过程各个阶段的设计描述:设计过程各个阶段的设计描述:P204P204图图图图7.37.3搭邪蜡冷淳祁及亚纬岩剔锅狈魏遵援竟色羚砷识啤陈阉骋栖烃刻企蛋慨痰第7章数据库设计与编程第7章数据库设计与编程数据库设计的基本步骤(续)数据库设计的基本步骤(续)v数据库各级模式的形成过程数据库各级模式的形成过程(P205图图7.4)需求分析阶段需求分析阶段需求分析阶段需求分析阶段vv 综合各个用户的应用需求综合各个用户的应

25、用需求综合各个用户的应用需求综合各个用户的应用需求概念设计阶段概念设计阶段概念设计阶段概念设计阶段vv 形成独立于机器特点,独立于各个形成独立于机器特点,独立于各个形成独立于机器特点,独立于各个形成独立于机器特点,独立于各个DBMSDBMS产品的概念模式产品的概念模式产品的概念模式产品的概念模式(E-R(E-R图图图图) )狼娄沛住纽椅撤燕谰诽胶聊影旁韧恳牧氢躁粤胖侈吊究蔡围展迎支访肥咖第7章数据库设计与编程第7章数据库设计与编程数据库设计的基本步骤(续)数据库设计的基本步骤(续)逻辑设计阶段逻辑设计阶段v首先将首先将E-R图转换成具体的数据库产品支持图转换成具体的数据库产品支持的数据模型,如

26、关系模型,形成数据库逻辑的数据模型,如关系模型,形成数据库逻辑模式模式v然后根据用户处理的要求、安全性的考虑,然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图在基本表的基础上再建立必要的视图(View),形成数据的外模式,形成数据的外模式世卒森污狂澡烽糊写茂炭歉滤田日但发阻再索水拴将殖谐讫斩韭湾徊励帮第7章数据库设计与编程第7章数据库设计与编程数据库设计的基本步骤(续)数据库设计的基本步骤(续)物理设计阶段物理设计阶段vv根据根据根据根据DBMSDBMS特点和处理的需要,进行物理特点和处理的需要,进行物理特点和处理的需要,进行物理特点和处理的需要,进行物理存储安排,建立索

27、引,形成数据库内模式存储安排,建立索引,形成数据库内模式存储安排,建立索引,形成数据库内模式存储安排,建立索引,形成数据库内模式天前纤泊胖轮上粤难扒庄尔受渤嘉蔫达坑烹烂德旅侮谈轩缩再言邵陌莉鹰第7章数据库设计与编程第7章数据库设计与编程7.2 需求分析需求分析v7.2.1 需求分析的任务需求分析的任务v7.2.2 需求分析的方法需求分析的方法v7.2.3 数据字典数据字典测领茨袖崔惠屉敷针棵汹已纂喻环止虑鸡锦瞪迭瞎即佯儡官靡顾养谢悯硫第7章数据库设计与编程第7章数据库设计与编程需求分析(续)需求分析(续)v需求分析就是分析用户的需要与要求需求分析就是分析用户的需要与要求需求分析是设计数据库的起

28、点需求分析是设计数据库的起点需求分析是设计数据库的起点需求分析是设计数据库的起点需求分析的结果是否准确地反映了用户的实需求分析的结果是否准确地反映了用户的实需求分析的结果是否准确地反映了用户的实需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,际要求,将直接影响到后面各个阶段的设计,际要求,将直接影响到后面各个阶段的设计,际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用并影响到设计结果是否合理和实用并影响到设计结果是否合理和实用并影响到设计结果是否合理和实用刷肪铆牛竖诡炎冯唉棉奥嚣娥钙绸辗碰墙毖交炒昭蝗裙停蝗筷铱狗递援侦第7章数据库设计与编程第

29、7章数据库设计与编程7.2 需求分析需求分析7.2.1 需求分析的任务需求分析的任务7.2.2 需求分析的方法需求分析的方法7.2.3 数据字典数据字典剥击棒挝檀旗篮淑跟圣且谚哺酬俱均涵募点吼弘滩甫喳瞧傈悯刮兑溢悬础第7章数据库设计与编程第7章数据库设计与编程7.2.1 需求分析的任务需求分析的任务一、需求分析的任务一、需求分析的任务二、需求分析的重点二、需求分析的重点三、需求分析的难点三、需求分析的难点役呕蚊妊隧想修毗将伏慌旅预第研奔虽截能傅硝贿词恃罪棱苇烫侗句埂瞬第7章数据库设计与编程第7章数据库设计与编程一、需求分析的任务一、需求分析的任务v 通过详细调查现实世界要处理的对象(组通过详细

30、调查现实世界要处理的对象(组织、部门、企业等),充分织、部门、企业等),充分了解原系统了解原系统(手工系统或计算机系统)(手工系统或计算机系统)工作概况,明工作概况,明确用户的各种需求确用户的各种需求v 在此基础上在此基础上确定新系统的功能确定新系统的功能。新系统必。新系统必须充分考虑今后可能的扩充和改变,不能须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库仅仅按当前应用需求来设计数据库蜗穿贱裸渣放措和沮生忱挠绑亮合祖釜于甲罚楞响湛韭怎聚垮成自成默燎第7章数据库设计与编程第7章数据库设计与编程二、需求分析的重点二、需求分析的重点v需求分析的重点是调查、收集与分析用户在数据需求

31、分析的重点是调查、收集与分析用户在数据管理中的管理中的信息要求、处理要求、安全性与信息要求、处理要求、安全性与完整性要求完整性要求。v 信息要求信息要求用户需要从数据库中获得信息的内容与性质用户需要从数据库中获得信息的内容与性质用户需要从数据库中获得信息的内容与性质用户需要从数据库中获得信息的内容与性质由用户的信息要求可以导出数据要求,即在由用户的信息要求可以导出数据要求,即在由用户的信息要求可以导出数据要求,即在由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据数据库中需要存储哪些数据数据库中需要存储哪些数据数据库中需要存储哪些数据着贰暂甸蕾牌配轻浓聊德老疤社蔫募号杏盗潞妥搁丰庸

32、啄允甩卉搬兹捌晦第7章数据库设计与编程第7章数据库设计与编程需求分析的重点(续)需求分析的重点(续)v处理要求处理要求对处理功能的要求对处理功能的要求对处理的响应时间的要求对处理的响应时间的要求对处理方式的要求对处理方式的要求(批处理批处理 / 联机处理联机处理)v新系统的功能必须能够满足用户的信息要求、处新系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整性要求。理要求、安全性与完整性要求。掣弹驭挪劝稍弟祭颇为咬却幢盘劲毫颊束棋谨忆醒铃媚哭役杀悉慎叉浓奄第7章数据库设计与编程第7章数据库设计与编程三、需求分析的难点三、需求分析的难点v确定用户最终需求的难点确定用户最终需求的难点用户

33、用户用户用户缺少计算机知识,开始时无法确定计算机究竟缺少计算机知识,开始时无法确定计算机究竟缺少计算机知识,开始时无法确定计算机究竟缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准能为自己做什么,不能做什么,因此无法一下子准能为自己做什么,不能做什么,因此无法一下子准能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断确地表达自己的需求,他们所提出的需求往往不断确地表达自己的需求,他们所提出的需求往往不断确地表达自己的需求,他们所提出的需求往往不断地变化。地变化。地变化。地变化。设计人员设计人员设计人员设计人员缺少用户的专

34、业知识,不易理解用户的真缺少用户的专业知识,不易理解用户的真缺少用户的专业知识,不易理解用户的真缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。正需求,甚至误解用户的需求。正需求,甚至误解用户的需求。正需求,甚至误解用户的需求。新新新新的硬件、软件的硬件、软件的硬件、软件的硬件、软件技术的出现技术的出现技术的出现技术的出现也会使用户需求发生变也会使用户需求发生变也会使用户需求发生变也会使用户需求发生变化。化。化。化。曰棺帜巷别弓躬文睡斥递汰诬卉速块拥券悯俐樱顷辙嫌多材爱潞偏锌钞渡第7章数据库设计与编程第7章数据库设计与编程需求分析的难点需求分析的难点(续续)v解决方法解决方法设

35、计人员必须采用有效的方法,与用户不断设计人员必须采用有效的方法,与用户不断设计人员必须采用有效的方法,与用户不断设计人员必须采用有效的方法,与用户不断深入深入深入深入地进行地进行地进行地进行交流交流交流交流,才能逐步得以确定用户的实,才能逐步得以确定用户的实,才能逐步得以确定用户的实,才能逐步得以确定用户的实际需求际需求际需求际需求峦梗泌雨通蝎铲斧宴谩脾午卫悄畅枣耶剿篱庇瞎慎搅港糟美石邮诵喊把溯第7章数据库设计与编程第7章数据库设计与编程7.2 需求分析需求分析7.2.1 需求分析的任务需求分析的任务7.2.2 需求分析的方法需求分析的方法7.2.3 数据字典数据字典锭滚如台贴讣抉廊贷门茸充呼

36、析捏暮啤透辰爱啄蠕肇拆筹宝本柏紫射诅骑第7章数据库设计与编程第7章数据库设计与编程7.2.2 需求分析的方法需求分析的方法v调查清楚用户的实际需求并进行初步分析调查清楚用户的实际需求并进行初步分析v 与用户达成共识与用户达成共识v 进一步分析与表达这些需求进一步分析与表达这些需求历堂窗巾挚康置相婿燕烟垢桩褐始洞须积毅亡牡淬侦绍忘渊瞩做掏葵澡哆第7章数据库设计与编程第7章数据库设计与编程一、一、 调查与初步分析用户需求调查与初步分析用户需求 调查组织机构情况调查组织机构情况 组织部门的组成情况组织部门的组成情况组织部门的组成情况组织部门的组成情况 各部门的职责等各部门的职责等各部门的职责等各部门

37、的职责等繁堪察汐拂钝疽疾能砚咖棍侠浩缄扮彩喷劳迄峨豫湍瘸冻粱仗邯胀惧牌掀第7章数据库设计与编程第7章数据库设计与编程调查与初步分析用户需求(续)调查与初步分析用户需求(续) 调查各部门的业务活动情况。调查重点之一。调查各部门的业务活动情况。调查重点之一。 各个部门输入和使用什么数据各个部门输入和使用什么数据各个部门输入和使用什么数据各个部门输入和使用什么数据 如何加工处理这些数据如何加工处理这些数据如何加工处理这些数据如何加工处理这些数据 输出什么信息输出什么信息输出什么信息输出什么信息 输出到什么部门输出到什么部门输出到什么部门输出到什么部门 输出结果的格式是什么输出结果的格式是什么输出结果

38、的格式是什么输出结果的格式是什么郧器子悉搀馁恫啡艇弓藉匈渡绪达篱靶道嗅肛廊弗锗甄畸资颠脖曲沃务斩第7章数据库设计与编程第7章数据库设计与编程调查与初步分析用户需求(续)调查与初步分析用户需求(续) 在熟悉业务活动的基础上,协助用户明确对新在熟悉业务活动的基础上,协助用户明确对新系统的各种要求。系统的各种要求。调查重点之二调查重点之二调查重点之二调查重点之二。 信息要求信息要求 处理要求处理要求 完全性与完整性要求完全性与完整性要求络沁瘪钎疫迢年饰忙僧样衫聋万哲颜谬撇郴淌菌俏瞻熟还斥龟坑垂龚村捶第7章数据库设计与编程第7章数据库设计与编程调查与初步分析用户需求(续)调查与初步分析用户需求(续)

39、对前面调查的结果进行初步分析对前面调查的结果进行初步分析确定新系统的边界确定新系统的边界确定新系统的边界确定新系统的边界vv确定哪些功能由计算机完成或将来准备让计算机确定哪些功能由计算机完成或将来准备让计算机确定哪些功能由计算机完成或将来准备让计算机确定哪些功能由计算机完成或将来准备让计算机完成完成完成完成vv确定哪些活动由人工完成确定哪些活动由人工完成确定哪些活动由人工完成确定哪些活动由人工完成 由计算机完成的功能就是新系统应该实现的功能。由计算机完成的功能就是新系统应该实现的功能。由计算机完成的功能就是新系统应该实现的功能。由计算机完成的功能就是新系统应该实现的功能。询劣竿来静萧疆亢基青骗

40、解扦差臂杰衙孰同软殷渐把俘饮习凳蒜唁职镭跺第7章数据库设计与编程第7章数据库设计与编程二、常用调查方法二、常用调查方法v做需求调查时,往往需要同时采用多种方做需求调查时,往往需要同时采用多种方法法无论使用何种调查方法,都必须有用户的积无论使用何种调查方法,都必须有用户的积无论使用何种调查方法,都必须有用户的积无论使用何种调查方法,都必须有用户的积极参与和配合极参与和配合极参与和配合极参与和配合设计人员应该和用户取得共同的语言,帮助设计人员应该和用户取得共同的语言,帮助设计人员应该和用户取得共同的语言,帮助设计人员应该和用户取得共同的语言,帮助不熟悉计算机的用户建立数据库环境下的共不熟悉计算机的

41、用户建立数据库环境下的共不熟悉计算机的用户建立数据库环境下的共不熟悉计算机的用户建立数据库环境下的共同概念,并对设计工作的最后结果共同承担同概念,并对设计工作的最后结果共同承担同概念,并对设计工作的最后结果共同承担同概念,并对设计工作的最后结果共同承担责任责任责任责任旬饼觅疟借朽匣帅穴吱驯门塌症渡篮腾蛤麓霉邻雅伞釉濒伎扫余兽加梢磅第7章数据库设计与编程第7章数据库设计与编程常用调查方法(续)常用调查方法(续)v常用调查方法常用调查方法跟班作业跟班作业跟班作业跟班作业通过亲身参加业务工作了解业务活动的情况通过亲身参加业务工作了解业务活动的情况通过亲身参加业务工作了解业务活动的情况通过亲身参加业务

42、工作了解业务活动的情况能比较准确地理解用户的需求,但比较耗时能比较准确地理解用户的需求,但比较耗时能比较准确地理解用户的需求,但比较耗时能比较准确地理解用户的需求,但比较耗时开调查会开调查会开调查会开调查会通过与用户座谈来了解业务活动情况及用户通过与用户座谈来了解业务活动情况及用户通过与用户座谈来了解业务活动情况及用户通过与用户座谈来了解业务活动情况及用户需求需求需求需求请专人介绍请专人介绍请专人介绍请专人介绍驹直筹禽氢识姜梧睬坠川绍鸵疙喳撒萨报变貌秽网擂皆盂路配虾岳略呻蛙第7章数据库设计与编程第7章数据库设计与编程常用调查方法(续)常用调查方法(续)询问询问询问询问对某些调查中的问题,可以找

43、专人询问对某些调查中的问题,可以找专人询问设计调查表请用户填写设计调查表请用户填写设计调查表请用户填写设计调查表请用户填写如果调查表设计合理,则很有效,且易于为如果调查表设计合理,则很有效,且易于为用户接受用户接受查阅记录查阅记录查阅记录查阅记录查阅与原系统有关的数据记录查阅与原系统有关的数据记录查阅与原系统有关的数据记录查阅与原系统有关的数据记录崇惹册闪针浊姐抚忿曰妹爵佃垛壶菩摘燕摈么赚兼吐源的近宜朵夸唤涅猖第7章数据库设计与编程第7章数据库设计与编程三、进一步分析和表达用户需求三、进一步分析和表达用户需求v分析和表达用户的需求的常用方法分析和表达用户的需求的常用方法自顶向下的结构化分析方法

44、(自顶向下的结构化分析方法(Structured Analysis,简称,简称SA方法)方法)vSA方法从最上层的系统组织机构入手,采用逐方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并用数据流图和数据字层分解的方式分析系统,并用数据流图和数据字典描述系统。典描述系统。刮酶乙被枫涣曹蛾邀启秦上宅豢刹摔部姆亦劫晶习鹅淑葡抡坎垒引绘光绳第7章数据库设计与编程第7章数据库设计与编程进一步分析和表达用户需求(续)进一步分析和表达用户需求(续)1首先把任何一个系统都抽象为:首先把任何一个系统都抽象为:数据流数据流数据流数据流数据数据存储存储信息要求信息要求数据数据来源来源处理处理数据数据输

45、出输出处理要求处理要求案诲调园塞叛刑疆略萎态鼠则矿抠巨领吊镍溶羌涨术哑莎会障乎侨压牛息第7章数据库设计与编程第7章数据库设计与编程进一步分析和表达用户需求(续)进一步分析和表达用户需求(续)2分解处理功能和数据分解处理功能和数据(1)分解处理功能)分解处理功能vv将处理功能的具体内容分解为若干子功能,再将将处理功能的具体内容分解为若干子功能,再将将处理功能的具体内容分解为若干子功能,再将将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统的工作过程表达每个子功能继续分解,直到把系统的工作过程表达每个子功能继续分解,直到把系统的工作过程表达每个子功能继续分解,直到把系统的工作

46、过程表达清楚为止。清楚为止。清楚为止。清楚为止。(2 2)分解数据)分解数据)分解数据)分解数据vv在处理功能逐步分解的同时,其所用的数据也逐在处理功能逐步分解的同时,其所用的数据也逐在处理功能逐步分解的同时,其所用的数据也逐在处理功能逐步分解的同时,其所用的数据也逐级分解,形成若干层次的数据流图级分解,形成若干层次的数据流图级分解,形成若干层次的数据流图级分解,形成若干层次的数据流图vv 数据流图表达了数据和处理过程的关系数据流图表达了数据和处理过程的关系数据流图表达了数据和处理过程的关系数据流图表达了数据和处理过程的关系润场妓梢宅粕饭浮褒苟坚跳欧缉绰吃明虚酗渤溺雾诊炭奉拐现眺动茅翟雷第7章

47、数据库设计与编程第7章数据库设计与编程进一步分析和表达用户需求(续)进一步分析和表达用户需求(续)(3)表达方法)表达方法v 处理过程:用判定表或判定树来描述处理过程:用判定表或判定树来描述v 数据:用数据字典来描述数据:用数据字典来描述 薄崭滤凡豫讨睁搬凝踊从硒隔冗君阐奖削油隅搔涉噎赘惦漂十挛耿闭岩养第7章数据库设计与编程第7章数据库设计与编程进一步分析和表达用户需求(续)进一步分析和表达用户需求(续)3将分析结果再次提交给用户,征得用户将分析结果再次提交给用户,征得用户的认可的认可卒圭胆悉串师寓敞粤闹栗疾碳唆辆元广为佣掸仔残们嵌怔氏案末隶憋丽入第7章数据库设计与编程第7章数据库设计与编程四

48、、需求分析小结四、需求分析小结vP207图图7.6拐谐狐丰杆求异探趟瘴势除愤署芳施展瑚桥蛀吸恢瘦管芥碟肢答灭百祭明第7章数据库设计与编程第7章数据库设计与编程需求分析小结(续)需求分析小结(续)实例:假设我们要开发一个学校管理系统。实例:假设我们要开发一个学校管理系统。1经过可行性分析和初步需求调查,抽象出该系统最高层数经过可行性分析和初步需求调查,抽象出该系统最高层数据流图,该系统由教师管理子系统、学生管理子系统、后据流图,该系统由教师管理子系统、学生管理子系统、后勤管理子系统组成,每个子系统分别配备一个开发小组。勤管理子系统组成,每个子系统分别配备一个开发小组。2进一步细化各个子系统。进一

49、步细化各个子系统。其中学生管理子系统开发小组通过进行进一步的需求调查,其中学生管理子系统开发小组通过进行进一步的需求调查,明确了该子系统的主要功能是进行学籍管理和课程管理,明确了该子系统的主要功能是进行学籍管理和课程管理,包括学生报到、入学、毕业的管理,学生上课情况的管理。包括学生报到、入学、毕业的管理,学生上课情况的管理。通过详细的信息流程分析和数据收集后,他们生成了该子通过详细的信息流程分析和数据收集后,他们生成了该子系统的数据流图。系统的数据流图。舷重脐叹谬外囱荚粒乃朵错登伶柯扇侣喜溯痴邦曼可旺盘方绚围井颅近援第7章数据库设计与编程第7章数据库设计与编程7.2 需求分析需求分析7.2.1

50、 需求分析的任务需求分析的任务7.2.2 需求分析的方法需求分析的方法7.2.3 数据字典数据字典浇歌同谊怔量寒楞宋各独巧卿性幅袱跃扫更溉绕爵仁卸替埋牺症屉盯冀渠第7章数据库设计与编程第7章数据库设计与编程7.2.3 数据字典数据字典一、数据字典的用途一、数据字典的用途二、数据字典的内容二、数据字典的内容推砾牧匿弘奸走旬载烟寐忽节厩谐淳忻党彬棠规驱顺雹郑翠卢哪笛酋砖鸳第7章数据库设计与编程第7章数据库设计与编程一、数据字典的用途一、数据字典的用途v数据字典是各类数据描述的集合数据字典是各类数据描述的集合v数据字典是进行详细的数据收集和数据分析所获数据字典是进行详细的数据收集和数据分析所获得的主

51、要结果得的主要结果v数据字典在数据库设计中占有很重要的地位数据字典在数据库设计中占有很重要的地位塔折栖触犹硅匣府橇麻撑雁议惭红凯醒坚呵驴驭选隅瑞凰驾僧只斗侮瀑熄第7章数据库设计与编程第7章数据库设计与编程二、数据字典的内容二、数据字典的内容v数据字典的内容数据字典的内容数据项数据项数据结构数据结构数据流数据流数据存储数据存储处理过程处理过程v 数据项是数据的最小组成单位数据项是数据的最小组成单位v 若干个数据项可以组成一个数据结构若干个数据项可以组成一个数据结构v 数据字典通过对数据项和数据结构的定义来描述数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。数据流、数据存储的

52、逻辑内容。勃展紫影迎窑起蝎兜疙苗绵泞泞枢谓荤针辛诣飘涡葫徒垒攘奎瓤裙帖最某第7章数据库设计与编程第7章数据库设计与编程 数据项数据项v数据项是不可再分的数据单位数据项是不可再分的数据单位v 对数据项的描述对数据项的描述数据项描述数据项名,数据项含义说明,数据项描述数据项名,数据项含义说明, 别名,数据类型,长度,取值范围,别名,数据类型,长度,取值范围, 取值含义,与其他数据项的逻辑关系取值含义,与其他数据项的逻辑关系取值范围、与其他数据项的逻辑关系定义了取值范围、与其他数据项的逻辑关系定义了取值范围、与其他数据项的逻辑关系定义了取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件数据的

53、完整性约束条件数据的完整性约束条件数据的完整性约束条件菊雾裕碱剿估坐蕾环恰踩战第吩撒镶烧典扶颗疥镑凸桔椰淑恍碟伤式宴甘第7章数据库设计与编程第7章数据库设计与编程 数据结构数据结构v数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。v 一个数据结构可以由若干个数据项组成,也可一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。数据结构混合组成。v 对数据结构的描述对数据结构的描述数据结构描述数据结构名,含义说明,数据结构描述数据结构名,含义说明, 组成组成:数据项或数据结构数据项或数据结

54、构嗽躺厌滥汛驶馈企恢诵梗拉莱虫躬曝侵共启媳碳鸳疡袍雨昂层份抵拜青垫第7章数据库设计与编程第7章数据库设计与编程 数据流数据流v 数据流是数据结构在系统内传输的路径。数据流是数据结构在系统内传输的路径。v 对数据流的描述对数据流的描述数据流描述数据流名,说明,数据流来源,数据流描述数据流名,说明,数据流来源,数据流描述数据流名,说明,数据流来源,数据流描述数据流名,说明,数据流来源, 数据流去向,组成数据流去向,组成数据流去向,组成数据流去向,组成: :数据结构,数据结构,数据结构,数据结构, 平均流量,高峰期流量平均流量,高峰期流量平均流量,高峰期流量平均流量,高峰期流量数据流来源是说明该数据

55、流来自哪个过程数据流来源是说明该数据流来自哪个过程数据流来源是说明该数据流来自哪个过程数据流来源是说明该数据流来自哪个过程数据流去向是说明该数据流将到哪个过程去数据流去向是说明该数据流将到哪个过程去数据流去向是说明该数据流将到哪个过程去数据流去向是说明该数据流将到哪个过程去平均流量是指在单位时间(每天、每周、每月等)平均流量是指在单位时间(每天、每周、每月等)平均流量是指在单位时间(每天、每周、每月等)平均流量是指在单位时间(每天、每周、每月等)里的传输次数里的传输次数里的传输次数里的传输次数高峰期流量则是指在高峰时期的数据流量高峰期流量则是指在高峰时期的数据流量高峰期流量则是指在高峰时期的数

56、据流量高峰期流量则是指在高峰时期的数据流量失甜闻寂涎嚣戳恢释姨郴膨举猖迎皮栋篱夺椅论糜愿烹皇赚羞拭棚冒娇霓第7章数据库设计与编程第7章数据库设计与编程 数据存储数据存储v数据存储是数据结构停留或保存的地方,也是数据数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。流的来源和去向之一。v对数据存储的描述对数据存储的描述数据存储描述数据存储名,说明,编号,数据存储描述数据存储名,说明,编号,数据存储描述数据存储名,说明,编号,数据存储描述数据存储名,说明,编号, 流入的数据流流入的数据流流入的数据流流入的数据流 ,流出的数据流,流出的数据流,流出的数据流,流出的数据流 , 组成组成组

57、成组成: :数据结构,数据量,存取方式数据结构,数据量,存取方式数据结构,数据量,存取方式数据结构,数据量,存取方式流入的数据流:指出数据来源流入的数据流:指出数据来源流入的数据流:指出数据来源流入的数据流:指出数据来源流出的数据流:指出数据去向流出的数据流:指出数据去向流出的数据流:指出数据去向流出的数据流:指出数据去向数据量:每次存取多少数据,每天(或每小时、每周等)数据量:每次存取多少数据,每天(或每小时、每周等)数据量:每次存取多少数据,每天(或每小时、每周等)数据量:每次存取多少数据,每天(或每小时、每周等)存取几次等信息存取几次等信息存取几次等信息存取几次等信息存取方法:批处理存取

58、方法:批处理存取方法:批处理存取方法:批处理 / / 联机处理;检索联机处理;检索联机处理;检索联机处理;检索 / / 更新;顺序检索更新;顺序检索更新;顺序检索更新;顺序检索 / / 随机检索随机检索随机检索随机检索砧销匝傈饶资旋肢补躺妒赶摩妇羔诞搭钳轮诣薄氖顺普用敞权男偶买华硒第7章数据库设计与编程第7章数据库设计与编程 处理过程处理过程v处理过程的具体处理逻辑一般用判定表或判定树来描处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息述。数据字典中只需要描述处理过程的说明性信息v处理过程说明性信息的描述处理过程说明性信息的描述处理过程描述处理过程名,

59、说明,处理过程描述处理过程名,说明,处理过程描述处理过程名,说明,处理过程描述处理过程名,说明, 输入输入输入输入: :数据流,输出数据流,输出数据流,输出数据流,输出: :数据流,数据流,数据流,数据流, 处理处理处理处理: :简要说明简要说明简要说明简要说明桂君快上窥蜡贞薪眠溜千扭缉缺础馒棺割易定唾诉柿畦卯拒戍蒋季示吠颗第7章数据库设计与编程第7章数据库设计与编程处理过程(续)处理过程(续)简要说明:主要说明该处理过程的功能及处理要求简要说明:主要说明该处理过程的功能及处理要求vv功能:该处理过程用来做什么功能:该处理过程用来做什么功能:该处理过程用来做什么功能:该处理过程用来做什么vv处

60、理要求:处理频度要求(如单位时间里处理处理要求:处理频度要求(如单位时间里处理处理要求:处理频度要求(如单位时间里处理处理要求:处理频度要求(如单位时间里处理多少事务,多少数据量);响应时间要求等多少事务,多少数据量);响应时间要求等多少事务,多少数据量);响应时间要求等多少事务,多少数据量);响应时间要求等vv处理要求是后面物理设计的输入及性能评价的处理要求是后面物理设计的输入及性能评价的处理要求是后面物理设计的输入及性能评价的处理要求是后面物理设计的输入及性能评价的标准标准标准标准梦粤讫瞒穆待框军尿它娠杭功挠责庸附凡恋废怂唇衙鲜这暇锨洼杠葱瞒斑第7章数据库设计与编程第7章数据库设计与编程处

61、理过程(续)处理过程(续)例:学生学籍管理子系统的数据字典。例:学生学籍管理子系统的数据字典。数据项数据项,以,以“学号学号”为例:为例: 数据项:学号数据项:学号 含义说明:唯一标识每个学生含义说明:唯一标识每个学生别名:学生编号别名:学生编号 类型:字符型类型:字符型 长度:长度: 8 取值范围:取值范围:00000000至至99999999取值含义:前两位标别该学生所在年级,取值含义:前两位标别该学生所在年级, 后六位按顺序编号后六位按顺序编号与其他数据项的逻辑关系:与其他数据项的逻辑关系:吗唯瞬偶食槐帖硫户谴沧妙朴朱瘁瓣撂瑶肉舞缎韶抵崭犯盖届若均寞告俘第7章数据库设计与编程第7章数据库

62、设计与编程处理过程(续)处理过程(续)数据结构数据结构 以以“学生学生”为例为例 “学生学生”是该系统中的一个核心数据结构:是该系统中的一个核心数据结构: 数据结构:学生数据结构:学生 含义说明:是学籍管理子系统的主体数据结含义说明:是学籍管理子系统的主体数据结 构,定义了一个学生的有关信息构,定义了一个学生的有关信息 组成:学号,姓名,性别,年龄,组成:学号,姓名,性别,年龄, 所在系,年级所在系,年级断凸邓鹤碱苍蒸她蠕锐纶螺寅舌焚湃嫁儡燕村宗诚挺滞褂葡蠢耪暴辣胸库第7章数据库设计与编程第7章数据库设计与编程处理过程(续)处理过程(续)数据流数据流“体检结果体检结果”可如下描述:可如下描述:

63、 数据流:体检结果数据流:体检结果 说明:学生参加体格检查的最终结果说明:学生参加体格检查的最终结果 数据流来源:体检数据流来源:体检 数据流去向:批准数据流去向:批准 组成:组成:平均流量:平均流量:高峰期流量:高峰期流量:惠购娄跌酋翼您造桩擂拨积雕晴葫郧蛊釜朽安扣拥裸暴焚愤剁傻礁第缕兽第7章数据库设计与编程第7章数据库设计与编程处理过程(续)处理过程(续)数据存储数据存储“学生登记表学生登记表”可如下描述:可如下描述: 数据存储:学生登记表数据存储:学生登记表 说明:记录学生的基本情况说明:记录学生的基本情况流入数据流:流入数据流: 流出数据流:流出数据流: 组成:组成: 数据量:每年数据

64、量:每年3000张张 存取方式:随机存取存取方式:随机存取 咨片碗捉抖荷定娜邢七胃瓜威沃排听址埂调九沈镍玫补弯淆瑶渔辅炬鼻翔第7章数据库设计与编程第7章数据库设计与编程处理过程(续)处理过程(续)处理过程处理过程“分配宿舍分配宿舍”可如下描述:可如下描述:处理过程:分配宿舍处理过程:分配宿舍说明:为所有新生分配学生宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍,输入:学生,宿舍,输出:宿舍安排输出:宿舍安排处理:在新生报到后,为所有新生分配学处理:在新生报到后,为所有新生分配学 生宿舍。要求同一间宿舍只能安排生宿舍。要求同一间宿舍只能安排 同一性别的学生,同一个学生只能同一性别的学生,同一个

65、学生只能 安排在一个宿舍中。每个学生的居安排在一个宿舍中。每个学生的居 住面积不小于住面积不小于3平方米。安排新生平方米。安排新生 宿舍其处理时间应不超过宿舍其处理时间应不超过15分钟。分钟。 幕馒蜒祸蛋滨途耙招秧孺迭较夕袍镜崇莱维赖馏燕筑蚌诧弦汽蛾迪橇潭狙第7章数据库设计与编程第7章数据库设计与编程7.3 概念结构设计概念结构设计7.3.1 概念结构设计概述概念结构设计概述7.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤7.3.3 数据抽象与局部视图设计数据抽象与局部视图设计7.3.4 视图的集成视图的集成挡氛润锻义神裤飘团霞高煮婶中如脑耸信箍操撑中邦翘倒拿妄贤缚凿暂耀第7章数据

66、库设计与编程第7章数据库设计与编程7.3.1 概念结构概念结构v什么是概念结构设计什么是概念结构设计需求分析阶段描述的用户应用需求是现实世需求分析阶段描述的用户应用需求是现实世需求分析阶段描述的用户应用需求是现实世需求分析阶段描述的用户应用需求是现实世界的具体需求界的具体需求界的具体需求界的具体需求将需求分析得到的用户需求抽象为信息结构将需求分析得到的用户需求抽象为信息结构将需求分析得到的用户需求抽象为信息结构将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计即概念模型的过程就是概念结构设计即概念模型的过程就是概念结构设计即概念模型的过程就是概念结构设计概念结构是各种数据模

67、型的共同基础,它比概念结构是各种数据模型的共同基础,它比概念结构是各种数据模型的共同基础,它比概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加数据模型更独立于机器、更抽象,从而更加数据模型更独立于机器、更抽象,从而更加数据模型更独立于机器、更抽象,从而更加稳定。稳定。稳定。稳定。概念结构设计是整个数据库设计的关键概念结构设计是整个数据库设计的关键概念结构设计是整个数据库设计的关键概念结构设计是整个数据库设计的关键躬儿园郧疾割怂翌幌苛弓秀世恩懒耸硼货瘦弃惊舱消伍篓廊貉营惶徽褒作第7章数据库设计与编程第7章数据库设计与编程概念结构(续)概念结构(续)现实世界现实世界机器

68、世界机器世界信息世界信息世界需求分析需求分析概念结构设计概念结构设计描拣伏忿丈赚掣遭婆吕展发直炔尽帜川并束俏澡蔑溺挨咆鬃霓狈腔印峻基第7章数据库设计与编程第7章数据库设计与编程概念结构(续)概念结构(续)v概念结构设计的特点概念结构设计的特点(1)能真实、充分地反映现实世界,包括事物和)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。事物之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。是对现实世界的一个真实模型。(2)易于理解,从而可以用它和不熟悉计算机的)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计用户

69、交换意见,用户的积极参与是数据库的设计成功的关键。成功的关键。论啊个陛旋涟狭玫墩申傲宜表撩藏傣略觉廷衍怕幸贵路线秧窖窄沃帜绵谴第7章数据库设计与编程第7章数据库设计与编程概念结构(续)概念结构(续)v概念结构设计的特点概念结构设计的特点(续续)(3)易于更改,当应用环境和应用要求改变时,)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。容易对概念模型修改和扩充。(4)易于向关系、网状、层次等各种数据模型转)易于向关系、网状、层次等各种数据模型转换。换。友朔字茂挞罐趴赴境桥谓汽榷弹蔡扼钨摄返共夺忱换壬眷盎吵伦斟设吕彻第7章数据库设计与编程第7章数据库设计与编程概念结构(续)概念结

70、构(续)v描述概念模型的工具描述概念模型的工具E-RE-R模型模型模型模型衣峪诵桩张甫付死肉懈馏现掸嗡窍惋秋明苦勿序解制夸布甸硼悬蔷馅脱铺第7章数据库设计与编程第7章数据库设计与编程7.3 概念结构设计概念结构设计7.3.1 概念结构设计概述概念结构设计概述7.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤7.3.3 数据抽象与局部视图设计数据抽象与局部视图设计7.3.4 视图的集成视图的集成逝履丸怔整磷屁擎摔兰钧荤靶僵迎辰简弊政谆颈凶婪老苔浙垂炽冲痉礼稠第7章数据库设计与编程第7章数据库设计与编程7.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤v设计概念结构的四类方法设

71、计概念结构的四类方法自顶向下自顶向下vv 首先定义全局概念结构的框架,然后逐步首先定义全局概念结构的框架,然后逐步首先定义全局概念结构的框架,然后逐步首先定义全局概念结构的框架,然后逐步细化细化细化细化自底向上自底向上vv 首先定义各局部应用的概念结构,然后将首先定义各局部应用的概念结构,然后将首先定义各局部应用的概念结构,然后将首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构它们集成起来,得到全局概念结构它们集成起来,得到全局概念结构它们集成起来,得到全局概念结构噎横雹嗅搏毡典介绸卷概筏卫么涉有础碳宙菱悍伞槛颇控嫡霉峭辗凿咆部第7章数据库设计与编程第7章数据库设计与编程概念

72、结构设计的方法与步骤(续)概念结构设计的方法与步骤(续)逐步扩张逐步扩张v 首先定义最重要的核心概念结构,然后向首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构念结构,直至总体概念结构混合策略混合策略vv 将自顶向下和自底向上相结合,用自顶向将自顶向下和自底向上相结合,用自顶向将自顶向下和自底向上相结合,用自顶向将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以下策略设计一个全局概念结构的框架,以下策略设计一个全局概念结构的框架,以下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上

73、策略中设计的各它为骨架集成由自底向上策略中设计的各它为骨架集成由自底向上策略中设计的各它为骨架集成由自底向上策略中设计的各局部概念结构。局部概念结构。局部概念结构。局部概念结构。故抄挨辛类泣筒恬为肖强憋婪藉唁哆肪昔焉柯响奠疼顽摩稚息亡婪惕帅尼第7章数据库设计与编程第7章数据库设计与编程概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 自顶向下策略自顶向下策略聂鲜李翱烫闺范店馁搁捂影球沦腾叔凰豁鸭解槽炭矽滩带憨溢蚤败以酒全第7章数据库设计与编程第7章数据库设计与编程概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 自底向上策略自底向上策略 涎腻湛值貉坍闭寇祷年局矣叛谐陵睫

74、百鸥窿宏郑蚜标褪苟括宇投庶溉蔫贤第7章数据库设计与编程第7章数据库设计与编程概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 逐步扩张逐步扩张阀凳碑腐变欣鸵溺温执竟尾医人项旱孤耳式扩肮北扒矛滤拾凶傣践清喷敬第7章数据库设计与编程第7章数据库设计与编程概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续)v常用策略(常用策略(P210图图7.7)自顶向下地进行需求分析自顶向下地进行需求分析自底向上地设计概念结构自底向上地设计概念结构v自底向上设计概念结构的步骤自底向上设计概念结构的步骤 (P211P211图图图图7.87.8)第第第第1 1步:抽象数据并设计局部视图步:抽象数据

75、并设计局部视图步:抽象数据并设计局部视图步:抽象数据并设计局部视图第第第第2 2步:集成局部视图,得到全局概念结构步:集成局部视图,得到全局概念结构步:集成局部视图,得到全局概念结构步:集成局部视图,得到全局概念结构沦衬驹惩镇帆缸妒型拙珐肋垢摄锑坪语倘极西静根傀绥檄鸳韦泵飞氮耘魏第7章数据库设计与编程第7章数据库设计与编程7.3 概念结构设计概念结构设计7.3.1 概念结构设计概述概念结构设计概述7.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤7.3.3 数据抽象与局部视图设计数据抽象与局部视图设计7.3.4 视图的集成视图的集成槛改溢点抬筑油汗启兆挝鸟辛贵综包龙赏尉樱暗锯菠娩扼牛

76、掳念烂蒲母庭第7章数据库设计与编程第7章数据库设计与编程7.3.3 数据抽象与局部视图设计数据抽象与局部视图设计v数据抽象数据抽象v局部视图设计局部视图设计猖气央梅磅怯淀详岩酞待墓领财吐溺镁扫轮夷烤霸屈藤请数袍炸陆氓台幂第7章数据库设计与编程第7章数据库设计与编程一、数据抽象一、数据抽象v概念结构是对现实世界的一种抽象概念结构是对现实世界的一种抽象从实际的人、物、事和概念中抽取所关心的从实际的人、物、事和概念中抽取所关心的从实际的人、物、事和概念中抽取所关心的从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节共同特性,忽略非本质的细节共同特性,忽略非本质的细节共同特性,忽略非本质

77、的细节把这些特性用各种概念精确地加以描述把这些特性用各种概念精确地加以描述把这些特性用各种概念精确地加以描述把这些特性用各种概念精确地加以描述这些概念组成了某种模型这些概念组成了某种模型这些概念组成了某种模型这些概念组成了某种模型款岔枫蓟世天贮仕惩宣擞蛤空缺差式忻堕蒸荔门酱原次嗓崭河逐炔鳞抄割第7章数据库设计与编程第7章数据库设计与编程数据抽象(续)数据抽象(续)v三种常用抽象三种常用抽象1. 分类(分类(Classification)定义某一类概念作为现实世界中一组对象的定义某一类概念作为现实世界中一组对象的定义某一类概念作为现实世界中一组对象的定义某一类概念作为现实世界中一组对象的类型类型

78、类型类型这些对象具有某些共同的特性和行为这些对象具有某些共同的特性和行为这些对象具有某些共同的特性和行为这些对象具有某些共同的特性和行为它抽象了对象它抽象了对象它抽象了对象它抽象了对象值和型值和型值和型值和型之间的之间的之间的之间的“is member “is member of”of”的语义的语义的语义的语义在在在在E-RE-R模型中,实体型就是这种抽象模型中,实体型就是这种抽象模型中,实体型就是这种抽象模型中,实体型就是这种抽象例:例:例:例:P212P212图图图图7.107.10巳鬃絮糯柄陆涪指连牛悠被揽舵蚂下缎奈敌随逆妇厕少覆饵浅只俱赶完胃第7章数据库设计与编程第7章数据库设计与编程

79、数据抽象(续)数据抽象(续)2. 聚集(聚集(Aggregation)定义某一类型的组成成分定义某一类型的组成成分定义某一类型的组成成分定义某一类型的组成成分它抽象了对象内部类型和成分之间它抽象了对象内部类型和成分之间它抽象了对象内部类型和成分之间它抽象了对象内部类型和成分之间“is part “is part of”of”的语义的语义的语义的语义在在在在E-RE-R模型中若干属性的聚集组成了实体型,模型中若干属性的聚集组成了实体型,模型中若干属性的聚集组成了实体型,模型中若干属性的聚集组成了实体型,就是这种抽象就是这种抽象就是这种抽象就是这种抽象例:例:例:例:P212P212图图图图7.1

80、17.11,图,图,图,图7.127.12东碘猛殆领漠峰哥苏暮身吸聘词徊板做爹霹寸扯碾遂耻盟斜何嚷警捣具晒第7章数据库设计与编程第7章数据库设计与编程数据抽象(续)数据抽象(续)3. 概括(概括(Generalization)定义类型之间的一种子集联系定义类型之间的一种子集联系它抽象了类型之间的它抽象了类型之间的“is subset of”的语义的语义概括有一个很重要的性质:继承性。子类继概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。承超类上定义的所有抽象。 例:例:P213图图7.13嘘斗呛稿麻菲稽荤段逐绢滦疥敲向咳呛尊娠钡龚滔坏材移丑天狱歼皂笋肇第7章数据库设计与编程第7章

81、数据库设计与编程数据抽象(续)数据抽象(续)注:原注:原E-R模型不具有概括,本书对模型不具有概括,本书对E-R模型作了模型作了扩充,允许定义超类实体型和子类实体型。扩充,允许定义超类实体型和子类实体型。vv 用双竖边的矩形框表示子类,用双竖边的矩形框表示子类,用双竖边的矩形框表示子类,用双竖边的矩形框表示子类,vv 用直线加小圆圈表示超类用直线加小圆圈表示超类用直线加小圆圈表示超类用直线加小圆圈表示超类- -子类的联系子类的联系子类的联系子类的联系块孝啄蠢伶燃袋斧痰钠涎涕竣讫远拍董囱捆刻绘聋肛衣蚂刺接向播牲熏来第7章数据库设计与编程第7章数据库设计与编程数据抽象(续)数据抽象(续)v数据抽象

82、的用途数据抽象的用途对需求分析阶段收集到的数据进行分类、组对需求分析阶段收集到的数据进行分类、组对需求分析阶段收集到的数据进行分类、组对需求分析阶段收集到的数据进行分类、组织(聚集),形成织(聚集),形成织(聚集),形成织(聚集),形成vv实体实体实体实体vv实体的属性,标识实体的码实体的属性,标识实体的码实体的属性,标识实体的码实体的属性,标识实体的码vv确定实体之间的联系类型确定实体之间的联系类型确定实体之间的联系类型确定实体之间的联系类型(1:1(1:1,1:n1:n,m:n)m:n)傅迭意剔肖偿茬齐兜努揣壁椒铝廊杀蕉锡卖描程删羚暇灭汹腔钞芬绍孤蛊第7章数据库设计与编程第7章数据库设计与

83、编程二、局部视图设计二、局部视图设计设计分设计分E-R图的步骤图的步骤:选择局部应用选择局部应用逐一设计分逐一设计分E-R图图厉甜渍胶烷鞭厘敦镰抑趣钎帝哮厚腻垢砸柄锦脑翼菏烫茎藩眠厦竭堂掀绑第7章数据库设计与编程第7章数据库设计与编程 选择局部应用选择局部应用v需求分析阶段,已用多层数据流图和数据字典描需求分析阶段,已用多层数据流图和数据字典描述了整个系统。述了整个系统。v设计分设计分E-R图首先需要根据系统的具体情况,在图首先需要根据系统的具体情况,在多层的数据流图中多层的数据流图中选择选择一个一个适当层次的数据流图适当层次的数据流图,让这组图中每一部分对应一个局部应用,然后以让这组图中每一

84、部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分这一层次的数据流图为出发点,设计分E-R图。图。 航帘修莆宣拨堕镶岳谴是拐掠访蝴传毗弃坝摄勉灰孺刚摇绿鸯革豺秃虏桂第7章数据库设计与编程第7章数据库设计与编程选择局部应用(续)选择局部应用(续)v通常以中层数据流图作为设计分通常以中层数据流图作为设计分E-R图的依据。原因:图的依据。原因:高层数据流图只能反映系统的概貌高层数据流图只能反映系统的概貌高层数据流图只能反映系统的概貌高层数据流图只能反映系统的概貌中层数据流图能较好地反映系统中各局部应中层数据流图能较好地反映系统中各局部应中层数据流图能较好地反映系统中各局部应中层数据流图能

85、较好地反映系统中各局部应用的子系统组成用的子系统组成用的子系统组成用的子系统组成低层数据流图过细低层数据流图过细低层数据流图过细低层数据流图过细淫陌葛嗣梭铁淬珍捷酶幂诲襄赢忻辜盟枢袱剑吉晰彻搪浴枕它酱孰课衷瓶第7章数据库设计与编程第7章数据库设计与编程选择局部应用(续)选择局部应用(续)例:由于学籍管理、课程管理等都不太复杂,例:由于学籍管理、课程管理等都不太复杂,因此可以它们入手设计学生管理子系统的因此可以它们入手设计学生管理子系统的分分E-R图。如果局部应用比较复杂,则可图。如果局部应用比较复杂,则可以从更下层的数据流图入手。以从更下层的数据流图入手。热逻焙募惶掌依裳耙胳辽茄刺叭蜀茶潘竭夕

86、驾妮姆柄娇厄檬界硬邀谱憨缮第7章数据库设计与编程第7章数据库设计与编程 逐一设计分逐一设计分E-R图图v任务任务标定局部应用中的实体、属性、码,实体间的标定局部应用中的实体、属性、码,实体间的标定局部应用中的实体、属性、码,实体间的标定局部应用中的实体、属性、码,实体间的联系联系联系联系vv将各局部应用涉及的数据分别从数据字典中将各局部应用涉及的数据分别从数据字典中将各局部应用涉及的数据分别从数据字典中将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用抽取出来,参照数据流图,标定各局部应用抽取出来,参照数据流图,标定各局部应用抽取出来,参照数据流图,标定各局部应用中的

87、实体、实体的属性、标识实体的码,确中的实体、实体的属性、标识实体的码,确中的实体、实体的属性、标识实体的码,确中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型(定实体之间的联系及其类型(定实体之间的联系及其类型(定实体之间的联系及其类型(1:11:1,1:n1:n,m:nm:n)辣讶褒贴钢缄悦卯粹宏扣领飘扬苗壳皑疡戴及涤硅莲禾们轮疡查违荫遏了第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续)图(续)v如何抽象实体和属性如何抽象实体和属性实体实体:现实世界中一组具有某些共同特性和:现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。对象和行为

88、的对象就可以抽象为一个实体。对象和实体之间是实体之间是“is member of的关系。的关系。 例:在学校环境中,可把张三、李四等对象抽例:在学校环境中,可把张三、李四等对象抽象为学生实体。象为学生实体。孵物袍贝惊娠窟臼颐鲸活钱宝处蔡肮酬窃绞振痉峰沟卡巳祖琶堵价型琵饿第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续)图(续)属性属性:对象类型的组成成分可以抽象为实体:对象类型的组成成分可以抽象为实体的属性。组成成分与对象类型之间是的属性。组成成分与对象类型之间是“is part of的关系。的关系。例:学号、姓名、专业、年级等可以抽象为学生例:学号、姓名、专业、年

89、级等可以抽象为学生例:学号、姓名、专业、年级等可以抽象为学生例:学号、姓名、专业、年级等可以抽象为学生实体的属性。其中学号为标识学生实体的码。实体的属性。其中学号为标识学生实体的码。实体的属性。其中学号为标识学生实体的码。实体的属性。其中学号为标识学生实体的码。趁唾踌成列胎绅皂盛拒露湾啥逛商脚臣神秒罪颊剑瑟屯烃行纫琉散竹婆宵第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续)图(续)v如何区分实体和属性如何区分实体和属性实体与属性是相对而言的实体与属性是相对而言的实体与属性是相对而言的实体与属性是相对而言的。同一事物,在一。同一事物,在一。同一事物,在一。同一事物,在

90、一种应用环境中作为种应用环境中作为种应用环境中作为种应用环境中作为“ “属性属性属性属性” ”,在另一种应用环,在另一种应用环,在另一种应用环,在另一种应用环境中就必须作为境中就必须作为境中就必须作为境中就必须作为“ “实体实体实体实体” ”。例:学校中的系,在某种应用环境中,它只是例:学校中的系,在某种应用环境中,它只是例:学校中的系,在某种应用环境中,它只是例:学校中的系,在某种应用环境中,它只是作为作为作为作为“ “学生学生学生学生” ”实体的一个属性,表明一个学生实体的一个属性,表明一个学生实体的一个属性,表明一个学生实体的一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需要考

91、属于哪个系;而在另一种环境中,由于需要考属于哪个系;而在另一种环境中,由于需要考属于哪个系;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、办虑一个系的系主任、教师人数、学生人数、办虑一个系的系主任、教师人数、学生人数、办虑一个系的系主任、教师人数、学生人数、办公地点等,这时它就需要作为实体了。公地点等,这时它就需要作为实体了。公地点等,这时它就需要作为实体了。公地点等,这时它就需要作为实体了。房掷乏津拔槛鱼骋描拜薯险异固旬践蚊芽蹬恨束矛秆著帐卷堪悸徘缕羊斌第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续)图(续)一般原则一般原则vv属性不能再具有

92、需要描述的性质。即属性属性不能再具有需要描述的性质。即属性属性不能再具有需要描述的性质。即属性属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些必须是不可分的数据项,不能再由另一些必须是不可分的数据项,不能再由另一些必须是不可分的数据项,不能再由另一些属性组成。属性组成。属性组成。属性组成。vv属性不能与其他实体具有联系。联系只发属性不能与其他实体具有联系。联系只发属性不能与其他实体具有联系。联系只发属性不能与其他实体具有联系。联系只发生在实体之间。生在实体之间。生在实体之间。生在实体之间。符合上述两条特性的事物一般作为属性对待。符合上述两条特性的事物一般作为属性对待。符

93、合上述两条特性的事物一般作为属性对待。符合上述两条特性的事物一般作为属性对待。为了简化为了简化为了简化为了简化E-RE-R图的处置,现实世界中的事物凡图的处置,现实世界中的事物凡图的处置,现实世界中的事物凡图的处置,现实世界中的事物凡能够作为属性对待的,应尽量作为属性。能够作为属性对待的,应尽量作为属性。能够作为属性对待的,应尽量作为属性。能够作为属性对待的,应尽量作为属性。赌兑溢开昧揍嫁搅鸭拍闲瀑蔽襄泽殃于诛臼脖补激焚濒箔朴竭尺兄旅洲粉第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续)图(续)举例举例例例1:“学生学生”由学号、姓名等属性进一步描述,由学号、姓名等

94、属性进一步描述,根据准则,根据准则,“学生学生”只能作为实体,不能只能作为实体,不能作为属性。作为属性。例例2:职称通常作为教师实体的属性,但在涉及:职称通常作为教师实体的属性,但在涉及住房分配时,由于分房与职称有关,也就是住房分配时,由于分房与职称有关,也就是说职称与住房实体之间有联系,根据准则,说职称与住房实体之间有联系,根据准则,这时把职称作为实体来处理会更合适些。这时把职称作为实体来处理会更合适些。(教程(教程214图图7-15)某雁诵着该家费浪瘤孰冀碌募瓣帚盖测凝慰氛弹键咀媒担驭啄嫉挖非么裂第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续)图(续)v设计分

95、设计分E-R图的步骤图的步骤(1 1)以数据字典为出发点定义)以数据字典为出发点定义)以数据字典为出发点定义)以数据字典为出发点定义E-RE-R图。图。图。图。vv 数据字典中的数据字典中的数据字典中的数据字典中的“ “数据结构数据结构数据结构数据结构” ”、“ “数据流数据流数据流数据流” ”和和和和“ “数据存储数据存储数据存储数据存储” ”等已是若干属性的有意义等已是若干属性的有意义等已是若干属性的有意义等已是若干属性的有意义的聚合的聚合的聚合的聚合(2 2)按上面给出的准则进行必要的调整。)按上面给出的准则进行必要的调整。)按上面给出的准则进行必要的调整。)按上面给出的准则进行必要的调

96、整。饿孪兹爽态拾姿淫袖声席拎烤巩店缠屉惺逮笺届津铜购透乳菩汀藐翅赣柞第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续)图(续)例:学籍管理局部应用中主要涉及的实体包括学例:学籍管理局部应用中主要涉及的实体包括学生、宿舍、档案材料、班级、班主任。生、宿舍、档案材料、班级、班主任。实体之间的联系:实体之间的联系:由于一个宿舍可以住多个学生,而一个学生由于一个宿舍可以住多个学生,而一个学生由于一个宿舍可以住多个学生,而一个学生由于一个宿舍可以住多个学生,而一个学生只能住在某一个宿舍中,因此宿舍与学生之只能住在某一个宿舍中,因此宿舍与学生之只能住在某一个宿舍中,因此宿舍与学

97、生之只能住在某一个宿舍中,因此宿舍与学生之间是间是间是间是1:n1:n的联系。的联系。的联系。的联系。由于一个班级往往有若干名学生,而一个学由于一个班级往往有若干名学生,而一个学由于一个班级往往有若干名学生,而一个学由于一个班级往往有若干名学生,而一个学生只能属于一个班级,因此班级与学生之间生只能属于一个班级,因此班级与学生之间生只能属于一个班级,因此班级与学生之间生只能属于一个班级,因此班级与学生之间也是也是也是也是1:n1:n的联系的联系的联系的联系。插鲁噬许励三姓崭雏矿芳敬差掷盂碾信孝耍瓤陵拒隅拂茵欠但午靖碉挛噪第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续

98、)图(续)由于班主任同时还要教课,因此班主任与学由于班主任同时还要教课,因此班主任与学由于班主任同时还要教课,因此班主任与学由于班主任同时还要教课,因此班主任与学生之间存在指导联系,一个班主任要教多名生之间存在指导联系,一个班主任要教多名生之间存在指导联系,一个班主任要教多名生之间存在指导联系,一个班主任要教多名学生,而一个学生只对应一个班主任,因此学生,而一个学生只对应一个班主任,因此学生,而一个学生只对应一个班主任,因此学生,而一个学生只对应一个班主任,因此班主任与学生之间也是班主任与学生之间也是班主任与学生之间也是班主任与学生之间也是1:n1:n的联系。的联系。的联系。的联系。而学生和他

99、自己的档案材料之间,班级与班而学生和他自己的档案材料之间,班级与班主任之间都是主任之间都是1:1的联系。的联系。另飞枉痞鲸僚斟季丧氓惫摄圈缮雨淫抑辅畦而河缨誓休疹啡膀伪锻嗅划吨第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续)图(续) 接下来需要进一步斟酌该接下来需要进一步斟酌该E-R图,做适当调整。图,做适当调整。(1) (1) 在一般情况下,性别通常作为学生实体在一般情况下,性别通常作为学生实体在一般情况下,性别通常作为学生实体在一般情况下,性别通常作为学生实体的属性,但在本局部应用中,由于宿舍分配的属性,但在本局部应用中,由于宿舍分配的属性,但在本局部应用中,

100、由于宿舍分配的属性,但在本局部应用中,由于宿舍分配与学生性别有关,根据准则,应该把性别与学生性别有关,根据准则,应该把性别与学生性别有关,根据准则,应该把性别与学生性别有关,根据准则,应该把性别作为实体对待。作为实体对待。作为实体对待。作为实体对待。(2) (2) 数据存储数据存储数据存储数据存储“ “学生登记表学生登记表学生登记表学生登记表” ”,由于是手工,由于是手工,由于是手工,由于是手工填写,供存档使用,其中有用的部分已转入填写,供存档使用,其中有用的部分已转入填写,供存档使用,其中有用的部分已转入填写,供存档使用,其中有用的部分已转入学生档案材料中,因此这里就不必作为实体学生档案材料

101、中,因此这里就不必作为实体学生档案材料中,因此这里就不必作为实体学生档案材料中,因此这里就不必作为实体了。了。了。了。最后得到学籍管理局部应用的分最后得到学籍管理局部应用的分最后得到学籍管理局部应用的分最后得到学籍管理局部应用的分E-RE-R图图图图感拿哦腕以衔咀狈哈莽巧政校元治尸烤询沂淬尘潘郴胸乐粱湿祖埔葡架掌第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续)图(续)该该E-R图中省略了各个实体的属性描述:图中省略了各个实体的属性描述:学生:学生:学号学号学号学号,姓名,出生日期,姓名,出生日期性别:性别:性别性别性别性别档案材料:档案材料:档案号档案号档案号档案

102、号, 班级:班级:班级号班级号班级号班级号,学生人数,学生人数班主任:班主任:职工号职工号职工号职工号,姓名,性别,姓名,性别, 是否为优秀班主任是否为优秀班主任 宿舍:宿舍:宿舍编号宿舍编号宿舍编号宿舍编号,地址,人数,地址,人数 其中有下划线的属性为实体的码。其中有下划线的属性为实体的码。愚触汪快与赘酉砸箍伺蹦禄溅抢盂克刊粕剁乙份狂村缨龋湖衷拘奉袜互怨第7章数据库设计与编程第7章数据库设计与编程逐一设计分逐一设计分E-R图(续)图(续)同样方法可以得到课程管理局部应用的分同样方法可以得到课程管理局部应用的分E-R图,图,各实体的属性分别为:各实体的属性分别为:学生:姓名,学生:姓名,学号学

103、号学号学号,性别,年龄,所在系,性别,年龄,所在系, 年级,平均成绩年级,平均成绩课程:课程:课程号课程号课程号课程号,课程名,学分,课程名,学分教师:教师:职工号职工号职工号职工号,姓名,性别,职称,姓名,性别,职称教科书:教科书:书号书号书号书号,书名,价钱,书名,价钱教室:教室:教室编号教室编号教室编号教室编号,地址,容量,地址,容量酪渝胀就卯钙鬃顿兑恬脚灭夕郝氨弓汰仑寻诞穗捻禁闹虱拈溅寓堡阵埂陆第7章数据库设计与编程第7章数据库设计与编程7.3 概念结构设计概念结构设计7.3.1 概念结构概念结构7.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤7.3.3 数据抽象与局部视图

104、设计数据抽象与局部视图设计7.3.4 视图的集成视图的集成鸳署蹲牺恐氛余娘裴缩侍线甘彭构脏降院秽括垦捐勇得奴皆颊墒骸摄冰苇第7章数据库设计与编程第7章数据库设计与编程7.3.4 视图的集成视图的集成v各个局部视图即分各个局部视图即分E-R图建立好后,还需图建立好后,还需要对它们进行合并,集成为一个整体的数要对它们进行合并,集成为一个整体的数据概念结构即总据概念结构即总E-R图。图。市高味篷黑漠长向急滑阅娟翘盎扁彩畏茨低蔷葡衡毕径硅狂兽富凳尘父兄第7章数据库设计与编程第7章数据库设计与编程视图的集成(续)视图的集成(续)v视图集成的两种方式视图集成的两种方式一次集成一次集成多个分一次集成一次集成

105、多个分E-R图图vv通常用于局部视图比较简单时通常用于局部视图比较简单时通常用于局部视图比较简单时通常用于局部视图比较简单时逐步累积式逐步累积式vv首先集成两个局部视图(通常是比较关键首先集成两个局部视图(通常是比较关键首先集成两个局部视图(通常是比较关键首先集成两个局部视图(通常是比较关键的两个局部视图)的两个局部视图)的两个局部视图)的两个局部视图)vv以后每次将一个新的局部视图集成进来以后每次将一个新的局部视图集成进来以后每次将一个新的局部视图集成进来以后每次将一个新的局部视图集成进来屁筐云宛躯湃尺桐撮布汲溪帮光考尘算蝶承硷闭衡措吠烃甘费郝患雪叮录第7章数据库设计与编程第7章数据库设计与

106、编程视图的集成(续)视图的集成(续)v集成局部集成局部E-R图的步骤图的步骤1. 合并合并2. 修改与重构修改与重构叶团砰字碌虹诈椎疏酌侈窗陵熟说漱除畜碴争百坐貉链毁疗报傅粗昼巢崭第7章数据库设计与编程第7章数据库设计与编程视图的集成(续)视图的集成(续)殴戍含厄啸课水憎教抹匣症腺挝巡杨隋窿蚁毡乐讫隋劈胜儡署潞架多踞避第7章数据库设计与编程第7章数据库设计与编程一、合并分一、合并分E-R图,生成初步图,生成初步E-R图图v各分图存在冲突各分图存在冲突各个局部应用所面向的问题不同各个局部应用所面向的问题不同各个局部应用所面向的问题不同各个局部应用所面向的问题不同由不同的设计人员进行设计由不同的设

107、计人员进行设计由不同的设计人员进行设计由不同的设计人员进行设计各个分各个分各个分各个分E-RE-R图之间必定会存在许多不一致的地图之间必定会存在许多不一致的地图之间必定会存在许多不一致的地图之间必定会存在许多不一致的地方方方方合并分合并分合并分合并分E-RE-R图的主要工作与关键所在:合理消图的主要工作与关键所在:合理消图的主要工作与关键所在:合理消图的主要工作与关键所在:合理消除各分除各分除各分除各分E-RE-R图的冲突图的冲突图的冲突图的冲突冈喧眺拆睦蚀厅讥彪央洗额函硕胶墟霹席再烘子蠢饭瓶极戎曳隐奎嗽诡母第7章数据库设计与编程第7章数据库设计与编程合并分合并分E-R图,生成初步图,生成初步

108、E-R图(续)图(续)v冲突的种类冲突的种类属性冲突属性冲突命名冲突命名冲突结构冲突结构冲突镊书钒邓农械愁绳敲缘筛咏酬晰糟陌瘪泻请诞装遍凛哉解竹越群泵巳辣彭第7章数据库设计与编程第7章数据库设计与编程 属性冲突属性冲突v两类属性冲突两类属性冲突属性域冲突属性域冲突属性域冲突属性域冲突:属性值的类型、取值范围或取值:属性值的类型、取值范围或取值:属性值的类型、取值范围或取值:属性值的类型、取值范围或取值集合不同。集合不同。集合不同。集合不同。例例例例1 1, 由于学号是数字,因此某些部门(即局部应由于学号是数字,因此某些部门(即局部应由于学号是数字,因此某些部门(即局部应由于学号是数字,因此某些

109、部门(即局部应用)将学号定义为整数形式,而由于学号不用参用)将学号定义为整数形式,而由于学号不用参用)将学号定义为整数形式,而由于学号不用参用)将学号定义为整数形式,而由于学号不用参与运算,因此另一些部门(即局部应用)将学号与运算,因此另一些部门(即局部应用)将学号与运算,因此另一些部门(即局部应用)将学号与运算,因此另一些部门(即局部应用)将学号定义为字符型形式。定义为字符型形式。定义为字符型形式。定义为字符型形式。例例例例2 2, 某些部门(即局部应用)以出生日期形式表某些部门(即局部应用)以出生日期形式表某些部门(即局部应用)以出生日期形式表某些部门(即局部应用)以出生日期形式表示学生的

110、年龄,而另一些部门(即局部应用)用示学生的年龄,而另一些部门(即局部应用)用示学生的年龄,而另一些部门(即局部应用)用示学生的年龄,而另一些部门(即局部应用)用整数形式表示学生的年龄。整数形式表示学生的年龄。整数形式表示学生的年龄。整数形式表示学生的年龄。禽斗懊快归雇斧沂页却无烘褂狗淬挽啥逢逻泣集森伯缠酶糯评谗可资蛋艘第7章数据库设计与编程第7章数据库设计与编程属性冲突(续)属性冲突(续)属性取值单位冲突属性取值单位冲突。例:学生的身高,有的以米为单位,有的以厘例:学生的身高,有的以米为单位,有的以厘例:学生的身高,有的以米为单位,有的以厘例:学生的身高,有的以米为单位,有的以厘米为单位,有的

111、以尺为单位。米为单位,有的以尺为单位。米为单位,有的以尺为单位。米为单位,有的以尺为单位。鄙腰冤执绍再杯诗录婉队辜逗坤栓旬陋齿缉扒豪气撂臃误纂里鞠酚休所胖第7章数据库设计与编程第7章数据库设计与编程属性冲突(续)属性冲突(续)v属性冲突的解决方法属性冲突的解决方法通常用讨论、协商等行政手段加以解决通常用讨论、协商等行政手段加以解决通常用讨论、协商等行政手段加以解决通常用讨论、协商等行政手段加以解决翔调堡心豪穷捉毅景混场疼唾妈荒汤旋颠键稿糙屁阂尿施貉叔秒币肥匹初第7章数据库设计与编程第7章数据库设计与编程 命名冲突命名冲突v两类命名冲突两类命名冲突同名异义同名异义同名异义同名异义:不同意义的对象

112、在不同的局部应用中具有:不同意义的对象在不同的局部应用中具有:不同意义的对象在不同的局部应用中具有:不同意义的对象在不同的局部应用中具有相同的名字相同的名字相同的名字相同的名字 例,局部应用例,局部应用例,局部应用例,局部应用A A中将教室称为房间中将教室称为房间中将教室称为房间中将教室称为房间 局部应用局部应用局部应用局部应用B B中将学生宿舍称为房间中将学生宿舍称为房间中将学生宿舍称为房间中将学生宿舍称为房间异名同义(一义多名)异名同义(一义多名)异名同义(一义多名)异名同义(一义多名):同一意义的对象在不同的局:同一意义的对象在不同的局:同一意义的对象在不同的局:同一意义的对象在不同的局

113、部应用中具有不同的名字部应用中具有不同的名字部应用中具有不同的名字部应用中具有不同的名字 例,有的部门把教科书称为课本例,有的部门把教科书称为课本例,有的部门把教科书称为课本例,有的部门把教科书称为课本 有的部门则把教科书称为教材有的部门则把教科书称为教材有的部门则把教科书称为教材有的部门则把教科书称为教材确剥烦科终屯凛镜迟吵创拴睦呻祥叮泥垄囊释蓑篇住酒尔军瞩锨气民瀑炔第7章数据库设计与编程第7章数据库设计与编程命名冲突(续)命名冲突(续)v命名冲突可能发生在属性级、实体级、联命名冲突可能发生在属性级、实体级、联系级上。其中属性的命名冲突更为常见。系级上。其中属性的命名冲突更为常见。v命名冲突

114、的解决方法命名冲突的解决方法通过讨论、协商等行政手段加以解决通过讨论、协商等行政手段加以解决通过讨论、协商等行政手段加以解决通过讨论、协商等行政手段加以解决棱骤读讨咱梅勺诚址娠辣弛缨仑表营好思操疙弘部勒锡瑶永骤隙攘营荧奴第7章数据库设计与编程第7章数据库设计与编程 结构冲突结构冲突v三类结构冲突三类结构冲突同一对象在不同应用中具有不同的抽象同一对象在不同应用中具有不同的抽象同一对象在不同应用中具有不同的抽象同一对象在不同应用中具有不同的抽象 例,例,例,例,“ “课程课程课程课程” ”在某一局部应用中被当作实体在某一局部应用中被当作实体在某一局部应用中被当作实体在某一局部应用中被当作实体 在另

115、一局部应用中则被当作属性在另一局部应用中则被当作属性在另一局部应用中则被当作属性在另一局部应用中则被当作属性vv解决方法:通常是把属性变换为实体或把解决方法:通常是把属性变换为实体或把解决方法:通常是把属性变换为实体或把解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的实体变换为属性,使同一对象具有相同的实体变换为属性,使同一对象具有相同的实体变换为属性,使同一对象具有相同的抽象。变换时要遵循两个准则。抽象。变换时要遵循两个准则。抽象。变换时要遵循两个准则。抽象。变换时要遵循两个准则。唐趾与撩邦擒电缚继庭哉敌峭输态援葫娶俏触埔籍樊丑嫡仙疚钒禾饲村婶第7章数据库设计与编程第

116、7章数据库设计与编程结构冲突(续)结构冲突(续)同一实体在不同局部视图中所包含的属性不同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同完全相同,或者属性的排列次序不完全相同。vv产生原因:不同的局部应用关心的是该实产生原因:不同的局部应用关心的是该实产生原因:不同的局部应用关心的是该实产生原因:不同的局部应用关心的是该实体的不同侧面。体的不同侧面。体的不同侧面。体的不同侧面。vv解决方法:使该实体的属性取各分解决方法:使该实体的属性取各分解决方法:使该实体的属性取各分解决方法:使该实体的属性取各分E-RE-R图图图图中属性的并集,再适当设计属性的次序中属性的并集,再

117、适当设计属性的次序中属性的并集,再适当设计属性的次序中属性的并集,再适当设计属性的次序。允静挡皖锯闷过际倦前轿伍问维锈诊由规削旺悬侧祖院捣笨滴迫寿棱邻班第7章数据库设计与编程第7章数据库设计与编程结构冲突(续)结构冲突(续)学生学生学号学号 姓名姓名性别性别平均成绩平均成绩(a)在局部应用在局部应用A中中无撵妥仕槽铰扩宵奈子寿似翼膊盲拇张岳韩耪谱阂荡自惺耳商氨赚狰奈症第7章数据库设计与编程第7章数据库设计与编程结构冲突(续)结构冲突(续)学生学生学号学号 姓名姓名出生日期出生日期年级年级(b)在局部应用在局部应用B中中所在系所在系 抄坤肥糖秩拽蒋哼形茎抑俏惧经顿报雀馈消颗丸按蛮秧一矗调兑坯释池

118、沽第7章数据库设计与编程第7章数据库设计与编程结构冲突(续)结构冲突(续)学生学生学号学号 姓名姓名 政治面貌政治面貌 (c)在局部应用在局部应用C中中决搂凸荫滁吉颇叭釉乎芒肘初麦击籍霓言瞄弛拦寨钎职愿怯剂衣骤纂淆撇第7章数据库设计与编程第7章数据库设计与编程结构冲突(续)结构冲突(续)学生学生 政治政治面貌面貌 学号学号出生出生日期日期年级年级(d)合并后合并后所在系所在系 平均平均成绩成绩姓名姓名性别性别时趋磐摘逻枚踌偿占芝介驯衔卿细猩嚏萌陇壬枷厕臆函束有靶阴厩掸业嫉第7章数据库设计与编程第7章数据库设计与编程结构冲突(续)结构冲突(续)实体之间的联系在不同局部视图中呈现不同实体之间的联系

119、在不同局部视图中呈现不同的类型的类型例例例例1 1, 实体实体实体实体E1E1与与与与E2E2在局部应用在局部应用在局部应用在局部应用A A中是多对多联中是多对多联中是多对多联中是多对多联系,而在局部应用系,而在局部应用系,而在局部应用系,而在局部应用B B中是一对多联系中是一对多联系中是一对多联系中是一对多联系例例例例2 2, 在局部应用在局部应用在局部应用在局部应用X X中中中中E1E1与与与与E2E2发生联系,而在发生联系,而在发生联系,而在发生联系,而在局部应用局部应用局部应用局部应用Y Y中中中中E1E1、E2E2、E3E3三者之间有联系。三者之间有联系。三者之间有联系。三者之间有联

120、系。vv解决方法:根据应用语义对实体联系的类解决方法:根据应用语义对实体联系的类解决方法:根据应用语义对实体联系的类解决方法:根据应用语义对实体联系的类型进行综合或调整。型进行综合或调整。型进行综合或调整。型进行综合或调整。谣帕洁泅擞惋贪集甘豺窘莱迂钵栽譬否许戴瑶君淹危凡滁疑渡以衫骆茄碍第7章数据库设计与编程第7章数据库设计与编程合并分合并分E-R图,生成初步图,生成初步E-R图实例图实例例:生成学校管理系统的初步例:生成学校管理系统的初步E-R图图以合并学籍管理局部视图以合并学籍管理局部视图, 课程管理局部视图为例课程管理局部视图为例这两个分这两个分E-R图存在着多方面的冲突:图存在着多方面

121、的冲突:综绅鞠步圈拿蛮硫眶著谁澡追烽漏匡走锚苛匈哉歇韵翅幼姐脓琉腕耀蓟延第7章数据库设计与编程第7章数据库设计与编程合并分合并分E-R图,生成初步图,生成初步E-R图实例图实例(1) 班主任实际上也属于教师,也就是说学籍管理班主任实际上也属于教师,也就是说学籍管理中的班主任实体与课程管理中的教师实体在一中的班主任实体与课程管理中的教师实体在一定程度上属于异名同义,可以应将学籍管理中定程度上属于异名同义,可以应将学籍管理中的班主任实体与课程管理中的教师实体统一称的班主任实体与课程管理中的教师实体统一称为教师,统一后教师实体的属性构成为:为教师,统一后教师实体的属性构成为:教师:教师:职工号职工号

122、职工号职工号,姓名,性别,职称,姓名,性别,职称, 是否为优秀班主任是否为优秀班主任梳块亮氓裁碍筋倚缎郁歪击恨拘娩架毯炼淳乖臣刹步啮傲侦砾淆刻碾坐坡第7章数据库设计与编程第7章数据库设计与编程合并分合并分E-R图,生成初步图,生成初步E-R图实例(续)图实例(续)(2) 将班主任改为教师后,教师与学生之间的联系将班主任改为教师后,教师与学生之间的联系在两个局部视图中呈现两种不同的类型,一种是在两个局部视图中呈现两种不同的类型,一种是学籍管理中教师与学生之间的指导联系,一种是学籍管理中教师与学生之间的指导联系,一种是课程管理中教师与学生之间的教学联系,由于指课程管理中教师与学生之间的教学联系,由

123、于指导联系实际上可以包含在教学联系之中,因此可导联系实际上可以包含在教学联系之中,因此可以将这两种联系综合为教学联系。以将这两种联系综合为教学联系。才昆扣狂豪纤鲍饮凳卯舷龟檬艳兴偏突催犹钠吱纽读栈窃视那钦盾迄襄表第7章数据库设计与编程第7章数据库设计与编程合并分合并分E-R图,生成初步图,生成初步E-R图实例(续)图实例(续)(3) 性别在两个局部应用中具有不同的抽象,它在性别在两个局部应用中具有不同的抽象,它在学籍管理中为实体,在课程管理中为属性,按照学籍管理中为实体,在课程管理中为属性,按照前面提到的两个原则,在合并后的前面提到的两个原则,在合并后的E-R图中性别图中性别只能作为实体,否则

124、它无法与宿舍实体发生联系。只能作为实体,否则它无法与宿舍实体发生联系。厢惕撞侧渊封职森恼补息瓤陶母幼确辨煌杀黄慢热贵叁吧练赎拌撑采祟瘟第7章数据库设计与编程第7章数据库设计与编程合并分合并分E-R图,生成初步图,生成初步E-R图实例(续)图实例(续)(4) 在两个局部在两个局部E-R图中,学生实体属性组图中,学生实体属性组成及次序都存在差异,应将所有属性综合,成及次序都存在差异,应将所有属性综合,并重新调整次序。假设调整结果为:并重新调整次序。假设调整结果为:学生:学生:学号学号,姓名,出生日期,年龄,姓名,出生日期,年龄,所在系,年级,平均成绩所在系,年级,平均成绩解决上述冲突后,学籍管理分

125、解决上述冲突后,学籍管理分E-R图与课图与课程管理分程管理分E-R图合并。图合并。馒实盈睦哼响啦筹招固得乒萄糠瘩溯负战概瘩斋帧壮爵级贸蔷藩厩拿魏盖第7章数据库设计与编程第7章数据库设计与编程二、修改与重构二、修改与重构v基本任务基本任务消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-RE-R图图图图合并合并初步初步E-R图图分分E-R图图可能存在冗余的数据可能存在冗余的数据和冗余的实体间联系和冗余的实体间联系基本基本E-R图图消除不必要的冗余消除不必要的冗余之乾龟戎磕扭空盒缎挣拘蝉仇枕隅尺又憋确视洒写席天叠腹浇碧斥迸鸯

126、溯第7章数据库设计与编程第7章数据库设计与编程修改与重构(续)修改与重构(续)1冗余冗余2消除冗余的方法消除冗余的方法惑殿纳喻雅凰恬戴淡属棚钾抛亡泛遂汞怎绑烩郴历白畏片广惦刺圃圾她椭第7章数据库设计与编程第7章数据库设计与编程1冗余冗余v冗余的数据是指可由基本数据导出的数据,冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余的联系是指可由其他联系导出的联系。 v冗余数据和冗余联系容易破坏数据库的完整性,冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难给数据库维护增加困难v并不是所有的冗余数据与冗余联系都必须加以消并不是所有的冗余数据与冗余联系都必须加

127、以消除,有时为了提高某些应用的效率,不得不以冗除,有时为了提高某些应用的效率,不得不以冗余信息作为代价。余信息作为代价。 宋冈盏庸腰细滥汽蜒溅褒适彼就锹矮起褂敬宦哈爷榜北挚幢舌其虚梦胰饰第7章数据库设计与编程第7章数据库设计与编程冗余(续)冗余(续)v设计数据库概念结构时,哪些冗余信息必须消除,设计数据库概念结构时,哪些冗余信息必须消除,哪些冗余信息允许存在,需要根据用户的整体需哪些冗余信息允许存在,需要根据用户的整体需求来确定。求来确定。v消除不必要的冗余后的初步消除不必要的冗余后的初步E-R图称为基本图称为基本E-R图。图。粥陶丹融庚眩囱敛辣暮猴麦挥特添渺脚房段兵涛洲岩羌骄翅云弓割贺饥郧第

128、7章数据库设计与编程第7章数据库设计与编程2消除冗余的方法消除冗余的方法v分析方法分析方法以数据字典和数据流图为依据,根据数据字以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除典中关于数据项之间逻辑关系的说明来消除冗余。冗余。 茫体浆摈抵砰翼遍杖浩挽峪鼎蠢杆茹窃俄序执话坡姨浩舷术蜗蒜甸坪扳肃第7章数据库设计与编程第7章数据库设计与编程消除冗余的方法消除冗余的方法(续续)例,教师工资单中包括该教师的基本工资、各种例,教师工资单中包括该教师的基本工资、各种补贴、应扣除的房租水电费以及实发工资。补贴、应扣除的房租水电费以及实发工资。由于实发工资可以由前面各项推算出来,因此

129、可由于实发工资可以由前面各项推算出来,因此可以去掉,在需要查询实发工资时根据基本工资、以去掉,在需要查询实发工资时根据基本工资、各种补贴、应扣除的房租水电费数据临时生成。各种补贴、应扣除的房租水电费数据临时生成。诛房傻枝楼抵挂斥香佩箱蜘姨圣尖缸麦愧基沃刨零精论蓑陆饵臃药敛砌午第7章数据库设计与编程第7章数据库设计与编程消除冗余的方法(续)消除冗余的方法(续)如果是为了提高效率,人为地保留了一些冗如果是为了提高效率,人为地保留了一些冗余数据,则应把数据字典中数据关联的说明余数据,则应把数据字典中数据关联的说明作为完整性约束条件。作为完整性约束条件。一种更好的方法是把冗余数据定义在视图中一种更好的

130、方法是把冗余数据定义在视图中言绰处礼贮凡汗惕驻臼辊料庄挡谜佰砚翌转能邻奖吴舟酷沸瓶霹篡菌远酒第7章数据库设计与编程第7章数据库设计与编程消除冗余的方法(续)消除冗余的方法(续)v规范化理论规范化理论函数依赖的概念提供了消除冗余联系的形式函数依赖的概念提供了消除冗余联系的形式函数依赖的概念提供了消除冗余联系的形式函数依赖的概念提供了消除冗余联系的形式化工具化工具化工具化工具种街吏熙配鬃聘探芬许拘惨饿棠驼痰郭赋狡赶约逐仅矿驭闻勒八念肯放饵第7章数据库设计与编程第7章数据库设计与编程消除冗余的方法(续)消除冗余的方法(续)方法方法1. 1. 确定分确定分确定分确定分E-RE-R图实体之间的数据依赖图

131、实体之间的数据依赖图实体之间的数据依赖图实体之间的数据依赖F FL L 。实体之。实体之。实体之。实体之间一对一、一对多、多对多的联系可以用实体间一对一、一对多、多对多的联系可以用实体间一对一、一对多、多对多的联系可以用实体间一对一、一对多、多对多的联系可以用实体码之间的函数依赖来表示。码之间的函数依赖来表示。码之间的函数依赖来表示。码之间的函数依赖来表示。例:例:例:例:班级和学生之间一对多的联系:班级和学生之间一对多的联系:班级和学生之间一对多的联系:班级和学生之间一对多的联系: 学号学号学号学号班级号班级号班级号班级号学生和课程之间多对多的联系:学生和课程之间多对多的联系:学生和课程之间

132、多对多的联系:学生和课程之间多对多的联系: (学号,课程号)(学号,课程号)(学号,课程号)(学号,课程号) 成绩成绩成绩成绩族聚毖蛛季莹诺饭娘锣欣镶蚤艘板家叠颜盆雅代唱竖曰僧至酝掇诌斯猩县第7章数据库设计与编程第7章数据库设计与编程消除冗余的方法(续)消除冗余的方法(续)2. 求求F FL L的最小覆盖的最小覆盖GGL L ,差集为,差集为 D D = F FL L-GGL L。 逐一考察逐一考察D D中的函数依赖,确定是否是冗余的中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。联系,若是,就把它去掉。琢沼拒惕专岂横秉亚玉吸冗巡求藏漆断醇芭浴链绢跃炕慑狼砒眩秃滩鳖伺第7章数据库设计与编

133、程第7章数据库设计与编程消除冗余的方法(续)消除冗余的方法(续)由于规范化理论受到泛关系假设的限制,应由于规范化理论受到泛关系假设的限制,应注意下面两个问题:注意下面两个问题:1.1.冗余的联系一定在冗余的联系一定在冗余的联系一定在冗余的联系一定在D D中,而中,而中,而中,而D D中的联系不一定中的联系不一定中的联系不一定中的联系不一定是冗余的;是冗余的;是冗余的;是冗余的;2.2.当实体之间存在多种联系时要将实体之间的联当实体之间存在多种联系时要将实体之间的联当实体之间存在多种联系时要将实体之间的联当实体之间存在多种联系时要将实体之间的联系在形式上加以区分。系在形式上加以区分。系在形式上加

134、以区分。系在形式上加以区分。例例例例P229P229图图图图7.307.30中中中中部门和职工之间两种联系表示为:部门和职工之间两种联系表示为:部门和职工之间两种联系表示为:部门和职工之间两种联系表示为:负责人负责人负责人负责人. .职工号职工号职工号职工号部门号部门号部门号部门号部门号部门号部门号部门号负责人负责人负责人负责人. .职工号职工号职工号职工号聂碎晴痔皿猎入窝辖估钒刀施喷隋众柠饥邵挑矽赃幕历牟挎锹噶退聪返翔第7章数据库设计与编程第7章数据库设计与编程泛关系假设泛关系假设v假设存在着一个单一的关系模式假设存在着一个单一的关系模式 “ “假假假假设设设设已已已已知知知知一一一一个个个

135、个模模模模式式式式SS,它它它它仅仅仅仅由由由由单单单单个个个个关关关关系系系系模模模模式式式式组组组组成成成成,问问问问题题题题是是是是要要要要设设设设计计计计一一一一个个个个模模模模式式式式SDSD,它它它它与与与与SS等等等等价价价价 ,但但但但在在在在某某某某些方面更好一些些方面更好一些些方面更好一些些方面更好一些” ”从从从从一一一一个个个个关关关关系系系系模模模模式式式式出出出出发发发发,而而而而不不不不是是是是从从从从一一一一组组组组关关关关系系系系模模模模式式式式出出出出发发发发实实实实行分解行分解行分解行分解“ “等等等等价价价价” ”的的的的定定定定义义义义也也也也是是是是

136、一一一一组组组组关关关关系系系系模模模模式式式式与与与与一一一一个个个个关关关关系系系系模模模模式式式式的的的的“ “等价等价等价等价” ”灶陛络影敲品雇湍素瓜蕉悲吸罕拇苏动吾硅描坏档宵春湾汹只类象有娩逝第7章数据库设计与编程第7章数据库设计与编程泛关系假设泛关系假设(续续)v泛关系假设是运用规范化理论时的障碍泛关系假设是运用规范化理论时的障碍承承认认了了泛泛关关系系假假设设,就就等等于于承承认认了了现现实实世世界界各实体间只能有一种联系各实体间只能有一种联系恕敞胎钓赐番稠倦隐陵卡求通用育回歧烹樱漆泅南辰屈莫晌候字来杰甸爆第7章数据库设计与编程第7章数据库设计与编程消除冗余,设计生成基本消除冗

137、余,设计生成基本E-R图实例图实例初步初步E-R图中存在着冗余数据和冗余联系:图中存在着冗余数据和冗余联系:(1) 学生实体中的年龄属性可以由出生日期推算学生实体中的年龄属性可以由出生日期推算出来,属于冗余数据,应该去掉。这样不仅可以出来,属于冗余数据,应该去掉。这样不仅可以节省存储空间,而且当某个学生的出生日期有误,节省存储空间,而且当某个学生的出生日期有误,进行修改后,无须相应修改年龄,减少了产生数进行修改后,无须相应修改年龄,减少了产生数据不一致的机会。据不一致的机会。学生:学生:学号学号学号学号,姓名,出生日期,所在系,姓名,出生日期,所在系, 年级,平均成绩年级,平均成绩汾爬恢语凌肺

138、譬仙螟殃届笺矽踞束蓬夷嘉胃塌胳毙市崩厉档崭吓火橇复缎第7章数据库设计与编程第7章数据库设计与编程消除冗余,设计生成基本消除冗余,设计生成基本E-R图实例(续)图实例(续)(2) 教室实体与班级实体的上课联系可以由教室与教室实体与班级实体的上课联系可以由教室与课程之间的开设联系、课程与学生之间的选修联课程之间的开设联系、课程与学生之间的选修联系、学生与班级之间的组成联系三者推导出来,系、学生与班级之间的组成联系三者推导出来,因此属于冗余联系,可以消去。因此属于冗余联系,可以消去。该瘸辖朔刽且雾备预鸿峡盂泅扶柿牺稍唤语努辊驻使晌锌涟涨条漫润撮启第7章数据库设计与编程第7章数据库设计与编程消除冗余,

139、设计生成基本消除冗余,设计生成基本E-R图实例(续)图实例(续)(3) 学生实体中的平均成绩可以从选修联系中的成学生实体中的平均成绩可以从选修联系中的成绩属性中推算出来绩属性中推算出来由于应用中需要经常查询某个学生的平均成由于应用中需要经常查询某个学生的平均成由于应用中需要经常查询某个学生的平均成由于应用中需要经常查询某个学生的平均成绩,每次都进行这种计算效率就会太低,因绩,每次都进行这种计算效率就会太低,因绩,每次都进行这种计算效率就会太低,因绩,每次都进行这种计算效率就会太低,因此为提高效率,保留该冗余数据此为提高效率,保留该冗余数据此为提高效率,保留该冗余数据此为提高效率,保留该冗余数据

140、但定义一个触发器来保证学生的平均成绩等但定义一个触发器来保证学生的平均成绩等但定义一个触发器来保证学生的平均成绩等但定义一个触发器来保证学生的平均成绩等于该学生各科成绩的平均值。于该学生各科成绩的平均值。于该学生各科成绩的平均值。于该学生各科成绩的平均值。任何一科成绩修改后,或该学生学了新的科任何一科成绩修改后,或该学生学了新的科任何一科成绩修改后,或该学生学了新的科任何一科成绩修改后,或该学生学了新的科目并有成绩后,就触发该触发器去修改该学目并有成绩后,就触发该触发器去修改该学目并有成绩后,就触发该触发器去修改该学目并有成绩后,就触发该触发器去修改该学生的平均成绩属性值。生的平均成绩属性值。

141、生的平均成绩属性值。生的平均成绩属性值。地哟佩鲸卯聂今绽恒蠢载狈心阳惯巴僵渊旧吱致孰语欺焙绕识衷呸慨油绎第7章数据库设计与编程第7章数据库设计与编程消除冗余,设计生成基本消除冗余,设计生成基本E-R图实例(续)图实例(续) 学生管理子系统的基本学生管理子系统的基本E-R图与教师管理图与教师管理子系统以及后勤管理子系统的基本子系统以及后勤管理子系统的基本E-R图图合并后,生成整个学校管理系统的基本合并后,生成整个学校管理系统的基本E-R图图单聘烛逐危菊愿烬械漾糙些绰配膘废娘署痪什肩奢仪然计结甚我固地挤喧第7章数据库设计与编程第7章数据库设计与编程三、验证整体概念结构三、验证整体概念结构v视图集成

142、后形成一个整体的数据库概念结构,对视图集成后形成一个整体的数据库概念结构,对该整体概念结构还必须进行进一步验证,确保它该整体概念结构还必须进行进一步验证,确保它能够满足下列条件能够满足下列条件:整体概念结构内部必须具有一致性,不存在整体概念结构内部必须具有一致性,不存在整体概念结构内部必须具有一致性,不存在整体概念结构内部必须具有一致性,不存在互相矛盾的表达。互相矛盾的表达。互相矛盾的表达。互相矛盾的表达。整体概念结构能准确地反映原来的每个视图整体概念结构能准确地反映原来的每个视图整体概念结构能准确地反映原来的每个视图整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系。结

143、构,包括属性、实体及实体间的联系。结构,包括属性、实体及实体间的联系。结构,包括属性、实体及实体间的联系。整体概念结构能满足需要分析阶段所确定的整体概念结构能满足需要分析阶段所确定的整体概念结构能满足需要分析阶段所确定的整体概念结构能满足需要分析阶段所确定的所有要求。所有要求。所有要求。所有要求。洋博切绦呸删职广凸垒孟屹箔软阀舀蔗旋居遂祟迭禾屁股姚邪铝疤巴吁纪第7章数据库设计与编程第7章数据库设计与编程验证整体概念结构(续)验证整体概念结构(续)v整体概念结构最终还应该提交给用户,征整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修求用户和有关人员的意见,进行评审、修改和

144、优化,然后把它确定下来,作为数据改和优化,然后把它确定下来,作为数据库的概念结构,作为进一步设计数据库的库的概念结构,作为进一步设计数据库的依据依据。险炯靖匠芹洲觉节埔氰疙宏杆尊牡噪霓枫澈听尺么疙转登用颊狐钾出核寺第7章数据库设计与编程第7章数据库设计与编程数据库设计数据库设计v数据库的设计过程数据库的设计过程需求分析需求分析需求分析需求分析概念结构设计概念结构设计概念结构设计概念结构设计逻辑结构设计逻辑结构设计逻辑结构设计逻辑结构设计物理数据库设计物理数据库设计物理数据库设计物理数据库设计数据库实施和运行维护数据库实施和运行维护数据库实施和运行维护数据库实施和运行维护设计过程中往往还会有许多

145、反复。设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。贪躲疼慕胸嗽渐婆买为加蛮看佬缝疼脂氓驶啃载棋愉晒搬燎素北舜夹浮础第7章数据库设计与编程第7章数据库设计与编程概念结构设计小结概念结构设计小结v什么是概念结构设计什么是概念结构设计现实世界现实世界机器世界机器世界信息世界信息世界需求分析需求分析概念结构设计概念结构设计应堑蒲滩鹿峰租侧飘眯揪漳尘咎瞩货略翌瞪诵指杖烤符递炸嫩芍闯蹈豆钢第7章数据库设计与编程第7章数据库设计与编程概念结构设计小结概念结构设计小结v概念结构设计的步骤概念结构设计的步骤抽象数据并设计局部视图抽象数据并设计局部视图抽象数据并设计局

146、部视图抽象数据并设计局部视图集成局部视图,得到全局概念结构集成局部视图,得到全局概念结构集成局部视图,得到全局概念结构集成局部视图,得到全局概念结构验证整体概念结构验证整体概念结构验证整体概念结构验证整体概念结构谆菏臃女咙努疽族雌祭执筐约贴凰姐泵联辩馋搓捎逞坟该佃阵乳郧咆呢隐第7章数据库设计与编程第7章数据库设计与编程概念结构设计小结概念结构设计小结v数据抽象数据抽象分类分类分类分类聚集聚集聚集聚集概括概括概括概括娠楚丑堂既副丘闻抄枉甲委芜奋肝恳哲愿脸睦设烈嗜乏莎门银衰缠谷拴娥第7章数据库设计与编程第7章数据库设计与编程概念结构设计小结概念结构设计小结v设计局部视图设计局部视图 选择局部应用选

147、择局部应用选择局部应用选择局部应用 逐一设计分逐一设计分逐一设计分逐一设计分E-RE-R图图图图vv标定局部应用中的实体、属性、码,实体标定局部应用中的实体、属性、码,实体标定局部应用中的实体、属性、码,实体标定局部应用中的实体、属性、码,实体间的联系间的联系间的联系间的联系vv用用用用E-RE-R图描述出来图描述出来图描述出来图描述出来扁国昭挣善徽捣寐庐爪座漱振费吱试荣铭斗喘纲翁尸灶馏钟穿窑备皑绞赵第7章数据库设计与编程第7章数据库设计与编程概念结构设计小结概念结构设计小结v集成局部视图集成局部视图1.1.合并分合并分合并分合并分E-RE-R图,生成初步图,生成初步图,生成初步图,生成初步E

148、-RE-R图图图图vv消除冲突消除冲突消除冲突消除冲突属性冲突属性冲突属性冲突属性冲突命名冲突命名冲突命名冲突命名冲突结构冲突结构冲突结构冲突结构冲突2. 2. 修改与重构修改与重构修改与重构修改与重构vv消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-RE-R图图图图分析方法分析方法分析方法分析方法规范化理论规范化理论规范化理论规范化理论湾沼卧范榜夷勾筋置畅传烈退憎工需蚀跳访掺隋母肝蓄圆蝶撅鳞蝗辖裙座第7章数据库设计与编程第7章数据库设计与编程7.4 逻辑结构设计逻辑结构设计v逻辑结构设计的任务逻辑结构设计的任务概念

149、结构是各种数据模型的共同基础概念结构是各种数据模型的共同基础概念结构是各种数据模型的共同基础概念结构是各种数据模型的共同基础为了能够用某一为了能够用某一为了能够用某一为了能够用某一DBMSDBMS实现用户需求,还必实现用户需求,还必实现用户需求,还必实现用户需求,还必须将概念结构进一步转化为相应的数据模型,须将概念结构进一步转化为相应的数据模型,须将概念结构进一步转化为相应的数据模型,须将概念结构进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要完成的任务。这正是数据库逻辑结构设计所要完成的任务。这正是数据库逻辑结构设计所要完成的任务。这正是数据库逻辑结构设计所要完成的任务。勃挞们韶汲榔

150、浅还瑟哎责里烯疏崎荷鸵番坞较庞石沥报从室郭炒梭蛊误坝第7章数据库设计与编程第7章数据库设计与编程7.4 逻辑结构设计逻辑结构设计v逻辑结构设计的步骤逻辑结构设计的步骤将将将将概概概概念念念念结结结结构构构构转转转转化化化化为为为为一一一一般般般般的的的的关关关关系系系系、网网网网状状状状、层层层层次次次次模型模型模型模型将将将将转转转转化化化化来来来来的的的的关关关关系系系系、网网网网状状状状、层层层层次次次次模模模模型型型型向向向向特特特特定定定定DBMSDBMS支持下的数据模型转换支持下的数据模型转换支持下的数据模型转换支持下的数据模型转换对数据模型进行优化对数据模型进行优化对数据模型进行

151、优化对数据模型进行优化拯失装灭窝拿饭跨沧桑存冯窿留迄袜默柑钧躇岔武龄吧梦奖过莱向伞唾豁第7章数据库设计与编程第7章数据库设计与编程逻辑结构设计逻辑结构设计 逻辑结构设计逻辑结构设计转化为转化为一般数一般数据模型据模型转化为特转化为特定定DBMS支持下的支持下的据模型据模型 优化模优化模型型概念结概念结构设计构设计数据库数据库物理设计物理设计基本基本E-R图图转换规转换规则则特定特定DBMS的的特点与限特点与限制制优化方优化方法如规法如规范化理范化理论论逻辑逻辑模型模型项学冰开免纸痔惧筑括戎烈耍诵涧柑您遮寅吭炊擞艾咕孽辨反傅烤劲后紊第7章数据库设计与编程第7章数据库设计与编程7.4 逻辑结构设计

152、逻辑结构设计7.4.1 E-R图向关系模型的转换图向关系模型的转换7.4.2 向特定向特定DBMS规定的模型进行转换规定的模型进行转换7.4.3 数据模型的优化数据模型的优化7.4.4 设计用户子模式设计用户子模式醚息逆遥闰帜吁淖厦浊彼壕湾冈悄欢赂毙酱详薄悼癸轿须铬涌郡固浑木碌第7章数据库设计与编程第7章数据库设计与编程7.4.1 E-R图向关系模型的转换图向关系模型的转换v转换内容转换内容v转换原则转换原则擎攒尧关瞥溃贱馋梨完杜疆隐后铡轰器托遭申栖解悦图棵筷凄膊胯向温收第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续)v转换内容转换内容E-RE

153、-R图由实体、实体的属性和实体之间的联系图由实体、实体的属性和实体之间的联系图由实体、实体的属性和实体之间的联系图由实体、实体的属性和实体之间的联系三个要素组成三个要素组成三个要素组成三个要素组成关系模型的逻辑结构是一组关系模式的集合关系模型的逻辑结构是一组关系模式的集合关系模型的逻辑结构是一组关系模式的集合关系模型的逻辑结构是一组关系模式的集合将将将将E-RE-R图转换为关系模型:将实体、实体的属图转换为关系模型:将实体、实体的属图转换为关系模型:将实体、实体的属图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。性和实体之间的联系转化为关系模式。性和实体之间的联系转化为关系

154、模式。性和实体之间的联系转化为关系模式。蔗屡钢奏贷赣草赶蝴谜任刁艺窗澡贝珠味永愁苦粟乱寸呕请要账咆能骂狭第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续)v转换原则转换原则 一个一个一个一个实体型实体型实体型实体型转换为转换为转换为转换为一个关系模式一个关系模式一个关系模式一个关系模式。关系的关系的关系的关系的属性属性属性属性:实体型的属性实体型的属性实体型的属性实体型的属性关系的关系的关系的关系的码码码码:实体型的码实体型的码实体型的码实体型的码例,学生实体可以转换为如下关系模式:例,学生实体可以转换为如下关系模式:例,学生实体可以转换为如下关

155、系模式:例,学生实体可以转换为如下关系模式:学生(学生(学生(学生(学号学号学号学号,姓名,出生日期,所在系,姓名,出生日期,所在系,姓名,出生日期,所在系,姓名,出生日期,所在系, 年级,平均成绩)年级,平均成绩)年级,平均成绩)年级,平均成绩) 性别、宿舍、班级、档案材料、教师、课程、教室、性别、宿舍、班级、档案材料、教师、课程、教室、性别、宿舍、班级、档案材料、教师、课程、教室、性别、宿舍、班级、档案材料、教师、课程、教室、教科书都分别转换为一个关系模式。教科书都分别转换为一个关系模式。教科书都分别转换为一个关系模式。教科书都分别转换为一个关系模式。铡萍育萨疫幅杏懒撩溶斗津呀思兴驹永怂诸

156、艺宿源浴伞恫珐腐夺梳伦痪慈第7章数据库设计与编程第7章数据库设计与编程 学生学生 学号学号出生出生日期日期年级年级所在系所在系 平均平均成绩成绩姓名姓名卉蓖尹扣摩盅江诸枢弟夯芥二虾竞好畔曰职冻兄钱份疽洼咱废盯痪捡藩憾第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续) 一个一个m:n联系联系转换为转换为一个关系模式一个关系模式。关系的关系的关系的关系的属性属性:与该联系:与该联系相连的各实体的码相连的各实体的码以以及及联系本身的属性联系本身的属性关系的关系的关系的关系的码码:各:各实体码的组合实体码的组合例,例,“选修选修”联系是一个联系是一个m:

157、n联系,可以将它转联系,可以将它转换为如下关系模式,其中学号与课程号为关系的换为如下关系模式,其中学号与课程号为关系的组合码:组合码:选修(选修(学号学号学号学号,课程号课程号课程号课程号,成绩),成绩)胸纂高蚁镍厌瞬叛晒配拒筏锦宗医扳剂劫室姬稳掣侍吉坞各圃影砾镁识傻第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续) 一个一个1:n联系联系可以转换为可以转换为一个独立的关系模式一个独立的关系模式,也可以与也可以与n端对应的关系模式合并端对应的关系模式合并。1) 1) 转换为一个独立的关系模式转换为一个独立的关系模式转换为一个独立的关系模式转换为一

158、个独立的关系模式vv关系的关系的关系的关系的属性属性属性属性:与该联系相连的各实体的码:与该联系相连的各实体的码:与该联系相连的各实体的码:与该联系相连的各实体的码以及联系本身的属性以及联系本身的属性以及联系本身的属性以及联系本身的属性vv关系的关系的关系的关系的码码码码:n n端实体的码端实体的码端实体的码端实体的码原苛样耀胀著砒掘酋咬唱佃卤蜂炳坑象接滁诡摘知蛆赏欺烷局错鬃亦萎锄第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续) 一个一个1:n联系可以转换为一个独立的关系模式,联系可以转换为一个独立的关系模式,也可以与也可以与n端对应的关系模式

159、合并。端对应的关系模式合并。2) 2) 与与与与n n端对应的关系模式合并端对应的关系模式合并端对应的关系模式合并端对应的关系模式合并vv合并后关系的属性合并后关系的属性合并后关系的属性合并后关系的属性:在:在:在:在n n端关系中加入端关系中加入端关系中加入端关系中加入1 1端端端端关系的码和联系本身的属性关系的码和联系本身的属性关系的码和联系本身的属性关系的码和联系本身的属性vv合并后关系的码合并后关系的码合并后关系的码合并后关系的码:不变:不变:不变:不变可以减少系统中的关系个数,一般情况下更可以减少系统中的关系个数,一般情况下更可以减少系统中的关系个数,一般情况下更可以减少系统中的关系

160、个数,一般情况下更倾向于采用这种方法倾向于采用这种方法倾向于采用这种方法倾向于采用这种方法睬缔秋馅丧叠丹队陪登痕范斡磐持搽埃氨宵渔熏稻镰他晾单班怂棍豫唤抹第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续)例,例,“组成组成”联系为联系为1:n联系。联系。将其转换为关系模式的两种方法:将其转换为关系模式的两种方法: 1)使其成为一个独立的关系模式:使其成为一个独立的关系模式:组成(组成(学号学号,班级号),班级号) 2)将其学生关系模式合并:将其学生关系模式合并:学生(学生(学号学号,姓名,出生日期,所在系,姓名,出生日期,所在系, 年级,年级,班

161、级号班级号,平均成绩),平均成绩)卓转剥椭星骗抿羡抑辫立侠街镇拆劣去建蹲炙钦关凑帜祷峰荤甥戚问彬狞第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续) 一个一个1:1联系可以转换为一个独立的关系模式,联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。也可以与任意一端对应的关系模式合并。1) 1) 转换为一个独立的关系模式转换为一个独立的关系模式转换为一个独立的关系模式转换为一个独立的关系模式vv关系的属性关系的属性关系的属性关系的属性:与该联系相连的各实体的:与该联系相连的各实体的:与该联系相连的各实体的:与该联系相连的各实体的

162、码以及联系本身的属性码以及联系本身的属性码以及联系本身的属性码以及联系本身的属性vv关系的候选码关系的候选码关系的候选码关系的候选码:每个实体的码均是该关:每个实体的码均是该关:每个实体的码均是该关:每个实体的码均是该关系的候选码系的候选码系的候选码系的候选码证氖配潞戎扼铣龟戎碗摄候烂判醒厘补权毖亚绪淬氰仿俐形翠脊限北符陋第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续) 一个一个1:1联系可以转换为一个独立的关系模式,联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。也可以与任意一端对应的关系模式合并。2) 2) 与某一端对

163、应的关系模式合并与某一端对应的关系模式合并与某一端对应的关系模式合并与某一端对应的关系模式合并vv合并后关系的属性合并后关系的属性合并后关系的属性合并后关系的属性:加入对应关系的码和:加入对应关系的码和:加入对应关系的码和:加入对应关系的码和联系本身的属性联系本身的属性联系本身的属性联系本身的属性vv合并后关系的码合并后关系的码合并后关系的码合并后关系的码:不变:不变:不变:不变渡幸钳酮屠揍窃晦钒稠索攘章慌眠癸垄虐辙瞎轰侮拓识灸注逸婪型堑衣颧第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续)例,例,“管理管理”联系为联系为1:1联系,可以有三种转

164、换方法:联系,可以有三种转换方法:(1)转换为一个独立的关系模式:)转换为一个独立的关系模式: 管理(管理(职工号职工号职工号职工号,班级号),班级号) 或或管理(职工号,管理(职工号,班级号班级号班级号班级号)(2)“管理管理”联系与班级关系模式合并,则只需在班联系与班级关系模式合并,则只需在班级关系中加入教师关系的码,即职工号:级关系中加入教师关系的码,即职工号: 班级:(班级:(班级号班级号班级号班级号,学生人数,学生人数,职工号职工号)(3)“管理管理”联系与教师关系模式合并,则只需在教联系与教师关系模式合并,则只需在教师关系中加入班级关系的码,即班级号:师关系中加入班级关系的码,即班

165、级号:教师:(教师:(职工号职工号职工号职工号,姓名,性别,职称,姓名,性别,职称,班级号班级号, 是否为优秀班主任)是否为优秀班主任)串鹤艾逃匡泣额攘甩蔼舜诸燃酵舱旷翅俗建父怂桑成猖曳澎揭旷肥咒系妙第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续)注意:注意:u从理论上讲,从理论上讲,1:1联系可以与任意一端对应的关系模联系可以与任意一端对应的关系模式合并。式合并。u但在一些情况下,与不同的关系模式合并效率会大但在一些情况下,与不同的关系模式合并效率会大不一样。因此究竟应该与哪端的关系模式合并需要不一样。因此究竟应该与哪端的关系模式合并需要依应

166、用的具体情况而定。依应用的具体情况而定。u由于连接操作是最费时的操作,所以一般应以尽量由于连接操作是最费时的操作,所以一般应以尽量减少连接操作为目标。减少连接操作为目标。 例如,如果经常要查询某个班级的班主任姓名,则例如,如果经常要查询某个班级的班主任姓名,则将管理联系与教师关系合并更好些。将管理联系与教师关系合并更好些。吝椅丹摆验蓝蛆捅孤阮辟浦缄栗葱绿朱乔谱杨棍种疮挤穗萌寝巷唇访色昧第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续) 三个或三个以上实体间的一个多元联系转换为三个或三个以上实体间的一个多元联系转换为一个关系模式。一个关系模式。关系

167、的属性关系的属性关系的属性关系的属性:与该多元联系相连的各实体的:与该多元联系相连的各实体的码以及联系本身的属性码以及联系本身的属性关系的码关系的码关系的码关系的码:各实体码的组合:各实体码的组合例,例,“讲授讲授”联系是一个三元联系,可以将它联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、职工号和转换为如下关系模式,其中课程号、职工号和书号为关系的组合码:书号为关系的组合码:讲授(讲授(课程号,职工号,书号课程号,职工号,书号课程号,职工号,书号课程号,职工号,书号)畸洪纠容撵乾绳庐掳妇哎揖扮脊客帆磊函诱用娥噪策藩绚蕴圆礁躇唾懊工第7章数据库设计与编程第7章数据库设计与编程E-R

168、图向关系模型的转换(续)图向关系模型的转换(续) 同一实体集的实体间的联系,即自联系,也可同一实体集的实体间的联系,即自联系,也可按上述按上述1:1、1:n和和m:n三种情况分别处理。三种情况分别处理。例,如果教师实体集内部存在领导与被领导的例,如果教师实体集内部存在领导与被领导的1:n自联系,我们可以将该联系与教师实体合并,自联系,我们可以将该联系与教师实体合并,这时主码职工号将多次出现,但作用不同,可用这时主码职工号将多次出现,但作用不同,可用不同的属性名加以区分:不同的属性名加以区分:教师:教师:职工号职工号职工号职工号,姓名,性别,职称,姓名,性别,职称,系主任系主任韧蹋叹辊伙弹掸郝拼

169、缆棋阜唬产谢巾润坟职恳息锭北矗伺表蒸皿和外杭楚第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续) 具有相同码的关系模式可合并。具有相同码的关系模式可合并。目的:减少系统中的关系个数。目的:减少系统中的关系个数。目的:减少系统中的关系个数。目的:减少系统中的关系个数。合并方法:将其中一个关系模式的全部属性合并方法:将其中一个关系模式的全部属性合并方法:将其中一个关系模式的全部属性合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的加入到另一个关系模式中,然后去掉其中的加入到另一个关系模式中,然后去掉其中的加入到另一个关系模式

170、中,然后去掉其中的同义属性(可能同名也可能不同名),并适同义属性(可能同名也可能不同名),并适同义属性(可能同名也可能不同名),并适同义属性(可能同名也可能不同名),并适当调整属性的次序。当调整属性的次序。当调整属性的次序。当调整属性的次序。美聘舆琅恤朴骗帆裕喝挂忆澜嘉玲合毡倾锐担总抓靳籍卉隙边嘻吗炎诀汁第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续)例,例,“拥有拥有”关系模式:关系模式:拥有(拥有(学号学号学号学号,性别),性别)与学生关系模式:与学生关系模式:与学生关系模式:与学生关系模式: 学生(学生(学生(学生(学号学号学号学号,姓名

171、,出生日期,所在系,年级,姓名,出生日期,所在系,年级,姓名,出生日期,所在系,年级,姓名,出生日期,所在系,年级, 班级号,平均成绩)班级号,平均成绩)班级号,平均成绩)班级号,平均成绩)都以学号为码,可以将它们合并为一个关系模式:都以学号为码,可以将它们合并为一个关系模式:都以学号为码,可以将它们合并为一个关系模式:都以学号为码,可以将它们合并为一个关系模式:学生(学生(学生(学生(学号学号学号学号,姓名,性别,出生日期,所在系,姓名,性别,出生日期,所在系,姓名,性别,出生日期,所在系,姓名,性别,出生日期,所在系, 年级,班级号,平均成绩)年级,班级号,平均成绩)年级,班级号,平均成绩

172、)年级,班级号,平均成绩)圈饶葡忙臃磷澎客庄鸽预潞磊归爸帅恬梁进顷靛倦共吝履遣贪关抢柱轰苯第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续)实例实例vv按照上述七条原则,学生管理子系统中的按照上述七条原则,学生管理子系统中的按照上述七条原则,学生管理子系统中的按照上述七条原则,学生管理子系统中的1818个实个实个实个实体和联系可以转换为下列关系模型:体和联系可以转换为下列关系模型:体和联系可以转换为下列关系模型:体和联系可以转换为下列关系模型: 学生(学生(学生(学生(学号学号学号学号,姓名,性别,出生日期,所在系,姓名,性别,出生日期,所在系,

173、姓名,性别,出生日期,所在系,姓名,性别,出生日期,所在系, 年级,班级号,平均成绩,档案号)年级,班级号,平均成绩,档案号)年级,班级号,平均成绩,档案号)年级,班级号,平均成绩,档案号)性别(性别(性别(性别(性别性别性别性别,宿舍楼),宿舍楼),宿舍楼),宿舍楼) 宿舍(宿舍(宿舍(宿舍(宿舍编号宿舍编号宿舍编号宿舍编号,地址,性别,人数),地址,性别,人数),地址,性别,人数),地址,性别,人数)班级(班级(班级(班级(班级号班级号班级号班级号,学生人数),学生人数),学生人数),学生人数) 教师(教师(教师(教师(职工号职工号职工号职工号,姓名,性别,职称,班级号,姓名,性别,职称,

174、班级号,姓名,性别,职称,班级号,姓名,性别,职称,班级号, 是否为优秀班主任)是否为优秀班主任)是否为优秀班主任)是否为优秀班主任)泼裔精郸迫时肃倍分架滋居绅漱洲湃衰跪兼涣褂然摩憎煎吴狼姬拙惨廉橱第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续) 教学(教学(职工号,学号职工号,学号职工号,学号职工号,学号)课程(课程(课程号课程号课程号课程号,课程名,学分,教室号),课程名,学分,教室号)选修(选修(学号,课程号学号,课程号学号,课程号学号,课程号,成绩),成绩)教科书(教科书(书号书号书号书号,书名,价钱),书名,价钱)教室(教室(教室编号

175、教室编号教室编号教室编号,地址,容量),地址,容量)讲授(讲授(课程号,教师号,书号课程号,教师号,书号课程号,教师号,书号课程号,教师号,书号)档案材料(档案材料(档案号,档案号,档案号,档案号,)臃密涟允狐克萤敝甄朔语盎桶引碎营菱亢坪铆芯郎膀扶晃氢吗哀复怨圾涡第7章数据库设计与编程第7章数据库设计与编程E-R图向关系模型的转换(续)图向关系模型的转换(续)v该关系模型由该关系模型由12个关系模式组成。个关系模式组成。其中:其中:其中:其中:学生关系模式包含了学生关系模式包含了学生关系模式包含了学生关系模式包含了“ “拥有拥有拥有拥有” ”联系、联系、联系、联系、“ “组成组成组成组成” ”

176、联系、联系、联系、联系、“ “归档归档归档归档” ”联系所对应的关系模式联系所对应的关系模式联系所对应的关系模式联系所对应的关系模式教师关系模式包含了教师关系模式包含了教师关系模式包含了教师关系模式包含了“ “管理管理管理管理” ”联系所对应的联系所对应的联系所对应的联系所对应的关系模式;关系模式;关系模式;关系模式;宿舍关系模式包含了宿舍关系模式包含了宿舍关系模式包含了宿舍关系模式包含了“ “住宿住宿住宿住宿” ”联系所对应的联系所对应的联系所对应的联系所对应的关系模式;关系模式;关系模式;关系模式;课程关系模式包含了课程关系模式包含了课程关系模式包含了课程关系模式包含了“ “开设开设开设开

177、设” ”联系所对应的联系所对应的联系所对应的联系所对应的关系模式关系模式关系模式关系模式。臣安涕斑赫雷镭厚做顺烦少示甭径阳器句隐芬闽留潦受榨焕怪俭善钠梯激第7章数据库设计与编程第7章数据库设计与编程7.4 逻辑结构设计逻辑结构设计7.4.1 E-R图向关系模型的转换图向关系模型的转换7.4.2 向特定向特定DBMS规定的模型进行转换规定的模型进行转换7.4.3 数据模型的优化数据模型的优化7.4.4 设计用户子模式设计用户子模式逃毕乖座伟毯舞斗是量招数峭蔡渺酗惹鄂腊颗不僻姚呆够途更车鹰予靡柠第7章数据库设计与编程第7章数据库设计与编程7.4.2 向特定向特定DBMS规定的模型进行规定的模型进行

178、转换转换v一般的数据模型还需要向特定一般的数据模型还需要向特定DBMS规定规定的模型进行转换。的模型进行转换。vv转换的主要依据是所选用的转换的主要依据是所选用的DBMS的功能的功能及限制。没有通用规则。及限制。没有通用规则。vv对于关系模型来说,这种转换通常都比较对于关系模型来说,这种转换通常都比较简单。简单。掘柿腔严挨哼兆从颈钩蚕溶贱奥很杂钨她篱贱赂槐倘航章澜豢芋耿避和鼓第7章数据库设计与编程第7章数据库设计与编程7.4 逻辑结构设计逻辑结构设计7.4.1 E-R图向关系模型的转换图向关系模型的转换7.4.2 向特定向特定DBMS规定的模型进行转换规定的模型进行转换7.4.3 数据模型的优

179、化数据模型的优化7.4.4 设计用户子模式设计用户子模式靛恿迎地壹晚肥挣算丽官菏填团瓦它镑饼砒离疙窿迁遂抄终部队锰搔跨掖第7章数据库设计与编程第7章数据库设计与编程7.4.3 数据模型的优化数据模型的优化v数据库逻辑设计的结果不是唯一的。数据库逻辑设计的结果不是唯一的。v得到初步数据模型后,还应该适当地修改、得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是数据模型的优库应用系统的性能,这就是数据模型的优化。化。v关系数据模型的优化通常以规范化理论为关系数据模型的优化通常以规范化理论为指导。指导。乳匣历剧卉饲陡

180、役爹悔态遭蜗莽宦劳侄宽磺慨未喝社径娶账路梦药啮两蛮第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)v优化数据模型的方法优化数据模型的方法 确定数据依赖确定数据依赖确定数据依赖确定数据依赖按需求分析阶段所得到的语义,分别写出每按需求分析阶段所得到的语义,分别写出每按需求分析阶段所得到的语义,分别写出每按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及个关系模式内部各属性之间的数据依赖以及个关系模式内部各属性之间的数据依赖以及个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖不同关系模式属性之间数据依赖不同关系模式属性之

181、间数据依赖不同关系模式属性之间数据依赖。 沟六窑藉暖倚蚁病岛潞龙板王殖游怂涂飞既菊顺越魁陕毙媳巡幕镐耕抄学第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)例,课程关系模式内部存在下列数据依赖:例,课程关系模式内部存在下列数据依赖: 课程号课程号课程名课程名 课程号课程号学分学分 课程号课程号教室号教室号 选修关系模式中存在下列数据依赖:选修关系模式中存在下列数据依赖: (学号,课程号)(学号,课程号)成绩成绩缕斡卉蹄增嵌便借嘿赌搜戎绪关概迷攫瑶釜睬楔壶然瓜克送咨均铣棠阔靡第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)学生

182、关系模式中存在下列数据依赖:学生关系模式中存在下列数据依赖: 学号学号姓名姓名 学号学号性别性别 学号学号出生日期出生日期 学号学号所在系所在系 学号学号年级年级 学号学号班级号班级号 学号学号平均成绩平均成绩 学号学号档案号档案号粒页依疟喷芹横忠隋搁恕契迈福酷扳擎闹昆丧砸斩隅拴钩肃凿讶曼厅聪像第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)学生关系模式的学号与选修关系模式的学号之间学生关系模式的学号与选修关系模式的学号之间存在数据依赖:存在数据依赖: 学生学生.学号学号选修选修.学号学号误把放窜疮寻擦颁腑胁拙象冤瓷睫杖通隆筒燥肠歧疫将筑锡粟胰朝泉会妓第7章

183、数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续) 对于各个关系模式之间的数据依赖进行极小化对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。处理,消除冗余的联系。干笼尧注耕带韦案汀驴御态弗宰庆婆潍攀孤郭扮捂镊师盗竞庚苹叹晤慈寥第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续) 按照数据依赖的理论对关系模式逐一进行分析,按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范多值依赖等,确定各关系模式分别属于第几范式

184、。式。 例如经过分析可知,课程关系模式属于例如经过分析可知,课程关系模式属于BC范范式。式。冷忿恼澳我江俘冉筐炼粱堕鸥亡乔炎剂疥汀谱烬尼噬翠颂梁壮撰徘锤蝎下第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续) 按照需求分析阶段得到的各种应用对数据处理按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。否合适,确定是否要对它们进行合并或分解。绥酗曙婆火蕴舷船叮腑子谦镜估跃蔚腐遵群豺豫篆谎溅积踌愚经躲率堑名第7章数据库设计与编程第7章数据库设计与编程数据模型的

185、优化(续)数据模型的优化(续)并不是规范化程度越高的关系就越优。并不是规范化程度越高的关系就越优。vv当一个应用的查询中经常涉及到两个或当一个应用的查询中经常涉及到两个或当一个应用的查询中经常涉及到两个或当一个应用的查询中经常涉及到两个或多个关系模式的属性时,系统必须经常多个关系模式的属性时,系统必须经常多个关系模式的属性时,系统必须经常多个关系模式的属性时,系统必须经常地进行联接运算,而联系运算的代价是地进行联接运算,而联系运算的代价是地进行联接运算,而联系运算的代价是地进行联接运算,而联系运算的代价是相当高的,可以说关系模型低效的主要相当高的,可以说关系模型低效的主要相当高的,可以说关系模

186、型低效的主要相当高的,可以说关系模型低效的主要原因就是做联接运算引起的,因此在这原因就是做联接运算引起的,因此在这原因就是做联接运算引起的,因此在这原因就是做联接运算引起的,因此在这种情况下,第二范式甚至第一范式也许种情况下,第二范式甚至第一范式也许种情况下,第二范式甚至第一范式也许种情况下,第二范式甚至第一范式也许是最好的。是最好的。是最好的。是最好的。翅痕牡捏至锅撬旭硬谗耕荚像熙雄会脾壁轰僻玫颜朗柒于魄吨苇俱艳纶忱第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)vv非非非非BCNFBCNF的关系模式虽然从理论上分析会的关系模式虽然从理论上分析会的关系模式

187、虽然从理论上分析会的关系模式虽然从理论上分析会存在不同程度的更新异常,但如果在实际存在不同程度的更新异常,但如果在实际存在不同程度的更新异常,但如果在实际存在不同程度的更新异常,但如果在实际应用中对此关系模式只是查询,并不执行应用中对此关系模式只是查询,并不执行应用中对此关系模式只是查询,并不执行应用中对此关系模式只是查询,并不执行更新操作,则就不会产生实际影响。更新操作,则就不会产生实际影响。更新操作,则就不会产生实际影响。更新操作,则就不会产生实际影响。vv对于一个具体应用来说,到底规范化进行对于一个具体应用来说,到底规范化进行对于一个具体应用来说,到底规范化进行对于一个具体应用来说,到底

188、规范化进行到什么程度,需要权衡响应时间和潜在问到什么程度,需要权衡响应时间和潜在问到什么程度,需要权衡响应时间和潜在问到什么程度,需要权衡响应时间和潜在问题两者的利弊才能决定。一般说来,第三题两者的利弊才能决定。一般说来,第三题两者的利弊才能决定。一般说来,第三题两者的利弊才能决定。一般说来,第三范式就足够了。范式就足够了。范式就足够了。范式就足够了。苍菊莱钳升窿磋盗沪俺搀宁瑚乖吁闰敌皿猖烩扒尾电摆窍厩囚徊泵幌芝哄第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)例:在关系模式例:在关系模式 学生成绩单学生成绩单(学号学号,英语英语,数学数学,语文语文,平均成

189、绩平均成绩) 中存在下列函数依赖:中存在下列函数依赖: 学号学号英语英语 学号学号数学数学 学号学号语文语文 学号学号平均成绩平均成绩 (英语英语, 数学数学, 语文语文)平均成绩平均成绩恐亿焊航尉忿纯已攒制懦汗妇雁天忘丹姓悠娇弗苫誊充拈强搀凡毁窥乐屈第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续) 显然有:显然有: 学号学号(英语英语,数学数学,语文语文)因此该关系模式中存在传递函数信赖,是因此该关系模式中存在传递函数信赖,是2NF关系。关系。 虽然平均成绩可以由其他属性推算出来,但虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩

190、,如果应用中需要经常查询学生的平均成绩,为提高效率,我们仍然可保留该冗余数据,为提高效率,我们仍然可保留该冗余数据,对关系模式不再做进一步分解。对关系模式不再做进一步分解。谴魔慕刃惠缎掐咆宫给钙雍役杭捌赞逻诵储烦订鄙提冉搽突具伪挤铬笨敏第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续) 按照需求分析阶段得到的各种应用对数据处理按照需求分析阶段得到的各种应用对数据处理的要求,对关系模式进行必要的分解或合并,的要求,对关系模式进行必要的分解或合并,以提高数据操作的效率和存储空间的利用率以提高数据操作的效率和存储空间的利用率常用分解方法常用分解方法常用分解方法常用分

191、解方法vv水平分解水平分解水平分解水平分解vv垂直分解垂直分解垂直分解垂直分解脱蝉互麓铡犀咎瓢做沟受魂匝敷屑额前滩慑啊佳玖榆酗衰鸳澈釜腹祖奄儡第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)水平分解水平分解vv什么是水平分解什么是水平分解什么是水平分解什么是水平分解把把把把( (基基基基本本本本) )关关关关系系系系的的的的元元元元组组组组分分分分为为为为若若若若干干干干子子子子集集集集合合合合,定定定定义义义义每每每每个个个个子子子子集集集集合合合合为为为为一一一一个个个个子子子子关关关关系系系系,以以以以提提提提高高高高系统的效率。系统的效率。系统的效率

192、。系统的效率。寅懦文藕侄辕葫院嗣哥卡屠遮置投朵翠螟窜步能瘩睛泻句澄哭归赋汞腊佩第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)v水平分解的适用范围水平分解的适用范围1. 1. 满足满足满足满足“80/20“80/20原则原则原则原则” ”的应用的应用的应用的应用vv80/2080/20原则:一个大关系中,经常被使原则:一个大关系中,经常被使原则:一个大关系中,经常被使原则:一个大关系中,经常被使用的数据只是关系的一部分,约用的数据只是关系的一部分,约用的数据只是关系的一部分,约用的数据只是关系的一部分,约20%20%vv把把把把经经经经常常常常使使使使用用用

193、用的的的的数数数数据据据据分分分分解解解解出出出出来来来来,形形形形成成成成一一一一个子关系,可以减少查询的数据量。个子关系,可以减少查询的数据量。个子关系,可以减少查询的数据量。个子关系,可以减少查询的数据量。 脖痹咙鼎货圭煮煮镶阿掂剿缅迢亏恿磁喜昂衅疲废牢辛姑句缎瞧奄蹭焊嗣第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)v水平分解的适用范围水平分解的适用范围2. 2. 并发事务经常存取不相交的数据并发事务经常存取不相交的数据并发事务经常存取不相交的数据并发事务经常存取不相交的数据vv如如如如果果果果关关关关系系系系R R上上上上具具具具有有有有n n个个

194、个个事事事事务务务务,而而而而且且且且多多多多数数数数事事事事务务务务存存存存取取取取的的的的数数数数据据据据不不不不相相相相交交交交,则则则则R R可可可可分分分分解解解解为为为为少少少少于于于于或或或或等等等等于于于于n n个个个个子子子子关关关关系系系系,使使使使每每每每个个个个事事事事务务务务存存存存取取取取的的的的数数数数据据据据对对对对应应应应一一一一个个个个关关关关系。系。系。系。磅勺酬倚亿芦蔑炳月刷票焚吓饺釜到筋醚讯核鸟颜蔽寓屁婿七酗胎镶了奸第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)水平分解水平分解vv什么是水平分解什么是水平分解什么是

195、水平分解什么是水平分解把把把把( (基基基基本本本本) )关关关关系系系系的的的的元元元元组组组组分分分分为为为为若若若若干干干干子子子子集集集集合合合合,定定定定义义义义每每每每个个个个子子子子集集集集合合合合为为为为一一一一个个个个子子子子关关关关系系系系,以以以以提提提提高系统的效率。高系统的效率。高系统的效率。高系统的效率。vv水平分解的适用范围水平分解的适用范围水平分解的适用范围水平分解的适用范围满足满足满足满足“80/20“80/20原则原则原则原则” ”的应用的应用的应用的应用并发事务经常存取不相交的数据并发事务经常存取不相交的数据并发事务经常存取不相交的数据并发事务经常存取不相

196、交的数据茂无狙碘撤尼桔凭驴椰坏歪拜徐琳哎僻掺坦圣斋锌冬末梦宫遣潞括射塘河第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)v满足满足“80/20原则原则”的应用的应用80/2080/20原则:一个大关系中,经常被原则:一个大关系中,经常被原则:一个大关系中,经常被原则:一个大关系中,经常被使用的数据只是关系的一部分,约使用的数据只是关系的一部分,约使用的数据只是关系的一部分,约使用的数据只是关系的一部分,约20%20%把把把把经经经经常常常常使使使使用用用用的的的的数数数数据据据据分分分分解解解解出出出出来来来来,形形形形成成成成一一一一个子关系,可以减少查询

197、的数据量。个子关系,可以减少查询的数据量。个子关系,可以减少查询的数据量。个子关系,可以减少查询的数据量。 vv并发事务经常存取不相交的数据并发事务经常存取不相交的数据并发事务经常存取不相交的数据并发事务经常存取不相交的数据如如如如果果果果关关关关系系系系R R上上上上具具具具有有有有n n个个个个事事事事务务务务,而而而而且且且且多多多多数数数数事事事事务务务务存存存存取取取取的的的的数数数数据据据据不不不不相相相相交交交交,则则则则R R可可可可分分分分解解解解为为为为少少少少于于于于或或或或等等等等于于于于n n个个个个子子子子关关关关系系系系,使使使使每每每每个个个个事事事事务务务务存

198、存存存取的数据对应一个关系。取的数据对应一个关系。取的数据对应一个关系。取的数据对应一个关系。固倒妻谴薯凡咳鹏点贱紧聊褥密声截一翅追棚英码缀隐歧恰苯噶拌淑氟清第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)垂直分解垂直分解vv什么是垂直分解什么是垂直分解什么是垂直分解什么是垂直分解把把把把关关关关系系系系模模模模式式式式R R的的的的属属属属性性性性分分分分解解解解为为为为若若若若干干干干子子子子集集集集合,形成若干子关系模式。合,形成若干子关系模式。合,形成若干子关系模式。合,形成若干子关系模式。vv垂直分解的原则垂直分解的原则垂直分解的原则垂直分解的原则

199、经经经经常常常常在在在在一一一一起起起起使使使使用用用用的的的的属属属属性性性性从从从从R R中中中中分分分分解解解解出出出出来形成一个子关系模式。来形成一个子关系模式。来形成一个子关系模式。来形成一个子关系模式。觅浆金泽锻簿赁靠瘴丑究旁茬识请束铃寂甄抒唁炎刽月坷锈毅景搽弊多荒第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)v垂直分解的优点垂直分解的优点可以提高某些事务的效率可以提高某些事务的效率vv垂直分解的缺点垂直分解的缺点垂直分解的缺点垂直分解的缺点可可可可能能能能使使使使另另另另一一一一些些些些事事事事务务务务不不不不得得得得不不不不执执执执行行行行

200、连连连连接接接接操操操操作作作作,从而降低了效率。从而降低了效率。从而降低了效率。从而降低了效率。协鱼浸勘忻陛名急揖压做蹭井集泰虐撂惟安澳周有隋拴买恬癣狂嘲敬说洛第7章数据库设计与编程第7章数据库设计与编程数据模型的优化(续)数据模型的优化(续)v垂直分解的适用范围垂直分解的适用范围取取决决于于分分解解后后R R上上的的所所有有事事务务的的总总效效率率是否得到了提高。是否得到了提高。vv进行垂直分解的方法进行垂直分解的方法进行垂直分解的方法进行垂直分解的方法简单情况:直观分解简单情况:直观分解简单情况:直观分解简单情况:直观分解复杂情况:用第五章中的模式分解算法复杂情况:用第五章中的模式分解算

201、法复杂情况:用第五章中的模式分解算法复杂情况:用第五章中的模式分解算法垂垂垂垂直直直直分分分分解解解解必必必必须须须须不不不不损损损损失失失失关关关关系系系系模模模模式式式式的的的的语语语语义义义义( (保保保保持无损连接性和保持函数依赖持无损连接性和保持函数依赖持无损连接性和保持函数依赖持无损连接性和保持函数依赖) )。羊福付哆继剂痴臂露孙距饺馋帮鸯替懂薯呸痈帅泼胎我垫退泡警抨旨咐严第7章数据库设计与编程第7章数据库设计与编程7.4 逻辑结构设计逻辑结构设计7.4.1 E-R图向关系模型的转换图向关系模型的转换7.4.2 向特定向特定DBMS规定的模型进行转换规定的模型进行转换7.4.3 数

202、据模型的优化数据模型的优化7.4.4 设计用户子模式设计用户子模式沃幅拥稠绞到贷挞迪酞哺芬涎荤素甭恭犬绎甚慎椽摩闭躇朵慑姥具赌樟寸第7章数据库设计与编程第7章数据库设计与编程7.4.4 设计用户子模式设计用户子模式v定义数据库模式主要是从系统的时间效率、空间定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。效率、易维护等角度出发。v定义用户外模式时应该更注重考虑用户的习惯与定义用户外模式时应该更注重考虑用户的习惯与方便。包括三个方面:方便。包括三个方面: 狸播菊到异炉氮颁洛疏量脱嫂洗斯纸忻虽褒费像翼汉抗缮猿事绩痹篮嚣少第7章数据库设计与编程第7章数据库设计与编程设计用户子模式(

203、续)设计用户子模式(续)(1) 使用更符合用户习惯的别名使用更符合用户习惯的别名合并各分合并各分合并各分合并各分E-RE-R图曾做了消除命名冲突的工作,图曾做了消除命名冲突的工作,图曾做了消除命名冲突的工作,图曾做了消除命名冲突的工作,以使数据库系统中同一关系和属性具有唯一以使数据库系统中同一关系和属性具有唯一以使数据库系统中同一关系和属性具有唯一以使数据库系统中同一关系和属性具有唯一的名字。这在设计数据库整体结构时是非常的名字。这在设计数据库整体结构时是非常的名字。这在设计数据库整体结构时是非常的名字。这在设计数据库整体结构时是非常必要的。必要的。必要的。必要的。但对于某些局部应用,由于改用

204、了不符合用但对于某些局部应用,由于改用了不符合用但对于某些局部应用,由于改用了不符合用但对于某些局部应用,由于改用了不符合用户习惯的属性名,可能会使他们感到不方便,户习惯的属性名,可能会使他们感到不方便,户习惯的属性名,可能会使他们感到不方便,户习惯的属性名,可能会使他们感到不方便,询介澜涛暖肿脉鼓萄品鹃伤糙仕趋婉腹撰在依倘恃垮拳激乒九恭捧屉晒在第7章数据库设计与编程第7章数据库设计与编程设计用户子模式(续)设计用户子模式(续)(1) 使用更符合用户习惯的别名使用更符合用户习惯的别名(续续)因此在设计用户的子模式时可以重新定义某因此在设计用户的子模式时可以重新定义某因此在设计用户的子模式时可以

205、重新定义某因此在设计用户的子模式时可以重新定义某些属性名,使其与用户习惯一致。些属性名,使其与用户习惯一致。些属性名,使其与用户习惯一致。些属性名,使其与用户习惯一致。当然,为了应用的规范化,我们也不应该一当然,为了应用的规范化,我们也不应该一当然,为了应用的规范化,我们也不应该一当然,为了应用的规范化,我们也不应该一味地迁就用户。味地迁就用户。味地迁就用户。味地迁就用户。例:负责学籍管理的用户习惯于称教师模式的例:负责学籍管理的用户习惯于称教师模式的例:负责学籍管理的用户习惯于称教师模式的例:负责学籍管理的用户习惯于称教师模式的职工号为教师编号。因此可以定义视图,在职工号为教师编号。因此可以

206、定义视图,在职工号为教师编号。因此可以定义视图,在职工号为教师编号。因此可以定义视图,在视图中职工号重定义为教师编号视图中职工号重定义为教师编号视图中职工号重定义为教师编号视图中职工号重定义为教师编号廓境窄芦识镍传部仔队就蔑镑牵缨趟摩臣咳赴撬拳揖智雅歇疵郭纫发湃肛第7章数据库设计与编程第7章数据库设计与编程设计用户子模式(续)设计用户子模式(续) (2) 针对不同级别的用户定义不同的外模式,以针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。满足系统对安全性的要求。脓昆扮照烬主伊帚职沸嘿疆挟笋共劝耿褥遇咯练维揽彻仆材广谨袒跪博籍第7章数据库设计与编程第7章数据库设计与编程设计用户子

207、模式(续)设计用户子模式(续)例:例:教师关系模式中包括职工号、姓名、性别、出生日教师关系模式中包括职工号、姓名、性别、出生日教师关系模式中包括职工号、姓名、性别、出生日教师关系模式中包括职工号、姓名、性别、出生日期、婚姻状况、学历、学位、政治面貌、职称、职期、婚姻状况、学历、学位、政治面貌、职称、职期、婚姻状况、学历、学位、政治面貌、职称、职期、婚姻状况、学历、学位、政治面貌、职称、职务、工资、工龄、教学效果等属性。务、工资、工龄、教学效果等属性。务、工资、工龄、教学效果等属性。务、工资、工龄、教学效果等属性。 学籍管理应用学籍管理应用学籍管理应用学籍管理应用只能查询教师的职工号、姓名、只能

208、查询教师的职工号、姓名、只能查询教师的职工号、姓名、只能查询教师的职工号、姓名、性别、职称数据;性别、职称数据;性别、职称数据;性别、职称数据; 课程管理应用课程管理应用课程管理应用课程管理应用只能查询教师的职工号、姓名、只能查询教师的职工号、姓名、只能查询教师的职工号、姓名、只能查询教师的职工号、姓名、性别、学历、学位、职称、教学效果数据;性别、学历、学位、职称、教学效果数据;性别、学历、学位、职称、教学效果数据;性别、学历、学位、职称、教学效果数据; 教师管理应用教师管理应用教师管理应用教师管理应用则可以查询教师的全部数据。则可以查询教师的全部数据。则可以查询教师的全部数据。则可以查询教师

209、的全部数据。倦笋童肖烯并讯臀踩昏捣砸酸弛室奥攒乌啥那剩券山澄盆修姓艾盈鼎泊靖第7章数据库设计与编程第7章数据库设计与编程设计用户子模式(续)设计用户子模式(续)定义两个外模式:定义两个外模式:教师教师教师教师_ _学籍管理学籍管理学籍管理学籍管理( (职工号,姓名,性别,职称职工号,姓名,性别,职称职工号,姓名,性别,职称职工号,姓名,性别,职称) )教师教师教师教师_ _课程管理课程管理课程管理课程管理( (工号,姓名,性别,学历,工号,姓名,性别,学历,工号,姓名,性别,学历,工号,姓名,性别,学历, 学位,职称,教学效果学位,职称,教学效果学位,职称,教学效果学位,职称,教学效果) )授

210、权学籍管理应用只能访问教师授权学籍管理应用只能访问教师授权学籍管理应用只能访问教师授权学籍管理应用只能访问教师_ _学籍管理视图学籍管理视图学籍管理视图学籍管理视图授权课程管理应用只能访问教师授权课程管理应用只能访问教师授权课程管理应用只能访问教师授权课程管理应用只能访问教师_ _课程管理视图课程管理视图课程管理视图课程管理视图授权教师管理应用能访问教师表授权教师管理应用能访问教师表授权教师管理应用能访问教师表授权教师管理应用能访问教师表这样就可以防止用户非法访问本来不允许他们查询这样就可以防止用户非法访问本来不允许他们查询这样就可以防止用户非法访问本来不允许他们查询这样就可以防止用户非法访问

211、本来不允许他们查询的数据,保证了系统的安全性。的数据,保证了系统的安全性。的数据,保证了系统的安全性。的数据,保证了系统的安全性。层吵卢佯芋椽砷幽琴馋堂琶容臀餐教事躇铬叭扎西脉毛魂绿堤赔舵穷柯仙第7章数据库设计与编程第7章数据库设计与编程设计用户子模式(续)设计用户子模式(续)(3) 简化用户对系统的使用简化用户对系统的使用如果某些局部应用中经常要使用某些很复杂如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,可以将这些复杂查的查询,为了方便用户,可以将这些复杂查询定义为视图。询定义为视图。泡录锁垛寝族溶凿盾富绑讲信贤汲敝犊宽鲁亮辱油妈骋疡疏缎擂脊录垛磕第7章数据库设计与编程第7章数

212、据库设计与编程逻辑结构设计小结逻辑结构设计小结v任务任务将概念结构转化为具体的数据模型将概念结构转化为具体的数据模型vv逻辑结构设计的步骤逻辑结构设计的步骤将概念结构转化为一般的关系、网状、层次模型将概念结构转化为一般的关系、网状、层次模型将概念结构转化为一般的关系、网状、层次模型将概念结构转化为一般的关系、网状、层次模型将转化来的关系、网状、层次模型向特定将转化来的关系、网状、层次模型向特定将转化来的关系、网状、层次模型向特定将转化来的关系、网状、层次模型向特定DBMSDBMS支持支持支持支持下的数据模型转换下的数据模型转换下的数据模型转换下的数据模型转换对数据模型进行优化对数据模型进行优化

213、对数据模型进行优化对数据模型进行优化设计用户子模式设计用户子模式设计用户子模式设计用户子模式热燃供狐格矢嘴苔脊伤藕擂渝貌汰扶啃姚蛾诲肉萍驯侍徘尊谗崖苞垦千恭第7章数据库设计与编程第7章数据库设计与编程逻辑结构设计小结逻辑结构设计小结vE-R图向关系模型的转换内容图向关系模型的转换内容将将将将E-RE-R图转换为关系模型:将实体、实体的属图转换为关系模型:将实体、实体的属图转换为关系模型:将实体、实体的属图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。性和实体之间的联系转化为关系模式。性和实体之间的联系转化为关系模式。性和实体之间的联系转化为关系模式。疏蚁斑砸嘱茵态袖菠删到姨

214、氏泊胯狄廖扫及卖奶援猖审掂抡柳彰云研肉荡第7章数据库设计与编程第7章数据库设计与编程逻辑结构设计小结逻辑结构设计小结vE-R图向关系模型的转换原则图向关系模型的转换原则 一个一个一个一个实体型实体型实体型实体型转换为一个关系模式。转换为一个关系模式。转换为一个关系模式。转换为一个关系模式。 一个一个m:nm:n联系联系联系联系转换为一个关系模式。转换为一个关系模式。 一个一个1:n1:n联系联系联系联系可以转换为一个独立的关系模式,可以转换为一个独立的关系模式,也可以与也可以与n端对应的关系模式合并。端对应的关系模式合并。 一个一个1:11:1联系联系联系联系可以转换为一个独立的关系模式,可以

215、转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。也可以与任意一端对应的关系模式合并。峡糠腻丽晴嗅裤窟冶层甲骋乒扶晋混笺炬绕厩涸纵捶撞鞍缮缮猿跪朔葡芹第7章数据库设计与编程第7章数据库设计与编程逻辑结构设计小结逻辑结构设计小结vE-R图向关系模型的转换原则图向关系模型的转换原则 三个或三个以上实体间的一个三个或三个以上实体间的一个多元联系多元联系多元联系多元联系转换为转换为一个关系模式。一个关系模式。 同一实体集的实体间的联系,即同一实体集的实体间的联系,即自联系自联系自联系自联系,也可,也可按上述按上述1:1、1:n和和m:n三种情况分别处理。三种情况分别处理。 具有具有相同码相

216、同码相同码相同码的关系模式可合并。的关系模式可合并。垄距睫餐羞灵侨揽稽辕捡扼邪腻汰议致俯揖衣窗赛赚庆侣肿侨价严冶道袜第7章数据库设计与编程第7章数据库设计与编程逻辑结构设计小结逻辑结构设计小结v优化数据模型的方法优化数据模型的方法 确定数据依赖确定数据依赖 对于各个关系模式之间的数据依赖进行对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。极小化处理,消除冗余的联系。 确定各关系模式分别属于第几范式。确定各关系模式分别属于第几范式。 分析对于应用环境这些模式是否合适,分析对于应用环境这些模式是否合适,确定是否要对它们进行合并或分解。确定是否要对它们进行合并或分解。 对关系模式进行必

217、要的分解或合并对关系模式进行必要的分解或合并羞蟹缚蔓从帛钩余沏幻痘吩沧姑玲搁历犊铰黔誉楼警哭瘸壬材囊霉份畅纳第7章数据库设计与编程第7章数据库设计与编程逻辑结构设计小结逻辑结构设计小结v设计用户子模式设计用户子模式1. 1. 使用更符合用户习惯的别名使用更符合用户习惯的别名使用更符合用户习惯的别名使用更符合用户习惯的别名2. 针对不同级别的用户定义不同的外模式,以满针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。足系统对安全性的要求。3. 简化用户对系统的使用简化用户对系统的使用蓟突闭酱诞卤鞋扶坟胃畴踏凛学儿膘茫桐廓圈移荐岳堂郴料胶居柒雅毯辈第7章数据库设计与编程第7章数据库设计

218、与编程7.5 数据库的物理设计数据库的物理设计v什么是数据库的物理设计什么是数据库的物理设计数据库在物理设备上的存储结构与存取方法数据库在物理设备上的存储结构与存取方法数据库在物理设备上的存储结构与存取方法数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计称为数据库的物理结构,它依赖于给定的计称为数据库的物理结构,它依赖于给定的计称为数据库的物理结构,它依赖于给定的计算机系统。算机系统。算机系统。算机系统。为一个给定的逻辑数据模型选取一个最适合为一个给定的逻辑数据模型选取一个最适合为一个给定的逻辑数据模型选取一个最适合为一个给定的逻辑数据模型选取一个最适合应用环境的物

219、理结构的过程,就是数据库的应用环境的物理结构的过程,就是数据库的应用环境的物理结构的过程,就是数据库的应用环境的物理结构的过程,就是数据库的物理设计。物理设计。物理设计。物理设计。催穗咯茅肘酷庙传胀罪脑鲁食匿憾截浆懈慎筑狭妮余茶棋赂话苏废创畦焰第7章数据库设计与编程第7章数据库设计与编程7.5 数据库的物理设计数据库的物理设计v数据库物理设计的步骤数据库物理设计的步骤确定数据库的物理结构确定数据库的物理结构确定数据库的物理结构确定数据库的物理结构对物理结构进行评价,评价的重点是时间和对物理结构进行评价,评价的重点是时间和对物理结构进行评价,评价的重点是时间和对物理结构进行评价,评价的重点是时间

220、和空间效率空间效率空间效率空间效率如果评价结果满足原设计要求则可进入到物如果评价结果满足原设计要求则可进入到物如果评价结果满足原设计要求则可进入到物如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改理实施阶段,否则,就需要重新设计或修改理实施阶段,否则,就需要重新设计或修改理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修物理结构,有时甚至要返回逻辑设计阶段修物理结构,有时甚至要返回逻辑设计阶段修物理结构,有时甚至要返回逻辑设计阶段修改数据模型。改数据模型。改数据模型。改数据模型。眷矫膀芒摸朝鳖件佃队唯急练箔祥坤年花结外故渭骋琶番察冉只寞砧辛

221、稿第7章数据库设计与编程第7章数据库设计与编程数据库的物理设计数据库的物理设计 数据库物理设计数据库物理设计确定数确定数据库的据库的物理结物理结构构评价数据评价数据库的物理库的物理结构结构逻辑结逻辑结构设计构设计数据库数据库实施实施物理物理模型模型逻辑逻辑模型模型匹筛哦侍八焕健出题粥疼来小遣锡吁涪亭踊漾沦席败障玻铂吭柄缮劣释蹋第7章数据库设计与编程第7章数据库设计与编程7.5 数据库的物理设计数据库的物理设计7.5.1 数据库的物理设计的内容和方法数据库的物理设计的内容和方法7.5.2 关系模式存取方法选择关系模式存取方法选择7.5.3 确定数据库的存储结构确定数据库的存储结构7.5.4 评价

222、物理结构评价物理结构婆淳沪叭摇釜压繁波翠臻泥族浪鸦箕予芹能浮败号进疵构弥君措邮叫芍谱第7章数据库设计与编程第7章数据库设计与编程7.5 数据库的物理设计数据库的物理设计7.5.1 数据库的物理设计的内容和方法数据库的物理设计的内容和方法7.5.2 关系模式存取方法选择关系模式存取方法选择7.5.3 确定数据库的存储结构确定数据库的存储结构7.5.4 评价物理结构评价物理结构檀抚首噬耀探墨溅圣肛袖肾熟艇笺旧侧谁庭诉钎谈红宏春屹君锡萍莉沿蛋第7章数据库设计与编程第7章数据库设计与编程7.5.1 数据库的物理设计的内容和方法数据库的物理设计的内容和方法v设计物理数据库结构的准备工作设计物理数据库结构

223、的准备工作 1. 1. 充分了解应用环境,详细分析要运行的事充分了解应用环境,详细分析要运行的事充分了解应用环境,详细分析要运行的事充分了解应用环境,详细分析要运行的事务,以获得选择物理数据库设计所需参数务,以获得选择物理数据库设计所需参数务,以获得选择物理数据库设计所需参数务,以获得选择物理数据库设计所需参数 2. 2. 充分了解所用充分了解所用充分了解所用充分了解所用RDBMSRDBMS的内部特征,特别的内部特征,特别的内部特征,特别的内部特征,特别是系统提供的存取方法和存储结构是系统提供的存取方法和存储结构是系统提供的存取方法和存储结构是系统提供的存取方法和存储结构突桂莱劫接卒芭神批证诣

224、钵糟粕深孝杂凝迫诀崭侯住植收紧瑟箭副珍甚盅第7章数据库设计与编程第7章数据库设计与编程数据库的物理设计的内容和方法(续)数据库的物理设计的内容和方法(续)v选择物理数据库设计所需参数选择物理数据库设计所需参数 数据库查询事务数据库查询事务数据库查询事务数据库查询事务vv查询的关系查询的关系查询的关系查询的关系vv 查询条件所涉及的属性查询条件所涉及的属性查询条件所涉及的属性查询条件所涉及的属性vv 连接条件所涉及的属性连接条件所涉及的属性连接条件所涉及的属性连接条件所涉及的属性vv 查询的投影属性查询的投影属性查询的投影属性查询的投影属性 厅淹愚华扦迟母臭湍熄螟款挂闻密护诲储段件憾回走蔓肠追呆

225、彪牵孤遇甥第7章数据库设计与编程第7章数据库设计与编程数据库的物理设计的内容和方法(续)数据库的物理设计的内容和方法(续)v选择物理数据库设计所需参数选择物理数据库设计所需参数(续续)数据更新事务数据更新事务数据更新事务数据更新事务vv被更新的关系被更新的关系被更新的关系被更新的关系vv每个关系上的更新操作条件所涉及的属性每个关系上的更新操作条件所涉及的属性每个关系上的更新操作条件所涉及的属性每个关系上的更新操作条件所涉及的属性vv 修改操作要改变的属性值修改操作要改变的属性值修改操作要改变的属性值修改操作要改变的属性值 每个事务在各关系上运行的频率和性能要求每个事务在各关系上运行的频率和性能

226、要求每个事务在各关系上运行的频率和性能要求每个事务在各关系上运行的频率和性能要求挺疥郸透畴泄呻幸察蝗圣耘叹镰国戳壤样酷校藉犊查峨镐花却尖爹筹韶艾第7章数据库设计与编程第7章数据库设计与编程数据库的物理设计的内容和方法(续)数据库的物理设计的内容和方法(续)v关系数据库物理设计的内容关系数据库物理设计的内容1. 1. 为关系模式选择为关系模式选择为关系模式选择为关系模式选择存取方法存取方法存取方法存取方法( (建立存取路径建立存取路径建立存取路径建立存取路径) )2. 2. 设计关系、索引等数据库文件的设计关系、索引等数据库文件的设计关系、索引等数据库文件的设计关系、索引等数据库文件的物理存储物

227、理存储物理存储物理存储结构结构结构结构送始蒸赌赘橱邑鉴弟找剩推悲仙驱垮胎少大芽砌陈茨言莎恕饰罗凸弘充稀第7章数据库设计与编程第7章数据库设计与编程7.5 数据库的物理设计数据库的物理设计7.5.1 数据库的物理设计的内容和方法数据库的物理设计的内容和方法7.5.2 关系模式存取方法选择关系模式存取方法选择7.5.3 确定数据库的存储结构确定数据库的存储结构7.5.4 评价物理结构评价物理结构颐割帚泻馅宙彰晦焦兴黄卜渠荫圈桂旦苗贰趋饺甫腻棠字骂岳掏畸国饮慑第7章数据库设计与编程第7章数据库设计与编程7.5.2 关系模式存取方法选择关系模式存取方法选择v数据库系统是多用户共享的系统,对同一数据库系

228、统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用个关系要建立多条存取路径才能满足多用户的多种应用要求。户的多种应用要求。v物理设计的第一个任务就是要确定选择哪物理设计的第一个任务就是要确定选择哪些存取方法,即建立哪些存取路径。些存取方法,即建立哪些存取路径。粳瑞右驴鼠打发甜晃尧乔造劲麓诬裁挝似打盟诞钉葛换蛊嗣耻蝶讽抿彻疲第7章数据库设计与编程第7章数据库设计与编程关系模式存取方法选择(续)关系模式存取方法选择(续)vDBMS常用存取方法常用存取方法索引方法,目前主要是索引方法,目前主要是索引方法,目前主要是索引方法,目前主要是B+B+树索引方法树索引方法树索引方法树索引方法聚簇

229、(聚簇(聚簇(聚簇(ClusterCluster)方法)方法)方法)方法HASHHASH方法方法方法方法戌斥娇腿灼邮刽且贪致肘寒戒方扣框黔固唾主使苦豌叹郭钓淮搏铭举等泵第7章数据库设计与编程第7章数据库设计与编程一、索引存取方法的选择一、索引存取方法的选择v选择索引存取方法的主要内容选择索引存取方法的主要内容根据应用要求确定根据应用要求确定根据应用要求确定根据应用要求确定 对哪些属性列建立索引对哪些属性列建立索引对哪些属性列建立索引对哪些属性列建立索引 对哪些属性列建立组合索引对哪些属性列建立组合索引对哪些属性列建立组合索引对哪些属性列建立组合索引 对哪些索引要设计为唯一索引对哪些索引要设计为

230、唯一索引对哪些索引要设计为唯一索引对哪些索引要设计为唯一索引保耀尸犀袱算假垒绑呈绿婆铂诅孤细浮摄屹诗叮斯拿象陪歉截幼峦庇谍荫第7章数据库设计与编程第7章数据库设计与编程索引存取方法的选择(续)索引存取方法的选择(续)v选择索引存取方法的一般规则选择索引存取方法的一般规则如果一个如果一个如果一个如果一个( (或一组或一组或一组或一组) )属性经常在查询条件中出属性经常在查询条件中出属性经常在查询条件中出属性经常在查询条件中出现,则考虑在这个现,则考虑在这个现,则考虑在这个现,则考虑在这个( (或这组或这组或这组或这组) )属性上建立索引属性上建立索引属性上建立索引属性上建立索引( (或组合索引或

231、组合索引或组合索引或组合索引) )如果一个属性经常作为最大值和最小值等聚如果一个属性经常作为最大值和最小值等聚如果一个属性经常作为最大值和最小值等聚如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索集函数的参数,则考虑在这个属性上建立索集函数的参数,则考虑在这个属性上建立索集函数的参数,则考虑在这个属性上建立索引引引引如果一个如果一个如果一个如果一个( (或一组或一组或一组或一组) )属性经常在连接操作的连属性经常在连接操作的连属性经常在连接操作的连属性经常在连接操作的连接条件中出现,则考虑在这个接条件中出现,则考虑在这个接条件中出现,则考虑在这个接条件中出现,则考虑

232、在这个( (或这组或这组或这组或这组) )属性属性属性属性上建立索引上建立索引上建立索引上建立索引故镁肘锨裹凰尉意姜河卧攒触号偏装娥皑油责詹澳妓挟嚷福屠淬硼各疗椰第7章数据库设计与编程第7章数据库设计与编程索引存取方法的选择(续)索引存取方法的选择(续)v关系上定义的索引数过多会带来较多关系上定义的索引数过多会带来较多的额外开销的额外开销 维护索引的开销维护索引的开销维护索引的开销维护索引的开销 查找索引的开销查找索引的开销查找索引的开销查找索引的开销砖击缄旭非戎庞歼躬铣愈令徒钮湖酪锦康遏秧怕芽逃服旁肆冗弗释贰硅浅第7章数据库设计与编程第7章数据库设计与编程二、聚簇存取方法的选择二、聚簇存取方

233、法的选择v什么是聚簇什么是聚簇为了提高某个属性(或属性组)的查询速度,为了提高某个属性(或属性组)的查询速度,为了提高某个属性(或属性组)的查询速度,为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相把这个或这些属性(称为聚簇码)上具有相把这个或这些属性(称为聚簇码)上具有相把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚同值的元组集中存放在连续的物理块称为聚同值的元组集中存放在连续的物理块称为聚同值的元组集中存放在连续的物理块称为聚簇簇簇簇许多关系型许多关系型许多关系型许多关系型DBMSDBMS都提供了聚簇功能都提供了聚簇功能都提供了聚

234、簇功能都提供了聚簇功能聚簇存放与聚簇索引的区别聚簇存放与聚簇索引的区别聚簇存放与聚簇索引的区别聚簇存放与聚簇索引的区别癌观丢穆蝴试传闯丛匿鸡赃丝漆损顷诬架颊焉笨侈班沼峻俞后愈分疹彭是第7章数据库设计与编程第7章数据库设计与编程建立建立聚簇聚簇索引索引 (复习)(复习)v聚簇索引聚簇索引建建建建立立立立聚聚聚聚簇簇簇簇索索索索引引引引后后后后,基基基基表表表表中中中中数数数数据据据据也也也也需需需需要要要要按按按按指指指指定定定定的的的的聚聚聚聚簇簇簇簇属属属属性性性性值值值值的的的的升升升升序序序序或或或或降降降降序序序序存存存存放放放放。也也也也即即即即聚聚聚聚簇簇簇簇索索索索引引引引的索引

235、项顺序与表中元组的物理顺序一致。的索引项顺序与表中元组的物理顺序一致。的索引项顺序与表中元组的物理顺序一致。的索引项顺序与表中元组的物理顺序一致。例:例:例:例:CREATE CLUSTER INDEX Stusname ON Student(Sname)CREATE CLUSTER INDEX Stusname ON Student(Sname); 在在在在StudentStudent表表表表的的的的SnameSname(姓姓姓姓名名名名)列列列列上上上上建建建建立立立立一一一一个个个个聚聚聚聚簇簇簇簇索索索索引引引引,而而而而且且且且StudentStudent表表表表中中中中的的的的记记

236、记记录录录录将将将将按按按按照照照照SnameSname值值值值的升序存放的升序存放的升序存放的升序存放 框贤咸又台漱指省浚笺拄朋文伶娶佣肃涵铀王淳庄隔佐曾裂鸣孪谨倘隘肘第7章数据库设计与编程第7章数据库设计与编程建立建立聚簇聚簇索引索引 (复习)(复习)在一个基本表上最多只能建立一个聚簇索引在一个基本表上最多只能建立一个聚簇索引聚簇索引的用途:对于某些类型的查询,可聚簇索引的用途:对于某些类型的查询,可以提高查询效率以提高查询效率聚簇索引的适用范围聚簇索引的适用范围vv 很少对基表进行增删操作很少对基表进行增删操作很少对基表进行增删操作很少对基表进行增删操作vv 很少对其中的变长列进行修改操

237、作很少对其中的变长列进行修改操作很少对其中的变长列进行修改操作很少对其中的变长列进行修改操作 肥技紫爹蝗绒悦黍啃燕悄湾歌消涂愈净珠轻帜邢龚届屈厚把蓟错套驳捅跟第7章数据库设计与编程第7章数据库设计与编程聚簇存取方法的选择(续)聚簇存取方法的选择(续)v聚簇的用途聚簇的用途1. 1. 大大提高按聚簇属性进行查询的效率大大提高按聚簇属性进行查询的效率大大提高按聚簇属性进行查询的效率大大提高按聚簇属性进行查询的效率例:假设学生关系按所在系建有索引,现在要查例:假设学生关系按所在系建有索引,现在要查例:假设学生关系按所在系建有索引,现在要查例:假设学生关系按所在系建有索引,现在要查询信息系的所有学生名

238、单。询信息系的所有学生名单。询信息系的所有学生名单。询信息系的所有学生名单。vv信息系的信息系的信息系的信息系的500500名学生分布在名学生分布在名学生分布在名学生分布在500500个不同的物个不同的物个不同的物个不同的物理块上时,至少要执行理块上时,至少要执行理块上时,至少要执行理块上时,至少要执行500500次次次次I/OI/O操作。操作。操作。操作。vv如果将同一系的学生元组集中存放,则每读如果将同一系的学生元组集中存放,则每读如果将同一系的学生元组集中存放,则每读如果将同一系的学生元组集中存放,则每读一个物理块可得到多个满足查询条件的元组,一个物理块可得到多个满足查询条件的元组,一个

239、物理块可得到多个满足查询条件的元组,一个物理块可得到多个满足查询条件的元组,从而显著地减少了访问磁盘的次数。从而显著地减少了访问磁盘的次数。从而显著地减少了访问磁盘的次数。从而显著地减少了访问磁盘的次数。呸卉眶讳潘药缔咳奉腆济骚动猖孺受换培柠锹平竹溃胜忿滨驴杀岸路屑挫第7章数据库设计与编程第7章数据库设计与编程聚簇存取方法的选择(续)聚簇存取方法的选择(续)2. 节省存储空间节省存储空间vv聚簇以后,聚簇码相同的元组集中在一聚簇以后,聚簇码相同的元组集中在一聚簇以后,聚簇码相同的元组集中在一聚簇以后,聚簇码相同的元组集中在一起了,因而聚簇码值不必在每个元组中重起了,因而聚簇码值不必在每个元组中

240、重起了,因而聚簇码值不必在每个元组中重起了,因而聚簇码值不必在每个元组中重复存储,只要在一组中存一次就行了复存储,只要在一组中存一次就行了复存储,只要在一组中存一次就行了复存储,只要在一组中存一次就行了蟹向翠缘沽肌筷十茫喧嚏尔赡驶牧藕赴脖轨胀晚诗败戏凭碗茂偿诧规槽条第7章数据库设计与编程第7章数据库设计与编程聚簇存取方法的选择(续)聚簇存取方法的选择(续)v聚簇的局限性聚簇的局限性1. 1. 聚簇只能提高某些特定应用的性能聚簇只能提高某些特定应用的性能聚簇只能提高某些特定应用的性能聚簇只能提高某些特定应用的性能2. 2. 建立与维护聚簇的开销相当大建立与维护聚簇的开销相当大建立与维护聚簇的开销

241、相当大建立与维护聚簇的开销相当大vv对已有关系建立聚簇,将导致关系中元组对已有关系建立聚簇,将导致关系中元组对已有关系建立聚簇,将导致关系中元组对已有关系建立聚簇,将导致关系中元组移动其物理存储位置,并使此关系上原有移动其物理存储位置,并使此关系上原有移动其物理存储位置,并使此关系上原有移动其物理存储位置,并使此关系上原有的索引无效,必须重建。的索引无效,必须重建。的索引无效,必须重建。的索引无效,必须重建。vv当一个元组的聚簇码改变时,该元组的存当一个元组的聚簇码改变时,该元组的存当一个元组的聚簇码改变时,该元组的存当一个元组的聚簇码改变时,该元组的存储位置也要做相应移动。储位置也要做相应移

242、动。储位置也要做相应移动。储位置也要做相应移动。啸卸掏葬纯隔偿帧侨滩如违病雌遣垃撮键言莫捆吮盏症拥弟砸沪鸿朵狙戴第7章数据库设计与编程第7章数据库设计与编程聚簇存取方法的选择(续)聚簇存取方法的选择(续)v聚簇的适用范围聚簇的适用范围1. 1. 既适用于单个关系独立聚簇,也适用于多个关既适用于单个关系独立聚簇,也适用于多个关既适用于单个关系独立聚簇,也适用于多个关既适用于单个关系独立聚簇,也适用于多个关系组合聚簇系组合聚簇系组合聚簇系组合聚簇例:假设用户经常要按系别查询学生成绩单,这例:假设用户经常要按系别查询学生成绩单,这例:假设用户经常要按系别查询学生成绩单,这例:假设用户经常要按系别查询

243、学生成绩单,这一查询涉及学生关系和选修关系的连接操作,即一查询涉及学生关系和选修关系的连接操作,即一查询涉及学生关系和选修关系的连接操作,即一查询涉及学生关系和选修关系的连接操作,即需要按学号连接这两个关系,为提高连接操作的需要按学号连接这两个关系,为提高连接操作的需要按学号连接这两个关系,为提高连接操作的需要按学号连接这两个关系,为提高连接操作的效率,可以把具有相同学号值的学生元组和选修效率,可以把具有相同学号值的学生元组和选修效率,可以把具有相同学号值的学生元组和选修效率,可以把具有相同学号值的学生元组和选修元组在物理上聚簇在一起。这就相当于把多个关元组在物理上聚簇在一起。这就相当于把多个

244、关元组在物理上聚簇在一起。这就相当于把多个关元组在物理上聚簇在一起。这就相当于把多个关系按系按系按系按“ “预连接预连接预连接预连接” ”的形式存放,从而大大提高连接的形式存放,从而大大提高连接的形式存放,从而大大提高连接的形式存放,从而大大提高连接操作的效率。操作的效率。操作的效率。操作的效率。渊峡妄伐在显操瘩勃穆标钢梅帅快汪砧候淋呼豹图顽斑式使卒荧业研猾湿第7章数据库设计与编程第7章数据库设计与编程聚簇存取方法的选择(续)聚簇存取方法的选择(续)2. 当通过聚簇码进行访问或连接是该关系的当通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无关的其他访问很少或主要应用,与聚簇码无关的其他访

245、问很少或者是次要的时,可以使用聚簇。者是次要的时,可以使用聚簇。vv尤其当尤其当尤其当尤其当SQLSQL语句中包含有与聚簇码有关的语句中包含有与聚簇码有关的语句中包含有与聚簇码有关的语句中包含有与聚簇码有关的ORDER BYORDER BY,GROUP BYGROUP BY,UNIONUNION,DISTINCTDISTINCT等子句或短语时,使用聚簇特别等子句或短语时,使用聚簇特别等子句或短语时,使用聚簇特别等子句或短语时,使用聚簇特别有利,可以省去对结果集的排序操作有利,可以省去对结果集的排序操作有利,可以省去对结果集的排序操作有利,可以省去对结果集的排序操作吁燃椒寥衍鉴馋绣梗扩低硬盈状翔

246、洒淋鲤点饺痈谅龙阐楷汗陶智吧辣勾骚第7章数据库设计与编程第7章数据库设计与编程聚簇存取方法的选择(续)聚簇存取方法的选择(续)v选择聚簇存取方法选择聚簇存取方法1. 1. 设计候选聚簇设计候选聚簇设计候选聚簇设计候选聚簇vv对经常在一起进行连接操作的关系可以对经常在一起进行连接操作的关系可以对经常在一起进行连接操作的关系可以对经常在一起进行连接操作的关系可以建立组合聚簇;建立组合聚簇;建立组合聚簇;建立组合聚簇;vv如果一个关系的一组属性经常出现在相如果一个关系的一组属性经常出现在相如果一个关系的一组属性经常出现在相如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚簇;等比较

247、条件中,则该单个关系可建立聚簇;等比较条件中,则该单个关系可建立聚簇;等比较条件中,则该单个关系可建立聚簇;vv如果一个关系的一个如果一个关系的一个如果一个关系的一个如果一个关系的一个( (或一组或一组或一组或一组) )属性上的属性上的属性上的属性上的值重复率很高,则此单个关系可建立聚簇。值重复率很高,则此单个关系可建立聚簇。值重复率很高,则此单个关系可建立聚簇。值重复率很高,则此单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不太少。即对应每个聚簇码值的平均元组数不太少。即对应每个聚簇码值的平均元组数不太少。即对应每个聚簇码值的平均元组数不太少。太少了,聚簇的效果不明显。太少了,聚簇的效果

248、不明显。太少了,聚簇的效果不明显。太少了,聚簇的效果不明显。逼蒙命怯她隔庇网长羞牧隔省雁话愤让饯萝虑匿其僵咎宋炒葵漆焚蜗掉褂第7章数据库设计与编程第7章数据库设计与编程聚簇存取方法的选择(续)聚簇存取方法的选择(续)2. 检查候选聚簇中的关系,取消其中不必要的关系检查候选聚簇中的关系,取消其中不必要的关系vv从独立聚簇中删除经常进行全表扫描的关系;从独立聚簇中删除经常进行全表扫描的关系;从独立聚簇中删除经常进行全表扫描的关系;从独立聚簇中删除经常进行全表扫描的关系;vv从独立从独立从独立从独立/ /组合聚簇中删除更新操作远多于查询操组合聚簇中删除更新操作远多于查询操组合聚簇中删除更新操作远多于

249、查询操组合聚簇中删除更新操作远多于查询操作的关系;作的关系;作的关系;作的关系;vv从独立从独立从独立从独立/ /组合聚簇中删除重复出现的关系组合聚簇中删除重复出现的关系组合聚簇中删除重复出现的关系组合聚簇中删除重复出现的关系当当当当一个关系同时加入多个聚簇一个关系同时加入多个聚簇一个关系同时加入多个聚簇一个关系同时加入多个聚簇时,必须时,必须时,必须时,必须从这多从这多从这多从这多个聚簇方案个聚簇方案个聚簇方案个聚簇方案( (包括不建立聚簇包括不建立聚簇包括不建立聚簇包括不建立聚簇) )中选择一个较优中选择一个较优中选择一个较优中选择一个较优的,即在这个聚簇上运行各种事务的总代价最的,即在这

250、个聚簇上运行各种事务的总代价最的,即在这个聚簇上运行各种事务的总代价最的,即在这个聚簇上运行各种事务的总代价最小。小。小。小。性亨镐绿魄店舷胖赡膘滁晦休羊尹惠拢噪锈蝴摆牲嘘葬渤谚沂溜悔抑屹琴第7章数据库设计与编程第7章数据库设计与编程三、三、HASH存取方法的选择存取方法的选择v选择选择HASH存取方法的规则存取方法的规则当一个关系满足下列两个条件时,可以选择当一个关系满足下列两个条件时,可以选择当一个关系满足下列两个条件时,可以选择当一个关系满足下列两个条件时,可以选择HASHHASH存取方法存取方法存取方法存取方法vv该关系的属性主要出现在该关系的属性主要出现在该关系的属性主要出现在该关系

251、的属性主要出现在等值连接等值连接等值连接等值连接条件条件条件条件中或主要出现在中或主要出现在中或主要出现在中或主要出现在相等比较相等比较相等比较相等比较选择条件中选择条件中选择条件中选择条件中vv该关系的大小可预知,而且不变;该关系的大小可预知,而且不变;该关系的大小可预知,而且不变;该关系的大小可预知,而且不变; 或或或或 该关系的大小动态改变,但所选用的该关系的大小动态改变,但所选用的该关系的大小动态改变,但所选用的该关系的大小动态改变,但所选用的DBMSDBMS提供了动态提供了动态提供了动态提供了动态HASHHASH存取方法。存取方法。存取方法。存取方法。敌肩晴旺揣贤浇眩桶羞囱希迁拇嗅城

252、埃丫炉唇迈申数命勿雁嚣蜜袒缎褂凳第7章数据库设计与编程第7章数据库设计与编程7.5 数据库的物理设计数据库的物理设计7.5.1 数据库的物理设计的内容和方法数据库的物理设计的内容和方法7.5.2 关系模式存取方法选择关系模式存取方法选择7.5.3 确定数据库的存储结构确定数据库的存储结构7.5.4 评价物理结构评价物理结构帜戮卵曝残傅印举窃咙遗权诺遣字馋纬谢挪母桓苫毯弯灾葬疮亲文畏阅忍第7章数据库设计与编程第7章数据库设计与编程7.5.3 确定数据库的存储结构确定数据库的存储结构v确定数据库物理结构的内容确定数据库物理结构的内容1. 1. 确定数据的存放位置和存储结构确定数据的存放位置和存储结

253、构确定数据的存放位置和存储结构确定数据的存放位置和存储结构vv 关系关系关系关系vv 索引索引索引索引vv 聚簇聚簇聚簇聚簇vv 日志日志日志日志vv 备份备份备份备份2. 2. 确定系统配置确定系统配置确定系统配置确定系统配置两拎珐称辈粟土竞敏喝伺雄确女篮仅杀讶笑蓬醚树曼亚跋韦幢膝妙铲气卒第7章数据库设计与编程第7章数据库设计与编程1. 确定数据的存放位置确定数据的存放位置v影响数据存放位置和存储结构的因素影响数据存放位置和存储结构的因素硬件环境硬件环境硬件环境硬件环境应用需求应用需求应用需求应用需求vv存取时间存取时间存取时间存取时间vv存储空间利用率存储空间利用率存储空间利用率存储空间利

254、用率vv维护代价维护代价维护代价维护代价 这三个方面常常是相互矛盾的这三个方面常常是相互矛盾的这三个方面常常是相互矛盾的这三个方面常常是相互矛盾的 例:消除一切冗余数据虽能够节约存储空间和减少维例:消除一切冗余数据虽能够节约存储空间和减少维例:消除一切冗余数据虽能够节约存储空间和减少维例:消除一切冗余数据虽能够节约存储空间和减少维护代价,但往往会导致检索代价的增加护代价,但往往会导致检索代价的增加护代价,但往往会导致检索代价的增加护代价,但往往会导致检索代价的增加 必须进行权衡,选择一个折中方案必须进行权衡,选择一个折中方案必须进行权衡,选择一个折中方案必须进行权衡,选择一个折中方案。殃种螟氯

255、臼瞻汪遁垃钓募咸侩政渍赫聂侧肮冤崩肃观假是攀楔赫淄枫咨黎第7章数据库设计与编程第7章数据库设计与编程确定数据的存放位置(续)确定数据的存放位置(续)v基本原则基本原则根据应用情况将根据应用情况将根据应用情况将根据应用情况将vv易变易变易变易变部分与部分与部分与部分与稳定稳定稳定稳定部分部分部分部分vv存取频率较高存取频率较高存取频率较高存取频率较高部分与部分与部分与部分与存取频率较低存取频率较低存取频率较低存取频率较低部分部分部分部分 分开存放,以提高系统性能分开存放,以提高系统性能分开存放,以提高系统性能分开存放,以提高系统性能纺娠邢莎袱冶痊歌吕截差嗡裳诵炒池憎抿姿习文归辅镇蝗罐达搪炔方协病

256、第7章数据库设计与编程第7章数据库设计与编程确定数据的存放位置(续)确定数据的存放位置(续)例:例:vv数据库数据备份、日志文件备份等由于数据库数据备份、日志文件备份等由于数据库数据备份、日志文件备份等由于数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而且数据量很大,只在故障恢复时才使用,而且数据量很大,只在故障恢复时才使用,而且数据量很大,只在故障恢复时才使用,而且数据量很大,可以考虑存放在磁带上。可以考虑存放在磁带上。可以考虑存放在磁带上。可以考虑存放在磁带上。vv如果计算机有多个磁盘,可以考虑将表如果计算机有多个磁盘,可以考虑将表如果计算机有多个磁盘,可以考虑将表如果计算机有多

257、个磁盘,可以考虑将表和索引分别放在不同的磁盘上,在查询时,和索引分别放在不同的磁盘上,在查询时,和索引分别放在不同的磁盘上,在查询时,和索引分别放在不同的磁盘上,在查询时,由于两个磁盘驱动器分别在工作,因而可由于两个磁盘驱动器分别在工作,因而可由于两个磁盘驱动器分别在工作,因而可由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。以保证物理读写速度比较快。以保证物理读写速度比较快。以保证物理读写速度比较快。蘸横闪牺疟朽驱怪祈惯质猫腑闺晃据挤样泻锅煞殆埃诬周汀郧毕媳孪袋苔第7章数据库设计与编程第7章数据库设计与编程确定数据的存放位置(续)确定数据的存放位置(续)例(续):例(续):vv

258、可以将比较大的表分别放在两个磁盘上,可以将比较大的表分别放在两个磁盘上,可以将比较大的表分别放在两个磁盘上,可以将比较大的表分别放在两个磁盘上,以加快存取速度,这在多用户环境下特别以加快存取速度,这在多用户环境下特别以加快存取速度,这在多用户环境下特别以加快存取速度,这在多用户环境下特别有效。有效。有效。有效。vv可以将日志文件与数据库对象(表、索可以将日志文件与数据库对象(表、索可以将日志文件与数据库对象(表、索可以将日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能。引等)放在不同的磁盘以改进系统的性能。引等)放在不同的磁盘以改进系统的性能。引等)放在不同的磁盘以改进系统的性

259、能。斜玖到徒萍板皆膊沮艳温王噶递戌堰钮瘩嗜棉由邻考斗春迪单纪撂奠订妙第7章数据库设计与编程第7章数据库设计与编程2. 确定系统配置确定系统配置vDBMS产品一般都提供了一些存储分配参数产品一般都提供了一些存储分配参数 同时使用数据库的用户数同时使用数据库的用户数同时使用数据库的用户数同时使用数据库的用户数 同时打开的数据库对象数同时打开的数据库对象数同时打开的数据库对象数同时打开的数据库对象数 使用的缓冲区长度、个数使用的缓冲区长度、个数使用的缓冲区长度、个数使用的缓冲区长度、个数 时间片大小时间片大小时间片大小时间片大小 数据库的大小数据库的大小数据库的大小数据库的大小 装填因子装填因子装填

260、因子装填因子 锁的数目锁的数目锁的数目锁的数目 等等等等等等等等侣坊链霹闯慰袁啮扶庞壤盼洼莱会秒召钉丑绪统岿稽啪址筛汽脯袖抨峡适第7章数据库设计与编程第7章数据库设计与编程确定系统配置(续)确定系统配置(续)v系统都为这些变量赋予了合理的缺省值。但是这系统都为这些变量赋予了合理的缺省值。但是这些值不一定适合每一种应用环境,在进行物理设些值不一定适合每一种应用环境,在进行物理设计时,需要根据应用环境确定这些参数值,以使计时,需要根据应用环境确定这些参数值,以使系统性能最优。系统性能最优。 vv在物理设计时对系统配置变量的调整只是初步的,在物理设计时对系统配置变量的调整只是初步的,在物理设计时对系

261、统配置变量的调整只是初步的,在物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据系统实际运行情况做进一在系统运行时还要根据系统实际运行情况做进一在系统运行时还要根据系统实际运行情况做进一在系统运行时还要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。步的调整,以期切实改进系统性能。步的调整,以期切实改进系统性能。步的调整,以期切实改进系统性能。它靠滞薪弛先重搁椽攻哺裹浚改剑等霹咕嵌就揽碟峨抖拈蒜弛渴颓争荷支第7章数据库设计与编程第7章数据库设计与编程7.5 数据库的物理设计数据库的物理设计7.5.1 数据库的物理设计的内容和方法数据库的物理设计的内容和方法7.5.2 关系

262、模式存取方法选择关系模式存取方法选择7.5.3 确定数据库的存储结构确定数据库的存储结构7.5.4 评价物理结构评价物理结构妹樱紧敷烷儒春匈引抑旧进旗票磺羹鲸码援盂庆战宗酵壤郴婆胎柄掠饥抢第7章数据库设计与编程第7章数据库设计与编程7.5.4 评价物理结构评价物理结构v评价内容评价内容对数据库物理设计过程中产生的多种方案进对数据库物理设计过程中产生的多种方案进对数据库物理设计过程中产生的多种方案进对数据库物理设计过程中产生的多种方案进行细致的评价,从中选择一个较优的方案作行细致的评价,从中选择一个较优的方案作行细致的评价,从中选择一个较优的方案作行细致的评价,从中选择一个较优的方案作为数据库的

263、物理结构为数据库的物理结构为数据库的物理结构为数据库的物理结构欺劲孝虽掣籽盲睁陋弃进咙救嘻肆蛔岗吐痪守拭肪腊掐霸捕淋踪放势逛辫第7章数据库设计与编程第7章数据库设计与编程7.5.4 评价物理结构评价物理结构v评价方法评价方法定量估算各种方案定量估算各种方案定量估算各种方案定量估算各种方案vv 存储空间存储空间存储空间存储空间vv 存取时间存取时间存取时间存取时间vv 维护代价维护代价维护代价维护代价对估算结果进行权衡、比较,选择出一个较优对估算结果进行权衡、比较,选择出一个较优对估算结果进行权衡、比较,选择出一个较优对估算结果进行权衡、比较,选择出一个较优的合理的物理结构的合理的物理结构的合理

264、的物理结构的合理的物理结构如果该结构不符合用户需求,则需要修改设计如果该结构不符合用户需求,则需要修改设计如果该结构不符合用户需求,则需要修改设计如果该结构不符合用户需求,则需要修改设计涨津蛔莎笼键同瞥议脂骇地全遏使进忌峻厌巳憎咸迹缨兴磐析抿荤翰犁帽第7章数据库设计与编程第7章数据库设计与编程7.6 数据库的实施、运行和维护数据库的实施、运行和维护v数据库实施的工作内容数据库实施的工作内容用用用用DDLDDL定义数据库结构定义数据库结构定义数据库结构定义数据库结构组织数据入库组织数据入库组织数据入库组织数据入库编制与调试应用程序编制与调试应用程序编制与调试应用程序编制与调试应用程序数据库试运行

265、数据库试运行数据库试运行数据库试运行擅删巫景吃噶贿贺斧泊舔非障泰裂氨邻喧孔几衬看坍勤眠纸嘶灵贩靖一陶第7章数据库设计与编程第7章数据库设计与编程数据库实施数据库实施定义数定义数据库结据库结构构数据数据装载装载 数据库数据库试运行试运行数据库物数据库物理设计理设计数据库运数据库运行和维护行和维护物理物理模型模型编制与编制与调试应调试应用程序用程序数据库数据库系统系统扭脏丫杠享盗曼屉垣乳沏茂顶萎甫快曙枢棍伪晾尿氮嫉胖芥塌帮喷碾浓梨第7章数据库设计与编程第7章数据库设计与编程一、定义数据库结构一、定义数据库结构v确定了数据库的逻辑结构与物理结构后,确定了数据库的逻辑结构与物理结构后,就可以用所选用的

266、就可以用所选用的DBMS提供的数据定义提供的数据定义语言(语言(DDL)来严格描述数据库结构。)来严格描述数据库结构。晾塑激掐缴降粉唉驮容梯淬扬滴傈擅蚤另类韵傲栏入慎褪猖麻瓣庚刑渊敲第7章数据库设计与编程第7章数据库设计与编程定义数据库结构(续)定义数据库结构(续)例,对于前面的例子,可以用例,对于前面的例子,可以用SQL语句如下定义语句如下定义表结构:表结构:CREATE TABLE CREATE TABLE 学生学生学生学生 ( (学号学号学号学号 CHAR(8), CHAR(8), ); );CREATE TABLE CREATE TABLE 课程课程课程课程 ( ( ); ); 消忌烦

267、搔色擅跪长复望攒援瓦仁铀区危罗么驮玄韭缔帕予衡桔掳舶搜谴繁第7章数据库设计与编程第7章数据库设计与编程定义数据库结构(续)定义数据库结构(续) 接下来是在这些基本表上定义视图:接下来是在这些基本表上定义视图:CREATE VIEW . ( ); 如果需要使用聚簇,在建基本表之前,应先用如果需要使用聚簇,在建基本表之前,应先用CREATE CLUSTER语句定义聚族。语句定义聚族。你鹊郎掐虏恩涸砖倒奴肤钱腔瓤诺仲谐咽簿仗负拱乱孕敦靠师棕堤涩讯路第7章数据库设计与编程第7章数据库设计与编程二、数据装载二、数据装载v数据库结构建立好后,就可以向数据库中装载数数据库结构建立好后,就可以向数据库中装载数

268、据了。组织数据入库是数据库实施阶段最主要的据了。组织数据入库是数据库实施阶段最主要的工作。工作。v数据装载方法数据装载方法人工方法人工方法人工方法人工方法计算机辅助数据入库计算机辅助数据入库计算机辅助数据入库计算机辅助数据入库刚揣陶鳖建曾嗜衰咯儿演砧傅钾遂升玄挣里汹浦自鼎帚献湾骋雷攘椅核狄第7章数据库设计与编程第7章数据库设计与编程数据装载(续)数据装载(续)v人工方法:适用于小型系统人工方法:适用于小型系统步骤步骤步骤步骤1) 1) 筛选数据筛选数据筛选数据筛选数据。需要装入数据库中的数据通常都分散。需要装入数据库中的数据通常都分散。需要装入数据库中的数据通常都分散。需要装入数据库中的数据通

269、常都分散在各个部门的数据文件或原始凭证中,所以首先必在各个部门的数据文件或原始凭证中,所以首先必在各个部门的数据文件或原始凭证中,所以首先必在各个部门的数据文件或原始凭证中,所以首先必须把需要入库的数据筛选出来。须把需要入库的数据筛选出来。须把需要入库的数据筛选出来。须把需要入库的数据筛选出来。2) 2) 转换数据格式转换数据格式转换数据格式转换数据格式。筛选出来的需要入库的数据,其。筛选出来的需要入库的数据,其。筛选出来的需要入库的数据,其。筛选出来的需要入库的数据,其格式往往不符合数据库要求,还需要进行转换。这格式往往不符合数据库要求,还需要进行转换。这格式往往不符合数据库要求,还需要进行

270、转换。这格式往往不符合数据库要求,还需要进行转换。这种转换有时可能很复杂。种转换有时可能很复杂。种转换有时可能很复杂。种转换有时可能很复杂。 3) 3) 输入数据输入数据输入数据输入数据。将转换好的数据输入计算机中。将转换好的数据输入计算机中。将转换好的数据输入计算机中。将转换好的数据输入计算机中。 4) 4) 校验数据校验数据校验数据校验数据。检查输入的数据是否有误。检查输入的数据是否有误。检查输入的数据是否有误。检查输入的数据是否有误。馒崔麻稍挥抗拭券嘿烯蝉踊敲花志惊捞刀站耿殖劣诞怨外罐师略别唱迷屈第7章数据库设计与编程第7章数据库设计与编程数据装载(续)数据装载(续)v计算机辅助数据入库

271、:适用于中大型系统计算机辅助数据入库:适用于中大型系统步骤步骤步骤步骤1)1) 筛选数据筛选数据筛选数据筛选数据2) 2) 输入数据输入数据输入数据输入数据。由录入员将原始数据直接输入计。由录入员将原始数据直接输入计。由录入员将原始数据直接输入计。由录入员将原始数据直接输入计算机中。数据输入子系统应提供输入界面。算机中。数据输入子系统应提供输入界面。算机中。数据输入子系统应提供输入界面。算机中。数据输入子系统应提供输入界面。3) 3) 校验数据校验数据校验数据校验数据。数据输入子系统采用多种检验技。数据输入子系统采用多种检验技。数据输入子系统采用多种检验技。数据输入子系统采用多种检验技术检查输

272、入数据的正确性。术检查输入数据的正确性。术检查输入数据的正确性。术检查输入数据的正确性。芳殉鼓郭娟凋侣瞪粒胶炽撩自辅弓那忍攫煎懊录惑再赤梯侍附油淹高懂痰第7章数据库设计与编程第7章数据库设计与编程数据装载(续)数据装载(续)4) 转换数据转换数据。数据输入子系统根据数据库。数据输入子系统根据数据库系统的要求,从录入的数据中系统的要求,从录入的数据中抽取抽取有用成有用成分,对其进行分,对其进行分类分类,然后,然后转换转换数据格式。数据格式。抽取、分类和转换数据是数据输入子系统抽取、分类和转换数据是数据输入子系统的主要工作,也是数据输入子系统的复杂的主要工作,也是数据输入子系统的复杂性所在。性所在

273、。5) 综合数据综合数据。数据输入子系统对转换好的。数据输入子系统对转换好的数据根据系统的要求进一步综合成最终数数据根据系统的要求进一步综合成最终数据据。哄哈缀典胞详乐聊靡控忙肪企纂穆防千瘸京嗜涅赂墨不邦份维痛砒连患忿第7章数据库设计与编程第7章数据库设计与编程数据装载(续)数据装载(续)如果数据库是在老的文件系统或数据库系统如果数据库是在老的文件系统或数据库系统的基础上设计的,则数据输入子系统只需要的基础上设计的,则数据输入子系统只需要完成转换数据、综合数据两项工作,直接将完成转换数据、综合数据两项工作,直接将老系统中的数据转换成新系统中需要的数据老系统中的数据转换成新系统中需要的数据格式。

274、格式。为了保证数据能够及时入库,应在数据库物为了保证数据能够及时入库,应在数据库物理设计的同时编制数据输入子系统。理设计的同时编制数据输入子系统。瓮防崭迸饮秤腮兴袖锈氛铺角嗜收档戊盲藻介想享贝蓉待甲挛么藻坝琴图第7章数据库设计与编程第7章数据库设计与编程三、编制与调试应用程序三、编制与调试应用程序v数据库应用程序的设计应该与数据设计并行进数据库应用程序的设计应该与数据设计并行进行。行。v在数据库实施阶段,当数据库结构建立好后,在数据库实施阶段,当数据库结构建立好后,就可以开始编制与调试数据库的应用程序。调就可以开始编制与调试数据库的应用程序。调试应用程序时由于数据入库尚未完成,可先使试应用程序

275、时由于数据入库尚未完成,可先使用模拟数据。用模拟数据。疡响玛农骏耘午连楔监涸秃己挡天烦蚕妆领戳链飞签怜俭绦讥被葱貌闪咀第7章数据库设计与编程第7章数据库设计与编程四、数据库试运行四、数据库试运行v应用程序调试完成,并且已有一小部分数据入库应用程序调试完成,并且已有一小部分数据入库后,就可以开始数据库的试运行。后,就可以开始数据库的试运行。v数据库试运行也称为联合调试,其主要工作包括:数据库试运行也称为联合调试,其主要工作包括:1 1)功能测试功能测试功能测试功能测试:实际运行应用程序,执行对数据:实际运行应用程序,执行对数据:实际运行应用程序,执行对数据:实际运行应用程序,执行对数据库的各种操

276、作,测试应用程序的各种功能。库的各种操作,测试应用程序的各种功能。库的各种操作,测试应用程序的各种功能。库的各种操作,测试应用程序的各种功能。2 2)性能测试性能测试性能测试性能测试:测量系统的性能指标,分析是否:测量系统的性能指标,分析是否:测量系统的性能指标,分析是否:测量系统的性能指标,分析是否符合设计目标符合设计目标符合设计目标符合设计目标。毅胶胃恕助攻究硕悬语赤印骡缠践霜眼企尾骏枫屏玄躁懈距掠贸芯效烽刷第7章数据库设计与编程第7章数据库设计与编程数据库试运行(续)数据库试运行(续)v数据库性能指标的测量数据库性能指标的测量数据库物理设计阶段在评价数据库结构估算时数据库物理设计阶段在评

277、价数据库结构估算时数据库物理设计阶段在评价数据库结构估算时数据库物理设计阶段在评价数据库结构估算时间、空间指标时,作了许多简化和假设,忽略了间、空间指标时,作了许多简化和假设,忽略了间、空间指标时,作了许多简化和假设,忽略了间、空间指标时,作了许多简化和假设,忽略了许多次要因素,因此结果必然很粗糙。许多次要因素,因此结果必然很粗糙。许多次要因素,因此结果必然很粗糙。许多次要因素,因此结果必然很粗糙。数据库试运行则是要实际测量系统的各种性能数据库试运行则是要实际测量系统的各种性能数据库试运行则是要实际测量系统的各种性能数据库试运行则是要实际测量系统的各种性能指标(不仅是时间、空间指标),如果结果

278、不符指标(不仅是时间、空间指标),如果结果不符指标(不仅是时间、空间指标),如果结果不符指标(不仅是时间、空间指标),如果结果不符合设计目标,则需要返回物理设计阶段,调整物合设计目标,则需要返回物理设计阶段,调整物合设计目标,则需要返回物理设计阶段,调整物合设计目标,则需要返回物理设计阶段,调整物理结构,修改参数;有时甚至需要返回逻辑设计理结构,修改参数;有时甚至需要返回逻辑设计理结构,修改参数;有时甚至需要返回逻辑设计理结构,修改参数;有时甚至需要返回逻辑设计阶段,调整逻辑结构。阶段,调整逻辑结构。阶段,调整逻辑结构。阶段,调整逻辑结构。涵告雾螺穷擅丛匪霞揣脾山疵彩揪尤坝翅喜啊襄齿迎补德霍售

279、练孽绕微缓第7章数据库设计与编程第7章数据库设计与编程数据库试运行(续)数据库试运行(续)v数据的分期入库数据的分期入库重新设计物理结构甚至逻辑结构,会导致数据重新设计物理结构甚至逻辑结构,会导致数据重新设计物理结构甚至逻辑结构,会导致数据重新设计物理结构甚至逻辑结构,会导致数据重新入库。重新入库。重新入库。重新入库。由于数据入库工作量实在太大,所以可以采用由于数据入库工作量实在太大,所以可以采用由于数据入库工作量实在太大,所以可以采用由于数据入库工作量实在太大,所以可以采用分期输入数据的方法分期输入数据的方法分期输入数据的方法分期输入数据的方法vv先输入小批量数据供先期联合调试使用先输入小批

280、量数据供先期联合调试使用先输入小批量数据供先期联合调试使用先输入小批量数据供先期联合调试使用vv待试运行基本合格后再输入大批量数据待试运行基本合格后再输入大批量数据待试运行基本合格后再输入大批量数据待试运行基本合格后再输入大批量数据vv逐步增加数据量,逐步完成运行评价逐步增加数据量,逐步完成运行评价逐步增加数据量,逐步完成运行评价逐步增加数据量,逐步完成运行评价侄截滦守邯火札俐浑肌褒吻仇肤芹洪令宿衔雄算日劫佳泌代撕蝴蛮嫩缄拜第7章数据库设计与编程第7章数据库设计与编程数据库试运行(续)数据库试运行(续)v数据库的转储和恢复数据库的转储和恢复在数据库试运行阶段,系统还不稳定,硬、在数据库试运行阶

281、段,系统还不稳定,硬、在数据库试运行阶段,系统还不稳定,硬、在数据库试运行阶段,系统还不稳定,硬、软件故障随时都可能发生软件故障随时都可能发生软件故障随时都可能发生软件故障随时都可能发生系统的操作人员对新系统还不熟悉,误操作系统的操作人员对新系统还不熟悉,误操作系统的操作人员对新系统还不熟悉,误操作系统的操作人员对新系统还不熟悉,误操作也不可避免也不可避免也不可避免也不可避免因此必须做好数据库的转储和恢复工作,尽因此必须做好数据库的转储和恢复工作,尽因此必须做好数据库的转储和恢复工作,尽因此必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏。量减少对数据库的破坏。量减少对数据库的破坏。量减

282、少对数据库的破坏。已开昏胳邹季敬参培利募脖棋佛妆槛她填傅稿澜帧著枪尧耻骏凑恋抛坡许第7章数据库设计与编程第7章数据库设计与编程数据库运行与维护数据库运行与维护v数据库试运行结果符合设计目标后,数据库就可数据库试运行结果符合设计目标后,数据库就可以真正投入运行了。以真正投入运行了。vv数据库投入运行标着开发任务的基本完成和维护数据库投入运行标着开发任务的基本完成和维护数据库投入运行标着开发任务的基本完成和维护数据库投入运行标着开发任务的基本完成和维护工作的开始工作的开始工作的开始工作的开始vv对数据库设计进行评价、调整、修改等维护工作对数据库设计进行评价、调整、修改等维护工作对数据库设计进行评价

283、、调整、修改等维护工作对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。是一个长期的任务,也是设计工作的继续和提高。是一个长期的任务,也是设计工作的继续和提高。是一个长期的任务,也是设计工作的继续和提高。应用环境在不断变化应用环境在不断变化应用环境在不断变化应用环境在不断变化数据库运行过程中物理存储会不断变化数据库运行过程中物理存储会不断变化数据库运行过程中物理存储会不断变化数据库运行过程中物理存储会不断变化科扰母痪锣频溅杠带作赤呸耶魁塑顶茂烧即挖完垛悯鼓磅萝攫题饮琶医深第7章数据库设计与编程第7章数据库设计与编程数据库运行与维护(续)数据库运行与维护(续)

284、v在数据库运行阶段,对数据库经常性的维护工作在数据库运行阶段,对数据库经常性的维护工作主要是由主要是由DBA完成的,包括:完成的,包括: 数据库的转储和恢复数据库的转储和恢复数据库的转储和恢复数据库的转储和恢复转储和恢复是系统正式运行后最重要的维护工转储和恢复是系统正式运行后最重要的维护工转储和恢复是系统正式运行后最重要的维护工转储和恢复是系统正式运行后最重要的维护工作之一。作之一。作之一。作之一。DBADBA要针对不同的应用要求制定不同的转储计要针对不同的应用要求制定不同的转储计要针对不同的应用要求制定不同的转储计要针对不同的应用要求制定不同的转储计划,定期对数据库和日志文件进行备份。划,定

285、期对数据库和日志文件进行备份。划,定期对数据库和日志文件进行备份。划,定期对数据库和日志文件进行备份。一旦发生介质故障,即利用数据库备份及日志一旦发生介质故障,即利用数据库备份及日志一旦发生介质故障,即利用数据库备份及日志一旦发生介质故障,即利用数据库备份及日志文件备份,尽快将数据库恢复到某种一致性状文件备份,尽快将数据库恢复到某种一致性状文件备份,尽快将数据库恢复到某种一致性状文件备份,尽快将数据库恢复到某种一致性状态。态。态。态。南筒赁荐访菇娘耳浴祖费塑柳塘四蜕读二顶樟怯窿热发兄买拣伞蝎涡贮轨第7章数据库设计与编程第7章数据库设计与编程数据库运行与维护(续)数据库运行与维护(续)数据库的安

286、全性、完整性控制数据库的安全性、完整性控制DBADBA必须根据用户的实际需要授予不同的操作权限必须根据用户的实际需要授予不同的操作权限必须根据用户的实际需要授予不同的操作权限必须根据用户的实际需要授予不同的操作权限在数据库运行过程中,由于应用环境的变化,对安全在数据库运行过程中,由于应用环境的变化,对安全在数据库运行过程中,由于应用环境的变化,对安全在数据库运行过程中,由于应用环境的变化,对安全性的要求也会发生变化,性的要求也会发生变化,性的要求也会发生变化,性的要求也会发生变化,DBADBA需要根据实际情况修改需要根据实际情况修改需要根据实际情况修改需要根据实际情况修改原有的安全性控制。原有

287、的安全性控制。原有的安全性控制。原有的安全性控制。由于应用环境的变化,数据库的完整性约束条件也会由于应用环境的变化,数据库的完整性约束条件也会由于应用环境的变化,数据库的完整性约束条件也会由于应用环境的变化,数据库的完整性约束条件也会变化,也需要变化,也需要变化,也需要变化,也需要DBADBA不断修正,以满足用户要求。不断修正,以满足用户要求。不断修正,以满足用户要求。不断修正,以满足用户要求。身动拾向曹篙册薄歪奴阵唇贪伐皇口驾倦亥据巫嗅绳窄崇虾连溢甜料足芹第7章数据库设计与编程第7章数据库设计与编程数据库运行与维护(续)数据库运行与维护(续)数据库性能的监督、分析和改进数据库性能的监督、分析

288、和改进在数据库运行过程中,在数据库运行过程中,在数据库运行过程中,在数据库运行过程中, DBA DBA必须监督系统运行,对必须监督系统运行,对必须监督系统运行,对必须监督系统运行,对监测数据进行分析,找出改进系统性能的方法。监测数据进行分析,找出改进系统性能的方法。监测数据进行分析,找出改进系统性能的方法。监测数据进行分析,找出改进系统性能的方法。vv利用监测工具获取系统运行过程中一系列性能参利用监测工具获取系统运行过程中一系列性能参利用监测工具获取系统运行过程中一系列性能参利用监测工具获取系统运行过程中一系列性能参数的值数的值数的值数的值vv通过仔细分析这些数据,判断当前系统是否处于通过仔细

289、分析这些数据,判断当前系统是否处于通过仔细分析这些数据,判断当前系统是否处于通过仔细分析这些数据,判断当前系统是否处于最佳运行状态最佳运行状态最佳运行状态最佳运行状态vv如果不是,则需要通过调整某些参数来进一步改如果不是,则需要通过调整某些参数来进一步改如果不是,则需要通过调整某些参数来进一步改如果不是,则需要通过调整某些参数来进一步改进数据库性能进数据库性能进数据库性能进数据库性能官饺挤歪紧搅踩输攻仔尸烦污城锐剩安沥恃酗癌沼弦思蜂葫违脂喇梳独惩第7章数据库设计与编程第7章数据库设计与编程数据库运行与维护(续)数据库运行与维护(续)数据库的重组织和重构造数据库的重组织和重构造1)数据库的重组织

290、)数据库的重组织为什么要重组织数据库为什么要重组织数据库为什么要重组织数据库为什么要重组织数据库vv数据库运行一段时间后,由于记录的不断数据库运行一段时间后,由于记录的不断数据库运行一段时间后,由于记录的不断数据库运行一段时间后,由于记录的不断增、删、改,会使数据库的物理存储变坏,增、删、改,会使数据库的物理存储变坏,增、删、改,会使数据库的物理存储变坏,增、删、改,会使数据库的物理存储变坏,从而降低数据库存储空间的利用率和数据从而降低数据库存储空间的利用率和数据从而降低数据库存储空间的利用率和数据从而降低数据库存储空间的利用率和数据的存取效率,使数据库的性能下降。的存取效率,使数据库的性能下

291、降。的存取效率,使数据库的性能下降。的存取效率,使数据库的性能下降。咕紧周蹭巩胖份婪贞贵清蝴妇妊噎诉疤纪冯加试誊钠贞颓湍吵酉材蔬痹药第7章数据库设计与编程第7章数据库设计与编程数据库运行与维护(续)数据库运行与维护(续)重组织的形式重组织的形式vv全部重组织全部重组织全部重组织全部重组织vv部分重组织部分重组织部分重组织部分重组织只对频繁增、删的表进行重组织只对频繁增、删的表进行重组织只对频繁增、删的表进行重组织只对频繁增、删的表进行重组织重组织的目标重组织的目标重组织的目标重组织的目标vv提高系统性能提高系统性能提高系统性能提高系统性能买配靳帛骡弗败骂绢纤拷祁琼理颠墨僳遁业码矩云诸萌诊怀吻贪

292、诲笛姆办第7章数据库设计与编程第7章数据库设计与编程数据库运行与维护(续)数据库运行与维护(续)重组织的工作重组织的工作vv按原设计要求按原设计要求按原设计要求按原设计要求重新安排存储位置重新安排存储位置重新安排存储位置重新安排存储位置回收垃圾回收垃圾回收垃圾回收垃圾减少指针链减少指针链减少指针链减少指针链vv数据库的重组织不会改变原设计的数据逻数据库的重组织不会改变原设计的数据逻数据库的重组织不会改变原设计的数据逻数据库的重组织不会改变原设计的数据逻辑结构和物理结构辑结构和物理结构辑结构和物理结构辑结构和物理结构帆酒马织魁畴勘谚健蛹揪交浴浆厨猾谦格漏肢噎须减犀幽费惧馏烯锰吗彩第7章数据库设计

293、与编程第7章数据库设计与编程数据库运行与维护(续)数据库运行与维护(续)DBMS一般都提供了供重组织数据库使用的一般都提供了供重组织数据库使用的实用程序,帮助实用程序,帮助DBA重新组织数据库。重新组织数据库。听负铸环辫婪迷症付逛丸勿死衬认剩衬晨诵鄂锄仑汲慷刺狗攘贴姑芹曾稍第7章数据库设计与编程第7章数据库设计与编程数据库运行与维护(续)数据库运行与维护(续)2)数据库的重构造)数据库的重构造为什么要进行数据库的重构造为什么要进行数据库的重构造为什么要进行数据库的重构造为什么要进行数据库的重构造vv数据库应用环境发生变化,会导致实体及数据库应用环境发生变化,会导致实体及数据库应用环境发生变化,

294、会导致实体及数据库应用环境发生变化,会导致实体及实体间的联系也发生相应的变化,使原有实体间的联系也发生相应的变化,使原有实体间的联系也发生相应的变化,使原有实体间的联系也发生相应的变化,使原有的数据库设计不能很好地满足新的需求的数据库设计不能很好地满足新的需求的数据库设计不能很好地满足新的需求的数据库设计不能很好地满足新的需求增加新的应用或新的实体增加新的应用或新的实体增加新的应用或新的实体增加新的应用或新的实体取消某些已有应用取消某些已有应用取消某些已有应用取消某些已有应用改变某些已有应用改变某些已有应用改变某些已有应用改变某些已有应用雌东螺戒擦申化畔震函呵厘虱尘杂桩进悯被瓮狄饭跳失歇甩释烩

295、浊晾牛幸第7章数据库设计与编程第7章数据库设计与编程数据库运行与维护(续)数据库运行与维护(续)数据库重构造的主要工作数据库重构造的主要工作vv根据新环境调整数据库的模式和内模式根据新环境调整数据库的模式和内模式根据新环境调整数据库的模式和内模式根据新环境调整数据库的模式和内模式增加新的数据项增加新的数据项增加新的数据项增加新的数据项改变数据项的类型改变数据项的类型改变数据项的类型改变数据项的类型改变数据库的容量改变数据库的容量改变数据库的容量改变数据库的容量增加或删除索引增加或删除索引增加或删除索引增加或删除索引修改完整性约束条件修改完整性约束条件修改完整性约束条件修改完整性约束条件轿撩瘦逻

296、酬板汞版茫庙淫民申再焉元剔缘眉坎散煮轮骂棱乙毗是百汪恬修第7章数据库设计与编程第7章数据库设计与编程数据库运行与维护(续)数据库运行与维护(续)重构造数据库的程度是有限的重构造数据库的程度是有限的vv若应用变化太大,已无法通过重构数据库若应用变化太大,已无法通过重构数据库若应用变化太大,已无法通过重构数据库若应用变化太大,已无法通过重构数据库来满足新的需求,或重构数据库的代价太来满足新的需求,或重构数据库的代价太来满足新的需求,或重构数据库的代价太来满足新的需求,或重构数据库的代价太大,则表明现有数据库应用系统的生命周大,则表明现有数据库应用系统的生命周大,则表明现有数据库应用系统的生命周大,

297、则表明现有数据库应用系统的生命周期已经结束,应该重新设计新的数据库系期已经结束,应该重新设计新的数据库系期已经结束,应该重新设计新的数据库系期已经结束,应该重新设计新的数据库系统,开始新数据库应用系统的生命周期了。统,开始新数据库应用系统的生命周期了。统,开始新数据库应用系统的生命周期了。统,开始新数据库应用系统的生命周期了。吟白闺翰山讹仲困缉樊瞧棋孜隔菩玛肪耙企芹吝臃酗燎愤欺梳程净蠕敲涩第7章数据库设计与编程第7章数据库设计与编程数据库设计小结数据库设计小结v数据库的设计过程数据库的设计过程需求分析需求分析需求分析需求分析概念结构设计概念结构设计概念结构设计概念结构设计逻辑结构设计逻辑结构设

298、计逻辑结构设计逻辑结构设计物理设计物理设计物理设计物理设计实施实施实施实施运行维护运行维护运行维护运行维护设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。雅蛇球氖弥索目援畴缩诊囱乖逗惑抱遍咳搁芽淡氮庄证咎申隋贰滑溃谭钝第7章数据库设计与编程第7章数据库设计与编程小结(续)小结(续)v数据库各级模式的形成数据库各级模式的形成数据库的各级模式是在设计过程中逐步形成数据库的各级模式是在设计过程中逐步形成数据库的各级模式是在设计过程中逐步形成数据库的各级模式是在设计过程中逐步形成的的的的需求分析阶段综合各个用户的应用需求(现需求分

299、析阶段综合各个用户的应用需求(现需求分析阶段综合各个用户的应用需求(现需求分析阶段综合各个用户的应用需求(现实世界的需求)。实世界的需求)。实世界的需求)。实世界的需求)。概念设计阶段形成独立于机器特点、独立于概念设计阶段形成独立于机器特点、独立于概念设计阶段形成独立于机器特点、独立于概念设计阶段形成独立于机器特点、独立于各个各个各个各个DBMSDBMS产品的产品的产品的产品的概念模式概念模式概念模式概念模式(信息世界模型)(信息世界模型)(信息世界模型)(信息世界模型),用,用,用,用E-RE-R图来描述。图来描述。图来描述。图来描述。袍渔晕站置戊挞浓乾皂垢烤桥胆届弱盅泼坏大目芯峙己橇磷搅考

300、拐队今织第7章数据库设计与编程第7章数据库设计与编程小结(续)小结(续)在逻辑设计阶段将在逻辑设计阶段将E-R图转换成具体的数据库图转换成具体的数据库产品支持的数据模型如关系模型,形成数据产品支持的数据模型如关系模型,形成数据库库逻辑模式逻辑模式。然后根据用户处理的要求,安。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要全性的考虑,在基本表的基础上再建立必要的视图(的视图(VIEW)形成数据的)形成数据的外模式外模式。在物理设计阶段根据在物理设计阶段根据DBMS特点和处理的需特点和处理的需要,进行物理存储安排,设计索引,形成数要,进行物理存储安排,设计索引,形成数据库据库内模式内模式。勿殉掳夏阿击括匠丑摸郡欺岛典沧胚具片奴猩匹瓶蔡爷耕镣钧香淮脖抱忌第7章数据库设计与编程第7章数据库设计与编程小结(续)小结(续)v整个数据库设计过程体现了结构特征与行整个数据库设计过程体现了结构特征与行为特征的紧密结合。为特征的紧密结合。蜜歧牡牲钵量路凄例莫掸寂羽蚜避课铜焉袁伞纪澜乃攻膳膝贫磺及疫拷杖第7章数据库设计与编程第7章数据库设计与编程作业作业vP234,119,其中,其中18、19写在作业上。写在作业上。娱脆拷倾档泵署泊熟琉寓篮辆盆类仑戮愤抹政辛屡赋什奔级遣埋抉功物继第7章数据库设计与编程第7章数据库设计与编程

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号