对象关系数据库及其语言_第1页
对象关系数据库及其语言_第2页
对象关系数据库及其语言_第3页
对象关系数据库及其语言_第4页
对象关系数据库及其语言_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、对象-关系数据库及其语言,2008.09,目录,对象-关系数据库的兴起 关系数据库的弱点 对象-关系数据库的兴起 对象-关系数据模型及SQL:1999 背景 标准发展过程 SQL:1999内容,1.1 关系数据库的弱点(1),自20世纪80年代以来,关系数据库管理系统(RDBMS)一直是数据库管理系统(DBMS)的主流,其在数据库产品市场中一直占据统治地位。RDBMS的优越性主要体现在: 关系数据模型(relational data model)对传统的结构化数据(structured data)提供了简单、有效的建模(modeling)与表示(representation)机制; SQL语言

2、以说明性(declarative)的联想式访问(associative access)方式提供了简便和国际标准的数据查询与操纵机制; RDBMS提供了完备、高效的服务设施,包括索引和存储(indexing allows SQL to express complex combinations of predicates, e.g.: WHERE COL1 COL2 AND COL3 = COL4 OR UNIQUE (COL6) IS NOT FALSE,PART I 关系特性 Relational Features,新数据类型 New Data Types (3)数组与行ARRAY /撤销一个

3、“子事务”操作 RELEASE SAVEPOINT; /提交一个“子事务”操作,PART I 关系特性 Relational Features,新数据类型 New Data Types 新谓词 New Predicates 新语义 New Semantics 增强的安全机制 Enhanced Security 主动数据库 Active Database,PART I 关系特性 Relational Features,增强的安全机制 增加了角色(role)机制(RDBMS产品中已广泛实现): 见角色机制课件,PART I 关系特性 Relational Features,新数据类型 New Da

4、ta Types 新谓词 New Predicates 新语义 New Semantics 增强的安全机制 Enhanced Security 主动数据库 Active Database,PART I 关系特性 Relational Features,主动数据库 增加了触发器(trigger)机制(RDBMS产品中已广泛实现),是ECA rules。用于: 记日志(logging) 维护完整性约束(Integrity Constraints) 实现更为复杂的业务规则(Bussiness Rules) 见主动数据库课件,PART II 面向对象特性 Object Orientation,可调用例

5、程 结构化用户定义类型 Structured User-Defined Types (UTDs) 函数与方法的异同 Functions vs Methods 函数符号与点符号 Functional and Dot Notations 完全的对象特性Objects,PART II 面向对象特性 Object Orientation,可调用例程 一些O-O特性已在1996年发布的SQL持久存储模块(SQL/PSM)中提供,e.g. SQL语句中可调用函数或过程: SQL-invoked functions SQL-invoked procedures 这次新增了方法调用:SQL-invoked m

6、ethods 函数、过程与方法通称为可调用例程:SQL-invoked routines,PART II 面向对象特性 Object Orientation,可调用例程 结构化用户定义类型 Structured User-Defined Types (UTDs) 函数与方法的异同 Functions vs Methods 函数符号与点符号 Functional and Dot Notations 完全的对象特性Objects,PART II 面向对象特性 Object Orientation,结构化用户定义类型 UTD User_Defined Types (UDTs) DISTINCT: b

7、ased on SQLs built-in types Structured UDTs: based on any SQL types, including SQLs built-in types and Structured UDTs 例子: CREATE TYPE emp_type UNDER person_type AS (EMP_ID INTEGER, SALARY REAL) INSTANTIABLE NOT FINAL REF (EMP_ID) INSTANCE METHOD GIVE_RAISE (ABS_OR_PCT BOOLEAN, AMOUNT REAL) RETURNS

8、REAL,PART II 面向对象特性 Object Orientation,结构化用户定义类型 UTD Characteristics of Structured UDTs: have 1n attributes, each of which can be any SQL type (built-in types like INTEGER, collection types like ARRAY, or other structured UDTs nested as deeply as desired) Their behaviors are provided through methods

9、, functions, and procedures Their attributes are encapsulated through the use of system-generated observer other functions & methods can be overloaded Comparisons of their values are done only through user-defined functions (UDFs),PART II 面向对象特性 Object Orientation,结构化用户定义类型 UTD Characteristics of St

10、ructured UDTs: They may participate in “type hierarchies”: 注: SQL:1999的类型层次是单继承的(single inheritance),而不是多继承的(multiple inheritance) SQL:1999的类型定义器可指定类型是否可实例化(instantiable),即:类型的值可被创建 SQL:1999结构类型的值可出现的地方(如一个基表的列中)可出现其子类型的值(称可替代性Substitutability) SQL:1999不支持类型封装级别程度(encapsulation level/degree),而一些OOPL

11、(如C+)则允许:PUBLIC、 PRIVATE、PROTECTED,PART II 面向对象特性 Object Orientation,可调用例程 结构化用户定义类型 Structured User-Defined Types (UTDs) 函数与方法的异同 Functions vs Methods 函数符号与点符号 Functional and Dot Notations 完全的对象特性Objects,PART II 面向对象特性 Object Orientation,函数与方法的异同 不同之处:(简言之:一个M是一个带有某些限制和增强的F) M被紧密绑定到一个单一UDT;F不是这样。 M

12、所绑定的UDT(变元类型)是一个对此M特异的(如,可识别或区分的)数据类型;F的任何变元均是非特异的。 F可以是多态的,但一个具体(i.e., 特定)的F是在编译时就被选定的;M也可以是多态的,但其特异变元的大多数具体类型可在运行时确定,并允许推迟到执行时才选定具体的调用方法(当然,其他变元是基于其申明的类型在编译时消解的) M必须存储于绑定它的结构化类型定义所存储的模式中;F则并不限定模式,PART II 面向对象特性 Object Orientation,函数与方法的异同 相同之处: F & M均既可用SQL/PSM的计算完备(computationally-complete)语句来定义,

13、又可用传统的编程语言(如:JAVA)来定义。,PART II 面向对象特性 Object Orientation,可调用例程 结构化用户定义类型 Structured User-Defined Types (UTDs) 函数与方法的异同 Functions vs Methods 函数符号与点符号 Functional and Dot Notations 完全的对象特性Objects,PART II 面向对象特性 Object Orientation,函数符号与点符号 UDT的属性值的访问可使用两种运算符号实现:函数和点。它们是语法上等价的变种。 大多数情况下“点符号”更自然。e.g., WHE

14、RE emp.salary 10000 少数情况下“函数符号”更自然。e.g., WHERE salary(emp) 10000 /设salary是定义在emp所属类型上的函数 在此场合,Methods稍欠灵活仅“点符号”可用于方法调用至少为指定其一个特异变元(值)时。如: 若salary是其绑定类型为employee的方法,且: emp: employee /其中emp为列,employee为类型 则方法salary可这样调用:emp.salary 当然,employee中定义的方法give_raise可这样调用(“点符号”与“函数符号”相结合):emp.give_raise(amount)

15、,PART II 面向对象特性 Object Orientation,可调用例程 结构化用户定义类型 Structured User-Defined Types (UTDs) 函数与方法的异同 Functions vs Methods 函数符号与点符号 Functional and Dot Notations 完全的对象特性 Objects,PART II 面向对象特性 Object Orientation,完全的对象特性 Typed table: Object, its full features are embodied via typed tables, each RowID in a typed table behaves as an OID of an object REF type: Its value refers to an RowID in a typed table, or is NULL (means “dangling reference”) All REF types are “scoped”, 使得编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论