首页 > 范文大全 > 正文

面向对象数据库系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇面向对象数据库系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:讨论了一个面向对象数据库系统的设计,本设计实现了基本的面向对象数据库的设计思想和功能。

关键词:面向对象;数据库;系统设计

一、数据查询(OQL)

作为数据库,最重要的估计是数据查询了,面向对象数据同样如此。在这里,我设计了以下查询语法:get(…)if(…),其中get里面是要查询的类,类的属性等,相当于SQL里面的select … where …。比如有类A,A中有一个属性a(数字型,关于类型后面会说)。则获取所有A类实例中所有a的值小于0的实例集合的查询语句是:get(A)if(A.a

执行该语句应该要返回所有类A实例中所有a小于0的实例集合。具体使用方法如下:

(一)单类查询

即在一个类中进行查询。如:get(A)if(A.a

(二)多类查询

如:get(A,B);将返回类A和类B的所有实例的数据。

(三)方法查询(暂不实现)

(四)表达式计算

如:get(3+3);返回的将是6。

(五)复杂查询

如:get(A.a+B.b,C,C.a/A.a)if(A.a5);这个查询语句将返回的是类A的a字段和类B的b字段的相加之和,类C的实例以及C类字段a与A类字段a的商,并且尽在类A的a字段小于类B的b字段并且(##是并号)类C的字段a的值小于5。此类操作可能比较耗时,并且可能返回重复的数据。如在A类实例和B类实例确定的情况下C类实例变化时将返回多个相同结果的A.a+B.b的值。记住返回的都是集合。

二、数据操作(OML)

(1)插入数据:new 类名(构造函数参数列表);这样即生成了一个实例(即插入一个实例)。举例如下:

Test t = new Test(1,2,3);//假如类Test的构造参数是三个数字类型的参数。

(2)更新数据:直接调用该类实例的引用的属性复制即可实现更新。举例如下:

t.a = 3;//假如类Test有个公有成员a且是数字型的。

可以有更复杂的、有逻辑的更新,如:if(Test.a>3){Test.a = 1;//将所有符合条件的Test类的实例的a字段复制为1,是集合操作。}

又如:while(t.a>0){Test.a――;//只要实例t的字段a的值还大于0,则所有Test的实例的值继续减一。}

(3)删除数据:free(类名)if(删除条件表达式)。如果没有if,则删除此类的所有实例。free(Test)if(Test.a>0);这将删除类Test的实例t。

(4)数据定义(ODL)

定义语言包括类的定义和对象的定义。语法模仿的Java的语法。具体如下:

定义类:

class :定义类,语法如下:class 类名{

属性定义:其中包括变量权限声明,值定义,类型声明,目前仅支持三种类型,字符串型,数字型和 比特型。

方法定义:方法定义,跟Java类似,但目前仅留接口,不做实现。}

下面是一个实例:

class Test{private num a;//数字型;public str b;//字符串型;protected byte c;//比特型,变长比特型,用来存储大容量数据;public void testMethod(num a){//方法定义,目前暂不实现a++;this.a = a;}“;//”一定要加 “;”号,否则不能结束。

alter:更新类。语法如下:alter 类名.字段名或者方法名 =

{//字段或者方法的新式描述,如果没有任何信息,则表示删除该字段或者方法};举例如下:

alter Test.a {public num a;//如果不是命名为a,而是b,则将删除a字段,新建b字段。

该语句将把字段a的访问权限从私有变为公有。下面是更新方法:alter Test. testMethod {public void testMethod(num a){//方法更新,目前暂不实现a++;this.a = a――};

drop:删除类。此关键字只有一个语法,即:

drop 类名;如:

drop Test;//即表示删除Test类。

(5)数据控制使用try{//行为}catch(){}的语法形式,用来控制事务。在try块中的行为必须全部执行成功数据库才会更改,相当于事务提交。如果发生异常(即不能全部执行成功),则事务回滚。同时还要执行catch块中的信息。一般说来,catch块中留空则只回滚事务。

参考文献:

[1]邢斌、高荣芳、刘予东,《基于JSP的学生就业管理系统》,福建电脑。2006-9

作者简介:

刘海蓉,女,(1977年~),湖北黄冈人, 黄冈职业技术学院高校讲师。研究方向:高职教育、计算机。