数据概念模型转换到逻辑模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.2将ER模型转换成逻辑模型
3、转换汇集实体
parent (p-id , p-att , …, c1-id);
parent
P-ID
component1(c1-id , c1-att , …
);
P-att
A
component2(c2-id , c2-att , …,
p-id);
0
1
1
M
parent[p-id ]
component1 component2
C2-id
component2[p-id ];
C1-id
C1-att
component1 [c1-id ] C2-att parent[c1-id ];
parent[c1-id ]允许空值
6.2将ER模型转换成逻辑模型
4、转换泛化层次
将每个超类的键作为其子类的键和外部键。
•对于单实体联系,将联系构成一个关系模式,将实体 的键加上实体角色的前缀后,加入到该模式中。
•对于多实体联系,将联系转换为一关系模式,将所有 相关实体的键作为外部键加入其中。
6.2将ER模型转换成逻辑模型
Report
1
说明:每个Report有一个Abbreviation 。每个Abbreviation确切地表示一个 Report
•元数据的一一映射:概念模式的元数据和关系模 式中的元数据要有一个一一影射。
•数据约束的等价:所有概念模式中的约束都要被 正确映射并实现。 由于概念模型相对关系数据库更高层次,所以有些 约束并不能由DBMS实现,这时就需要用存储过程或 其他程序方式来实现。同样,如果某个方面的程序 遗漏或错误,源自文库将导致数据库的错误(即等价性错
对于每个弱实体,如果是存在依赖,则将其父 实体的键作为外部键加入其关系模式中;如果 是标识依赖,则将其父实体的键作为键属性加 入其关系模式中。由于弱实体可能还有其弱实 体,所以这一过程要反复进行,直到所有的弱 实体都转换完毕。
6.2将ER模型转换成逻辑模型
Parent-entity E
Weak-entiey-
generic[g-id ] S2-att subclass2[g-id ] ;
6.2将ER模型转换成逻辑模型
5、转换联系
•对于两个实体的1:多联系,将“1”方的键加入到“多 ”方的实体中作为外部键,并将联系的属性也加入其中 。
•对于两个实体的“多:多”联系,将联系转换为一个关 系模式,将相关实体的键作为外部键加入其中,并且它 们一起构成了该关系模式的键。
P-id P-att
Parent-entity E&ID
Weak-entiey
P-id P-att
W-id
W-att
W-att
(a)
(b)
parent-pernetnitty-(ep-nidtit,yp(-pat-tid, …, )p-att , … )
weak-ewnteitayk(w-e-nidti,twy(-aptt-i,d…,,wp--iad)tt , … )
parent-peanrtietny t[-pe-indt]ity
weak-entity [p-id ]
[p-id ] weak-entity
[p-id
]
6.2将ER模型转换成逻辑模型
3、转换汇集实体 对于汇集层次,将基数为1的成份实体的 键加入到其父实体中作为外部键,将父实 体的键加入到基数为M的成份实体中,作 为其外部键。
6.2将ER模型转换成逻辑模型
1、转换实体
将每个实体转换为一个关系模式。如果实体有 标识,则将标识作为关系模式的键。
Entity
E-id
att1
…… attk
关系模式为:
entity(e-id, attr1, … , attrk)
其中,e-id为 键。
6.2将ER模型转换成逻辑模型
2、转换弱实体
数据概念模型转换到逻辑模型
技术创新,变革未来
第6章 概念模型转换到逻辑模型
6.1转换的基本问题 6.2将ER模型转换成逻辑模型 6.3 将UML对象映射为关系模式 6.4 XML文档的持久存储
6.1转换的基本问题
定义6.1(等价性): 设CS是一个概念模型,RS是一个关 系模式,RS和RS是等价的当且仅当存在完全映射和 ,满足:
works[E_id]employee[E_id] works[P_id]project[P_id]
6.1转换的基本问题
通常对于这个ER模型,生成模式CH1的做法较 常见,但CH1有一个缺点是:要维护空值约束 ,即employee中的P_id和Date可以为空值, 并且P_id为空值时Date必须为空值,否则的话 就会出现某个职工没有参加项目却有参加项目 的开始日期的情况,这显然是错误的。而CH2 则没有空值方面的约束。如果CH1考虑了空值 约束,那么这两个模式是等价的。
• 将RS的一致数据库状态映射到RS的一致数据库状态 ;将RS的一致数据库状态映射到RS的一致数据库状 态。
• ( ( RS ) ) = RS并且 ( ( RS ) ) = RS。 • 对任何RS的数据库状态r,保持了r的属性值;对任何
RS的数据库状态r,保持了r的属性值。
6.1转换的基本问题
Generic
Subclass1
Subclass2
S1-att
generic (g-id , p-att , … );
G-id subclass1(g-id , s1-att , … );
G-att subclass2(g-id , s2-att , … );
generic[g-id ] subclass1[g-id ];
误)。
6.1转换的基本问题
例6 .1 我们考察职工(Employee)在项目( Project)中工作的情形。多个Employee参加 一个Project的工作,允许某个Employee不参 加Project。
Employee |
M
E_id
E_name
Works
E_Dnaatme e
O Project
1
P_id P_name
6.1转换的基本问题
CH1: employee(E_id , E_name , P_id , Date) project(P_id , P_name)
employee[P_id]project[P_id]
CH2: employee(E_id , E_name ) works(E_id , P_id , Date) project(P_id , P_name)