概念模型转换到逻辑模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.2将ER模型转换成逻辑模型
2、转换弱实体
对于每个弱实体,如果是存在依赖,则将其父 实体的键作为外部键加入其关系模式中;如果 是标识依赖,则将其父实体的键作为键属性加 入其关系模式中。由于弱实体可能还有其弱实 体,所以这一过程要反复进行,直到所有的弱 实体都转换完毕。
复旦大学计算机科学技术学院数据科学研究中心
parent-entity [p-id ] weak-entity [p-id ]
复旦大学计算机科学技术学院数据科学研究中心
6.2将ER模型转换成逻辑模型
3、转换汇集实体
对于汇集层次,将基数为 1 的成份实体的 键加入到其父实体中作为外部键,将父实 体的键加入到基数为 M的成份实体中,作 为其外部键。
6.2将ER模型转换成逻辑模型
P-id
Parent-entity E Parent-entity
P-id
P-att
E&ID
P-att
Weak-entiey-
Weak-entiey
W-id (a)
W-att (b)
W-att
parent-entity(p-id , p-att , …) prent-entity(p-id , p-att , … ) weak-entity(w-id , w-att , …, p-id) weak-entity( p-id , w-att , … ) parent-entity [p-id ] weak-entity [p-id ]
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 )
主讲人:
上海市数据科学重点实验室 复旦大学计算机科学技术学院
第6章 概念模型转换到逻辑模型
6.1转换的基本问题
6.2将ER模型转换成逻辑模型
6.3 将UML对象映射为关系模式
6.4 XML文档的持久存储
复旦大学计算机科学技术学院数据科学研究中心
6.1转换的基本问题
定义6.1(等价性): 设CS是一个概念模型,RS是一个关 系模式,RS和RS是等价的当且仅当存在完全映射和 ,满足: • 将RS的一致数据库状态映射到RS的一致数据库状态 ;将RS的一致数据库状态映射到RS的一致数据库状 态。 • ( ( RS ) ) = RS并且 ( ( RS ) ) = RS。 • 对任何RS的数据库状态r,保持了r的属性值;对任何 RS的数据库状态r,保持了r的属性值。
复旦大学计算机科学技术学院数据科学研究中心
1
6.2将ER模型转换成逻辑模型
4、转换泛化层次 将每个超类的键作为其子类的键和外部键。
G-id
Generic
G-att
SΒιβλιοθήκη Baidubclass1
Subclass2
S1-att
S2-att
generic (g-id , p-att , … ); subclass1(g-id , s1-att , … ); subclass2(g-id , s2-att , … ); generic[g-id ] subclass1[g-id ]; generic[g-id ] subclass2[g-id ] ;
复旦大学计算机科学技术学院数据科学研究中心
6.2将ER模型转换成逻辑模型
3、转换汇集实体
parent P-ID
P-att
A 1 M
C2-id
0
component1
component2
C1-id
C1-att
C2-att
parent (p-id , p-att , …, c1-id); component1(c1-id , c1-att , … ); component2(c2-id , c2-att , …, p-id); parent[p-id ] component2[p-id ]; component1 [c1-id ] parent[c1-id ]; parent[c1-id ]允许空值
复旦大学计算机科学技术学院数据科学研究中心
6.1转换的基本问题
•元数据的一一映射:概念模式的元数据和关系模 式中的元数据要有一个一一影射。 •数据约束的等价:所有概念模式中的约束都要被 正确映射并实现。 由于概念模型相对关系数据库更高层次,所以有些 约束并不能由DBMS实现,这时就需要用存储过程或 其他程序方式来实现。同样,如果某个方面的程序 遗漏或错误,就将导致数据库的错误(即等价性错 误)。
复旦大学计算机科学技术学院数据科学研究中心
6.1转换的基本问题
例6 .1 我们考察职工(Employee)在项目( Project)中工作的情形。多个Employee参加 一个Project的工作,允许某个Employee不参 加Project。
Employee
|
Works
O
Project
M
E_id E_name E_name Date
复旦大学计算机科学技术学院数据科学研究中心
6.2将ER模型转换成逻辑模型
1、转换实体
将每个实体转换为一个关系模式。如果实体有 标识,则将标识作为关系模式的键。
关系模式为: entity(e-id, attr1, … , attrk) 其中,e-id为 键。
Entity
E-id
att1
……
attk
复旦大学计算机科学技术学院数据科学研究中心
works(E_id , P_id , Date) project(P_id , P_name)
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考虑了空值 约束,那么这两个模式是等价的。