数据库技术 教学课件 ppt 作者 施伯乐 PPT-KX-07

上传人:E**** 文档编号:89245124 上传时间:2019-05-22 格式:PPT 页数:42 大小:143.50KB
返回 下载 相关 举报
数据库技术 教学课件 ppt 作者 施伯乐 PPT-KX-07_第1页
第1页 / 共42页
数据库技术 教学课件 ppt 作者 施伯乐 PPT-KX-07_第2页
第2页 / 共42页
数据库技术 教学课件 ppt 作者 施伯乐 PPT-KX-07_第3页
第3页 / 共42页
数据库技术 教学课件 ppt 作者 施伯乐 PPT-KX-07_第4页
第4页 / 共42页
数据库技术 教学课件 ppt 作者 施伯乐 PPT-KX-07_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《数据库技术 教学课件 ppt 作者 施伯乐 PPT-KX-07》由会员分享,可在线阅读,更多相关《数据库技术 教学课件 ppt 作者 施伯乐 PPT-KX-07(42页珍藏版)》请在金锄头文库上搜索。

1、对象数据库系统,报告人:吴宇进,数据库系统发展,第一代:层次、网状数据库系统 第二代:关系数据库系统 新一代DBS: OO + DB OODBS: OOPL中引入数据库技术 ORDBS:关系DBMS自然地加入OO技术,一、对象关系数据库ORDBS,关系模型的扩充,平面关系模型:1NF , 属性值不可分解 嵌套关系模型:属性值又可以是一个关系,而且可以出现多次嵌套 University(uno,uname,city,staff(fno,fname,age) 复合对象模型:属性类型可以是基本数据类型,也可以是结构类型(即元组类型)或集合类型(即关系类型) University(uno,uname,

2、city,staff(fno,fname,age),presidentfno,fname,age),嵌套关系模型定义,例:大学(University)与教师(Faculty)组成了嵌套关系: University(uno,uname,city,staff(fno,fname,age) 先定义关系类型,再定义关系: type UniversityRel = relation(uno:integer,uname:string,city:string,staff:FacultyRel) type FacultyRel = relation(fno:integer,fname:string, age:

3、integer) persistent var University:UniversityRel;,引用类型,嵌套关系和复合对象无法表达递归结构:无穷嵌套 引用:指针或对象地址,对象联系图,继承性,泛化/细化:对概念之间联系进行抽象(is a),面向对象类型系统,基本类型:整型、浮点型、字符、字符串、布尔型和枚举型 复合类型 行类型: (1,October,2001) 数组类型: BAO,AN,NING,WEN,GAO,DING 列表类型: “abcadefbg” 包类型: 80,90,70,80,80 集合类型: MATHS,PHYSICS,PL,OS,DB 引用类型,ORDBS定义,在传统

4、的关系数据模型基础上,提供元组、数组、集合一类丰富的数据类型以及处理新的数据类型操作的能力,并且有继承性和对象标识等面向对象特点,这样形成的数据模型,称为“对象关系数据模型”。 基于对象关系数据模型的DBS称为“对象关系数据库系统”(ORDBS)。,ORDB数据类型定义,例7-6 设有一个学生选课及成绩的嵌套关系如下: SC(name,cg(course,grade,date) 先定义各种类型: CREATE TYPE CourseGrade (course MyString,grade integer,date MyDate); /*定义CourseGrade是结构类型 */ CREATE

5、TYPE StudentGrade setof(CourseGrade); /* 定义StudentGrade是集合类型 */ CREATE TYPE StudentCourseGrade (name MyString,cg StudentGrade); /* 定义StudentCourseGrade是结构类型 */,ORDBS定义(续),再定义关系SC CREATE TABLE sc of TYPE StudentCourseGrade; /* 定义表SC包含类型为结构StudentCourseGrade的元组 */ 或不创建中间类型,直接创建表: CREATE TABLE SC(name

6、MyString,cg setof(course MyString,grade integer,date MyDate); 其他类型 CREATE TYPE NameArray MyString10; /* 定义NameArray是数组类型 */ CREATE TYPE Grades multiset(integer); /* 定义Grades是多集类型,每个成员是整数 */ CREATE TYPE Grades listof(integer); /* 列表*/,ORDB继承性定义,类型级继承 CREATE TYPE Person(name MyString,social_number int

7、eger; CREATE TYPE Student(degree MyString, department MyString) under Person;,ORDB继承性定义(续),表级继承 CREATE TABLE People(name MyString, social_number integer); CREATE TABLE students(degree MyString, department MyString) under People;,一致性要求: 超表中每个元组最多可以与每个子表中的一个元组对应。 子表中每个元组在超表中恰有一个元组对应,并在继承的属性上有相同的值。,引用类

8、型定义,对类型的引用 例:对人的引用属于类型ref(Person) 对表中的元组也可以有引用 例:对people表中元组的引用具有类型ref(people) CREATE TABLE faculty(fno integer, fname MyString,age integer, works_for ref(university), teach setof(ref(coursetext);,ORDB查询语言,扩充的SQL允许用于计算关系的表达式出现在任何关系名可以出现的地方 规定应为每个基本表设置一个元组变量,然后才可引用 SELECT F.fno,F.fname FROM faculty a

9、s F WHERE(MATHS,Mathematical Analysis)IN F.teach;,ORDB查询语言(续),检索每一位教师开设的课程: SELECT F.fname,C.cname FROM faculty as F,F.teach as C 检索上海地区各大学超过50岁的教师人数: SELECT U.uname,count(SELECT * FROM U.staff as F WHERE F.age50) FROM university as U WHERE U.city = shanghai,路径表达式,当属性值为单值或结构值时,属性的引用方式仍和传统的关系模型一样 例:检

10、索上海地区的大学校长姓名 SELECT U.uname,U.president.fname FROM university as U WHERE U.city = shanghai 当路径中某个属性值为集合时 ,此时应为集合定义一个元组变量 例:检索上海地区各大学超过50岁的教师姓名 SELECT U.uname,F.fname FROM university as U,U.staff as F WHERE U.city = shanghai AND F.age50,路径表达式(续),例:检索复旦大学每个教师上课所用教材及编写的学校 SELECT F.fname,C.textname,C.ed

11、itor.uname FROM university as U,U.staff as F,F.teach as C WHERE U.uname = Fudan University; 这个查询也可用另外一种形式表达 SELECT F.fname,C.textname,C.editor.uname FROM faculty as F,F.teach as C WHERE F.works_for.uname = Fudan University,嵌套与解除嵌套,将一个嵌套关系转换成1NF的过程称为“解除嵌套” 将一个1NF关系转化为嵌套关系称为“嵌套” SELECT U.uname,set(F.f

12、no,F.fname)as teachers FROM university as U, U.staff as F,F.teach as C WHERE C.editor.uname = U.uname GROUP BY U.uname;,函数的定义和使用,ORDB允许用户定义函数 (程序设计语言或SQL) 定义: CREATE FUNCTION course_count(one_student StudentCourseGrade) RETURNS integer AS SELECT Count(cg)FROM one_student 自定义函数可用于SQL查询中: SELECT name

13、FROM sc WHERE course_count(sc) 8,复合值的创建和查询,创建复合类型关系的元组 INSERT INTO sc VALUES (ZHANG,set(DB,80,(1,July,2000),(OS,85,(1,January,2001) 查询中使用复合值 SELECT name,count(cg) FROM sc WHERE name IN set(WANG, LIU,ZHANG),集合属性,二、面向对象数据库(OODBS),OODBS定义,面向对象系统 针对OOPL的持久性对象存储管理而设计,充分支持完整的面向对象概念和机制 数据库能力 具备DBS的基本功能,譬如持

14、久性、辅存管理、数据共享、事务管理、一致性控制及恢复,ODMG组织和标准,ODMG:Object Data Management Group OOPL OPALODMG93ODMG97 ODMG93、ODMG97标准 基于对象(SQL3基于表),ODMG93,对象是基本的数据结构。对象是存储和操作的基本单位 每个对象有一个永久的标识符 对象可以被指定类型和子类型 对象状态由数据值与联系定义 对象行为由对象操作定义,面向对象数据模型,对象 一组变量(属性) 一组消息 一组方法 类:对象实例 继承性:数据间泛化/细化关系 对象标识:对象生存期内标识对象 对象包含:聚合关系,持久化程序设计语言,持久

15、数据:创建这些数据的程序运行终止后数据依然存在于系统之中 持久化程序设计语言:扩充了持久数据处理能力,ODMG持久化C+系统: 对C+做了最小扩充,而通过类库提供绝大多数的功能,持久化程序设计语言(续),对象的持久性:区分持久或是暂留对象 对象标识和指针 持久对象:被分配一个持久的对象标识符 暂留对象:被分配一个暂留的对象标识符 持久对象的存储和访问 根据对象名找对象 依据对象标识找对象 将对象按聚集形式存放,然后利用程序循环查找,ODMG C+ ODL,class Person:public Persistent_Object public:string name; int age; ; c

16、lass Faculty:public Person private:int salary; public:int fno; Ref works_for inverse University:staff; Set teach inverse Coursetext:teacher; ;,ODMG C+ ODL(续),class University:public Persistent_Object public:int uno; string uname; string city; Ref president; Set staff inverse Faculty:works_for; Set edit inverse Coursetext:editor; ; class Coursetext:public Persistent_Object public:string c

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号