关于Caché学习资料整理一、Caché概念1、InterSystems公司产品,后关系型数据库2、整合了对象数据访问、高性能的SQL访问、多维数据访问3、在Caché包括一个应用服务器,提供高级对象编程、Caché还提供高性能的运行环境,这一运行环境采用独特的分布式数据缓存协议技术。
4、Caché的ObjectScript的数据存取方法:对象,SQL、多维数组和嵌入式HTML。
5、Caché为开发复杂的、基于网页应用程序提供了丰富的集成开发环境。
CachéService Page (CSP)技术可以进行快速开发,动态产生。
6、Caché以多维数组存储数据,所有数据都保存在Global中。
7、Global以如下形式表示:^名称(下标1,下标2,下标3…)= 值8、可以自己定制Global,包括添加,删除,修改,遍历起节点。
多维数组以树状的形式保存,他的每一个节点直接与磁盘和内存中的数据块相对应,因此可以达到极快的访问速度。
在此基础上将多维数组映射成对象或者关系形的格式,分别由面向对象的接口和基于SQL 的接口进行访问。
9、Caché完全面向对象,可以直观的数据建模。
10、应用程序通过命名空间访问数据库里的数据和程序,因此命名空间和数据库之间要建立映射,命名空间和数据库之间的映射不一定是一对一的,一个数据库可以被多个命名空间访问,一个命名空间可以访问多个数据库里的数据。
建立命名空间的主要工作就是建立与数据库的映射,这样做可以将程序逻辑与物理存在的数据独立开来。
//命名空间是一个逻辑图,这个图把多维Global数组和代码映射到数据库。
11、Caché的菜单•Getting Started 入门文档初学者可从中获取必要信息•Start Caché启动Caché启动Caché服务•Stop Caché关闭Caché关闭Caché服务。
点击后选择是要关闭还是要重新启动Caché。
•Studio 工作室Caché的集成开发环境。
•Terminal 终端通过类似于DOS 的终端界面访问Caché•Explorer资源管理器查看Caché中的数据资源,包括多维数组、类和例程•SQL Manager SQL管理器通过关系型方式访问Caché•Control Panel控制面板监视和管理Caché的运行•Configuration Manager配置管理器进行基本配置,包括数据库的配置•Documentation 联机文档只有启动Caché后才可以阅读全部文档信息•Remote System Access > 远程系统访问在本地控制远端的Caché服务器(任意平台)。
UNIX 系统的管理要通过这种方式实现。
子菜单中同样包含了工作室,终端,资源管理器,SQL 管理器,控制面板,配置管理器,联机文档等菜单项。
•Preferred Server 当前使用的Caché服务器子菜单中可以编辑Caché服务器列表。
在这里配置远程服务器。
我们可以在一台Windows 平台的计算机上管理网络中所有的各种平台的Caché服务器。
•About…关于查看版本•Exit 退出关闭任务栏中的Caché图标12、CachéTerminal 常用命令:Zn “namespace”//切换namespaceWrite “content”//写命令Set Parameter=content //赋值命令Kill target //删除命令;不建议在一个运行中的系统使用kill,而后面不跟参数13、创建CSP的两种方式:使用Caché类建立对象框架来创建动态网页通过基于HTML的标记语言把Caché脚本嵌入到HTML中去14、程序应该不仅能够处理复杂行为而且能够隐藏其复杂性,这是当今顶尖应用程序所需的两大特征。
15、对象能够对复杂数据进行简单建模,所以对象编程是编写复杂应用程序的最佳选择。
16、Caché对象数据模型和对象编程概述Caché对象模型基于ODMG(对象数据库管理组:Object Database Management Group)标准,并且支持许多高级特性,包括多重继承。
17、统一数据字典可以定义类和表,并且提供了到多维数据结构的映射,这种映射是自动产生的。
18、Caché的一个独一无二的特性是它的单一数据结构。
19、Caché数据库的核心是高效的多维数据引擎。
20、Caché更新数据时使用逻辑锁,而不是锁住整个物理页,提高了并发性。
21、Caché的数据结构支持复杂数据的简单存储,并且不需要复杂的声明或者定义。
22、为了提高执行效率和降低消息传递,Caché在客户端缓存了对象数据的副本,然后适时进行后台更新。
23、Caché引进了一种新的技术:事务型位图索引。
Caché支持传统的位图索引和事务型位图索引。
24、企业缓存协议(ECP):具有极高性能和高扩展性能的技术。
通过该协议,可以使分布式系统中的计算机共享彼此的数据库。
25、容错机制:Caché写映像日志和其他内嵌的功能确保了大部分硬件故障的完整性,在将客户的影响最小化的同时。
快速恢复。
Caché还提供高级可用性配置选项,以进一步减小和消除对客户的影响,包括故障切换集群、Shadow服务器和分布式ECP。
26、数据库加密:1.安全管理员可以指定在硬盘上对一个或者多个Caché.DAT(数据库)文件进行加密,这些文件中的所有内容都被加密;2.开发人员可以使用系统功能对数据进行加密/解密,随后可将其存储到数据库中或进行传送。
该功能用于加密敏感数据,保证不被有权读取数据库、但没有密钥的其他用户使用。
默认情况下,Caché使用高级加密标准实现数据库加密,高级加密标准是一个支持128,192或者256位密钥的对称加密算法。
二、CachéObjectScripte1、为了和其他变量和数组的名字区分开来,系统函数名字都以“$”开头。
常用系统函数:$extract(stting,from,to) //获取字符串子串$lenght(string) //计算字符串长度$Length(字符串变量或字符串,“分隔符”) //被分隔符分割的子串的个数$Horolog //包含了时间和日期,它们由逗号分开。
第一部分是日期的数字,它是从1840 年12 月31 日开始计算日期的数字。
第二部分是秒的数字,它是从午夜开始计算的。
Global中的日期时间都是以数字的形式存储的。
格式为数字:1 2 3 4…$ZDateH 和$ZDate。
$ZD(日期数字,格式) →日期$ZDH(日期,格式) →数字$Ztime 和$ZtimeH$ZT(时间数字,格式) →时间$ZTH(时间,格式) →数字$Piece($P)格式:$Piece(变量,“分隔符”,位置)返回一个或者多个被分隔符分开的子串。
$Order($O)格式:$Order(variable[,direction])按照指定的方向返回一个变量的上一个或下一个索引$get($g)返回一个变量的值如果变量存在则返回变量本身,不存在则返回空$data($d)判断变量是否存在$Ascii格式::$Ascii(字符串变量或字符串,位置)说明:返回一个字符的ASCII 值。
$Char格式:$Char(expression[,…])说明:以一个整数型的串里面的数字作为ASCII 码值来产生一个字符。
$Select格式:$Select(expression:value,…)说明:返回第一个为真的表达式对应的值。
>Set a=1>Write $Select(a=1:5,a>1:0) //5>Write $Select(a=2:5,a=1:0) //0>Set min=$Select$TRanslate格式:$TRanslate(string,replace[,by])说明:替换一个字符串中的字符,并返回替换后的结果。
$Reverse格式:$REverse(string)说明:逆序返回一个字符串。
$ZConVerT格式:$ZCONVERT(string,mode,trantable,handle)说明:返回一个按照指定模式表示的字符串。
mode:U、L、S、W、I、O列表函数:* $Length 带有两个参数的$Length 函数,可以计数一个列表的元素个数。
* $Piece 取出列表的某一个元素。
* Set 命令可以新增或者替换列表的某一个元素。
* $ListBuild 缩写为$LB ,用来产生列表。
* $ListLength 缩写为$LL ,返回列表的元素个数* $LIst 缩写为$LI ,取出一个或者多个列表的元素* $ListGet 缩写为$LG ,和$Get 一样,但是取消了对空值引用的报错。
* $ListData 缩写为$LD,检查一个列表的元素是不是有值。
* $ListFind 缩写为$LF ,从指定位置开始找列表中的某一个2、表达式按从左到右的计算顺序。
3、事务Tstart 开始一个事务Tcommit 提交事务Trollback 保存失败后回滚4、异常处理* $ZT="ERROR“ClassMethod testZT(){s $ZT="ERROR" //设置一个异常TSTART //开始一个事务s ^b="dddddd"s d=d_"^"_"000"w "e“TCOMMIT //没有发生异常,提交事务q 0ERROR //发生异常时执行Set $ZT=""s ErrorMsg=$ZE //$ZE 获取错误信息TROLLBACK //有异常,则回滚事务(Golbal才可以回滚,普通变量不能回滚)Quit "Error"_ErrorMsg //返回错误信息}* Try…catch5、CachéObjectScript一个最突出的特性是高度灵活、动态的数据数据存储。
数据被存储在:对象属性、变量、稀疏的多维数组,允许任何类型的数据、数据库文件(Global),数据库文件也是稀疏的多维数组。
6、CachéObjectScript 中对象属性是有类型限制的,而另外三中存储类型(变量、数组、Global)是完全多态的,无类型实体不需要声明或者定义,只有他们在使用的时候才具有数据类型,按照他们存储时的数据要求以及在表达式里使用的要求来决定他们的数据类型。