《数据库设计方法逻辑模型以及模型到关系模型的化文档资料》由会员分享,可在线阅读,更多相关《数据库设计方法逻辑模型以及模型到关系模型的化文档资料(28页珍藏版)》请在金锄头文库上搜索。
1、1回顾回顾p数据库的三级模式数据库的三级模式:外模式:外模式用户视图,模式用户视图,模式全全局视图,内模式局视图,内模式物理视图。物理视图。p通过两级映射提高数据的逻辑独立性和物理独立性。通过两级映射提高数据的逻辑独立性和物理独立性。p概念模型中的两个概念:实体、联系概念模型中的两个概念:实体、联系.p数据模型数据模型包括:包括:概念模型概念模型(ER)、逻辑模型逻辑模型、物理模型、物理模型p概念模型的两个基本概念概念模型的两个基本概念实体与联系,实体与联系,E-R模型模型是一种概念模型表示方法是一种概念模型表示方法.p逻辑模型逻辑模型:层次型、网状、关系型:层次型、网状、关系型Evaluat
2、ion only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2数据库原理与应用数据库原理与应用第第3讲讲 数据库设计方法数据库设计方法ER模型到模型到关系模型的转化关系模型的转化Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3本讲内容、重点和难点本讲内容、重点和难
3、点n重点重点pER模型到关系模型的转化模型到关系模型的转化n难点难点p关系数据库概述关系数据库概述p关系型逻辑模型关系型逻辑模型是当前最常见的是当前最常见的数据库逻辑模型数据库逻辑模型Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.41.逻辑模型(逻辑模型(层次,网状,关系层次,网状,关系)、)、物理模型物理模型关系模型的基本概念关系模型的基本概念物理模型简介物理模型简介ER图到关系模型转换图到关系模型转换Evalu
4、ation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.5关系模型的基本概念关系模型的基本概念1关系关系p将一个没有重复行、重复列的二维表看成一个关系。将一个没有重复行、重复列的二维表看成一个关系。2元组(记录)元组(记录)p二维表的每一行在关系中称为关系的一个元组。二维表的每一行在关系中称为关系的一个元组。3属性(字段)属性(字段)属性(字段)属性(字段)p二维表的每一列在关系中称为属性。二维表的每一列在关系中称为属性。4关键字关键
5、字关键字关键字p关系中用于区分和标示不同元组的属性组合。关系中用于区分和标示不同元组的属性组合。5外部关键字外部关键字p如果关系中某个属性组合是另一个关系的关键字,则如果关系中某个属性组合是另一个关系的关键字,则称此属性组合为本关系的外部关键字。外部关键字体称此属性组合为本关系的外部关键字。外部关键字体现表间的联系。现表间的联系。6.元元p属性个数属性个数(n)称为关系的)称为关系的元元。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspos
6、e Pty Ltd.6部门编号部门编号部门名称部门名称D001总经理办总经理办D002市场部市场部D003销售部销售部D004仓储部仓储部员工编员工编号号员工姓名员工姓名性性别别部门编部门编号号E001钱达理钱达理男男D001E002东方牧东方牧男男D001E003郭文斌郭文斌男男D002E004肖海燕肖海燕女女D003E005张明华张明华男男D004部门表部门表员工表员工表部门关系(部门关系(部门编号部门编号,部门名称)。,部门名称)。员工关系(员工关系(员工编号员工编号,姓名,性别,部门编号,姓名,性别,部门编号) )。部门关系中有部门关系中有4 4个元组,员工关系中有个元组,员工关系中有
7、5 5个元组。个元组。员工关系的外部关键字是部门编号,体现了部门关系与员工关系的外部关键字是部门编号,体现了部门关系与员工关系之间的联系。员工关系之间的联系。关系示例关系示例:Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.7讨论:实体集用表格来表示是容易理解的,联系如何用表格讨论:实体集用表格来表示是容易理解的,联系如何用表格来表示呢?以选课系统为例。来表示呢?以选课系统为例。学号学号姓名姓名s1s1学生学生A A
8、s2s2学生学生B B学生表学生表教师号教师号姓名姓名t1t1教师教师A At2t2教师教师B B教师表教师表课编号课编号课程名课程名c1c1课程课程A Ac1c1课程课程B B课程表课程表学号学号课编号课编号修读学期修读学期s1s1c1c120102010春春s1s1c2c220102010春春s2s2c1c120102010春春授课表(写写看)授课表(写写看)选课表选课表教师号教师号课编号课编号授课学期授课学期t1t1c1c120102010春春t2t2c2c220102010春春Evaluation only.Created with Aspose.Slides for .NET 3.5
9、 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.8物理模型(了解)物理模型(了解)物理模型物理模型p在逻辑模型确定后,要将逻辑模型提出的静态结构、动在逻辑模型确定后,要将逻辑模型提出的静态结构、动态结构、约束规则在计算机上进行实现,这项工作由态结构、约束规则在计算机上进行实现,这项工作由DBMS软件实现。软件实现。p目前的目前的DBMS大多支持关系型逻辑模型,比如大多支持关系型逻辑模型,比如Oracle, SQL Server,DB2等等。等等。p我们也可以开发自己的我们也可以开发自己的DBMS,但这项工作的所需的人,但这项
10、工作的所需的人力是很大的,所以当前软件行业的做法是:使用比较成力是很大的,所以当前软件行业的做法是:使用比较成熟的熟的DBMS系统,解决具体应用问题。因此,系统,解决具体应用问题。因此,物理模式物理模式一般不作过多的讨论一般不作过多的讨论。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.9从从ER图导出关系模型数据结构图导出关系模型数据结构ERER图描述图描述信息的结构信息的结构,是是构造构造数据模型的数据模型的依据
11、依据。从。从ERER图图出发导出关系模型数据结构出发导出关系模型数据结构的的两点原则两点原则: 对对ERER图中的每个图中的每个“实体集实体集”,都应转换成一个关系;都应转换成一个关系; 对对ERER图图中中的的 “联联系系”,根根据据实实体体联联系系的的方方式式,采采取取不同的方法加以处理;不同的方法加以处理;Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.101) 两实体集间两实体集间1: N联系联系无需专门用一
12、个关系表示无需专门用一个关系表示“联系联系”。可将。可将“1 1”方关方关系的系的主键主键纳入纳入“N N”方关系中作为方关系中作为外键外键,同时把同时把联系联系的属性的属性也一起纳入也一起纳入“N N”方关系中方关系中。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.11学校学校教师教师聘任聘任1N学校名学校名校址校址校长校长年薪年薪教工号教工号姓名姓名专长专长学校(学校(学校名学校名,校址,校长),校址,校长)教
13、师(教师(教工号教工号,姓名,专长,姓名,专长,学校名学校名,年薪),年薪)外键Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.122) 两实体集间两实体集间M: N联系联系必须对必须对“联系联系”单独建立一个关系单独建立一个关系。“联系联系”关系关系的属性的属性至少至少包含包含它所关联的双方实体的它所关联的双方实体的“主键主键”,若若“联系联系”自身有属性,也要一起纳入自身有属性,也要一起纳入“联系联系”关系关系中
14、。中。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.13学生学生课程课程选修选修MN学号学号姓名姓名性别性别成绩成绩课程号课程号课程名课程名学分学分学生(学生(学号学号,姓名,性别),姓名,性别)课程(课程(课程号课程号,课程名,学分),课程名,学分)选修(选修(学号学号,课程号课程号,成绩),成绩)Evaluation only.Created with Aspose.Slides for .NET 3.5 Cl
15、ient Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.143) 两实体集间两实体集间1:1联系联系对两实体间对两实体间1 1:1 1联系,联系,有二种转换方案有二种转换方案:第一第一:“联系联系”不单独建立关系,将实体集不单独建立关系,将实体集A A主键放主键放到实体集到实体集B B中作为外键。中作为外键。第二第二: “联系联系”不单独建立关系,将实体集不单独建立关系,将实体集B B主键放主键放到实体集到实体集A A中作为外键。中作为外键。Evaluation only.Created with Aspose.Slides for .N
16、ET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.15校长校长学校学校管理管理11姓名姓名性别性别年龄年龄学校名学校名校址校址类别类别方案方案1:校长(校长(姓名姓名,性别,年龄),性别,年龄)学校(学校(学校名学校名,校址,类别,校址,类别,姓名姓名)方案方案2学校(学校(学校名学校名,校址,类别),校址,类别)校长(校长(姓名姓名,性别,年龄,性别,年龄,学校名学校名)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5
17、.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.16以下的关系模型为以下的关系模型为补充内容补充内容 4) 同一实体集各实体间同一实体集各实体间1: N联系联系可在这个实体关系中可在这个实体关系中多设一个属性多设一个属性,用来表示与当前用来表示与当前实体(表中当前行)相联系的另一个实体实体(表中当前行)相联系的另一个实体的的“主键主键”。职工职工领导领导1N工号工号姓名姓名工资工资民意评价民意评价职工(职工(工号工号,姓名,工资,姓名,工资, 领导者工号领导者工号,民意评价),民意评价)另一个实体的主键另一个实体的主键Evaluation only.Crea
18、ted with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.174) 同一实体集各实体间同一实体集各实体间1: N联系联系工号工号姓名姓名工资工资领导者工号领导者工号民意评价民意评价1 1陈一陈一8508503 3称职称职2 2李二李二8908903 3优秀优秀3 3张三张三9009003 3称职称职Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyri
19、ght 2004-2011 Aspose Pty Ltd.185) 同一实体集各实体间同一实体集各实体间M: N联系联系则需为则需为“联系联系”单独建一个关系单独建一个关系。该关系中至少应该关系中至少应包含被它联系的双方实体的包含被它联系的双方实体的“主键主键”,若若“联系联系”有有属性,也要纳入该关系中。属性,也要纳入该关系中。课程课程预修预修MN课程号课程号课程名课程名学分学分课程(课程(课程号课程号,课程名,学分),课程名,学分)预修(预修(课程号课程号,预修课程号预修课程号)Evaluation only.Created with Aspose.Slides for .NET 3.5
20、Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.196) 多个实体集间多个实体集间M: N联系联系必须为必须为“联系联系”单独建一个关系单独建一个关系。该关系中至少应该关系中至少应包含被它联系的双方实体的包含被它联系的双方实体的“主键主键”,若若“联系联系”有有属性,也要纳入该关系中。属性,也要纳入该关系中。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty L
21、td.20工程项目工程项目零件零件需求需求MP工程号工程号工程名工程名工程进度工程进度数量数量零件名零件名单价单价厂址厂址工程项目(工程项目(工程号工程号,工程名,工程名,工程进度)工程进度)厂家(厂家(厂名厂名,厂址),厂址)需求(需求(工程号,厂名,零件名工程号,厂名,零件名,数量)数量)厂家厂家N厂名厂名零件(零件(零件名零件名,单价),单价)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.课堂小练课堂小练n1
22、:试:试述采用述采用E-R方法进行数据库概念设计的过程。方法进行数据库概念设计的过程。n答:答:采用采用E-R方法进行数据库概念设计,可以分成方法进行数据库概念设计,可以分成3步进行:步进行:首先设计局部首先设计局部E-R模式,然后把各局部模式,然后把各局部E-R模式综合成一模式综合成一个全局的个全局的E-R模式,最后对全局模式,最后对全局E-R模式进行优化,得到模式进行优化,得到最终的最终的E-R模式,即概念模式模式,即概念模式。21Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.C
23、opyright 2004-2011 Aspose Pty Ltd.课堂小练课堂小练n2::某某大学实现学分制,学生可根据自己情况选课。每名学生可同时选修多门课程,大学实现学分制,学生可根据自己情况选课。每名学生可同时选修多门课程,每门课程可由多位教师主讲;每位教师可讲授多门课程。每门课程可由多位教师主讲;每位教师可讲授多门课程。其不完整的其不完整的E-R图如图图如图1所示所示。1.指出学生与课程的联系类型指出学生与课程的联系类型。指出。指出课程与教师的联系类型。课程与教师的联系类型。2.若每名学生有一位教师指导,每个教师指导多名学生,则学生与教师是如何联系?若每名学生有一位教师指导,每个教师
24、指导多名学生,则学生与教师是如何联系?3.在原在原E-R图上补画教师与学生的联系,并完善图上补画教师与学生的联系,并完善E-R图图。4.最后将最后将ER图转换成关系模型。图转换成关系模型。答:答:学生与课程联系类型是多对多联系。学生与课程联系类型是多对多联系。课程与教师的联系类型是多对多联系。课程与教师的联系类型是多对多联系。学生与教师的联系类型是一对多联系。学生与教师的联系类型是一对多联系。完善本题完善本题E-R图的结果如图图的结果如图2所示。所示。图图1 图图2 22图1图2Evaluation only.Created with Aspose.Slides for .NET 3.5 Cl
25、ient Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.23小结小结1.逻辑模型能够表现数据结构、数据操作、数据约束。逻辑模型能够表现数据结构、数据操作、数据约束。2.逻辑模型有层次型、网络型、关系型三种,关系模型逻辑模型有层次型、网络型、关系型三种,关系模型是当前数据库的主要数据模型。是当前数据库的主要数据模型。3.为了表示数据在计算机上如何组织、如何操作、如何为了表示数据在计算机上如何组织、如何操作、如何约束,约束,应将应将E-R模型转换为逻辑模型模型转换为逻辑模型。4.关系型逻辑模型是当前最常见的数据库逻辑模型。关系型逻辑模型是当前
26、最常见的数据库逻辑模型。5.关系数据库是表和其他数据库对象的集合,表的列应关系数据库是表和其他数据库对象的集合,表的列应满足原子特征,即列是不可分解的满足原子特征,即列是不可分解的。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.24小课内容小课内容Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyri
27、ght 2004-2011 Aspose Pty Ltd.251. 问题问题 20分钟分钟1.有人说:有人说:“E-R模型只能转换为关系模型,不能转换模型只能转换为关系模型,不能转换为层次模型或网络模型为层次模型或网络模型”,这种说法对么?,这种说法对么?2.简述简述E-R模型转换为关系模型规则(模型转换为关系模型规则(1:1, 1:N, N:M)3.关系模型和关系模式这两个概念有什么不同?关系模关系模型和关系模式这两个概念有什么不同?关系模式和关系这两个概念有什么不同?式和关系这两个概念有什么不同?4.一个关系可以有多个一个关系可以有多个候选关键字候选关键字么?一个关系可以有么?一个关系可以
28、有多个关键字多个关键字么?一个关系可以有多个么?一个关系可以有多个外部关键字么外部关键字么?Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.262. E-R图练习图练习 50分钟分钟题题1:某学院的教学管理的对象是:系(系名,办公地址)、教师:某学院的教学管理的对象是:系(系名,办公地址)、教师(教师工号、姓名、年龄、职称)、学生(学号,姓名,生日)、(教师工号、姓名、年龄、职称)、学生(学号,姓名,生日)、课程(课
29、程号,课程名,学分)。其中,一个系有多个教师每个课程(课程号,课程名,学分)。其中,一个系有多个教师每个教师只属于一个系,每个老师可上多门课,每门课只由一个老师教师只属于一个系,每个老师可上多门课,每门课只由一个老师上,每个学生可以在某学期选修多门课,每门课可有多个学生选上,每个学生可以在某学期选修多门课,每门课可有多个学生选修。修。题题2:某旅行社管理系统管理的对象是:某旅行社管理系统管理的对象是: 景点(景点编号,景点名景点(景点编号,景点名称,地点,景点描述)、线路(线路编号,线路名称,线路描述)称,地点,景点描述)、线路(线路编号,线路名称,线路描述)、导游(工号,姓名,等级)、旅游团
30、队(团队编号,人数,开、导游(工号,姓名,等级)、旅游团队(团队编号,人数,开始日期,截止日期),其中,每条线路由多个景点组成,不同线始日期,截止日期),其中,每条线路由多个景点组成,不同线路的景点存在交叉;每条线路有多名导游,但一名导游只负责一路的景点存在交叉;每条线路有多名导游,但一名导游只负责一条线路;条线路; 每条线路可同时存在多个旅游团队,每个团队只可旅游每条线路可同时存在多个旅游团队,每个团队只可旅游一条线路。一条线路。p根据上次课所设计根据上次课所设计E-R模型,将其转换成关系模型,并标出主外键。模型,将其转换成关系模型,并标出主外键。Evaluation only.Create
31、d with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.27题题3:某研究所科研管理系统情况如下:某研究所科研管理系统情况如下:部门:包括部门号、部门名、办公室。每个部门有多名职工。部门:包括部门号、部门名、办公室。每个部门有多名职工。职工:包括职工号、姓名、性别、年龄、职称、专业、简历。职工:包括职工号、姓名、性别、年龄、职称、专业、简历。简历:包括开始时间、终止时间、工作单位、担任职务。简历:包括开始时间、终止时间、工作单位、担任职务。项目:包括项目编号、项目名称
32、、项目经费、项目来源、负责人。项目:包括项目编号、项目名称、项目经费、项目来源、负责人。每名职工可参加多个项目,每个项目可多名职工参加。每名职工可参加多个项目,每个项目可多名职工参加。要求:要求:p画出表达此问题的实体关系图。画出表达此问题的实体关系图。p根据设计根据设计E-R模型,将其转换成关系模型,并标出主外键。模型,将其转换成关系模型,并标出主外键。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.28题题4:图中显示一张交通违章处罚通知书,根据这张通知书图中显示一张交通违章处罚通知书,根据这张通知书所提供的信息,设计一个所提供的信息,设计一个E-R模型,并将这个模型,并将这个E-R模型模型转换成关系数据模型,要求标注主码和外码。转换成关系数据模型,要求标注主码和外码。 注:一张违章通知书可能有多项处罚,例如:警告注:一张违章通知书可能有多项处罚,例如:警告+罚款罚款Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.