• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 人文社科 > 正文

    面向对象Cache的数据库的对象创建存取

    时间:2021-04-12 07:52:58 来源:达达文档网 本文已影响 达达文档网手机站


    打开文本图片集

    摘要:该文重点介绍面向对象Cache数据库的面向对象基本概念,并利用Cach6数据库的面向对象的独特结构定义类(class)和方法(methods),并介绍了其具体的定义方法,并解释Cache数据库高性能的结构特性,进行简单应用设计的分析,对面向对象开发的有较好的引导作用。

    关键词:Cache;面向对象;class;methods;table;property

    中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)17-0001-03

    Cach6数据库是一款面向对象数据库,通过使用用户定义的数据模型,并利用面向对象的Cache数据库进行应用的开发,Cache是美国Intersystems公司产品,被称为后关系型数据库(Post Relational database)中的领导者。Cache数据库作为面向对象的Cache,使用比较主流的领域主要是美国和欧洲的HIS系统(医疗卫生管理信息系统),Cache数据库所占的比例是最大,被医疗界公认为首选数据库。

    官方数据显示,CACHE数据库的数据查询速度约为oracle的7~20倍,支持关系型数据和面向对象型的数据库。

    Cache数据库的主要特点如下:

    1)速度快。Cache数据库在同等条件下查询相同数据比Oracle等普通数据库要快。

    2)使用简单。Cache数据库支持标准SQL语句。

    3)接口容易。Cache数据库支持ODBC标准接口。

    4)支持3层结构。Cache数据库能够真正意义上实现3层结构,实现真正的分布式服务。

    升级扩容方便。正因为由上述分布式3层结构,所以当医院需要增加客户端PC或医院进行扩大规模时,其灵活的伸缩性可帮助用户节约资金减少重复投资。

    5)对象型编辑。Cache数据库是真正的面向对象型数据库,开发时用户可直接用数据库定义特定的对象,然后再在其它开发工具中调用该对象的方法(method)和属性(attributes)即可完成开发工作,非常方便。

    Cache数据库支持远程映射(mapping)和镜像(mirror)。

    6)能快速進行WEB开发。Cache数据库提供自带的Web开发工具,使用维护非常方便。

    7)价格便宜。Cache数据库的价格比Oracle要便宜许多。那么Cache数据库应用开发医院信息管理系统或其他行业的面向对象的数据库应用是有现实意义的。

    1 Cache数据库类(class)定义操作方法

    1.1通过Cache的GUI方式创建数据操作

    Cach6是一款面向对象的关系型数据库,可通过其自带的GUI(Graphic User Interface)建类(Class Definition),在Cache中把类(Class)和表(table)联系在一起,建立类就是建表(Create Ta-ble)。

    Cach6 GUI界面如下:

    点击Cach6 class Definition(类定义模块)可输人用户包和类名,类名为Person;

    可选择持久类(Choose Persistent Class),也可以选择其他类(Class Type)类型。也可输人用户的表名,如图2所示输入对应SQL中的表名t_person:

    在Cache数据库中,建立了类就相当于建立了表对象,而表对象中就需要定义表的属性(Attributes),一个属性(Attribute)就是表的一列(Column),下面是属性名(Name of Property)就对应于表中的列(column)。属性(Property)的类型即列或字段的类型:

    此处name字段定义为串类型(%String),在oracle或其他关系数据库(RDBMS)中可使用Char(n),或varchar(n)来定义固定长度n个字符或可变长度为n的字符串。

    同时在创建类(class)时,可选择表的列名或字段的值要求,如姓名能否为空,Name是否唯一(unique),是否要建索引(indexed)或计算时该列是否存储在内存中。

    这样可通过定义类的方法和步骤,使用Cach6面向对象数据库自带的Studio可视化来创建,也可写下如下的代码来实现。

    1.2用代码定义

    以上的类写好后,通过编译(compile)创建好以上的类(class)对象,就要进行编译,选择Studio中的compile,如图3所示:

    如果类(class)定义有错(errors),则需修改其中的错误,再次编译,如果成功了,则由该类自动创建一个数据库对应的表,并且可以通过SQL来插入(insert),修改(update)或删除(delete)该对象中的数据(data).另外还创建一个例程routine,这个就是利用cache创建CACHE applications的高效的原因所在,比其他传统数据库快的重要原因。

    这样就可在Cach6System Management Portal(相当于数据库查询分析器)中选择sql→Execute SQL Query,在左侧选择自己的命名空间,并输入查询的sql语句可以看到自己建的表的结构和数据了。

    以上是使用面向对象数据库CACHE来创建类和相应的数据库的表(即创建了持久(persistent)类,系统也就隐含了创建了数据库的对象表table)同时也可在类(class)中加入方法(method),如下程序代码就包含了通过Person类来扩展定义一个新类,即Employee类(即表Employee),并创建显示某个员工的姓名和职位情况。

    Class Ueser.Employee Extends t Person

    以上在类中定义了方法(method),这个方法是可重写Per-son类中的相同方法。

    这是面向对象的特性,其含义是如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overrid-ing)。子类的对象使用这个方法时,将调用子类中的定义,对其而言,父类中的定义如同被“屏蔽”了。

    这样在定义类(class)时也把常用的数据库操作用方法来调用该方法的请求来使用,本例中就是将员工信息打印出来。

    这样就极大地扩展了数据库操作的灵活性和编程性,对数据库应用的开发提供了新的存取路径和方法。同时,也可进行用户自定义的数据类型,能使用面向对象的方法(methods)和继承性(inheritance)和多态性(polymorphism),通过面向关系的SQL或面向对象过程的方法method的结合来取得各自的性能和平衡。

    Cache用户既可使用系统类(system classes),也可采用自定义用户的类对象(user classes)。

    所以在类的定义中,可以包含属性(相当于表的字段或列),也可定义方法,以及参数,也可在类中使用如触发器,查询或索引等定义。

    2 Cace数据库的物理特性

    Cache是一款高性能的面向对象的数据库,其主要原因就是使用类对象代替了关系数据库中的表对象.同时存储的数据完全以globals全局变量结构进行存储和处理,这是其速度快速的内因。面向对象的模式以及面向代码的直接全局(Globals)变量结构,使应用程序和系统在使用Cache引擎中,数据库数据的存取通过全局变量结构这一物理内存结构来实现的,甚至程序的代码也存储在该内存结构中,可通过命令的方式或内嵌的函数或方法实现调用。当创建好一个持久(persistent)的数据库类(class)对象时(即传统数据库的表table),数据的增删改操作可用Cache SQL来操作,更可以通过类定义时继承的%New(),%Save(),%Open(),and%Delete()的方法(methods)来实现增删改操作(Data manipulation),这就是该数据库是面向对象的数据库,和传统的数据库相比,其查询速度很快的原因之一。

    3使用Globals結构变量

    Globals结构变量是一个高度调优的一块物理内存结构,而Cach6中的代码运行时则独立使用该结构变量,这些优化的结构确保了其高的并发性和高的吞吐率,使内存的使用更高效,并且持续运行时数据库的器性能不需进行索引的重建或系统的重建(rebuilding)或合并文件、清除删除、过期、多余版本的数据,提高读写数据的效率,而且其物理结构是完全封装好的,开发使用时不需考虑其物理的数据结构。并且其存储空间是稀疏的,意即只有结点有数据值才存储在数据库中,因此Cache常常所需的内存空间比传统的关系数据库要少一半的空间。稀疏的本质是新字段可以添加而无需重构原数据库所需的开销(overhead),而H.Cache的全局变量结构比传统数据库中的表存储的表信息更接近现实的数据模型,这样把相关的信息存储在该物理内存中比通过I/O存取的数据效率要高很多。

    同时Cach6面向对象数据库支持SQL,即Cach6动态SQL,可采用如下二种方式进行存取数据库:%SQL.Statement和%SQL.StatementResuh类来存取,下面就是从员工表(employee)中取出年龄最小的5名员工的姓名和所在城市:

    先定义查询SQL语句变量myquery:

    SET myquery=”select top 5 name,city from HR.employee or-der by age”

    再通过%SQL.Statement类属性%New()来创建一个动态SQL语句并采用

    %Prepare(myquery)加载并最后执行%Execute().以上的动态查询执行可写成如下语句:

    SET myquery=”select top 5 name,ciIy from HR.employee or-der bv age”

    SET tStatement=##class(%SQL.Statement).%New()

    SET tStatus=tStatement.%Prepare(myquery)

    SET resuh_emp=tStatement.%Execute()∥执行SQL

    DO resuh_emp.%Display()∥显示name,city信息

    也可以采用嵌入SQL(Embedded SQL),例如:

    &sql(select count(*)into:coutvar from HR.employee)

    所以,利用Cach6数据库进行编程或SQL使用非常简洁、灵活、高效。

    4创建高效的Web应用开发程序(building Web appli-cations)

    Cache数据库的面向对象的特点不仅表现在数据库的表对象类(class)来实现,在开发web applications的应用中,也比较深刻体现出WEB设计应用中的面向对象的特性。

    Cache web application在创建的web页面采用CSP(Cacheservlet page)嵌入式语言,类似于JSP(java servlet page),在创建CSP文件后,要进行编译(compile),其过程就是通过CSP Engine要把CSP对应的页面文件转化为类(class)的定义。另外使用类编译时采用了类定义的方式并且生成中间代码(INT)CODE,CacheMVBasic code代码,以及Cache Basic code,这就要看你在定义类的方法时使用的哪种语言了。中间代码存取数据通过Globals结构高效处理。

    通过使用CacheObjectScript脚本语言,Cache SQL語言或者CacheMVBasic,macros,class definitions,routines等等,Cache不直接使用你写的以上代码,而是当你完成编译后(compile)而生成产生的OBJ代码,通过Cache的虚拟机运行。

    5 Cache数据库在行业使用

    Cache数据库具有高性能、庞大的可扩展性以及扎实的可靠性等优势,是一种可提供多种数据存取模式的新一代数据库技术,比传统的关系型数据库有更高的使用效率。使用比较多的行业是医院信息管理系统(HIS),InterSystems公司的Cache数据库在北美和欧洲有庞大的高等级医院已被开发部署。随着时间的推移,相信Cache数据库必定会拓展到其他行业。Cache将强大的对象数据库与健壮的SQL技术融为一体,为复杂应用提供了快速开发环境以及快速多维引擎。Cache安全可靠,目前已成为全球临床医疗应用系统的首选数据库。

    6结论

    通过传统关系数据库的应用,人们发现关系数据系统虽然技术很成熟,但其局限性也是显而易见:它能很好地处理所谓的“表格型数据”,却对越来越多复杂类型的数据无能为力。“面向对象的数据库”(Obiect—Oriented Database)涉及面向对象技术。面向对象的数据库系统的推广有一定的难度,其主要原因在于,设计思路和以前传统的数据库概念有较大区别,采用面向对象的概念:如类(Class)、方法(Method)、继承、封装等面向对象的术语来设计数据库对象表、属性、函数等,用新型数据库系统概念来取代现有的数据库系统概念。这对许多已经运用传统关系数据库系统并积累了大量工作数据的客户,尤其是大客户来说,无法承受新旧数据间的转换而带来的巨大工作量及巨额开支。另外,面向对象的关系型数据库系统使查询语言变得复杂,从而使得无论是数据库的开发商家还是应用客户都视其复杂的面向对象的应用技术为畏途。

    面向对象模型是面向对象概念与数据库技术相结合的产物。它的基本目标是以更接近人类思维的方式描述客观世界的事物及其联系,且使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致,以便对客观实体进行结构模拟和行为模拟。相信未来的数据库发展一定有一片空间属于面向对象的数据库技术,会有越来越多的客户选择诸如Cache面向对象的数据库。

    相关热词搜索: 存取 面向对象 对象 创建 数据库

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网