第9章面向对象数据库 面向对象( Object_Oriented)技术和DB技术两种结合 方法。一种是在OO程序设计语言中引入DB技术,面向 对象DBS( OODBS),亦称(ODBS),纯粹ODBS或 第一代ODBS。另一种是在 RDBMS中加入00技术,使 RDBMS具备面向对象的功能,称为对象关系DBS ( ORDBS)亦称为第二代ODBS 本章先介绍面向对象数据模型的基本概念,然后介绍 OODBS的基本原理以及 OODBS数据库设计方法-ODL, 最后介绍了持久化C++。 要求掌握 OODBS的基本概念、基本原理以及设计方法
第9章 面向对象数据库 ◼ 面向对象(Object_Oriented)技术和DB技术两种结合 方法。一种是在OO程序设计语言中引入DB技术,面向 对象DBS(OODBS),亦称(ODBS),纯粹ODBS或 第一代ODBS。另一种是在RDBMS中加入00技术,使 RDBMS 具备面向对象的功能,称为对象关系DBS (ORDBS)亦称为第二代ODBS。 ◼ 本章先介绍面向对象数据模型的基本概念,然后介绍 OODBS的基本原理以及OODBS数据库设计方法--ODL, 最后介绍了持久化C++。 ◼ 要求掌握OODBS的基本概念、基本原理以及设计方法
第9章面向对象数据库 9.1面向对象数据模型的基本概念 ■9,2面向对象数据库 9.3面向对象数据库设计-ODL 9.4ODL定义子类与约束 9.5持久化程序设计语言 9.6持久化C++系统 9,7小结 9.8习题
第9章 面向对象数据库 ◼ 9.1 面向对象数据模型的基本概念 ◼ 9.2 面向对象数据库 ◼ 9.3 面向对象数据库设计--ODL ◼ 9.4 ODL定义子类与约束 ◼ 9.5 持久化程序设计语言 ◼ 9.6 持久化C++系统 ◼ 9.7 小结 ◼ 9.8 习题
9.100数据模型的基本概念 IS开发要求能不断缩小系统的开发周期,降低开发成 本,增强系统的易维护性和开放性。 传统关系模型的数据对象过于简单,没有复杂的嵌套 数据和复杂数据结构,不能实现实体间聚合、继承等 复杂联系,难以胜任复杂数据类型处理方面的需要 ■面向对象的本质是把数据和处理数据的过程当成一个 整体对象,而不再把两者分开。它不仅能实现数据模 拟,也能实现行为模拟。 基本概念:对象、类、继承性、对象标识、对象包含 以及封装和数据隐藏技术
9.1 OO数据模型的基本概念 ◼ IS开发要求能不断缩小系统的开发周期,降低开发成 本,增强系统的易维护性和开放性。 ◼ 传统关系模型的数据对象过于简单,没有复杂的嵌套 数据和复杂数据结构,不能实现实体间聚合、继承等 复杂联系,难以胜任复杂数据类型处理方面的需要。 ◼ 面向对象的本质是把数据和处理数据的过程当成一个 整体对象,而不再把两者分开。它不仅能实现数据模 拟,也能实现行为模拟。 ◼ 基本概念:对象、类、继承性、对象标识、对象包含 以及封装和数据隐藏技术
9.100数据模型的基本概念 对象:基本原则是“任何东西都是对象”,由以下三个 部分组成:变量(属性)消息方法。 类(cass):类是相似对象的集合。 ■继承:类可以生成子类。原来的类称为父类(基类), 子类称为派生类。由派生类可生成派生类。派生类继承 基类的属性与方法。 ■对象标识:在系统内是惟一的。 对象包含:不同类的对象之间可能存在着包含关系(即 组合关系),包含其他对象的对象称为复合对象。 封装性:对象的使用者只能看到对象封装界面上的信息, 对象的内部对使用者是隐蔽的,其目的在于将对象的使 用者和设计者分开
9.1 OO数据模型的基本概念 ◼ 对象 :基本原则是“任何东西都是对象”,由以下三个 部分组成:变量(属性)消息方法。 ◼ 类(class):类是相似对象的集合。 ◼ 继承:类可以生成子类。原来的类称为父类(基类), 子类称为派生类。由派生类可生成派生类。派生类继承 基类的属性与方法。 ◼ 对象标识:在系统内是惟一的。 ◼ 对象包含:不同类的对象之间可能存在着包含关系(即 组合关系),包含其他对象的对象称为复合对象。 ◼ 封装性:对象的使用者只能看到对象封装界面上的信息, 对象的内部对使用者是隐蔽的,其目的在于将对象的使 用者和设计者分开
9.2面向对象数据库(00DBS) 1. ODMG(Object Data Management Group 组织。 2. OODBS:“面向对象系统+数据库能力” _3.0ODBS的问题和局限性: (1)没有统一可行的标准 (2)与关系数据库系统不紊容
9.2 面向对象数据库(OODBS) ◼ 1.ODMG(0bject Data Management Group) 组织。 ◼ 2.OODBS: “面向对象系统 +数据库能力” 。 ◼ 3.OODBS的问题和局限性: ◼ (1)没有统一可行的标准 ◼ (2)与关系数据库系统不紊容
9.3面向对象数据库设计--0DL ODL是用于面向对象数据库系统设计的数据定义语言 它是用面向对象的术语说明数据库结构。 用ODL设计类需要描述类的三种特性 (1)属性( attribute)是对象所具有的特性,属性数 据类型是由基本数据类型(例如整型或字符串)构成。 (2)联系( relationship)可看成是一些特性,联系的 类型或是对其它类对象的引用或是这种引用的聚集(例 如,一个集合)。 (3)方法( method)是指能用于该类对象的函数
9.3 面向对象数据库设计--ODL ◼ ODL是用于面向对象数据库系统设计的数据定义语言, 它是用面向对象的术语说明数据库结构。 ◼ 用ODL设计类需要描述类的三种特性: ◼ (1) 属性(attribute)是对象所具有的特性,属性数 据类型是由基本数据类型(例如整型或字符串)构成。 ◼ (2)联系(relationship)可看成是一些特性,联系的 类型或是对其它类对象的引用或是这种引用的聚集(例 如,一个集合)。 ◼ (3)方法(method)是指能用于该类对象的函数
93.1ODL接口说明 在ODL中,形式最简单的类的说明应包括: 1)关键字 interface(接口) (2)接口的名字(类) (3)用花括号括起来的类的特性表。特性包 括属性、联系和方法。 ■接口说明的简单形式是: interface{ (特性表)
9.3.1 ODL接口说明 ◼ 在ODL中,形式最简单的类的说明应包括: ◼ (1)关键字interface(接口)。 ◼ (2)接口的名字(类)。 ◼ (3)用花括号括起来的类的特性表。特性包 括属性、联系和方法。 ◼ 接口说明的简单形式是: ◼ interface{ ◼ (特性表) ◼ }
9.3.20DL对属性的说明 电影类可用ODL说明如下: (1)interface movie (2)attribute string title (3 attribute integer year; (4) attribute integer length (5 attribute enum Filmcolor blackAndWhite filetype
9.3.2 ODL对属性的说明 ◼ 电影类可用ODL说明如下: ◼ (1)interface Movie{ ◼ (2) attribute string title; ◼ (3) attribute integer year; ◼ (4) attribute integer length; ◼ ( 5 ) attribute enum Film{color , blackAndWhite} filmType; ◼ };
9.3.30DL对联系的说明 1.在Move类说明中,可用下面一行表示这种 联系: Relationship set star> stars 2反向联系的说明: relationship Set Movie> starredin inverse movie∷ Stars;
9.3.3 ODL对联系的说明 ◼ 1.在Movie类说明中,可用下面一行表示这种 联系: Re1ationship Set Stars; ◼ 2.反向联系的说明: ◼ relationship Set StarredIn inverse Movie::Stars;
9.3.4Star类说明 (1)interface Start (2)attribute String name; (3) attribute sruct addr tstring street, String city faddress (4) relationship Set Movie> starredin inverse Movie stars
9.3.4 Star类说明 ◼ (1)interface Star{ ◼ (2)attribute String name; ◼ (3)attribute Sruct Addr ◼ {String street,String city}address; ◼ (4)relationship Set StarredIn ◼ inverse Movie::Stars; ◼ };