《数据库系统的分析与设计课件》由会员分享,可在线阅读,更多相关《数据库系统的分析与设计课件(66页珍藏版)》请在金锄头文库上搜索。
1、数据库技术及应用数据库技术及应用第六章第六章 数据库系统的分析与设计数据库系统的分析与设计目录目录第一节第一节 数据库设计的概述数据库设计的概述 第二节第二节 需求分析需求分析第三节第三节 数据库概念结构设计数据库概念结构设计第四节第四节 数据库逻辑设计数据库逻辑设计第五节第五节 数据库设计的概述数据库设计的概述 第六节第六节 数据库的实施和维护数据库的实施和维护 16.1 数据库设计的概述 6.1.1数据库设计的任务和内容6.1.1.1 数据库设计的任务26.1.1.2 数据库设计的内容数据库设计的内容1数据库的结构设计数据库的结构设计2数据库的行为设计数据库的行为设计6.1.2数据库设计的
2、方法数据库设计的方法3现实世界现实世界数据分析数据分析用户业务活动分析用户业务活动分析概念设计概念设计功能模型功能模型逻辑设计逻辑设计事务设计事务设计物理设计物理设计程序说明程序说明子模式设计子模式设计应用程序设计应用程序设计加载试验数据加载试验数据程序编码调试程序编码调试性能考核性能考核满意满意? ?是是否否加载数据库加载数据库运行和维护运行和维护图图6-2 数据库设计的全过程数据库设计的全过程46.1.3数据库设计的步骤数据库设计的步骤数据库的运行与维护数据库的运行与维护1需求分析需求分析数据库的实施数据库的实施物理结构设计物理结构设计概念结构设计概念结构设计逻辑结构设计逻辑结构设计Tex
3、t5图图6-3 数据库执行过程数据库执行过程 不满意不满意 用户需求收集合分析用户需求收集合分析 设计概念结构设计概念结构 设计逻辑结构设计逻辑结构 数据模型优化数据模型优化 设计物理结构设计物理结构 评价设计,性能预测评价设计,性能预测 物理实现物理实现 实验性运行实验性运行 使用、维护数据库使用、维护数据库 需求分需求分 析阶段析阶段 概念设概念设 计阶段计阶段 逻辑设逻辑设 计阶段计阶段 物理设物理设 计阶段计阶段 数据库数据库 实施阶段实施阶段 数据库运数据库运 行、维护行、维护 不满意不满意 不满意不满意 数据库数据库 结构设计结构设计 程序结程序结 构设计构设计 6v数据库设计的四
4、个阶段及其任务:数据库设计的四个阶段及其任务: (1)(1)用户需求分析:用户需求分析:通过通过详细调查详细调查,充分了解原,充分了解原系统的工作概况,明确用户的各种需求,确定新系统的工作概况,明确用户的各种需求,确定新系统的功能。系统的功能。(数据流程图与数据字典)(数据流程图与数据字典)。 (2 2)概念结构设计:)概念结构设计:根据用户需求设计数据库的根据用户需求设计数据库的概念模型概念模型(用(用E-RE-R图表示)图表示)。 (3)(3)逻辑结构设计逻辑结构设计:将概念模型转换成:将概念模型转换成DBMSDBMS支持支持的数据模型的数据模型(如关系模型的二维表)(如关系模型的二维表)
5、。 (4)(4)物理结构设计物理结构设计:在具体设备上选定合适的存:在具体设备上选定合适的存储结构和存取方法。储结构和存取方法。76.1.4 数据库设计的工具数据库设计的工具 1. Oracle公司的公司的Oracle Designer 2. Sybase公司的公司的Power Designer 3. CA公司的公司的ERwin 4北大青鸟公司的青鸟北大青鸟公司的青鸟CASE工具工具6.2需求分析需求分析6.2.1需求分析的任务需求分析的任务6.2.2需求分析的方法需求分析的方法 86.2.2.1数据流图数据流图 数数据据流流图图(Data Flow Diagram,DFD),数数据据流流描描
6、述述系系统统中中数数据据流流动动的的过过程程,反反映映的的是是加加工工处处理理的的对对象象。数数据据流流图图主主要要成成分分有有四四种:数据流、数据存储、加工、数据的源点和终点。种:数据流、数据存储、加工、数据的源点和终点。6.2.2.2数据字典数据字典 数据字典通常包括数据项、数据结构、数据流、数据存储和处理数据字典通常包括数据项、数据结构、数据流、数据存储和处理5个个部分部分: 数据项描述数据项名,数据项含义说明,别名,数据类型,长度,数据项描述数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系取值范围,取值含义,与其他数据项的逻辑关系数据结构描述数
7、据结构名,含义说明,组成:数据项和数据结数据结构描述数据结构名,含义说明,组成:数据项和数据结构构数据流描述数据流名,含义说明,数据流来源,数据流去向,组数据流描述数据流名,含义说明,数据流来源,数据流去向,组成:数据结构,平均流量,高峰期流量成:数据结构,平均流量,高峰期流量数据存储描述数据存储名,含义说明,编号,流入的数据流,流数据存储描述数据存储名,含义说明,编号,流入的数据流,流出的数据流,组成:数据结构,数据量,存取频度,存取方式出的数据流,组成:数据结构,数据量,存取频度,存取方式处理过程描述处理过程描述=处理过程名,说明,输入:处理过程名,说明,输入:数据流数据流,输出:,输出:
8、数数据流据流,处理:,处理:简要说明简要说明9106.3 数据库概念结构设计数据库概念结构设计6.3.1概念结构设计的方法概念结构设计的方法6.3.1.1 实体联系模型实体联系模型 概念模型用于信息世界的建模,是现实世界到信息世界概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。工具,也是数据库设计人员和用户之间进行交流的语言。所以概念模型一方面应该具有较强的语义表达能力,能够所以概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中
9、的各种语义知识,另一方面还应方便、直接地表达应用中的各种语义知识,另一方面还应该简单、清晰、易于用户理解。最常用的是实体联系方该简单、清晰、易于用户理解。最常用的是实体联系方法法(EntityRelationship Approach),该方法用,该方法用E-R图来描述现实世界的概念模型,称为图来描述现实世界的概念模型,称为实体联系模型实体联系模型(EntityRelationship Model)简称简称E-R模型。模型。 E-R模型的基本元素是:实体、联系和属性模型的基本元素是:实体、联系和属性。 11v1.实体实体 现实世界的可识别对象。现实世界的可识别对象。 在在E-R模型中,实体用矩
10、形表示,矩形框内写模型中,实体用矩形表示,矩形框内写明实体名。明实体名。v2.属性:对象的特征属性:对象的特征单值属性、多值属性单值属性、多值属性在在E-R模型中,属性用椭圆形表示,并用无向边模型中,属性用椭圆形表示,并用无向边将其与相应的实体联系起来。将其与相应的实体联系起来。v3.联系联系 在在E-R模型中,联系用菱形表示,菱形框内模型中,联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标注上联系的类型起来,同时在无向边旁标注上联系的类型(1:1,1:n或或m:n)。 两个不同实体集之间存在一对一、一对多两个不同实
11、体集之间存在一对一、一对多和多对多的联系类型和多对多的联系类型12v一对一联系一对一联系:指实体集:指实体集A A中的每一个实体最多中的每一个实体最多(也可没有)只与实体集(也可没有)只与实体集B B中的一个实体相联中的一个实体相联系,反之亦然,称实体集系,反之亦然,称实体集A A与实体集与实体集B B具有一对具有一对一联系。记为一联系。记为1:11:1。v一对多联系一对多联系:如果实体集:如果实体集A A中的每一个实体可中的每一个实体可与实体集与实体集B B中的多个实体相联系中的多个实体相联系, ,反之,对于实反之,对于实体集体集B B中的每一个实体,实体集中的每一个实体,实体集A A中至多
12、只有一中至多只有一个实体与之联系,则称实体集个实体与之联系,则称实体集A A与实体集与实体集B B具有具有一对多联系。记为一对多联系。记为1:n1:n。v多对多联系多对多联系:如果对于实体集:如果对于实体集A A中的每一个实中的每一个实体,实体集体,实体集B B中的多个实体与之联系中的多个实体与之联系, ,反之,对反之,对于实体集于实体集B B中的每一个实体,实体集中的每一个实体,实体集A A中也有多中也有多个实体与之联系,则称实体集个实体与之联系,则称实体集A A与实体集与实体集B B具有具有多对多联系。记为多对多联系。记为m: nm: n。 13 例如例如:图中表示图中表示两个不同实体集之
13、间的联系两个不同实体集之间的联系。图 两个不同实体集之间的联系14v关键字:某一属性或属性组的值能唯一的某一属性或属性组的值能唯一的标识一个元组,则称该属性或属性组为关标识一个元组,则称该属性或属性组为关键字键字v域:属性的取值范围。属性的取值范围。15E-R模型 举例 【例1.1】学校由若干个系,每个系有若学校由若干个系,每个系有若干名教师和学生;每个教师可以担任若干名教师和学生;每个教师可以担任若干门课程,并参加多项项目;每个学生干门课程,并参加多项项目;每个学生可以同时选修多门课程。请设计某学校可以同时选修多门课程。请设计某学校的教学管理的的教学管理的E-R模型,要求给出每个模型,要求给
14、出每个实体、联系的属性。实体、联系的属性。 解:某学校的教学管理的某学校的教学管理的E-R模型应该模型应该有五个实体:系、教师、学生、项目、有五个实体:系、教师、学生、项目、课程。课程。16v(1)设计各实体属性如下:)设计各实体属性如下: 系(系号,系名,主任名)系(系号,系名,主任名) 教师(教师号,教师名,职称)教师(教师号,教师名,职称) 学生(学号,姓名,年龄,性别)学生(学号,姓名,年龄,性别) 项目(项目号,名称,负责人)项目(项目号,名称,负责人) 课程(课程号,课程名,学分)课程(课程号,课程名,学分)v(2)各实体之间的联系有)各实体之间的联系有:教师担任课程的教师担任课程
15、的1:n“任课任课”联系;联系; 教师参加项目的教师参加项目的n:m“参加参加”联系;联系; 学生选修课程的学生选修课程的n:m “选修选修”联系;联系; 教师、学生与系之间的所属关系的教师、学生与系之间的所属关系的1:n:m “领领 导导”联系。联系。 其中其中“参加参加”联系有一个排名属性,联系有一个排名属性,“选修选修”联系有一个成绩属性。联系有一个成绩属性。 通过上述分析,某学校的教学管理的通过上述分析,某学校的教学管理的E-R模型如图模型如图1-18所示。所示。 举例举例17系系系系 号号系系 名名主任名主任名 学学 号号姓姓 名名年龄年龄性别性别学生学生教教 师师教师号教师号教师名
16、教师名职职 称称项项 目目名名 称称负责人负责人项目号项目号课课 程程课程号课程号课程名课程名学学 分分实体及其属性图举举 例例18 n 1 n n 1 n 系系系系 号号系系 名名主任名主任名 学学 号号姓姓 名名年龄年龄性别性别教教 师师教师号教师号教师名教师名职职 称称课课 程程课程号课程号课程名课程名学学 分分项项 目目名名 称称负责人负责人排排 名名成绩成绩学生学生图图 1-18 学校教学管理学校教学管理E-R模型模型项目号项目号领导领导选修选修参加参加任任 课课mnmmn196.3.2概念结构设计的步骤概念结构设计的步骤第一步是局部视图抽象设计第一步是局部视图抽象设计第二步是视图第
17、二步是视图集成集成。6.3.2.1局局部部视视图图抽抽象象设计设计常用的有三种抽象常用的有三种抽象:(1)分类分类(Classification)(2)概括概括(Generalization)(3)聚集聚集(Aggregation)20学生学生张红张红 吴大伟吴大伟图图6-17 分类分类老师老师王华王华李超李超借阅人借阅人学生学生图图6- 18 概概括括老师老师学生学生图图6- 19 聚聚集集学号学号姓名姓名班级班级21注意注意:(1)属性不能再有需要描)属性不能再有需要描述的性质。即属性必须是述的性质。即属性必须是不可分的数据项,不能再不可分的数据项,不能再由另一些属性组成。由另一些属性组成
18、。(2)属性不能与其他实体)属性不能与其他实体具有联系。联系只发生在具有联系。联系只发生在实体之间。实体之间。设计分图的步骤设计分图的步骤 :1.选择局部应用选择局部应用2.逐一设计图逐一设计图22v 1选择局部应用选择局部应用v 根据应用系统的具体情况,在多层的数据流根据应用系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,作为设计图中选择一个适当层次的数据流图,作为设计分分E-R图的出发点。图的出发点。v 往往往往以以中中层层数数据据流流图图作作为为设设计计分分E-R图图的的依依据据(如图所示)。(如图所示)。2324v2逐一设计分逐一设计分E-R图图v选选择择好好局局部部应应
19、用用之之后后,就就要要对对每每个个局局部部应应用用逐逐一设计分一设计分E-R图。图。v在现实世界中具体的应用环境常常对实体和属在现实世界中具体的应用环境常常对实体和属性已经作了大体的自然的划分。在系统分析阶性已经作了大体的自然的划分。在系统分析阶段得到的段得到的“数据存储数据存储”、数据字典中的、数据字典中的“数据数据结构结构”和和“数据流数据流”都是若干属性有意义的聚都是若干属性有意义的聚合,就体现了这种划分。可以先从这些内容出合,就体现了这种划分。可以先从这些内容出发定义发定义E-R图。图。v为为了了简简化化E-R图图的的处处置置,现现实实世世界界的的事事物物能能作作为属性对待的,尽量作为
20、属性对待为属性对待的,尽量作为属性对待。252627图图图图 处理订单处理订单处理订单处理订单28图图图图 开发票开发票开发票开发票29图图图图 支付过账支付过账支付过账支付过账30v 分分析析数数据据流流图图和和数数据据字字典典,知知道道整整个个系系统统功功能能围围绕绕了了“订订单单”和和“应应收收账账款款”的的处处理理。数数据据结结构构中中订订单单、顾顾客客、顾顾客客应应收收账账目目用用得得最最多多,它它们们是是许许多多子子功功能能和和数数据据流流共共享享的的数数据,因此先设计该分据,因此先设计该分E-R图的草图。图的草图。3132v 图图中中在在订订单单实实体体与与产产品品实实体体之之间
21、间的的问问号号“?”表表示示还还不不能能确确定定这这两两个个实体之间的联系类型。实体之间的联系类型。v 然然后后参参照照第第二二层层数数据据流流图图和和数数据据字字典典中中的的详详尽尽描描述述,遵遵循循前前面面给给出出的的两个准则,进行如下调整:两个准则,进行如下调整:33v(1)每张订单由订单号、若干头信息和订单)每张订单由订单号、若干头信息和订单细节组成。订单细节又有订货的零件号、数量细节组成。订单细节又有订货的零件号、数量等来描述。按照准则(等来描述。按照准则(2),订单细节就不能),订单细节就不能作订单的属性处理而应该上升为实体。作订单的属性处理而应该上升为实体。v(2)一张订单可以订
22、若干产品,所以订单与)一张订单可以订若干产品,所以订单与订单细节两个实体之间是订单细节两个实体之间是1 n的联系。的联系。v(3)原订单和产品的联系实际上是订单细节)原订单和产品的联系实际上是订单细节和产品的联系。每条订货细节对应一个产品描和产品的联系。每条订货细节对应一个产品描述,订单处理时从中获得当前单价、产品重量述,订单处理时从中获得当前单价、产品重量等信息。等信息。34v(4)“发票清单发票清单”是一个数据存储,无是一个数据存储,无须作为实体加入分须作为实体加入分E-R图。这里的数据图。这里的数据存储对应手工凭证,发票上的信息在开存储对应手工凭证,发票上的信息在开具发票同时已及时存入应
23、收账款中了。具发票同时已及时存入应收账款中了。v(5)工厂对大宗订货给予优惠。每种产)工厂对大宗订货给予优惠。每种产品都规定了不同订货数量的折扣,应增品都规定了不同订货数量的折扣,应增加一个加一个“折扣规则折扣规则”实体存放这些信息,实体存放这些信息,而不应把它们放在产品描述实体中。而不应把它们放在产品描述实体中。v最后得到分最后得到分E-R图如图所示。图如图所示。35图图图图 销售管理子系统的分销售管理子系统的分销售管理子系统的分销售管理子系统的分E-RE-R图图图图36v对每个实体定义的属性如下:对每个实体定义的属性如下:v顾客:顾客:顾客号顾客号,顾客名,地址,电话,顾客名,地址,电话,
24、信贷状况,账目余额信贷状况,账目余额v定单:定单:订单号订单号,顾客号,订货项数,订,顾客号,订货项数,订货日期,交货日期,工种号,生产地点货日期,交货日期,工种号,生产地点v定单细则:定单细则:订单号,细则号订单号,细则号,零件号,零件号,订货数,金额订货数,金额37v应收账款:应收账款:顾客号,订单号顾客号,订单号,发票号,发票号,应收金额,支付日期,支付金额,应收金额,支付日期,支付金额,v当前余额,货款限额当前余额,货款限额v产品描述:产品描述:产品号产品号,产品名,单价,重,产品名,单价,重量量v折扣规则:折扣规则:产品号,订货量产品号,订货量,折扣,折扣v注意:注意:为了节省篇幅,
25、实体与属性的关为了节省篇幅,实体与属性的关系没有用图形表示,实体的标识码用下系没有用图形表示,实体的标识码用下横线划出。横线划出。386.3.3.2视图的集成视图的集成集成局部集成局部ER图时都需要两步:图时都需要两步:(1)合并局部合并局部ER图,消除冲突,生成初步图,消除冲突,生成初步ER图图-属性冲突、命名属性冲突、命名冲突、结构冲突冲突、结构冲突1属性冲突属性冲突(1)属性域冲突。)属性域冲突。(2)属性取值单位冲突。)属性取值单位冲突。2命名冲突命名冲突(1)同名异义。)同名异义。(2)异名同义)异名同义3结构冲突结构冲突(2)修改与重构,生成基本图。修改与重构,生成基本图。基本基本
26、E-R图图初步初步E-R图图分析分析规范化理论规范化理论合并合并(消除冲突)(消除冲突)修改与重构修改与重构(消消除除不不必必要要的冗余)的冗余)0分分E-R图图图图6-22 视图集成视图集成39例例1 某大学关于学生课程管理的数据库系统系统,在学校某大学关于学生课程管理的数据库系统系统,在学校机构中有教务处和研究生院两个管理学生的部门,在设计机构中有教务处和研究生院两个管理学生的部门,在设计E-R模型图时,可分别设计局部的模型图时,可分别设计局部的E-R模型图,如图模型图,如图6-24和图和图6-25所示。所示。学生学生选课选课课程课程教师教师必必 /选选学学期期成绩成绩课课 程程号号学学分
27、分学学号号奖奖 学学金金出出 生生 地地点点系系别别何何 时时 入入学学出出 生生 日日期期姓姓名名性性别别NM图图6-24 教务处关于学生的视图教务处关于学生的视图40图图6-25 研究生院关于研究生的视图研究生院关于研究生的视图学生学生选课选课教师教师是是否否学学位位课课学学期期成绩成绩课课 程程号号学学分分学学号号硕硕/博博出生地点出生地点系系别别入学时间入学时间出生日期出生日期姓姓名名性性别别N导师导师课程课程41选选课课成成绩绩教师教师学期学期课课 程程号号学分学分学学号号入入学学时时间间系系别别出出 生生 日日期期出出 生生 地地点点姓姓名名性性别别奖奖学学金金是是 否否 学学位课
28、位课选选课课成成绩绩导导师师硕硕 /博博课程课程学生学生选选 /必必本本科科生生课课程程研研究究生生课课程程大大学学生生研研究究生生图图626 两个视图集成两个视图集成42 中国计量学院作业一、画出下列题目的作业一、画出下列题目的ER图?图?图书:属性有“书名、类别、出版社、价格”;作者:属性有“身份证号、姓名、出生地”;图书和作者的关系:写作关系“多对多”,其属性有“定稿时间”。43作业一讲解作业一讲解 图书图书作者作者写作写作出版社出版社类别类别页数页数ISBNISBN书名书名姓名姓名出生地出生地身份证号身份证号定稿时间定稿时间价格价格包含实体集包含实体集“ “图书图书” ”和和“ “作者
29、作者” ”的的ERER图图 图书:属性有图书:属性有“书名、类别、出版社、价格书名、类别、出版社、价格”;作者:属性有作者:属性有“身份证号、姓名、出生地身份证号、姓名、出生地”;图书和作者的关系:写作关系图书和作者的关系:写作关系“多对多多对多”,其属性有,其属性有“定稿时间定稿时间”。nm446.4数据库逻辑设计数据库逻辑设计6.4.1逻辑结构设计的任务和步骤逻辑结构设计的任务和步骤概念模型向逻辑模型的转换过程通常分为三步进行:概念模型向逻辑模型的转换过程通常分为三步进行:(1)将概念模型转换为将概念模型转换为般的数据模型般的数据模型(关系、网关系、网状或层次状或层次)。(2)将一般的数据
30、模型转换为特定的将一般的数据模型转换为特定的DBMS所支所支持的数据模型。持的数据模型。(3)对数据模型进行优化。对数据模型进行优化。 45ER图向关系数据模型的转换规则图向关系数据模型的转换规则v规则一:规则一:一个实体转换为一个关系,实体一个实体转换为一个关系,实体的名字作为关系名,实体的属性作为关系的名字作为关系名,实体的属性作为关系的属性,实体的码就是关系的码。的属性,实体的码就是关系的码。v规则二:规则二:实体间的联系一般对应一个关系,实体间的联系一般对应一个关系,联系名作为关系名,联系名作为关系名,不带有属性的联系可不带有属性的联系可以去掉。以去掉。 46转换举例转换举例仓库号仓库
31、号仓库号仓库号地点地点地点地点面积面积面积面积仓库仓库仓库仓库货号货号货号货号品名品名品名品名价格价格价格价格产品产品产品产品存放存放存放存放1 1 1 11 1n n n nn n仓库(仓库(仓库号仓库号,地点,面积),地点,面积)产品(产品(货号货号,品名,价格,),品名,价格,)数量数量数量数量存放(仓库号存放(仓库号, ,货号货号,数量),数量)47对于实体间的联系有以下3种不同的情况:v(1)1:1联系:联系: 可以转换为一个独立的关系,此可以转换为一个独立的关系,此时与该联系相连的时与该联系相连的各实体的码以及联系本各实体的码以及联系本身的属性身的属性均转换为关系的属性,均转换为关
32、系的属性,每个实体每个实体的码的码均是该关系的候选码。均是该关系的候选码。 也可以与任意一端实体对应的关也可以与任意一端实体对应的关系合并,此时该关系的属性中应系合并,此时该关系的属性中应加入另一加入另一实体的码以及联系本身的属性实体的码以及联系本身的属性。48v1:1的联系合并的例子的联系合并的例子厂长号厂长号厂长号厂长号姓名姓名姓名姓名年龄年龄年龄年龄厂长厂长厂长厂长厂号厂号厂号厂号厂名厂名厂名厂名地点地点地点地点工厂工厂工厂工厂管理管理管理管理1 1 1 11 1 1 1厂长(厂长(厂长号厂长号,厂号厂号,姓名,年龄,姓名,年龄,任期年数任期年数)工厂(工厂(厂号厂号,厂名,地点),厂名
33、,地点)思思考考?任期年数任期年数任期年数任期年数49对于实体间的联系有以下几种不同的情况:v(2)1:N联系:可以转换为一个独立的关系,此时与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N端实体的码。 也可以与N端实体对应的关系合并。仓库仓库仓库仓库存放存放存放存放货号货号货号货号品名品名品名品名价格价格价格价格产品产品产品产品数量数量数量数量1 1 1 11 1n n n nn n仓库号仓库号仓库号仓库号地点地点地点地点面积面积面积面积50课堂思考?课堂思考?v1:N联系的例子联系的例子仓库号仓库号仓库号仓库号地点地点地点地点面积面积面积面积仓库仓库仓库仓库货号
34、货号货号货号品名品名品名品名价格价格价格价格产品产品产品产品存放存放存放存放1 1 1 11 1n n n nn n仓库(仓库(仓库号仓库号,地点,面积),地点,面积)产品(产品(货号货号,品名,价格,),品名,价格,)数量数量数量数量存放(仓库号存放(仓库号, ,货号货号,数量),数量)仓库(仓库(仓库号仓库号,地点,面积),地点,面积)产品(产品(货号货号,仓库号仓库号, ,品名,价格,品名,价格,数量数量)1:N联系合并到联系合并到N端:端:51对于实体间的联系有以下几种不同的情况:v(3)n:m联系 转换为一个独立的关系,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而
35、关系的码为各实体码的组合。v思考:学习学习课程号课程号 课程名课程名 学时数学时数学生学生课程课程n n n n成绩成绩学号学号姓名姓名年龄年龄n n n n52学习学习课程号课程号 课程名课程名 学时数学时数n n n n学生学生课程课程n n n n成绩成绩学号学号姓名姓名年龄年龄学生(学生(学号学号,姓名,年龄),姓名,年龄)课程(课程(课程号课程号,课程名,学时数),课程名,学时数)学习(学习(学号学号,课程号课程号,成绩),成绩)53(4)多元联系。多元联系。ER图见图图见图6-40。在多元联系中,如果、这。在多元联系中,如果、这些基数最多只有一个大于,则可以由一个实体的主键识别一个
36、多元些基数最多只有一个大于,则可以由一个实体的主键识别一个多元联系,在转换时可将联系合并在此实体的关系中。但这种情况是不多联系,在转换时可将联系合并在此实体的关系中。但这种情况是不多见的,因而多元联系一般转换成下面的关系模式:见的,因而多元联系一般转换成下面的关系模式:R1 (k,a)R2 (h,b)R3 (j,c)R4 (k,h,j,s)这里这里k,h,j构成复合主键,构成复合主键,k,h,j分别是外键。分别是外键。E1rS kahbE2E3Pjc图6-40 多元联系54(5)自联系自联系:自联系表示的是同一实体类的一部分与自联系表示的是同一实体类的一部分与另一部分实体之间的联系。另一部分实
37、体之间的联系。 嵌套的转换嵌套的转换:嵌套可以转换成联系,再由联系可嵌套可以转换成联系,再由联系可转换成关系模式。转换成关系模式。 556.4.3数据模型的优化数据模型的优化关关系系数数据据模模型型的的优优化化通通常常以以关关系系的的规规范范化化理理论论为为指指导导,其其目目的的是是适适当当修修改改和和调调整整数数据据棋棋型型的的结结构构,减减少少冗冗余余及及各各种种异异常常,改改善善完完整整性性、一一致致性性和和存存储储效效率率,节节省省存存储储空空间间,方方便便数数据据库库的的管管理理。常常用的方法包括规范化和分解用的方法包括规范化和分解 6.4.4外模式设计外模式设计在定义外模式时应当考
38、虑如下问题:在定义外模式时应当考虑如下问题:(1)使用更符合用户习惯的别名使用更符合用户习惯的别名(2)针对不同级别的用户定义不同的视图,以保证数据的安全针对不同级别的用户定义不同的视图,以保证数据的安全(3)简化用户对系统的使用简化用户对系统的使用566.5数据库物理设计数据库物理设计数据库的物理设计通常分为以下两个步骤:数据库的物理设计通常分为以下两个步骤: 确定数据库的物理结构,在关系数据库中主要是存储结构和存储方法;确定数据库的物理结构,在关系数据库中主要是存储结构和存储方法; 对物理结构进行评价,评价的重点是时间和空间的效率。对物理结构进行评价,评价的重点是时间和空间的效率。6.5.
39、1 确定数据库的物理结构确定数据库的物理结构1确定数据的存储结构确定数据的存储结构2设计数据的存取路径设计数据的存取路径3确定数据库的存储位置确定数据库的存储位置4 确定系统配置确定系统配置 6.5.2 评价物理结构评价物理结构(1) 查询和响应时间。响应时间是从查询开始到查询结果开始显示之间所经历查询和响应时间。响应时间是从查询开始到查询结果开始显示之间所经历的时间。一个好的应用程序设计可以减少时间和时间。的时间。一个好的应用程序设计可以减少时间和时间。(2) 更新事务的开销。主要是修改索引、重写物理块或文件以及写校验等方面更新事务的开销。主要是修改索引、重写物理块或文件以及写校验等方面的开
40、销。的开销。(3) 生成报告的开销。主要包括索引、重组、排序和结果显示的开销。生成报告的开销。主要包括索引、重组、排序和结果显示的开销。(4) 主存储空间的开销。包括程序和数据所占用的空间。一般对数据库设计者主存储空间的开销。包括程序和数据所占用的空间。一般对数据库设计者来说,可以对缓冲区作适当的控制,包括缓冲区个数和大小。来说,可以对缓冲区作适当的控制,包括缓冲区个数和大小。(5) 辅助存储空间的开销。辅助存储空间分为数据块和索引块两种,设计者可辅助存储空间的开销。辅助存储空间分为数据块和索引块两种,设计者可以控制索引块的大小、索引块的充满度等。以控制索引块的大小、索引块的充满度等。 576
41、.6 数据库的实施和维护数据库的实施和维护6.6.1 数据库的实施数据库的实施6.6.1.1建立数据库建立数据库6.6.1.2. 测试测试6.6.2 数据库的维护数据库的维护在数据库运行阶段,对数据库经常性的维护工作是由在数据库运行阶段,对数据库经常性的维护工作是由DBA完成的。完成的。主要有:主要有:1. 数据库的转储和恢复数据库的转储和恢复2. 数据库的安全性和完整性控制数据库的安全性和完整性控制3. 数据库性能的监控、分析和改造数据库性能的监控、分析和改造4. 数据库的重组和重构数据库的重组和重构58总结:数据库设计的步骤v数据库设计是在选定数据库管理系统基础上建立数数据库设计是在选定数
42、据库管理系统基础上建立数据库的过程。据库的过程。v数据库设计的四个阶段及其任务:数据库设计的四个阶段及其任务: (1)(1)用户需求分析:用户需求分析:通过通过详细调查详细调查,充分了解原系统,充分了解原系统的工作概况,明确用户的各种需求,确定新系统的的工作概况,明确用户的各种需求,确定新系统的功能。功能。(数据流程图与数据字典)(数据流程图与数据字典)。 (2 2)概念结构设计:)概念结构设计:根据用户需求设计数据库的概根据用户需求设计数据库的概念模型念模型(用(用E-RE-R图表示)图表示)。 (3)(3)逻辑结构设计逻辑结构设计:将概念模型转换成:将概念模型转换成DBMSDBMS支持的数
43、支持的数据模型据模型(如关系模型的二维表)(如关系模型的二维表)。 (4)(4)物理结构设计物理结构设计:在具体设备上选定合适的存储结:在具体设备上选定合适的存储结构和存取方法。构和存取方法。59 逻逻 辑辑 结结 构构 设设 计计 阶阶 段段抽象抽象数据数据 概念结构设计阶段概念结构设计阶段设计设计局部局部视图视图合并合并取消取消冲突冲突修改修改重构重构消除消除冗余冗余基本基本E-RE-R图图需需求求分分析析阶阶段段功能模块图功能模块图数据流程图数据流程图数据字典数据字典局部局部E-RE-R图图初步初步E-RE-R图图60 物物 理理 设设 计计 阶阶 段段转化转化为数为数据模据模型型逻辑结
44、构设计阶段逻辑结构设计阶段关系关系规范规范化化模式模式优化优化设计设计用户用户子模子模式式逻辑模型逻辑模型 概概 念念 设设 计计 阶阶 段段基本基本E-RE-R图图61数数据据库库实实施施阶阶段段确定数据库确定数据库的物理模式的物理模式数据库物理结构设计阶段数据库物理结构设计阶段评价数据库评价数据库的物理模式的物理模式物理模型物理模型1)1)存储记录格式存储记录格式2)2)记录存放位置记录存放位置3)3)存取方法存取方法 逻逻 辑辑 设设 计计 阶阶 段段逻辑模型逻辑模型1)1)模式模式2)2)子模式子模式6263数据库设计与系统开发阶段的对照P153用户需求分析用户需求分析系统分析系统分析(详细调查的数据流程分析详细调查的数据流程分析)概念结构设计概念结构设计系统分析系统分析(数据存储分析,数据存储分析,E-R图图p123)逻辑结构设计逻辑结构设计物理结构设计物理结构设计系统设计系统设计系统设计系统设计数据库设计步骤系统开发步骤64