- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、OODB的产生与发展 面向对象数据库系统的实现方法 扩充命令式编程语言:通过扩充库使语言自身具有数据库功能,如O2(C扩充) 扩充OO语言:通过额外的类来提供持久对象存储、查询等数据库功能,如Versant、Ontos、ObjectStore OO语言的底层演化:将数据库功能直接添加到OO语言中,使语言自身具备DB支持能力,不需要额外的库,如GemStone(对SmallTalk、Java、C++语言扩充) 对象关系数据库技术:扩充关系模型,使其支持对象概念 1、OODB的产生与发展 面向对象数据库系统的实现方法 持久化OO语言【ODMG标准】 与OO语言相关,通过ODL、OQL实现数据管理 ORDB【SQL3标准】 扩充关系模型提供对象概念,兼容关系数据库和SQL 1、OODB的产生与发展 历史 80年代中期开始发展,89年Atkinson等发表“Object-Oriented Database System Manifesto”,提出了OODB的13条规则 从80s到90s,出现了多个OODBS:Jasmine、O2、Versant、Ontos等 1990,M.Stonebraker等发表“The Third Generation Database Manifesto”,提出了ORDB 90s以来,Oracle、DB2、Informix加入了ORDB支持,并提供了多个对象扩展模块 1993,ODMG93 1997,ODMG 2.0 1999,SQL3将ORDB写入标准,成为目前商业化的主流技术 2、OO概念 对象和类 继承和多重继承 OID 对象包含(PartOf) …… 3、OODBMS vs. ORDBMS ORDBMS 具有对象扩展能力的RDBMS,面向复杂数据应用,可以很好地支持SQL OODBMS 支持对象持久化的OO语言,与OO语言集成,面向以对象为中心的应用,大多数OODBMS还不能有效支持OQL 共同之处 两者都支持对象概念,区别在于实现技术 都支持对象数据的查询:OQL vs. SQL 都提供了DBMS的特性,如并发、恢复等 4、RDBMS vs. ORDBMS RDBMS 支持简单数据类型,不支持对象 ORDBMS 支持简单数据类型,也支持对象概念 兼容RDBMS 5、ORDB内涵 关系表的列可以是新的抽象数据类型(ADT) 用户可以增加新的ADT以及定义ADT上的操作 支持引用类型、继承 传统的SQL语言仍可以在ORDB中使用 5、ORDB内涵 ORDB设计例子 Employee(name: char(10), salary int, addr: Address) Address是扩充的ADT Create Type Address (street varchar(30),city varchar(30),house_number varchar(20)) Select name, addr.city From Employee 5、ORDB内涵 ORDB设计例子 Country(name:char(30), boundary: polygon) 查询例子“查询中国的邻国名称” Select C.name From Country C, Country D Where D.name=‘China’ and Meet(C.boundary, D.boundary) 使用了扩充的ADT操作 6、ORDB的复杂类型扩充技术 使用Create Type语句(SQL标准) ROW:行类型,类似C结构类型 SET:集合类型 MultiSET:多值集合(允许重复值) LIST:有序列表 REF:引用类型,指向一个复杂对象的指针 6、ORDB的复杂类型扩充技术 例子1【Informix】 Create ROW Type address (street varchar(30),city varchar(30),house_number varchar(30)) Create Table employee (name varchar(20),salary int,addr address) 6、ORDB的复杂类型扩充技术 例子1【Informix】 Create ROW type employee_t (name varchar(20),salary int,addr address) Create Table employee of type employee_t Create Table Dept (dname varchar(20),manager REF(employee_t),
文档评论(0)