Presentation is loading. Please wait.

Presentation is loading. Please wait.

第五章 关系模型的局限性 一个代表性的多面体的关系描述 关系模型的缺点 阻抗失配带来的问题. 用边界表示法描述的多面体 E-R 设计 Polyeder N Hull M PolyID Faces N Boundaries M FaceID Edges N StartEnd M EdgeID Vertices.

Similar presentations


Presentation on theme: "第五章 关系模型的局限性 一个代表性的多面体的关系描述 关系模型的缺点 阻抗失配带来的问题. 用边界表示法描述的多面体 E-R 设计 Polyeder N Hull M PolyID Faces N Boundaries M FaceID Edges N StartEnd M EdgeID Vertices."— Presentation transcript:

1 第五章 关系模型的局限性 一个代表性的多面体的关系描述 关系模型的缺点 阻抗失配带来的问题

2 用边界表示法描述的多面体 E-R 设计 Polyeder N Hull M PolyID Faces N Boundaries M FaceID Edges N StartEnd M EdgeID Vertices VertexID

3 多面体的关系模型示例 Polyeder PolyIDVolume… … “cubo#5” … 1000.00 … ……………… Faces FaceIDCircumferenc e … … “f1” “f2” … “f6” … 40.00 … 40.00 … ……………………………… Hull PolyIDFaceID “cubo#5” … “cubo#5” … “f1” “f2” … “f6” … Boundaries FaceIDEdgeID … “f1” … “f6” … “e1” “e2” “e3” “e4” …

4 多面体的关系模型示例 ( 续 ) Edges EdgeIDLength … … “e1” “e2” … “e12” … 10.00 … 10.00 … ……………………………… Vertices VertexIDXYZ … “v1” “v2” … “v8” … 0.00 10.00 … 0.00 … 0.00 … StartEnd EdgeIDVertexID … “e1” “e2” … “e12” … “v1” “v2” “v3” …

5 关系模型的缺陷 1 对象被分割,将一个用户看到的完整性对 象被分割为若干个关系,使对象中内部结 构不是 1 : 1 映射 例:查询体积大于 10 的所有多边形及其顶 点坐标 (x,y,z)

6 关系模型的缺陷 1 续 Select distinct p.PolyID, v.VertexID,v.X,v.Y,v.Z From Polyeder p, Hull h, Boundaries b, StartEnd s Vertices v Where p.Volume > 10 and p.PolyID = h.PolyID and p.FaceID = b.FaceID and b.EdgeID = s.EdgeID and s.VertexID = v.VertexID

7 关系模型的缺陷 2 主关键字属性唯一性维护的困难 由于对象的分割,使用户需要定义和维护连接多 个关系的外键的唯一性。在多用户环境下,这种 维护是困难的。 维护关键字属性引用完整性的困难。 引用完整性 —— 保证一个外部关键字引用的元组 是真是存在的。而由于对象的分割存储,以及 RDBMS 不能保证相关联的关系之间插入元组的 完整性。因此这个引用完整性是难以保证的。

8 关系模型缺陷 3 对数据抽象缺乏支持 关系模型只支持简单的结构化很强的应用。 对具有复杂结构和复杂语义的应用缺乏支 持。 —— 不支持聚合抽象 —— 不支持泛化 / 特化抽象 —— 不支持抽象数据类型 ADT

9 关系模型的缺陷 4 缺乏对对象行为控制的支持。 —— 应用领域中一个完整的对象应具有两 个方面的描述 1. 结构表示 2. 行为的具体描述 二者的互相捆绑保证了对象状态变化的正确 性,而关系模型缺乏对行为描述的支持。

10 编程语言阻抗失配带来的问题 说明性 SQL 语言与过程性的编程语言的阻抗失配 面向集合的数据操作与面向记录的数据操作失配 目前解决方法:用游标的方法顺序提取 存在问题: 对复杂应用而言,随机访问需求与单行的顺序访 问约束之间的失配。 建立在连接( Join )查询上的查询结果是不可更 新的,这对被切割的复杂对象的更新带来很大困 难。

11 例 指针 Edge Vertices 指向的 Join 查询结果是不 能直接被更新的 Exec sql declare Edge Vertices cursor for select s.EdgeID,v.VertexID,v.X,v.Y,v.Z from StartEnd s,Vertices v where s.VertexID=v.VertexID;

12 exec sql declare EdgeToVertices cursor for select * from StartEnd; exec sql open EdgeToVertices ; while(1) /*Iterate over the EdgeToVertices crusor*/ { exec sql fetch EdgeToVertex into:E#, :V#; exec sql select X,Y,Z/*read the coordinates*/ into :Xvar, :Yvar, :Zvar from Vertices where s.VertexID= :V#; …… exec sql update Vertices set…;/*perform modifications*/ }

13 例:阻抗失配可视化 rotate Application A rotate Application B PolyederFacesEdges Boundaries StartEnd Hull Vertices

14 Application A someCuboid.rotate(x,Ф); Application B W:=someCuboid.weight; rotate scale weight translate volume specWeight … object base


Download ppt "第五章 关系模型的局限性 一个代表性的多面体的关系描述 关系模型的缺点 阻抗失配带来的问题. 用边界表示法描述的多面体 E-R 设计 Polyeder N Hull M PolyID Faces N Boundaries M FaceID Edges N StartEnd M EdgeID Vertices."

Similar presentations


Ads by Google