2008-1-16 16:14
datamann
在eXtremeDB上定义数据库
在eXtremeDB,定义一个数据库是非常简单的事--实际上,eXtremeDB上的每件事都很简单。
比如有一个监控系统的数据库,共有2张表,一张表是关于各个监控点的每时每刻的值、另一张表是各个监控点归属的子系统说明:
tab1
[table=437][tr][td] sen-id[/td][td] val[/td][td] time-stamp[/td][/tr][tr][td] 4字节整数[/td][td] 浮点数[/td][td] 时分秒[/td][/tr][tr][td] uint4[/td][td] float[/td][td] time[/td][/tr][/table]
tab2
[table=438][tr][td] sen-id[/td][td] subsys[/td][td] privilege[/td][/tr][tr][td] 4字节整数,传感器编号[/td][td] 双字节整数,子系统编号[/td][td] 一字节,特权级别[/td][/tr][tr][td] uint4[/td][td] uint2[/td][td] uint1[/td][/tr][/table]
tab1上在sen-id和time上建立一个组合索引,按sen-id的时间把value列出来;tab2表格比较小,用遍历的方法访问。
对这样的一个数据库,eXtremeDB的定义方法就是:
1. 编辑一个名字叫sensor.mco的文本文件,内容为:
declare database sensor;
transient class tab1 {//内存表
uint4 sen-id;
float val;
time time-stamp;
uniq tree <sen-id, time-stamp> stx;
}
persistent class tab2 { //磁盘表
uint4 sen-id;
uint2 subsys;
uint1 privilege;
list;
}
2. eXtremeDB SDK的host/bin下面有一个schema编译器mcocomp,编译sensor.mco:
mcocomp sensor.mco
【生成sensor.h和sensor.c文件】
3. 数据库应用程序可以用sensor.h里面的本地C/C++ API编写嵌入式数据库应用程序;也可以用本地SQL API编写嵌入式数据库应用程序;也可以创建数据库服务引擎后,提供给ODBC程序,通过网络操纵这个eXtremeDB数据库。
2008-1-16 19:55
datamann
这个数据库定义,就是eXtremeDB的Schema文件。
2008-1-16 20:04
datamann
eXtremeDB支持各种数据,尤其是实时数据管理中经常需要用的结构等数据类型。
2008-1-16 20:52
datamann
eXtremeDB的矢量类型数据是eXtremeDB独有的吧?表示单字段的嵌入表。就是在一个字段里建立一个简单的表格。
2008-1-21 09:20
xuejinn
好像eXtremeDB在设计融入了面向对像思想,因此在用户在设计库表时,可以从面向对象的方面考虑,可以更好的提高开发效率
2008-1-22 09:50
jinguanding
就没命令行工具或者其他类型的工具使用使用嘛...........对Memory DataBase不懂....
2008-1-22 22:46
datamann
eXtremeDB是0维护的实时数据库,不需要通常数据库的维护界面。这是一种先进的实时数据管理理念。
2008-2-5 02:25
datamann
eXtremeDB这样定义数据库,是不是很酷!!!
2008-2-27 16:38
23liteon
eXtremedb这样定义数据库却是超级简单!顶一下先
此外,eXtremedb schema 文件如何编译呢?谢谢高手们的指点
2008-2-28 09:49
datamann
定义好了的Schema文件,取一个名字,比如叫mydb.mco。用host/bin下面的mcocomp编译这个mydb.mco文件,就生成应用程序使用的.c和.h文件了。
host/bin/mcocomp mydb.mco -->.c + .h
.h是这个数据库定一下定制的API集,它使用的时候不调用C的库。
如果要是用eXtremeSQL的话,也通过这个定义来确定数据库的形状及检索方法。但应用程序直接使用SQL语句来访问eXtremeDB。eXtremeSQL的内核会把应用程序中的SQL语句解析成C的接口。
2008-3-2 18:16
23liteon
非常感谢 试了一下 太简单了
2008-3-15 16:57
datamann
“简简单单,其实一点不简单”--用户使用eXtremeDB确实是非常简单,这是因为eXtremeDB付出了其他人没有付出的辛勤劳动。
2008-3-19 19:15
mygosh_love
extremedb定义数据库如此简单,LZ:它的反问接口和其他内存数据库又有何具体的区别?:surprise: 这样对extremed的性能也和影响呢?
2008-4-9 19:00
datamann
eXtremeDB的访问接口可以是C/C++ API的,也可用是嵌入式SQL API的。C/C++的接口和我们的C/C++程序结合的更紧,用起来也更方便;SQL API是针对习惯于传统数据库编程的用户提供的。性能上,eXtremeDB C/C++接口比eXtremeDB SQL接口要快4-10倍。
2008-4-22 18:36
fapiaofapao
当之无愧是实时数据库的巅峰之作了 呵呵 !:right:
2008-4-23 02:13
datamann
有比较、有鉴别。
2008-4-24 20:25
teahouse1093
创新成就新技术,新技术永远是最受欢迎的 o(∩_∩)o...
2008-5-2 17:14
datamann
这个创新可不简单,是25年摸索的结果。
2008-5-3 18:34
datamann
en
2008-5-6 07:40
nortelwangtao
extremedb感觉很有自己的独到之处
UPUP!
页:
[1]
2

Powered by ITPUB论坛