第8章对象数据库系统_第1页
第8章对象数据库系统_第2页
第8章对象数据库系统_第3页
第8章对象数据库系统_第4页
第8章对象数据库系统_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、第八章 对象数据库系统 本章重要概念(一) (1)新一代DBS的两条途径:ORDBS和OODBS。(2)平面关系模型,嵌套关系模型,复合对象模型,引用类型,对象联系图的成分及表示方法,数据的概化/特化,继承性。(3)OO的数据类型系统:基本类型,五种复合类型,引用类型。(4)对象关系模型的定义,两个级别的继承性,引用类型的定义,ORDB的查询语言,路径表达式,Oracle中查询的两种技术,嵌套与解除嵌套。 本章重要概念(二)(5)OODBS的定义,OO数据模型的五个基本概念,ODMG1.0标准的ODL和OML,ODMG2.0标准的数据模型、ODL和OQL。(6)OODB与ORDB的比较。(7)

2、UML的类图,用类图表达类、关联、关联类、概化/特化、聚合。 主要内容和学习要求n8.1 对象联系图 (理解)n8.2 面向对象的数据类型系统(了解) n8.3 ORDB的定义语言 (了解)n8.4 ORDB的查询语言 (了解)n8.5 OODBS概述 (了解)n8.6 ODMG1.0标准 (了解)n8.7 ODMG2.0标准 (了解)n8.8 OODB与ORDB的比较 (了解)n8.9 使用UML类图来概念对象建模 (理解)从关系到嵌套关系、复合对象(a)平面关系模型的结构: 关系元组属性(基本类型) 属性(基本类型)(b)嵌套关系模型的结构:关系元组 属性(关系类型) 属 性 ( 基 本

3、类 型 ) 元组 属性(元组类型)(c)复合对象模型的结构: 关系 属性(关系类型) 子关系(a)(b)(c)嵌套关系和复合关系的实例大学 教师校长University(uno,uname,city,staff(fno,fname,age),presidentfno,fname,age )引用类型n嵌套关系和复合对象无法表达递归的结构 n使用“引用”(reference)的技术解决类型定义中的递归问题 ;引用相当于指针UniversityTupUniversityRelFacultyTupFacultyRelUniversityTupUniversityReLFacultyTupFaculty

4、Rel图8.4 引入“引用”概念的类型构造对象联系图的成分 对象类型属性值是单值对象间嵌套或引用的关系基本数据类型属性值是多值两个属性之间值的联系为逆联系 对象间是超类和子类的联系一个对象联系图的实例FacultyUniversityCoursetextpresidentworks_forfnocityunameeditorstaffteacheditageteachersalarytextnamefnamecnameuno图8.5 对象联系图 数据的概化特化 n概化:n特化:n这种特化联系是一种“是”(is a)的联系。 FacultyPersonStudentfnosalarysnoage

5、name图8.6 带概化边的对象联系图 主要内容n8.1 对象联系图n8.2 面向对象的数据类型系统n8.3 ORDB的定义语言n8.4 ORDB的查询语言 n8.5 OODBS概述n8.6 ODMG1.0标准n8.7 ODMG2.0标准n8.8 OODB与ORDB的比较n8.9 使用UML类图来概念对象建模面向对象的数据类型系统n基本类型:整型、浮点型、字符、字符串、布尔型和枚举型 n复合类型n行类型:不同类型元素的有序集 n数组类型:相同类型元素的有序集合 n列表类型:相同类型元素的有序集合,并且允许有重复的元素 n包类型:相同类型元素的无序集合,并且允许有重复的元素 n集合类型:相同类型

