数据库6版讲稿第十四章---基于对象的数据库分析.ppt

数据库6版讲稿第十四章---基于对象的数据库分析.ppt

数据库6版讲稿第十四章---基于对象的数据库分析

数据库系统概念----对象-关系数据库 前言 提纲 嵌套关系 复杂类型与面向对象 与复杂类型有关的查询 复杂值和复杂对象的创建 OO数据库与OR数据库比较 14.1 概述 通过增加面向对象特征和处理新建数据类型来扩展关系模型 允许元组的属性域为复杂类型,包括如嵌套关系等非原子性的值 在扩展建模能力的同时,保留关系的基本特征,如说明性查询 提高与现有关系语言的兼容性 14.2 复杂数据类型 动机 允许非原子域的存在 允许以更自然直接的方式对应用建模 直觉定义 允许关系出现在原子值出现的地方——在关系中出现关系 保留关系模型的数学基础 违反了1NF 嵌套关系 嵌套关系示例 文档检索系统: doc 对于关系数据库,用1NF、4NF表示都有问题 嵌套关系 doc的1NF版本: flat_doc 嵌套关系 flat-doc中的多值依赖 title??author title??keyword title??day month year flat-doc的4NF分解 (title,author) (title,keyword) (title,day,month,year) 嵌套关系 flat-doc的4NF分解 嵌套关系 1NF表示 不要求用户的查询中包含对连接操作,但失去了元组与文档之间的一一对应 4NF分解 4NF设计要求用户的查询中包含对关系的连接 嵌套关系是更自然的表示 复杂类型与面向对象 对关系模型的扩展 嵌套关系 复杂类型 特殊化 继承 对象标识 对SQL的扩展 SQL3 XSQL 有结构的类型和集合体类型 复合类型 结构类型 不同类型元素的有序集合 示例:日期由日、月、年组成(3,June,2001) 数组类型 同类元素的有序集合 示例:人名数组(Annie, Bob, Jerry, Tom) 有结构的类型和集合体类型 多集类型(multiset) 同类元素的无序集合,并且允许一个成员多次出现 示例:成绩(80,90,75,80,90,80) 集合类型(setof) 同类元素的无序集合,一个成员最多只能出现一次 示例:课程(MATHS,PHYSICS,OS,DB) 有结构的类型和集合体类型 传统关系模型 属性只能是基本数据类型 对象-关系模型 属性可以是复合数据类型 可以直接表达E-R中的复合属性和多值属性 数据类型可以嵌套 课程成绩单{(MATHS,80),(PHYSICS,90),(OS,85),(DB,95)} 外层是集合类型,内层是结构类型 有结构的类型和集合体类型 例:文档检索系统: doc 定义 有结构的类型和集合体类型 create type MyString char varying. create type MyDate (day integer, month char(10), year integer) create type Document (title MyString, author-list setof(MyString),, date MyDate, keyword-list setof(MyString)) create table doc of type Document 有结构的类型和集合体类型 也可以直接定义doc表 create table doc (title MyString, author-list setof(MyString), date MyDate keyword-list setof(MyString)) 有结构的类型和集合体类型 例: 关于学生、课程、成绩的数据类型 Create type MyString char varying. create type MyDate (day integer, month char(10), year integer) Create type Name Array MyString [10]. 有结构的类型和集合体类型 Create type StudentGrade multiset (integer ) Create type CourseList setof (MyString) Create type CourseGrade (course MyString , grade integer) Create type StudentCourse (Sname MyString , cg setof (CourseGrade) 有结构的类型和集合体类型 例:车间与职工的关系 dept=(dno,dname,staff (empno,ename ,age)) Create ty

文档评论(0)

1亿VIP精品文档

相关文档