2、概念模型ER图及概念模型转化成关系模型09726
数据库设计中的ER模型与关系模型转换实战教程
数据库设计中的ER模型与关系模型转换实战教程数据库设计是构建和管理现代软件系统的关键组成部分。
在设计数据库时,ER(实体关系)模型和关系模型是两种常用的方法。
ER模型为我们提供了一种图形化的方式来表示系统中存在的实体、实体间的关系和属性。
而关系模型则是以表格的形式来表示这些实体、关系和属性。
本文将介绍如何将ER模型转换为关系模型的实际步骤。
1. 分析需求在开始转换ER模型为关系模型之前,首先需要对数据库的需求进行详细的分析。
这包括确定系统中存在的实体、实体间的关系以及它们各自的属性。
2. 标识实体根据需求分析,将每个实体标识出来。
实体可以是现实世界中的对象、人或组织,也可以是抽象的概念。
3. 标识属性对于每个实体,确定其属性。
属性是实体的特征或描述,可分为主属性和次属性。
主属性是唯一标识实体的属性,次属性则是描述实体的其他属性。
4. 确定关系确定每个实体间的关系。
关系可以是一对一、一对多或多对多的。
一对一关系表示两个实体之间存在唯一的联系;一对多关系表示一个实体可以对应多个实体;多对多关系表示多个实体之间存在多个联系。
5. 构建ER模型根据上述分析结果,使用实体关系图(ER图)工具,如UML或ERWin,构建ER模型。
ER模型由实体、关系和属性构成的图形化表示。
6. 转换关系模型将ER模型转换为关系模型的过程也称为规范化。
关系模型是以表格的形式表示实体、关系和属性的。
7. 创建表格根据ER模型中的实体和属性,为每个实体创建一个表格,并将每个属性作为表格中的列。
8. 确定主键为每个表格确定主键。
主键是能够唯一标识表格中每个记录的属性。
常见的主键类型包括单一属性主键、复合主键和自增主键。
9. 连接关系将ER模型中的关系转换为关系模型中的外键。
外键是一个属性,它引用了其他表格中的主键。
10. 创建索引根据查询需求确定要创建的索引。
索引可以加快数据的检索速度。
11. 规范化数据库对数据库进行规范化是优化数据库设计的一种重要方法。
如何将ER图转化为关系模型(超详细、含例题)
如何把ER模型转换为关系模型这是数据库工程设计进行到逻辑设计的一重大环节,简单的说,如果概念设计是用ER模型,整合为全局的ER模型,那么在逻辑设计这块,主要任务就是把ER模型转换为关系模型。
转换只需知道三个转换准则:1:1遇到1:1 关系的话在两个实体任选一个添加另一个实体的主键即可。
1:N1:N 遇到1:N 关系的话在N端添加另一端的主键,假如有学生和班级两个实体,一个班级可以容纳多个学生,但是一个学生只能选择一个班级,因此班级和学生是1:N的关系,现在要转换为关系模型,我们只需在学生的这端加上班级的唯一标识即可,这样做的原因是,因为一个学生只能有一个班级,班级是相对学生唯一的。
N:M遇到N:M我们需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。
例如有学生和老师两个实体,一个学生可以由多名老师来授课,一名老师也可以授课多名学生,它们是M:N关系的,假如联系为授课,该联系上有成绩属性,因此当我们把它转换为关系模型时,我们把联系转换为联系实体,并添加学生实体的主键(学号)和教师实体的主键(教师编号)作为自己的主键,值得注意的是,授课实体的外键分别是学号和教师编号,但是它的主键是(学号,教师编号),另外它还拥有自己的一个属性成绩。
1:1:N这是三元联系的对应关系,但是当转换为关系模型时,和1:N的情况是差不多的。
我们只需将N端添加另外两端的主键即可。
M:N:P这种三元联系的三种多对应关系,看上去很复杂,其实转换起来并不是那么复杂了,我们要做的仅仅是将其中的联系转换为联系实体,然后在联系实体上添加M 端N端P端的主键,然后加上联系实体自身的属性,就行了。
例子:说了这么多看个小例子。
这是一份关于商店商品仓库的ER图。
先看仓库和商品之间是M:N的关系,于是我们首先想到的应该是把联系库存转换为库存实体。
库存(仓库号,商品号,日期,库存量)然后是商品实体和仓库实体商品(商品号,商品名,单价)仓库(仓库号,仓库名,地址)除此之外仓库和商品还有一个供应关系,同样是M:N关系:供应(仓库号,商品号,月份,月供应量)在上图的商店和仓库之间的关系可能写漏了,但是它们应该也是M:N的关系,一个商店可以被多个仓库供应,一个仓库也可以供应多个商店。
2、概念模型ER图及概念模型转化成关系模型
数据项机制的意义
相同数据项目定义一次,节省了工作量 保证不同实体相同属性的定义一致性 保证相同性质的列名一致性
后两条通常先定义数据项,然后在实体中引用该 数据项
前两条通过域也能实现 相同含义不同定义的属性code名不要同名(如进
价和售价等)
属性的Code值:
缺省情况下为Data Items的唯一性标识,不同实体相同 Code属性被认为对应的是一个数据项定义。
元素的Name用于图中显示,所以一般取中文,而Code 用于生成物理模型的对象名(如表名、列名等),一般 取英文字母。
A、实体(Entity)
实体特性窗口中主要包含下列页框:
General:设置实体(Entity)的编码(Code)、 名称(Name)和发生的行数(Number)
Attributes(属性):设置实体的属性 Identifiers:设置实体的标识(对应物理模型
解外,还要求其易于向数据模型(如关系模型) 转化。 概念模型独立于具体的数据库系统,是整个数 据库设计的基础。
1. 概念模型
概念模型的用途
概念模型用于信息世界的建模 是现实世界到机器世界的一个中间层次 是数据库设计的有力工具 数据库设计人员和用户之间进行交流的语言
对概念模型的基本要求
较强的语义表达能力,能够方便、直接地表达应用中 的各种语义知识
简单、清晰、易于用户理解。
2. 信息世界中的基本概念
(1) 实体(Entity)
客观存在并可相互区别的事物称为实体。
可以是具体的人、事、物或抽象的概念。
(2) 属性(Attribute)
实体所具有的某一特性称为属性。 一个实体可以由若干个属性来刻画。
2) 1:n联系的转换方法
ER模型转换为关系模型规则
ER模型转换为关系模型规则
关系模型是一种用于描述数据之间关系的模型,而ER模型是一种用于描述实体、实体之间关系、实体的属性的模型。
将ER模型转换为关系模型的规则如下:
1. 实体转换为关系表:
- 实体的每个属性转换为关系表中的一个列。
- 实体的主键属性作为关系表中的主键列。
- 若实体存在多值属性,则将其拆分为独立的关系表,与实体的关系表之间通过主键-外键关系连接。
2. 实体之间的一对多(1:N)关系:
- 子实体的主键作为父实体的外键列。
3. 实体之间的多对多(N:N)关系:
- 将多对多关系转换为独立的关系表,并包含两个实体的主键作为外键列。
4. 实体之间的一对一(1:1)关系:
- 将一对一关系的实体合并为一个关系表。
5. 属性与属性之间的关系:
- 若两个属性之间存在函数依赖关系(其中一个属性根据另
一个属性能够确定),则将其合并为同一个关系表的不同列。
这些规则可以帮助将ER模型转换为关系模型,并保持数据的一致性和完整性。
转换后的关系模型可以进一步用于数据库设计和数据处理。
ER模型转换为关系模型规则
ER模型转换为关系模型规则1.实体到关系的转换规则:1.1每个实体集转换为一个关系,关系的名称是实体集的名称。
1.2实体集的属性转换为关系的属性,属性的名称和类型与实体集相同。
1.3实体集的主键属性作为关系的主键。
2.1一对一关系:在两个关系之间添加一个外键,该外键引用另一个关系的主键。
2.2一对多关系:在多的一方关系中添加一个外键,该外键引用一的一方关系的主键。
2.3多对多关系:创建一个新的关系来表示多对多关系,该关系包含两个外键,分别引用两个关系的主键。
3.属性的转换规则:3.1根据实体集的属性转换为关系的属性。
3.2根据属性的类型,将属性转换为对应类型的列。
3.3如果属性包含多个值,将其转换为多个列。
通过这些规则,可以将ER模型转换为关系模型。
以下是一个示例来演示这个过程。
假设我们有一个ER模型,其中包含两个实体集,学生和课程,以及它们之间的多对多关系,每个学生可以选择多门课程。
1. 学生(Student):- 学号(Student_ID):主键- 姓名(Name)- 年龄(Age)2. 课程(Course):- 课程号(Course_ID):主键- 课程名称(Course_Name)3. 选课(Enrollment):- 学号(Student_ID):外键,引用学生(Student)关系的主键- 课程号(Course_ID):外键,引用课程(Course)关系的主键根据上述转换规则,我们可以将ER模型转换为关系模型:1. 学生(Student)关系:- 学号(Student_ID):主键- 姓名(Name)- 年龄(Age)2. 课程(Course)关系:- 课程号(Course_ID):主键- 课程名称(Course_Name)3. 选课(Enrollment)关系:- 学号(Student_ID):外键,引用学生(Student)关系的主键- 课程号(Course_ID):外键,引用课程(Course)关系的主键通过这个示例,我们可以看到如何使用ER模型转换为关系模型的规则。
ER模型转换为关系模型规则
ER模型转换为关系模型规则
(1)一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码(关键字)就是关系的码。
(2)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
如果转换为一个独立的模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选键。
如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(3)一个1:n联系可以转换为一个独立的关系模式,也可以与任意n端对应的关系模式合并。
如果转换为一个独立的模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
如果与n端实体对应的关系模式合并,则需要在该关系模式的属性中加入1端关系模式的码和联系本身的属性
(4)一个m:n联系转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
(5)三个以上实体间的一个多元联系可以转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
ER图到关系模式的转换
单实体联系转换的例子
1
职工
1
结婚
1
工程师
N
小组领导
M
职工
N
合作
多实体联系的转换方法
将多实体联系转换为一个关系模式,将所有相 关实体的标识属性加入其中作为外键,该关系 模式的主键的确定分以下几种情况
– 1:1:1联系 • 任选两个实体的标识属性联合作为主键
– 1:1:多联系 • 任选一个“1”方实体和“多”方实体的标识属性 联合作为主键
例如:
工号
职工
姓名
性别 出生日期
转换为 职工(工号,姓名,性别,出生日期)
两实体一对一联系的转换方法
对于两实体的一对一联系,转换时可以 将其中任何一方实体的标识属性放入另 一方实体的关系模式中作为外键,并将 联系的属性也加入其中
可以选择将强制存在一方实体的标识属 性放入另一方实体的关系模式中,以避 免处理空值
单实体联系的转换方法
对于单实体的一对一联系,转换时可以将联系 中实体的标识属性加上实体角色的前缀放入该 实体的关系模式中,作为引自本身的外键
对于单实体的一对多联系,转换时可以将联系 中实体的标识属性加上“1”方实体角色的前缀 放入该实体的关系模式中,作为引自本身的外 键
将单实体的多对多联系转换为一个关系模式, 将实体的标识属性加上两个相关的实体角色前 缀加入其中,它们分别是两个外键,并且联合 构成该关系模式的主键
双方都是可选存在时,可以做相互引用 的处理
两实体一对一联系转换的例子
报告
1
含有
1
缩写
职工 1 1 工程师 1 0
管理 使用
0 1 部门 0 1 电脑
1、我们的市场行为主要的导向因素,第一个是市场需求的导向,第二个是技术进步的导向,第三大导向是竞争对手的行为导向。 2、市场销售中最重要的字就是“问”。 3、现今,每个人都在谈论着创意,坦白讲,我害怕我们会假创意之名犯下一切过失。 4、在购买时,你可以用任何语言;但在销售时,你必须使用购买者的语言。 5、市场营销观念:目标市场,顾客需求,协调市场营销,通过满足消费者需求来创造利润。2021年11月2日星期二2021/11/22021/11/22021/11/2 6、我就像一个厨师,喜欢品尝食物。如果不好吃,我就不要它。2021年11月2021/11/22021/11/22021/11/211/2/2021 7、我总是站在顾客的角度看待即将推出的产品或服务,因为我就是顾客。2021/11/22021/11/2November 2, 2021 8、利人为利已的根基,市场营销上老是为自己着想,而不顾及到他人,他人也不会顾及你。2021/11/22021/11/22021/11/22021/11/2
简述将e—r模型转换为关系数据模型的规则。
简述将e—r模型转换为关系数据模型的规则。
ER模型(Entity-Relationship Model)可以对数据实体之间的联系进行建模,被用
于构建关系数据库。
而将ER模型转换为关系数据模型,可以充分利用关系数据库的优势,建立更加贴近实际的数据库结构,以便管理和操作数据。
将ER模型转换为关系数据模型有以下几个步骤:第一步,确定实体类与实体
关系,依据ER模型中定义的实体集合和关系,并按照关系的性质分类实体,并设计一个独立的实体类别,每个实体类必须有一组实体属性即实体的标识属性或主关键字;第二步,确定关系类。
实体类之间存在双向关系,从而形成独立定义的关系类;第三步,将实体及之间的关系转换为关系模式,形成蓝图。
这需要将ER模型的实体及关系转换为关系数据库管理系统中的概念,即实体与关系都可以用表表示,也可以用实体表描述属性,用关系表描述实体之间的联系;第四步,根据关系模式设计概念模式,对关系模式里的各属性及关系进行正确连接,实现关系结构更加紧凑,结构更加清晰;最后,根据概念模式生成关系数据模型,这个数据模型就是最终利用关系数据库存储信息的模型。
总之,使用ER模型将数据转换成关系数据模型,需要按照以上规则通过一系
列步骤,从实体类和实体间关系确定,到准备关系模式,最终形成关系数据模型。
这能够更好地满足用户的查询需求,并可以有效提高存储和检索的效率。
ER图转换为关系模型
将ER模型转换成关系数据库ER模型转换关系数据库的一般规则:(1)将每一个实体类型转换成一个关系模式,实体的属性为关系模式的属性。
(2)对于二元联系,按各种情况处理,如下面所示。
二元关系ER图转换成的关系联系的处理主键外键1:1(2个关系)模式A模式B(有两种)处理方式(1):(1)把模式B的主键,联系的属性加入模式A处理方式(2):(2)把模式A的主键,联系的属性加入模式B(略)(依据联系的处理方式)方式(1):模式B的主键为模式A外键方式(2):表A的主键为表B的外键1:M(2个关系)模式A 模式B 把模式A的主键,联系的属性加入模式B(略)模式A的主键为模式B的外键M:N (3个关系)模式A模式B模式A-B联系类型转换成关系模式A-B;模式A-B的属性:(a)联系的属性(b)两端实体类型的主键两端实体类型的主键一起构成模式A-B主键两端实体类型的主键分别为模式A-B的外键M:N联系的示例比如,ER图如下:可以转换成以下模式:学生(学号,姓名,性别,年龄)主键为学号课程(课程号,课程名,任课教师)主键为课程号选课(学号,课程号,成绩)主键为课程号、学号,外键为课程号,学号;1:N联系的示例比如,ER图如下:可转换为如下关系模式:商店模式(商店编号,店名,店址,店经理)主键为商店编号商品模式(商品编号,商品名,单价,产地,商店编号,月销售量)主键为商品编号,外键为商店编号职工模式(职工编号,职工名,性别,工资,商店编号,开始时间)主键为职工编号,外键为商店编号真子集就是一个集合中的元素全部是另一个集合中的元素,但不存在相等;1、完全依赖与部分依赖:对于函数依赖W A,如果存在V是W的真子集而函数依赖V A成立,则称A部分依赖于W;否则,若不存在这种V,则称A完全依赖于W;2、传递依赖:对于函数依赖X Y,如果Y X(X不函数依赖于A)而函数依赖Y Z成立,则称Z 对X传递依赖;例:设有关系模式选课SC1(SNO,CNO,GRADE,CREDIT),其中,SNO 表示学号,CNO表示课程号,GRADE表示成绩,CREDIT表示学分。
ER图到关系模式的转换
• 云服务的普及:随着云服务的不断普及,未来可能会有更多的企业将数据库部 署在云端。因此,ER图到关系模式的转换工具需要支持云端部署和云服务的 功能。
根据需要创建其他必要的索 引、约束和触发器等数据库 对象。
结果验证及优化建议
验证转换结果的正确性
检查生成的关系模式是否符合ER图的设计要求, 包括实体类型、关系类型和属性的转换是否正确 。
数据完整性保障
确保数据库中的数据完整性和一致性。例如,通 过创建触发器来自动更新库存数量或记录订单状 态变更等操作。
02
关系类型
商品和订单之间存在“被订购”关系 ,用户和订单之间存在“创建”关系 ,用户和地址之间存在“拥有”关系 。
03
属性
每个实体类型和关系类型都有相应的 属性,如商品的价格、库存等。
转换过程详解
将每个实体类型转换为一个 关系模式,关系模式的名称 与实体类型的名称相同。例 如,商品实体类型转换为商 品(商品ID,商品名称,价 格,库存)关系模式。
属性
属性是与实体相关联的特征或数据元 素,用于描述实体的性质或特征。例 如,一个“人员”实体可能具有属性 如姓名、年龄和地址等。
联系与关系
联系
在ER图中,联系表示实体之间的关系或交互。它们通过菱形 形状表示,并在菱形中标注联系的名称。联系可以是一对一 、一对多或多对多等。
关系
关系是联系的具体实现,描述了实体之间如何相互关联。例 如,一个“订单”实体可能与一个“客户”实体存在“下单 ”关系。
ER图转换为关系模式实例
二、概念结构设计1、系统概念模型图1选课系统概念模型E-R 图(注:本例中上课时刻能够抽象成实体,也能够抽象成属性。
) 2、详细说明(1)系统涉及的实体集班级实体集:具有属性班级名称和选课学分限制。
学生实体集:具有属性学号、姓名、性别和生日。
课程实体集:具有属性课程号、课程名、学分、讲课教师、接纳人数。
上课时刻实体集:具有属性时刻。
(2)系统涉及的联系班级学分限制班级名学生学号 姓名性别生日属于必修课程选修上课时间上课时间授课教师接纳人数课号课名 学分1mmnmmnn一个班级能够有多个学生,一个学生只能属于一个班级,因此班级和学生之间的联系为1:M的联系。
一个班级能够有多门必修课程,一门课程是多个班级的必修课,因此班级和课程之间的必修联系是M:N的联系。
一个学生课以选修多门课程,一门课程能够被多个学生选修,因此学生和课程之间的联系是M:N的联系。
一门课程能够有多个上课时刻,同一时刻内能够有多门课程在上课,因此课程和上课时刻的联系是M:N的联系。
三、逻辑结构设计将E-R模型转换为关系模式(1)班级实体集能够转换为关系CLASS(CLASSNAME,MAXCREDIT,MINCREDIT)CLASSNAME表示班级名称,MAXCREDIT表示最大学分限制,MINCREDIT表示最小学分限制。
(2)学生实体集能够转换为关系STUDENT(STUDENTID , NAME , SEX , BIRTHDAY)STUDENTID表示学号,NAME表示姓名,SEX表示性别,BIRTHDAY 表示生日(3)课程实体能够转换为关系COURSE(COURSEID, COURSENAME, CREDIT, TEACHER, ACCEPTION)COURSEID表示课程号,COURSENAM表示课程名,CREDIT表示学分,TEACHER表示讲课教师,ACCEPTION表示接纳人数。
(4)班级和学生之间的联系是1:M的联系,因此没有必要为其成立一个关系,能够通过扩展学生关系来表示。
er模型转换为关系模型的规则
er模型转换为关系模型的规则
1. ER模型中每个实体类转换为一个关系类:每个实体类将转换为一个关系类,关系类中由实体类属性组成,每个关系类对应数据库中的一张表。
2. ER模型中每个属性转换为一个字段:每个属性将转换为一个字段,字段中有类型和它自身的属性,每个属性对应关系类中的一个列。
3. ER模型中的强实体转换为关系类中的主键:强实体在转换为关系模型时,将当做该关系类的主键。
4. ER模型中的关系类转换为关系类:特殊的关系类在转换为关系模型时将会生成一个新的关系类,这个关系类由两个之前存在的实体类的两个属性组成,用于表示他们之间的关系。
ER图向关系模式转换规则
8
• 1:N联系,在N端实体类型转换成的关系模式中,加入1端实体类型的键(作为外键)和 联系的属性
• M:N联系,联系类型需转换为关系模式,属性为两端实体类型的键(分别作为外键)加 上联系的属性,而键为两端实体键的组合(特殊情况下,需要扩展)
2
ER模型向关系模型的转换
算法
2 联系类型转换
• 2.1 二元联系
ER模型向关系模型的转换
算法
1 实体类型转换
• 每个实体类型转换成一个关系模式 • 实体属性即为关系模式的属性 • 实体标识符即为关系模式的键
注意
• 得到的关系模式,有些可能会扩充属性
1
ER模型向关系模型的转换
算法
2 联系类型转换
• 2.1 二元联系
• 1:1联系,联系两端的实体类型转成两个关系模式,在任一个关系模式中加入另一个关 系模式的键(作为外键)和联系的属性
• 示例
学校( … … )
校长( 姓名,性别,年龄,职称,所在学校,任职年月)
或
学校( 校名,地址,电话,校长姓名,任职年月)
校长( … … )
学生( … … )
课程( … … )
系( … … )
选课( 学号,课程号,成绩)
教师( 工号,姓名,性别,年龄,所在系号,聘期)
3
ER模型向关系模型的转换
算法
示例
系( 教师( 课程( 任教(
系编号,系名,电话,主管人的教工号) 教工号,姓名,性别,职称,系编号,聘期) 课程号,课程名,学分,系编号) 教工号,课程号,教材)
7
ER模型向关系模型的转换
算法
示例
司机编号
姓名
电话
车牌照号
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
联系的表示方法
实体型1 1
联系名
实体型1 1
联系名
实体型1 m
联系名
1 实体型2
n 实体型2
n 实体型2
1:1联系
1:n联系
m:n联系
联系的表示方法(续)
实体型1
实体型1
1
m
n
联系名
联系名
m 实体型2
n 实体型3
同一实体型内部的 m:n联系
多个实体型间的1:n联系
联系的表示方法示例
班级 1 班级-班长 1
班长 1:1联系
班级 1
组成 n
学生 1:n联系
课程 m
选修 n
学生 m:n联系
联系的表示方法示例(续)
课程
1
讲授
m
n
教师
参考书
多个实体型间的1:n联系
职工
1
n
领导
同一实体型内部的 1:n联系
联系属性的表示方法
课程 m
选修
成绩
n 学生
An Introduction to Database System
create table Students (
stdid
char(6)
not null,
classid
char(6)
not null,
name
title
null,
constraint PK_STUDENTS primary key (stdid)
)
alter table Students
add constraint FK_STUDENTS_STDBELONG_CLASSES foreign key (classid) references classes (classid)
生成物理模型的警告
学生和课程之间的多对多关系生成物理模型时会有一 个index inclusion的警告
原因是外码和主码生成pdm时会自动建立index,生成 的学生-课程关系中,学号和课程同是为主码和外码, 所以重复建立了以下索引:学号,课程号,学号+课 程号。
四)生成的DDL语句
(部分) PDM包含了选择的DBMS的DDL语句:
概念模型独立于具体的数据库系统,是整个数据库设 计的基础。
1. 概念模型
概念模型的用途
概念模型用于信息世界的建模
是现实世界到机器世界的一个中间层次
是数据库设计的有力工具
数据库设计人员和用户之间进行交流的语言 对概念模型的基本要求
较强的语义表达能力,能够方便、直接地表达应用中的各
种语义知识 简单、清晰、易于用户理解。
行约束:进货价格必须小于销售价格
在概念模型中新建一个Business Rules,在 Expresion/Server中输入“进货价格>=销售价 格”(Client中只在文档中反应,而不会对物 理模型产生影响) 在实体的Properties中的Rules页框点击Add
M=Mandatory(强制):选中表示属性非空,P=Primary Identifier:选中为主标识。
D=Displayed:选中在图中显示该属性,否则不显示。
Attribute Properties-列约束
设置:双击某一属性,进入属性特性设置框,其中 standard Checks页框中包含了下列常用设置:最大、 最小、缺省值、格式以及所有合法值
生成的物理模型中建表SQL语句示例:
……
age int null default 18 constraint CKC_AGE_ENTITY_1 check (age is null or (age between 16 and 20 and age in (17,18,19,20,16) )), ……
E-R图(续)
联系 联系本身:用菱形表示,菱形框内写明联系名,并 用无向边分别与有关实体连接起来,同时在无向边 旁标上联系的类型(1:1、1:n或m:n) 联系的属性:联系本身也是一种实体型,也可以有 属性。如果一个联系具有属性,则这些属性也要用 无向边与该联系连接起来
An Introduction to Database System
中反映为实体内部的联系和实体之间的联系
实体型间联系
两个实体型 三个实体型 一个实体型
一对一联系(1:1) 一对多联系(1:n) 多对多联系(m:n)
两个实体型间的联系
实体型1 1
联系名
实体型1 1
联系名
实体型1 m
联系名
1 实体型2
n 实体型2
n 实体型2
1:1联系
1:n联系
m:n联系
An Introduction to Database System
如学生与班级为1:n的关系,一种方法是单独建 立一个关系(表),属性(字段)为学生号和 班级代码;第二种方法为在学生的关系(表) 中增加班级编号属性(字段)。
An Introduction to Database System
3) m:n联系的转换方法 在向关系模型转换时,一个m:n联系转换为一个关
三、PowerDesigner设计数据库
的过程
一)E-R图 学号
姓名
成绩
m 选课 n 课程
学生 1 持有 1 校园卡
n
1
属于
班长
11班级Fra bibliotek编号名称
学分
卡号
余额
班号
班名
二)概念数据模型CDM 使用Powerdesigner描述E-R图(TeachingCDM):
三)生成的物理模型 根据CDM生成的物理模型PDM图(TeachingPDM):
属性的取值范围称为该属性的域。
(5) 实体型(Entity Type)
用实体名及其属性名集合来抽象和刻画 同类实体称为实体型
(6) 实体集(Entity Set)
同型实体的集合称为实体集
信息世界中的基本概念
(续) (7) 联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界
2. 实体集间联系的转换 规则 以下举例基于以下的E-R图
学号
姓名
成绩
m 选课 n 课程
学生 1 办卡 1 学生卡
n
属于 1 班级
课程号 课程名
学分
卡号
余额
班号
辅导员
1)1:1联系的转换方法
一个1:1联系可以转换为一个独立的关系, 也可以与任意一端实体集所对应的关系合并。
如学生与学生卡关系的处理可以有三种,一 种把学生卡的卡号作为学生关系(表)的一 个属性(字段);第二种方法是把学生编号 作为学生卡关系(表)的一个属性(字段); 第三种方法为是单独建立一个关系(表), 属性(字段)为学生号和学生卡卡号。
实例
课程与学生之间的联系:
一门课程同时有若干个学生选修
一个学生可以同时选修多门课程
3. 概念模型的表示方法 ER图
实体型
用矩形表示,矩形框内写明实体名。
学生
教师
E-R图(续)
属性
用椭圆形表示,并用无向边将其与相应的实体连接起 来
学生
学号
姓名
性别
年龄
An Introduction to Database System
设置元素的特性:右击元素,选择菜单Properties将出 现特性设置的对话框,不同类型的元素由不同的页框组 成。
元素的Name用于图中显示,所以一般取中文,而Code 用于生成物理模型的对象名(如表名、列名等),一般 取英文字母。
A、实体(Entity)
实体特性窗口中主要包含下列页框:
General:设置实体(Entity)的编码(Code)、名称 (Name)和发生的行数(Number)
E-R图实例:
成绩
选课 n 课程
学号
姓名
学生
m
n
1
办卡
属于
1 学生卡
1 班级
课程号 课程名
学分
卡号
余额
班号
辅导员
二、概念模型转化成逻辑 模型
将E-R图转换为关系模型实际是将实体集、 属性以及联系转换为相应的关系模式。 1.实体集的转换规则:概念模型中的一个 实体集转换为关系模型中的一个关系, 实体的属性就是关系的属性,实体的码就 是关系的码,关系的结构是关系模式。
新建:选菜单New,然后选Conceptual Data Model (概念模型),在Browse窗口的根WorkSpace下产生 一个概念模型的结点,使用弹出菜单更名为 “TeachingCDM”。在该结点下已自动加入一个 Diagram。
在概念模型中加入实体等元素:右击概念模型 TeachingCDM ,选择New/Entity或其他菜单。
数据项Data Item:在Entity中加入的所有属性将被自动 加入在Data Items结点下作为数据项进行集中管理。也 可以直接在Data Items下增加数据项,实体属性通过使 用相同的Code引用该数据项定义。
属性和数据项关系:实体的属性可以看作是Data Items 下数据项的组合;Data Items是所有实体属性的集合
An Introduction to Database System
2) 1:n联系的转换方法
实体间的1:n联系可以有两种转换方法:一种 方法是将联系转换成一个独立的关系;另一种 方法是在n端实体集中增加新属性,新属性由联 系对应的1端实体集的码和联系自身的属性构成, 新增属性后原关系的码不变。
系,两个多对多实体的码组成关系的码或码的一部 分,多对多关系本身可以包含属性。
如学生与课程的关系为m:n的关系,可以用一个独立 的关系(表)表示,其属性(字段)为学生编号, 课程编号和成绩,前两者是码且是外码。