6、元素的无序集合,并且所有的元素必须是不同的 n引用类型主要内容n8.1 对象联系图n8.2 面向对象的数据类型系统n8.3 ORDB的定义语言n8.4 ORDB的查询语言 n8.5 OODBS概述n8.6 ODMG1.0标准n8.7 ODMG2.0标准n8.8 OODB与ORDB的比较n8.9 使用UML类图来概念对象建模数据类型的定义CREATE TYPE MyString char varying; CREATE TYPE MyDate(day integer,month char(10),year integer); CREATE TYPE StudentGrade setof(Cour

7、seGrade); CREATE TYPE CourseGrade(course MyString,grade integer, date MyDate);CREATE TYPE StudentCourseGrade(name MyString, cg StudentGrade);CREATE TABLE sc of TYPE StudentCourseGrade;CREATE TABLE SC(name MyString,cg setof (course MyString,grade integer,date MyDate); CREATE TYPE NameArray MyString10

8、; CREATE TYPE Grades multiset(integer); CREATE TYPE Grades listof(integer); 继承性的定义 PersonStudentTeacher类型类型级的级的继承继承性性CREATE TYPE Person(name MyString,social_number integer); CREATE TYPE Student(degree MyString,department MyString)under Person;CREATE TYPE Teacher(salary integer,department MyString)un

9、der Person; 表表级级的的继继承承性性 PeopleStudentsTeachers子表和超表应满足下列两个一致性一致性要求: 超表中每个元组最多可以与每个子表中的一个元组对应。 子表中每个元组在超表中恰有一个元组对应,并在继承的属性上有相同的值 。超表子表子表引用类型的定义 n对类型的引用 定义:team_list setof(ref(Person) n对表中的元组的引用 CREATE TABLE university( uno integer,uname MyString,city MyString,president ref(faculty),staff setof(ref(f

10、aculty),edit setof(ref(coursetext);CREATE TABLE faculty(fno integer,fname MyString,age integer,works_for ref(university),teach setof(ref(coursetext); SQL3中的定义语言的特色n结构数据类型(row类型)n对象标识符(oid):便于引用nOid的三个性质n oid值在任何时刻都能惟一标识元组 n oid只是一个简单的标识,与元组的物理值无关 n在元组插入DB时,oid值由DBMS自动产生 主要内容n8.1 对象联系图n8.2 面向对象的数据类型系

11、统n8.3 ORDB的定义语言n8.4 ORDB的查询语言 n8.5 OODBS概述n8.6 ODMG1.0标准n8.7 ODMG2.0标准n8.8 OODB与ORDB的比较n8.9 使用UML类图来概念对象建模以关系为值的属性 n在ORDB中,规定应为每个基本表设置一个元组变量,然后才可引用,否则语句将不做任何事情 n聚集函数(如min、max和count)以一个值的集合体作为参数并返回单个值作为结果,它们可以应用于任何以关系为值的表达式处 SELECT F.fno,F.fnameFROM faculty as FWHERE(MATHS,Mathematical Analysis)IN F.

12、teach; SELECT U.uname,count(SELECT * FROM U.staff as F WHERE F.age50)FROM university as UWHERE U.city = shanghai; 路径表达式 n当属性值为单值或结构值时,属性的引用方式仍和传统的关系模型一样,在层次之间加园点“.” n当路径中某个属性值为集合时,就不能连着写下去 SELECT U.uname,U.president.fnameFROM university as UWHERE U.city = shanghai;U.staff.fname 错(staff是集合)SELECT U.u

13、name,F.fnameFROM university as U,U.staff as FWHERE U.city = shanghai AND F.age50; 正确 嵌套与解除嵌套 SELECT U.uname,set(F.fno,F.fname)as teachersFROM university as U,U.staff as F,F.teach as CWHERE C.editor.uname = U.unameGROUP BY U.uname; 以嵌以嵌套的套的形势形势显示显示1NF结果结果以以1NF的的形势显示形势显示嵌套结果嵌套结果在select子句中列出所有内层属性,且内层属

14、性前加上层次限定词函数的定义和使用 n用户可以用程序设计语言(如C,C+)或SQL定义SQL中的函数CREATE TYPE StudentCourse- Grade(name MyString, cg setof(course MyString, grade integer,date MyDate);CREATE TABLE sc of TYPE StudentCourseGrade; 数据定义CREATE FUNCTION course_count(one_student StudentCourseGrade)RETURNS integer ASSELECT Count(cg)FROM on

15、e_student; 定义的一个函数:返回给定学生的选课门数SELECT nameFROM scWHERE course_count(sc) 8 使用函数的一个查询复合值的创建和查询(ZHANG,set(DB,80,(1,July,2000),(OS,85,(1,January,2001) 集合类型用SET说明,多集值则用MULTISET说明符合属性DATE的值用()说明INSERT INTO scVALUES (ZHANG,set(DB,80,(1,July,2000),(OS,85,(1,January,2001);SELECT name,count(cg)FROM scWHERE nam

16、e IN set(WANG, LIU,ZHANG) 涉及复合值的一个插入语句涉及复合值的一个查询语句主要内容n8.1 对象联系图n8.2 面向对象的数据类型系统n8.3 ORDB的定义语言n8.4 ORDB的查询语言 n8.5 OODBS概述n8.6 ODMG1.0标准n8.7 ODMG2.0标准n8.8 OODB与ORDB的比较n8.9 使用UML类图来概念对象建模ODMG标准n什么是ODMG标准nODMG标准的五个核心概念n对象是基本的数据结构n每个对象有一个永久的表示符n对象可以被指定类型和子类型n对象状态由数据值与联系定义n对象行为由对象操作定义OODBSn什么是OODBXSn典型的O

17、ODBMS:ObjectStore,Ontos,O2,Gemstone,Objectivity和PostVersant面向对象数据模型的概念n对象:由一组变量、消息和方法组成n类:本质相同的对象的抽象n继承性:类的子类继承父类的所有性质n对象标识:OID,唯一标识对象n对象包含:一个对象由几个对象组成,则该对象包含它的成员对象personcustomeremployeeofficertellersecretary图8.13 类继承层次图personfacultyfaculty_studentstudent图8.14 多重继承性层次1.一个对象2.对象、对象和实体间的对应关系以及对象和外界的联系

18、对象属性1属性2方法消息实体属性1属性2飞机引擎机身图8.15 对象之间的包含层次尾翼机翼主要内容n8.1 对象联系图n8.2 面向对象的数据类型系统n8.3 ORDB的定义语言n8.4 ORDB的查询语言 n8.5 OODBS概述n8.6 ODMG1.0标准n8.7 ODMG2.0标准n8.8 OODB与ORDB的比较n8.9 使用UML类图来概念对象建模持久化程序设语言和嵌入式语言的区别n在嵌入式语言中,宿主语言的类型系统与SQL的类型系统不同,程序员要负责宿主语言与DML之间的类型转换。而持久化程序设计语言的查询语言与宿主语言完全集成在一块,任何格式转换对程序员都是透明的。 n 使用嵌入

19、式查询语言的程序员要负责编写程序把数据从数据库中取出放到内存中。在持久化语言中,程序员可以直接操纵持久数据,而不必为存取数据编写程序。 持久化语言的基本概念n对象的持久性n对象标识和指针n持久对象的存储和访问n根据对象名找对象n根据对象标识找对象n将对象按聚集形式存放,然后利用程序循环找所需对象n持久化c+系统:通过类库赖扩展C+,以支持持久化n扩展c+对象定义语言n扩展c+对象操纵语言ODMG C+对象定义语言 -C+ ODLclass Person:public Persistent_Object public:string name; int age;class Faculty:publ

20、ic Person private:int salary;public: int fno; Ref works_for inverse University:staff; Set Ref teach inverse Coursetext:teacher;class University:public Persistent_Object public:int uno; string uname; string city; Ref president; Set Ref staff inverse Faculty:works_for; Set Ref edit inverse Coursetext:

21、editor;class Coursetext:public Persistent_Object public:string cname;string textname; Ref teacher inverse Faculty:teach; Ref editor inverse University:edit; ODMG C+对象操纵语言 -C+ OML,插入实例 打开数据库; 事务开始; 查询工号为fno值的Faculty对象ofa; 查询校名为uname值的University对象oun; 创建Coursetext对象oco,送入cname和textname值:Ref oco = new(

22、faco_db) Coursetext;oco-cname = cname;oco-textname = textname; 在oco的teacher中插入Faculty对象ofa:oco-teacher.insert_element(ofa); 在oco的editor中插入University对象oun:oco-editor.insert_element(oun); 事务提交(commit)。 主要内容n8.1 对象联系图n8.2 面向对象的数据类型系统n8.3 ORDB的定义语言n8.4 ORDB的查询语言 n8.5 OODBS概述n8.6 ODMG1.0标准n8.7 ODMG2.0标准n

23、8.8 OODB与ORDB的比较n8.9 使用UML类图来概念对象建模ODMG对象模型的主要内容n对象和文字(ODMG对象模型的基本成分)n两者的区别n对象的特征:OID,Name,Lifetime,Structn对象的结构n汇集对象n原子对象n文字的结构 原子文字、结构文字和汇集文字n接口、类、类外延和关键码ODMG对象定义语言(ODL)interface Faculty:Person (extent Faculties key fno)attribute integer fno; relationship University works_for inverse University:st

24、aff; relationship Set teach inverse Coursetext:teacher; integer num_teach() raises(noTeach); interface University(extent Universities key uno) attribute integer uno; attribute string city; relationship Faculty president; relationship Set staff inverse Faculty:works_for; relationship Set edit inverse

25、 Cursetext:editor;integer num_staff(); OQL中的SELECT语句1.检索上海地区大学中教师开设课程的课程名。SELECT DISTINCT C.cname FROM University U,U.staff F,F.teach CWHERE U.city = shanghai;2.下面查询返回的是列表值而不是集合或多集:SELECT F.fno,F.name FROM Faculty F ORDER BY F.age DESC)0:4;3. 检索上海地区各大学中教师开课的课程名,要求显示校名、教师名、课程名。SELECT Struct(U.uname,s

26、et(F.name,set(C.cname)FROM University U,U.staff F,F.teach CWHERE U.city = shanghai;OQL的量词表达式n全称量词的句法 FOR ALL x IN S:C(x) n存在量词的句法EXISTS x IN S:C(x) 检索存在60岁以上教师的大学校名。SELECT DISTINCT U.uname FROM University U WHERE EXISTS F IN U.staff:F.age=60; 检索教师年龄全在50岁以下的大学校名。SELECT U.uname FROM University UWHERE

27、FOR ALL F IN U.staff:F.age50; OQL中使用聚集操作和分组子句的SELECT语句nOQL中 ,COUNT可以应用于任何聚集,SUM和AVG可以用于基本类型的聚集,MAX和MIN可以用于任何可比较类型的聚集。 检索每个年龄段教师平均授课门数。SELECT F.age,avgNum:AVG(SELECT P.F.num_teach() FROM partition P)FROM Faculty F GROUP BY F.age; 检索至少有一位教师年龄超过90岁的大学的编号、校名和教师人数。SELECT U.uno,U.uname,U.num_staff()FROM U

28、niversity UGROUP BY U.uno,U.unameHAVING MAX(SELECT F.age FROM partition P,P.staff F)90; OQL的集合运算符(SELECT U.uno,U.uname FROM University U GROUP BY U.uno,U.unameHAVING U.num_staff() 1000 ) EXCEPT(SELECT U.uno,U.Uname FROM University U,U.staff F WHERE F.salary 500 ); OQL中对象的赋值和建立n 对宿主语言变量赋值oldFaculties

29、 = SELECT F FROM Faculty F WHERE F.age 60; n从聚集中提取元素 facultyList = SELECT F FROM Faculty F WHERE F.age 60 ORDER BY F.salary DESC,F.age DESC; 主要内容n8.1 对象联系图n8.2 面向对象的数据类型系统n8.3 ORDB的定义语言n8.4 ORDB的查询语言 n8.5 OODBS概述n8.6 ODMG1.0标准n8.7 ODMG2.0标准n8.8 OODB与ORDB的比较n8.9 使用UML类图来概念对象建模OODB和ORDB的比较OODBORDB从OOP

30、L C+出发,引入持久数据的概念,能操作DB,形成持久化C+系统从SQL出发,引入复合类型、继承性、引用类型等概念(SQL 3)ODMG OQL(类似于SQL)SQL 3有导航式查询,也有非过程性查询结构化查询, 非过程性查询符合面向对象语言符合第4代语言显式联系隐式联系惟一的对象标识符有主键概念,也有对象标识概念能够表示“关系”能够表示“对象”对象处于中心位置关系处于中心位置主要内容n8.1 对象联系图n8.2 面向对象的数据类型系统n8.3 ORDB的定义语言n8.4 ORDB的查询语言 n8.5 OODBS概述n8.6 ODMG1.0标准n8.7 ODMG2.0标准n8.8 OODB与O

31、RDB的比较n8.9 使用UML类图来概念对象建模UML概述n什么事UMLnUML的历史nUML的基本组件n状态图n类图n组件图类图和ER图中术语的区别ER图中的术语类图中的术语实体集(Entity Set)类(class)实体(Entity)对象(object)联系(relationship)关联(association)联系元数关联元数实体的基数(cardinality)重数(mulitiplicity)-用类图表达类和关联Universityunounamecitynum_staffPersonnameageFacultyfnosalarynum_teachCoursetextcname

32、textname0.1 President 0.11 S t a f f 0.*1.1 Edit 0.*0.*1.1 Teach1PERSONFACULTYSTAFFCOURSETEXTUNIVERSITYTEACHEDITPRESIDENT11N1NER图图UML的类图的类图类名属性方法重复度关联名二元用类图表达类和关联续PersonIs_married_to 0.1 0.1EmployeeManage *0.1 manager (a)人之间的婚姻关联 (b)职员之间的管理关联 图8.21 两个一元关联 PartVendorWarehouseSupplies*图8.22 三元关联 用类图表达关联类StudentsnosnameagesexCoursecnocnameteacherRegistrationtermgradeCheckEligibility( )*ComputerAccountacctIDpasswordserveSpaceIssues*0.1用类图表达概化和特化n鉴别器:指定概化的基础n概化表示了继承性联系n抽象类和具体类n子类的语义约束ResidentPatientdateDischargedPatientabstractpatientIDadmitDatePhysicianPhysic

温馨提示

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

评论

0/150

提交评论