论文部分内容阅读
摘要:该文重点介绍面向对象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
关键词: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