《关联对象访问》ppt课件

《关联对象访问》ppt课件

ID:27227646

大小:361.32 KB

页数:53页

时间:2018-11-30

《关联对象访问》ppt课件_第1页
《关联对象访问》ppt课件_第2页
《关联对象访问》ppt课件_第3页
《关联对象访问》ppt课件_第4页
《关联对象访问》ppt课件_第5页
资源描述:

《《关联对象访问》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十四章关联对象访问AssociativeObjectAccess本章重点讲述GOM对关联对象查询的支持,即如何实现一个查询和如何描述用户的查询要求在O-ODBMS中,实现一个查询是通过多态的Select函数来实现的GOM支持二种查询语言GOMql、GOMsql其中GOMql是基于关系语言QUEL在面向对象上的扩展GOMsql是SQL在面向对象上的扩展关联查询的操作对象为:类型范围(TypeExtention),用户定义的集合对象和表对象多态的关联选择操作定义及其实现关联选择操作需要一个操作对象说明—在某个对象实例集合上,需要一个

2、条件表达式作为选择的依据—选择谓词当定义一个多态的选择操作时,选择谓词将以函数变元的方式作为操作变元当选择谓词本身需要参数时,该参数必须在选择操作的参数表中说明多态的选择操作的共同名字为Select无参数的选择谓词—简单的布尔函数多态选择操作说明为Polymorphoverloadselect(t1<={t2}):t1

3、

4、(t2

5、

6、->bool)->t1CodeselectNoParam语义为类型t1,是一个集合类型,其元素类型为t2Select操作有两个变元:接受者类型为t1,另一个变元是一个布尔函数,它对类型为

7、t2的对象进行选择,返回一个布尔型结果Select语义对t1的元素用布尔函数进行筛选;多态选择操作的实现defineselectNoParam(selPred)isvarresult:t1;candidate:t2;beginresult.create;!!生成空结果集foreach(candidateinself)ifcandidate.selPredthenresult.insert(candidate);returnresult;enddefineselectNoParam应用举例在立方体实例库中,查找某一个顶点是原点

8、的立方体分析:其选择谓词需要顺次检查一个立方体的8个点,是否有一个点的x、y、z坐标值为0,0±ε——inOrigin操作其结果应当是下面二个集合的交集:包含在立方体实例集合中的实例——myCuboid所引用满足谓词inOrigin的实例多态的Select操作可以应用于任何一个集合类型inOrigin定义declareinOrigin:Cuboid

9、

10、bool;defineinOriginis!!判断任何一个顶点是否处于坐标原点return((self.v1.x=0.0±εandself.v1.y=0.0±εandself.v1

11、.z=0.0±ε)OR…(self.v8.x=0.0±εandself.v8.y=0.0±εandself.v8.z=0.0±ε));变量定义和引用varmyCuboids,theCuboidsInOrigin:CuboidSet;……theCuboidsInOrigin:=myCuboids.select(inOrigin);示例2——查询退休职员declareisRetired:Employee

12、

13、bool;varretiredEmps:EmployeeSet;…retiredEmps:=ext(Employee).sele

14、ct(isRetired);示例3——无名的选择谓词的使用当布尔选择谓词比较简单,则可以λ符号来实现操作过程的传递示例:选择红色苹果的选择操作Ⅰ.选择谓词用命名isRed表达declareisRed:Apple

15、

16、bool;defineisRedis…Ⅱ.选择谓词用λ表达——直接传递过程redApples:=myApples.select(λx:x.color=“red”)GoldCuboid=mycuboid.select(λx:x.met.name=“gold”)带参数的选择谓词该参数是为选择谓词服务的,所以需要在谓词函数中

17、说明由于在引用时,显然需要由Select来引用,因此,在Select的参数表中也要说明,规则如下:polyoverloadselect(t1<={t2}):t1

18、

19、(t2

20、

21、t3->bool),t3->t1语义:其中类型t3可以是任何类型,它的约束条件是Select的第三个参数类型t3,必须与选择谓词所需一个参数类型一致Select的重载Select函数不但是多态的,而且是重载的,它可以根据选择谓词的需要,设定多个参数编译器根据重载规则,从参数的个数,寻找到正确的实现版本其约束条件为:在哑、实结合时,Select

22、的参数个数和各自类型必须与选择谓词的参数个数、类型完全一致示例1——一个参数的选择谓词对Cuboid定义一个选择谓词bigCuboid,它能选择体积大于某个阈值的立方体对象定义declarebigCuboid:Cuboid

23、

24、float->bool

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。