面向对象数据库系统设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关键词 :面向对象;数据库 ;系统设计
数 据查询 f 0QL l 作 为数 据库 ,最重要 的估计 是数 据查询 了 ,面 向对象 数据 同样 如此 。在这里 ,我设计 了以下查询语 法 :g e t ( …) i f ( … ),其 中 g e t 里面 是要查 询的类 ,类 的属性等 ,相 当于S QL 里 面 的s e l e c t … wh e r e… 。比如有类 A ,A中有 一个属 性a( 数字 型 ,关于类型 后面 会 说 )。则获取 所有A 类 实例 中所有 a 的值小 于0 的 实例集 合 的查 询 语句是 :g e t ( A ) i f ( A a < 0 ) ; 执 行该 语 句应 该 要 返 回所 有 类A实例 中所 有 a 小 于0 的 实例 集 合。具 体使 用方法 如下 : 【 一) 单类查 询 即在一 个类 中进行查 询。 如 :g e t ( A ) i f ( A , a < 0 ) ; 就返 回是 所有类 A实例 中所有a 小 于0 的实例 集合 。而不 带条件 的查询 是g e t ( A ) ; 这将 返 回类A 的所有 实例 。 ( 二) 多类查 询 如 :g e t ( A,B ) ;将 返 回类A 和 类B 的所有实例 的数 据。 ( 三) 方法查 询 ( 暂不实现 ) ( 四) 表达 式计算 如 :g e t ( 3 + 3 ) ; 返 回的将是6 。 ( 五) 复杂查 询 如 :g e t ( A. a + B b,C,C a / A a ) i f ( A . a < B b # # C. a > 5 ) : 这 个查询 语 句将 返 回 的是 类A 的a 字 段 和类 B 的b 字 段 的相 加之 和 ,类 C 的 实 例 以及 C 类 字段 a 与A 类字 段a 的商 ,并且 尽在 类A的a 字段 小于 类 B 的b 字 段并 且 ( # # 是并 号 ) 类C的宇 段a 的值 小于 5 。此 类操 作可 能 比较耗 时 ,并且 可 能返 回重 复 的数 据 。如在 A 类实 例和 B 类 实例确 定 的情 况 下C 类 实例 变化 时将 返 回多个 相 同结 果的A. a + B . b 的值 。 记住 返 回的都是 集合 。 二、数据 操作l 0 ML )
( 3) 删 除数 据 :f r e e ( 类名 ) l f ( 删 除条件表 达 式 ) 。如果 没有 i f ,则删 除此类 的所 有实例 。f r e e ( T e s t ) i f ( 丁 e s t a > 0 ) ;这将删 除类
T e s t 的实例t 。 ( 4) 数据 定X ( OD L )


定 义语 言包 括 类的 定义 和对 象 的定 义。 语 法模仿 的J a v a 的语 法 。具体 如下 : 定 义类 : c l a s s: 定义 类 ,语 法如下 :c l a s s 类 名{ 属 性定义 :其 中包括 变量权 限声 明,值定 义 ,类 型 声明 , 目前 仅 支持三 种类型 ,字符 串型 ,数字型 和 比特 型 。 方 法定义 :方法 定义 , ̄ E J a v a 类 似 ,但 目前仅 留接 1 : 3 ,不做 实
现 。1
下 面是一 个实例 : c l a s s T e s t { p r i v a t e n u m a ;/ / 数字型 ;p u b l i c s t r b ;/ / 字符 串 型 ;p r o t e c t e d b y t e C ;/ / 比特 型 ,变长 比特 型 。用来存 储大容 量 数据 ;p u b l i c v o i d t e s t Me t h o d ( n u m a ) { / / 方法定 义 , 目前暂不 实现 a + + ;t h i s . a=a ;l“ ;/ / ”一定 要加 “ ;”号 ,否 则不能 结束 。 a l t e r :更新类。语法如下:a l t e r 类名. 字段名或者方法名 = f / / 字段 或者 方法 的新式 描述 ,如果没 有任 何信息 ,则表 示删除 该字段 或者 方法1 : 举例 如下 : a l t e r T e s t . a{ p u b l i c n u m a ;/ / 如 果不是 命名 为a ,而是 b ,则将 删 除a 字段 ,新建 b 字段 。 该语 句将 把字 段a 的访 问权 限从 私 有变 为公 有。 下面 是更 新方 法 :a l t e r T e s t . t e s t Me t h o d{ p u b l i c v o i d t e s t M e t h o d ( n u m a ) { / / 方 法 更新 。目前 暂不 实现 a + + ; t h i s . a =a — —l ; d r o p : 删 除类 。此关键 字只有 一个语 法 ,即 :
d 来自百度文库 o p类名 ;如 :
d r o p T e s t ;# 1 P 表 示删 除T e s t 类。
( 5) 数据 控制使 用t r y { / / 行 ̄ j } c a t c h(){ } 的语法 形式 ,用来 控 ( 1) 插 入 数据 :n e w类名 ( 构造 函数参 数列表 );这样 即生 制 事务 。在 t r y 块 中 的行 为必 须全 部执 行成 功 数据 库 才会 更 改 ,相 成 了一个 实例 ( 即插入 一个 实例 ) 。举例如 下 : 当于事务提 交 。如果发 生异 常 ( 即不能全 部执行 成功 ),则 事务 回 T e s t t =n e w T e s t ( 1 ,2 ,3 ) ;/ / 假 如类T e s t 的构造参 数是三 个 滚 。 同时还 要执 行c a t c h 块 中的信 息。一 般说来 ,c a t c h 块 中 留空则 数 字类 型的参数 。 只回滚事 务。 ( 2) 更 新数 据 :直 接 调用 该类 实例 的 引用 的属性 复制 即可 实 参 考文献 : 现 更新 。举例如 下 : l 1 ] 邢斌 、 高荣芳、 刘予 东, 《 基于1 S P 的学 生就业 管理 系统》 ,福 t a=3 ; 夏 如类 T e s t 有 个公有 成员a 且是 数字型 的。 可 以有 更复 杂的 、有逻 辑 的更新 ,如 :i f ( T e s t . a > 3 ) { T e s t . a= 1 ;/ / 将所 有符 合 条件 的T e s t 类 的 实例 的a 字 段复 制 为1 ,是 集合 操 作 。}
山 西青 年
科技 论 坛
面 向对象数据库系统设计
刘海 蓉
4 3 8 0 0 2 黄 冈职 业技 术 学 院 湖北 黄冈

要 :讨论 了一个面向对 象数据库 系统的设计 ,本设计实现 了基本
的面向对 象数据库的设计思想和功能。
又如 :wh i l e ( t . a > 0 ) { T e s t . a — — ;/ / 只要 实例t 的字段 a 的值 还大 于O ,则所有T e s t 的实例 的值继 续减 一。l
相关文档
最新文档