(1)对象关系数据库
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
问
封装对用户和开发人员隐藏了底层开发的细节
中软 CS&S
中软网络技术股份有限公司
11
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
继承和子类
任何对象类型可以通过创建子类的方法定义,子类延用了上级的
属性
用继承实现代码重用
Round
Entity
Angle
– 对象ID(OID)是每一个行对象的唯一描述符,是全局唯
一的,并且自动索引
– 但OID不用于定位数据, 而ROWID用于定位数据 • 包含OID的对象实例可以被引用(REF)
中软 CS&S
中软网络技术股份有限公司
21
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
CREATE TYPE address_type AS OBJECT ( street VARCHAR2(30), city VARCHAR2(20), zip VARCHAR2(7));
中软 CS&S
中软网络技术股份有限公司
16
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
中软 CS&S
中软网络技术股份有限公司
19
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型--行对象
CREATE TYPE name_type AS OBJECT ( first_name VARCHAR2(30), last_name VARCHAR2(30) );
涉及的对象
method(方法) 类行为的实现方法
object(对象) 问题的部件,类的实例
polymorphism 用于描述不同对象对于相同的消息反应不同的情况,
(多态)
例如画对于方对象和圆对象来说有不同的行为
state(状态) 对象属性的值
subclass(子类) 从其它类中继承属性和行为的类
中软 CS&S
中软 CS&S
中软网络技术股份有限公司
23
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型--REF举例
CREATE TYPE cust_type AS OBJECT (
custid
number,
invoice
varchar2(1),
name
name_type,
Oracle8i新特性
中软 CS&S
中软网络技术股份有限公司
1
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象关系数据库
1.1 传统关系模型的缺点 1.2 面向对象(oop)的基本概念 1.3 对象类型(object) 1.4 收集类型(collection) 1.5 对象视图(object view)
中软网络技术股份有限公司
13
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
1.3 对象类型
• 扩充的类型系统
Oracle是一个开放的类型系统,增加了 复杂的数据类型以及用户自定义类型
用户定义的数据类型使得可以在数据库 中为现实世界的对象建模
应用逻辑从应用程序中移动到数据库中
对象类型--列对象
• 对象类型可以定义为列的数据类型 • 存储在列中的类型实例没有OID,而且不能被引用
CREATE TABLE employees (
custid
number,
invoice varchar2(1),
name
name_type,
address address_type);
中软 CS&S
address
address_type ) ;
为每行产生 一个OID
CREATE TABLE customers of cust_type (custid PRIMARY KEY ) ;
INSERT INTO customers VALUES (1, '1', name_type('Jone','Jackson'), address_type('st','ci','11'));
Circle
中软 CS&S
Ecllipse
Triangle Rectangle Polyangle
中软网络技术股份有限公司
12
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
名词 class(类)
对象词汇表 定义
产生(instantiate)对象(class 的 instance)的工厂
对象类型
CREATE TYPE cust_type AS OBJECT(
custid NUMBER,
invoice VARCHAR2(1),
name
name_type,
address address_type);
CREATE TABLE customer (
custid NUMBER PRIMARY KEY,
name NAME_TYPE,
address address_type);
CREATE TABLE customers OF cust_type
(custid PRIMARY KEY);
中软 CS&S
中软网络技术股份有限公司
17
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
• 类和对象 • 方法和封装 • 继承和子类 • 多态性
中软 CS&S
中软网络技术股份有限公司
9
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
类和对象
类(Class)或抽象数据类型(ADT): 是具有相同特征的事物的抽象表示 类的属性或特征 类的方法
对象是类的一个实例
当前流行的程序设计方法:
类:按钮 属性:大小、TEXT 方法:clicked
对象:一个确认按钮
中软 CS&S
中软网络技术股份有限公司
10
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
方法和封装
方法是操纵对象类型的过程 方法用于封装对象 封装是对对象的一种保护方法,它决定着对象如何被访
关系模型的特点
•关系模型的概念单一,实体和联系都是 用关系来表示 • 关系必须是规范化的关系,要求每一分 量不可再分 • 支持关系语言,具有高度非过程化,支 持集合运算 • 通过外来码实现联系 • 关系模型有严格的数据基础
中软 CS&S
中软网络技术股份有限公司
7
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
SELECT REF(s) FROM customers s;
中软 CS&S
中软网络技术股份有限公司
24
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型--REF举例
CREATE TABLE orders (
orderid
number,
orderdate status
E-R图转换成关系模式
1:1
系主任
1 领导
1
系(系名,类别,系主任) 系主任 ( 工作证号, 姓名, 年龄)
系
中软 CS&S
中软网络技术股份有限公司
4
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
E-R图转换成关系模式
1:N
班级
1 包括
N
学生
中软 CS&S
中软 CS&S
中软网络技术股份有限公司
15
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型
例子:定义对象类型
CREATE TYPE name_type AS OBJECT ( first_name VARCHAR2(30), last_name VARCHAR2(30));
encapsulation(封 隐藏属性和行为-类似于接口
装)
inheritance ( 继 类和子类的关系,子类可以使用类定义的各种属性和
承)
行为
instance(实例) 类的实例是对象
instantiate(实例 创建一个类的实例-对象
化)
message(消息) 对象之间的通讯,通讯中包含的数据为执行的方法和
对象类型
对象存储:包含嵌套对象类型的表的存储是顺序的,类似于 关系表的存储
custid, invoice, name.first_name, st_name, address.street, address.city, address.zip custid, invoice, name.first_name, st_name, address.street, address.city, address.zip
传统关系模型存在的缺陷
• 复杂属性只能拆分成并列的单一属性 • 无法表示变长的属性 • 无法直接表示嵌套表 • 必须大量使用JOIN来实现多表查询
中软 CS&S
中软网络技术股份有限公司
8
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
1.2 面向对象(oop)的基本概念
中软 CS&S
中软网络技术股份有限公司
18
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型
• 对象类型的DDL命令
CREATE TYPE,CREATE TYPE BODY DROP TYPE ,DROP TYPE BODY ALTER TYPE,ALTER TYPE BODY (不能增加属性,只能增加方法或编译类型) GRANT/REVOKE EXECUTE ON TYPE
中软网络技术股份有限公司
22
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型
• 对象索引
– 索引列必须为基本类型
• 构造数据 • 对象属性和方法的引用
– 采用.引用方式引用对象的属性和方法 – 对象属性和方法的引用必须使用表的别名,而不能是实
际的表名
中软 CS&S
中软网络技术股份有限公司
2
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
数据模型是模型化数据和信息的工具。
现实世界
认识 抽象
信息世界-概念模型
转换
机器世界- DBMS支持的数据模型
中软 CS&S
中软网络技术股份有限公司
3
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
CREATE TABLE customers OF name_type;
SELECT REF(C) FROM customers c;
中软 CS&S
中软网络技术股份有限公司
20
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型--行对象
• 对象表的一行代表对象类型的一个实例 • 对象表的列对应于对象类型的属性 • 每一个实例有系统产生的唯一的OID
中软 CS&S
中软网络技术股份有限公司
14
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型
对象类型必须包含一个或多个属性 属性的类型可以是Oracle的原始数据类型、LOB、
对象、对象的引用REF、收集COLLECTION
可以有1个或多个方法 对象类型不存储数据;必须创建相应的表来存储数据
INSERT INTO employees VALUES(1, ‘a’, name_type(‘Jone’,’Jackson’), address_type(‘s’,’c’,’z’)); SELECT .first_name, st_name
FROM employees c;
date, varchar2(4),
区别外码引用 和REF
customer
REF cust_type,
qty
number,
partno
number REFERENCES parts ) ;
中软 CS&S
中软网络技术股份有限公司
班级(班号,班主任,系) 学生(学号,姓名,性别,班号)
中软网络技术股份有限公司
5
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
E-R图转换成关系模式
M:N
学生(学号,姓名,性别,班号)
课程(课号,课名,学分)
学生
M
选课(学号,课号,成绩)
选课
N
成绩
课程
实体集 - 关系 联系-关系:由联系的各实体集主码属性, 以及联系本身的属性组成。
封装对用户和开发人员隐藏了底层开发的细节
中软 CS&S
中软网络技术股份有限公司
11
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
继承和子类
任何对象类型可以通过创建子类的方法定义,子类延用了上级的
属性
用继承实现代码重用
Round
Entity
Angle
– 对象ID(OID)是每一个行对象的唯一描述符,是全局唯
一的,并且自动索引
– 但OID不用于定位数据, 而ROWID用于定位数据 • 包含OID的对象实例可以被引用(REF)
中软 CS&S
中软网络技术股份有限公司
21
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
CREATE TYPE address_type AS OBJECT ( street VARCHAR2(30), city VARCHAR2(20), zip VARCHAR2(7));
中软 CS&S
中软网络技术股份有限公司
16
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
中软 CS&S
中软网络技术股份有限公司
19
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型--行对象
CREATE TYPE name_type AS OBJECT ( first_name VARCHAR2(30), last_name VARCHAR2(30) );
涉及的对象
method(方法) 类行为的实现方法
object(对象) 问题的部件,类的实例
polymorphism 用于描述不同对象对于相同的消息反应不同的情况,
(多态)
例如画对于方对象和圆对象来说有不同的行为
state(状态) 对象属性的值
subclass(子类) 从其它类中继承属性和行为的类
中软 CS&S
中软 CS&S
中软网络技术股份有限公司
23
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型--REF举例
CREATE TYPE cust_type AS OBJECT (
custid
number,
invoice
varchar2(1),
name
name_type,
Oracle8i新特性
中软 CS&S
中软网络技术股份有限公司
1
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象关系数据库
1.1 传统关系模型的缺点 1.2 面向对象(oop)的基本概念 1.3 对象类型(object) 1.4 收集类型(collection) 1.5 对象视图(object view)
中软网络技术股份有限公司
13
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
1.3 对象类型
• 扩充的类型系统
Oracle是一个开放的类型系统,增加了 复杂的数据类型以及用户自定义类型
用户定义的数据类型使得可以在数据库 中为现实世界的对象建模
应用逻辑从应用程序中移动到数据库中
对象类型--列对象
• 对象类型可以定义为列的数据类型 • 存储在列中的类型实例没有OID,而且不能被引用
CREATE TABLE employees (
custid
number,
invoice varchar2(1),
name
name_type,
address address_type);
中软 CS&S
address
address_type ) ;
为每行产生 一个OID
CREATE TABLE customers of cust_type (custid PRIMARY KEY ) ;
INSERT INTO customers VALUES (1, '1', name_type('Jone','Jackson'), address_type('st','ci','11'));
Circle
中软 CS&S
Ecllipse
Triangle Rectangle Polyangle
中软网络技术股份有限公司
12
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
名词 class(类)
对象词汇表 定义
产生(instantiate)对象(class 的 instance)的工厂
对象类型
CREATE TYPE cust_type AS OBJECT(
custid NUMBER,
invoice VARCHAR2(1),
name
name_type,
address address_type);
CREATE TABLE customer (
custid NUMBER PRIMARY KEY,
name NAME_TYPE,
address address_type);
CREATE TABLE customers OF cust_type
(custid PRIMARY KEY);
中软 CS&S
中软网络技术股份有限公司
17
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
• 类和对象 • 方法和封装 • 继承和子类 • 多态性
中软 CS&S
中软网络技术股份有限公司
9
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
类和对象
类(Class)或抽象数据类型(ADT): 是具有相同特征的事物的抽象表示 类的属性或特征 类的方法
对象是类的一个实例
当前流行的程序设计方法:
类:按钮 属性:大小、TEXT 方法:clicked
对象:一个确认按钮
中软 CS&S
中软网络技术股份有限公司
10
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
方法和封装
方法是操纵对象类型的过程 方法用于封装对象 封装是对对象的一种保护方法,它决定着对象如何被访
关系模型的特点
•关系模型的概念单一,实体和联系都是 用关系来表示 • 关系必须是规范化的关系,要求每一分 量不可再分 • 支持关系语言,具有高度非过程化,支 持集合运算 • 通过外来码实现联系 • 关系模型有严格的数据基础
中软 CS&S
中软网络技术股份有限公司
7
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
SELECT REF(s) FROM customers s;
中软 CS&S
中软网络技术股份有限公司
24
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型--REF举例
CREATE TABLE orders (
orderid
number,
orderdate status
E-R图转换成关系模式
1:1
系主任
1 领导
1
系(系名,类别,系主任) 系主任 ( 工作证号, 姓名, 年龄)
系
中软 CS&S
中软网络技术股份有限公司
4
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
E-R图转换成关系模式
1:N
班级
1 包括
N
学生
中软 CS&S
中软 CS&S
中软网络技术股份有限公司
15
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型
例子:定义对象类型
CREATE TYPE name_type AS OBJECT ( first_name VARCHAR2(30), last_name VARCHAR2(30));
encapsulation(封 隐藏属性和行为-类似于接口
装)
inheritance ( 继 类和子类的关系,子类可以使用类定义的各种属性和
承)
行为
instance(实例) 类的实例是对象
instantiate(实例 创建一个类的实例-对象
化)
message(消息) 对象之间的通讯,通讯中包含的数据为执行的方法和
对象类型
对象存储:包含嵌套对象类型的表的存储是顺序的,类似于 关系表的存储
custid, invoice, name.first_name, st_name, address.street, address.city, address.zip custid, invoice, name.first_name, st_name, address.street, address.city, address.zip
传统关系模型存在的缺陷
• 复杂属性只能拆分成并列的单一属性 • 无法表示变长的属性 • 无法直接表示嵌套表 • 必须大量使用JOIN来实现多表查询
中软 CS&S
中软网络技术股份有限公司
8
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
1.2 面向对象(oop)的基本概念
中软 CS&S
中软网络技术股份有限公司
18
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型
• 对象类型的DDL命令
CREATE TYPE,CREATE TYPE BODY DROP TYPE ,DROP TYPE BODY ALTER TYPE,ALTER TYPE BODY (不能增加属性,只能增加方法或编译类型) GRANT/REVOKE EXECUTE ON TYPE
中软网络技术股份有限公司
22
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型
• 对象索引
– 索引列必须为基本类型
• 构造数据 • 对象属性和方法的引用
– 采用.引用方式引用对象的属性和方法 – 对象属性和方法的引用必须使用表的别名,而不能是实
际的表名
中软 CS&S
中软网络技术股份有限公司
2
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
数据模型是模型化数据和信息的工具。
现实世界
认识 抽象
信息世界-概念模型
转换
机器世界- DBMS支持的数据模型
中软 CS&S
中软网络技术股份有限公司
3
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
CREATE TABLE customers OF name_type;
SELECT REF(C) FROM customers c;
中软 CS&S
中软网络技术股份有限公司
20
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型--行对象
• 对象表的一行代表对象类型的一个实例 • 对象表的列对应于对象类型的属性 • 每一个实例有系统产生的唯一的OID
中软 CS&S
中软网络技术股份有限公司
14
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
对象类型
对象类型必须包含一个或多个属性 属性的类型可以是Oracle的原始数据类型、LOB、
对象、对象的引用REF、收集COLLECTION
可以有1个或多个方法 对象类型不存储数据;必须创建相应的表来存储数据
INSERT INTO employees VALUES(1, ‘a’, name_type(‘Jone’,’Jackson’), address_type(‘s’,’c’,’z’)); SELECT .first_name, st_name
FROM employees c;
date, varchar2(4),
区别外码引用 和REF
customer
REF cust_type,
qty
number,
partno
number REFERENCES parts ) ;
中软 CS&S
中软网络技术股份有限公司
班级(班号,班主任,系) 学生(学号,姓名,性别,班号)
中软网络技术股份有限公司
5
CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.
E-R图转换成关系模式
M:N
学生(学号,姓名,性别,班号)
课程(课号,课名,学分)
学生
M
选课(学号,课号,成绩)
选课
N
成绩
课程
实体集 - 关系 联系-关系:由联系的各实体集主码属性, 以及联系本身的属性组成。