医疗数据库 Caché 开发笔记
目前所知的 Caché 是应用在医院信息系统(即 HIS),据说在欧美医疗卫生行业,Caché 占了 70% 的市场份额。国内的东华软件就是采用 Caché 数据库,东华软件在国内医院市场占有率大致为 20%,其中包括北京协和医院、四川大学华西医院等。
Caché 的特点:多维数据库架构,后关系型数据库,自带开发环境,完全面向对象。
关系型数据库能很好地处理「表格型数据」,却对复杂类型的数据无能为力。
但现在毕竟是关系型数据库的全盛时期,许多医疗行业的应用软件,都使用 SQL 作为查询语言,Caché 也支持 SQL 数据存取,以兼容这些应用程序。
Caché 有三种整合的、能并发访问同一数据的数据库技术:
1、成熟的对象访问方式
2、高性能的 SQL 访问方式
3、丰富的多维访问
Caché 提供的不只是单纯的数据库技术,还包括一个应用服务器,这个服务器提供高级对象编程,可以很容易与很多技术集成;还提供了高性能的运行环境,采用了独特的分布式数据缓存协议技术;还提供了丰富的集成开发环境,用于开发基于网页的应用程序;对于不基于浏览器的应用,用户接口可以用任意一种流行的编程语言来编写,如 VB、Delphi、Java 或 C++。
Caché 支持多种对象建模技术,包括多重继承、封装、多态。Caché 都自动兼容 ODBC。能使用 JDBC 和 ODBC 进行 SQL 访问。
Caché 命名空间是资源的逻辑表示方式,应用程序通过命名空间访问数据库里的数据和程序,因此,命名空间和数据库之间要建立映射。
命名空间和数据库之间的映射不一定是一对一的。一个数据库可以被多个命名空间访问;一个命名空间可以访问多个数据库里的数据。命名空间也可以用来映射远程计算机中的数据库文件。建立命名空间的主要工作就是建立与数据库的映射。
Caché 类的类型:
1、Persistent:持久类,实例可保存到磁盘上。
2、Serial:可序列化的类,可以被嵌入到其它类中。
3、Registered:内存不会写到磁盘上,实例只存在于内存中。
4、Abstract:抽象类,不创建实例的类。
5、Data Type:数据类型类。
6、CSP:Caché 服务器脚本语言类。
7、Extends:从某一类继承下来的类。
Caché ObjectScript,即Caché 对象脚本,或 COS,在创建类的方法时,所添加的代码就是 COS 代码。在 Caché 服务器端,我们都使用 COS 语言进行编程,COS 语言是在 M 语言的基本上发展起来的。
参考资料:
1、陈航. 《Caché数据库在医疗领域的研究分析及测试对比》
医疗数据库 Caché 开发笔记的更多相关文章
- Neo4j图数据库管理系统开发笔记之一:Neo4j Java 工具包
1 应用开发概述 基于数据传输效率以及接口自定义等特殊性需求,我们暂时放弃使用Neo4j服务器版本,而是在Neo4j嵌入式版本的基础上进行一些封装性的开发.封装的重点,是解决Neo4j嵌入式版本Emb ...
- Neo4j图数据库管理系统开发笔记之三:构建安全的RMI Service(Server)
RMI Server(服务端)主要包括以下功能:远程用户权限验证管理.远程服务接口实现类.Neo4j实体映射转换等.项目目录结构如下图所示: 3.2.1 远程用户权限验证管理 3.2.1.1 用户权限 ...
- Neo4j图数据库管理系统开发笔记之二:管理系统Server端界面一览
最近在neo4j java api和rmi的基础上,设计了一套neo4j管理工具,分为server端和client端,中间用rmi进行通信.基本功能包括图数据库基本信息维护管理(创建.编辑.删除.统计 ...
- 【转】Android开发笔记(序)写在前面的目录
原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经 ...
- Android开发笔记:打包数据库
对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...
- CoolBlog开发笔记第4课:数据库模型设计
教程目录 1.1 CoolBlog开发笔记第1课:项目分析 1.2 CoolBlog开发笔记第2课:搭建开发环境 1.3 CoolBlog开发笔记第3课:创建Django应用 前言 我新书<Py ...
- Java开发笔记(一百四十七)通过JDBC管理数据库
前面介绍了如何通过JDBC获取数据库连接,可是Connection对象不能直接执行SQL语句,需要引入Statement报告对象才能操作SQL.Statement对象由Connection的creat ...
- 开发笔记:基于EntityFramework.Extended用EF实现指定字段的更新
今天在将一个项目中使用存储过程的遗留代码迁移至新的架构时,遇到了一个问题——如何用EF实现数据库中指定字段的更新(根据UserId更新Users表中的FaceUrl与AvatarUrl字段)? 原先调 ...
- 微信公众号开发笔记(C#)
这篇文章还不错,使用 .net , 对微信用户的想公众号发送的文字进行回复.比较简单,自己可以修改更复杂的回复. 微信公众号开发笔记(C#) 原文地址 需求分析 根据用户在微信上发送至价值中国公众号 ...
随机推荐
- 17.Delete Methods-官方文档摘录
介绍delete的方法 MongoDB provides the following methods to delete documents of a collection: db.collectio ...
- sails route(1) -用户定义路由
sails支持两种类型的路由: custom(or "explicit") andautomatic(or "implicit"). 先来看一下custom 即 ...
- java生成多位随机数方法
Math.random()方法可以令系统随机选取大于等于0.0且小于1.0的伪随机double值 利用函数Math.random()即可生成若干位随机数 以下是生成十位随机数代码: public st ...
- mysql应用实例
目录: 表结构 sql练习 1.表结构 SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- T ...
- .........请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。
今天研究membership的时候出现的问题.在此记录一下. 解决办法就是,将"C:\Program Files (x86)\Microsoft Web Tools\Packages\Asp ...
- Jmeter(七)Mongodb的增删改查
1.启动JMeter,新建线程组,设置线程组属性 2.右键添加-MongoDB Source Config 设置属性Server Address List:192.168.0.99 MongoDB S ...
- Struts2 iterator标签实现嵌套循环
问题:有一个List<List<Object>> list用struts2在页面显示使用<s:iterator value=”list” var=”list1″> ...
- Python(异常处理)
一 错误和异常 程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误(逻辑错误) 什么是异常 异常就是程序运行时发 ...
- debian 如何切换为root用户
debian 如何切换为root用户 debian 如何切换为root用户 sudo su 输入命令后提示输入密码,输入密码切换为root用户
- SQL Server排名函数与排名开窗函数
什么是排名函数?说实话我也不甚清楚,我知道 order by 是排序用的,那么什么又是排名函数呢? 接下来看几个示例就明白了. 首先建立一个表,随便插入一些数据. ROW_NUMBER 函数:直接排序 ...