山西青年 科技论坛 面向对象数据库系统设计 刘海蓉 438002 黄冈职业技术学院 湖北黄冈 摘要:讨论了一个面向对象数据库系统的设计,本设计实现了基本 的面向对象数据库的设计思想和功能。 关键词:面向对象;数据库;系统设计 一、数据查询f0QLl 作为数据库,最重要的估计是数据查询了,面向对象数据同样 如此。在这里,我设计了以下查询语法:get(…)if(…),其中 get里面是要查询的类,类的属性等,相当于SQL里面的select… where…。比如有类A,A中有一个属性a(数字型,关于类型后面 会说)。则获取所有A类实例中所有a的值小于0的实例集合的查询 语句是:get(A)if(A a<0); 执行该语句应该要返回所有类A实例中所有a小于0的实例集 合。具体使用方法如下: 【一)单类查询 即在一个类中进行查询。如:get(A)if(A,a<0);就返回是所有类 A实例中所有a小于0的实例集合。而不带条件的查询是get(A);这将 返回类A的所有实例。 (二)多类查询 如:get(A,B);将返回类A和类B的所有实例的数据。 (三)方法查询(暂不实现) (四)表达式计算 如:get(3+3);返回的将是6。 (五)复杂查询 如:get(A.a+B b,C,C a/A a)if(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的值。 记住返回的都是集合。 二、数据操作l0ML) (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的值还大 于O,则所有Test的实例的值继续减一。l (3)删除数据:free(类名)lf(删除条件表达式)。如果没有 if,则删除此类的所有实例。free(Test)if(丁est a>0);这将删除类 Test的实例t。 (4)数据定X(ODL) 定义语言包括类的定义和对象的定义。语法模仿的Java的语 法。具体如下: 定义类: class:定义类,语法如下:class类名{ 属性定义:其中包括变量权限声明,值定义,类型声明,目前 仅支持三种类型,字符串型,数字型和比特型。 方法定义:方法定义, ̄EJava类似,但目前仅留接1:3,不做实 现。1 下面是一个实例: class Test{private num a;//数字型;public str b;//字符串 型;p rotected byte C;//比特型,变长比特型。用来存储大容量 数据;public void testMethod(num a){//方法定义,目前暂不实现 a++;this.a=a;l“;//”一定要加“;”号,否则不能结束。 alter:更新类。语法如下:alter类名.字段名或者方法名= f//字段或者方法的新式描述,如果没有任何信息,则表示删除 该字段或者方法1:举例如下: alter Test.a{public num a;//如果不是命名为a,而是b,则将 删除a字段,新建b字段。 该语句将把字段a的访问权限从私有变为公有。下面是更新方 法:alter Test.testMethod{public void testMethod(num a){//方法 更新。目前暂不实现a++;this.a=a——l; drop:删除类。此关键字只有一个语法,即: drop类名;如: drop Test;#1P表示删除Test类。 (5)数据控制使用try{//行 ̄j}catch(){}的语法形式,用来控 制事务。在try块中的行为必须全部执行成功数据库才会更改,相 当于事务提交。如果发生异常(即不能全部执行成功),则事务回 滚。同时还要执行catch块中的信息。一般说来,catch块中留空则 只回滚事务。 参考文献: l1]邢斌、高荣芳、刘予东,《基于1SP的学生就业管理系统》,福 建电脑。2006—9 作者简介: 刘海蓉,女, (1977年~),湖北黄冈人,黄冈职业技术学院高校 讲师。研究方向:高职教育、计算机。 段,如栅栏技术、危害分析关键控制点技术、微生物预报技术等将 广泛应用,以保证食品安全、营养与卫生。在食品科学研究方法方 面,将采用合理的试验设计和数据分析方法,计算机在产品研究和 生产中将发挥巨大的作用。微电子技术和传感技术将使食品工业实 现高度自动化、智能化,进一步降低生产成本,提高产品质量。 参考文献: [1]唐璎,孟宪刚.新型天然生物功能食品添加剂的研究与发展Ⅱ】l食 品工业科技,2011(03) 【2]李述日,吴清平,吴军林彳 用细菌开发天然功能性食品添加剂 研究进展Ⅱ】.食品工业科技,2011(02) [3]肖功年,黄仙堂,毛建卫.浙江食品添加剂与配料行业现状、问 题和对策U】_浙江科技学院学报,2009(02)
178