面向对象的数据库系统_zhangbl
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长事务和嵌套事务
嵌套事务本质也是一种长事务。一个嵌套事务可 能包含许多子事务。嵌套的事务可形成一种树结构。 最顶级的事务是一个根,根下可有一个或多个子事务, 子事务还可再嵌套子事务,如此等等。 最终要想提交 顶级事务,必须先完成它的所有子事务。
若某个子事务失败,则可选择重做该子事务或者 撤销子事务,若子事务被撤销,则它的顶级事务也会 被撤销。
3 长事务和嵌套事务
事务 指作为单个逻辑工作单元执行的一系列操作,要 么完整地执行,要么完全不执行。 特性 :ACID 原子性、一致性、隔离性和持久性
传统事务模式处理长事务时存在两个缺点: 冲突事物间长期等待(串行性、隔离性) 系统故障时数据库更新全部撤销(原子性)
一个长事务可看作是一些短事务的集合。将短事务作 为并发控制和恢复的基本单位。这样用户能减少锁粒度 (把长事务锁变为短事务锁),实现不同长事务的并发操 作和长事务部分撤销。
根据转换发生的时间可有两种转换方式: 立即转换方式。一旦模式变化立即执行所有变换; 延迟转换方式。模式变化后不立即执行,延迟到
低层数据库载入,或者延迟到该对象被存取时才执行 转换。
多模式版本方式。当修改模式时,建立一个数据 库模式版本,保留旧模式版本。
2 版本管理
实现基础:OID 可唯一标识对象,以及对象的版本。 2.1 版本集合的管理
面向对象数据库的模式演进包括改变类的定义和改变 类的继承结构,如增加或删除一个类,修改类中的属性和 操作。
实际意义:现实应用中,很多系统设计随时间的推移,需
要动态地修改或扩展数据模式。
模式演进的规则
模式的演进必须保持模式一致性。模式一致性是 指模式自身内部不能出现矛盾和错误。它由模式一致 性约束刻画。
缺点:不支持SQL语言,不能和现有的数据库结合起 来,扩展性和通用性受限
对象-关系数据库 ORDBS
它是在关系数据库系统的基础上,从SQL语言出 发,引入复合类型、继承性、引用类型等面向对象的 概念。从而部分支持OO模型。
优点:既有面向对象的特性,又支持关系数据库 适合复杂数据、复杂查询的应用
缺点:面向对象技术与关系数据库结合,它们之间的 转换会造成性能降低。很多新的复杂对象不能处理。
内容概要
面向对象数据库系统简介 OO-DBMS 的特色功能
面向对象数据库的实现途径
面向对象的数据库系统
面向对象数据库 = 面向对象概念 + 数据库功能 OO-DBMS = OO 数据模型 + DBMS
数据模型
数据模型是对现实世界数据特征的模拟 和抽象,最终使数据能被计算机识别并处理。
数据在数据库中抽象表示过程如右 概念模型:一个中间层,不涉及信息在 计算机的表示,只描述人们关心的信息结构。 典型的: 实体联系模型 ,简称E-R图 逻辑模型:DBMS支持的数据模型,有层 次模型、网状模型、关系模型和面向对象模型
面向对象数据库系统的实现途径
一般有三条路线: 1 对现有的面向对象程序设计语言(OOPL)扩充,使之 能处理数据库,从而形成OODBS
ODMG 标准 扩充C++ 成为持久化语言,形成OODBS 典型产品 ObjectStore、Ontos等
2 以关系数据库和SQL为基础,把面向对象技术融入 数据库系统,形成ORDBS
SQL 3 标准支持 ORDBS 模型 典型产品 Oracle 8 、DB2等
3 建立新的面向对象数据库系统OODBS (产品 O2)
扩充 OOPL 的OODBS
以一种已有的面向对象程序设计语言,例如C++ 或 Java 为基础,增加数据库功能,使之能处理持久数 据且实现数据共享。
优点:支持复杂对象表示,完全支持面向对象编程 适合复杂数据,简单查询的应用
OO-DBMS 功能介绍
具有DBMS的基本功能
1 数据库的定义功能
DBMS 提供数据定义语言DDL(ODL)来定义和创建数据库模式、 外模式和内模式等数据库对象,并包含数据的完整性约束和保 密限制等约束。
2 数据库的操作
DBMS提供数据操作语言DML(OML或OQL) 实现对数据操作。 基本操作两类:检索(查询)和更新(增、删、改)。
OODBS 与 ORDBS 主要区别
比较准则 定义准则
OODBS ODMG
ORDBS SQL 3
对大对象的处理 数据结构
数据联系
有限
“对象”为主,可表示 “关系”
显示联系 OID
完全可以
“关系”为主,可表示 “对象”
隐式联系 主键
数据库语言 通用性
面向对象的语言扩充 无完善的数学基础
不强
第四代语言 基础理论严密而成熟
版本间的关系: 1) 时间上的先后关系。一般由版本号反映。 2)派生关系。如下图示:
版本管理
2.2 版本的引用机制 在支持多版本的系统中,一个对象实际上只是一个
虚的、逻辑上的概念。因此,就提出了对对象及其版 本的引用。 一般由两种引用:
静态引用:引用关系直接指向某个对象的特定版本 动态引用:引用关系指向某个对象、没确定是哪个 版本。 2.3 版本的分类 发行版本和临时版本
模式一致性约束包含以下: (1) 唯一性约束:一个模式中所有名字唯一 (2) 存在性约束:显示引用的成分必须存在 (3) 子类型约束:
子类与父类联系不能有环 不能从多继承中带来任何冲突 若只支持单继承,则子类的单一超类必须加以标明
模式演进的实现
采用转换的机制来实现模式演进,指将已有对象 根据新Βιβλιοθήκη Baidu模式结构进行转换以满足新模式的定义。
很强
3 数据库的运行控制和管理
包括事务管理、数据的安全性和完整性检查、并发控制、数 据库的恢复等。除此之外,OO-DBMS 还具备另外一些特有功能。
4 数据库的维护
OO-DBMS 特色功能/主要特性
1 模式演进 2 版本管理 3 处理长事务和嵌套事务
1 模式演进
定义:
面向对象数据库的模式是若干类定义的集合。模式为 适应需求的变化而随时间的变化称为模式演进。
面向对象的数据模型
概念:对象、类、继承性、对象标识和对象包含 对象标识(OID):面向对象数据库中的每个对象
都有一个唯一的不变的标识。 特点:永久持久性 独立于值的,系统全局唯一的 利用对象标识一些对象可以包含和引用其他对象,从
而形成复合对象,所以它形成复合对象操作的基础。
该数据模型最大的优势:支持对象嵌套,递归。 支持复杂对象和复杂对象行为等的描述。