技术规格
除了支持平台上列出的支持的主机、目标和硬件平台外,以下部分还描述了和的一些技术规范和功能。
数据库限制
以下是32位和64位架构上数据库的默认最大参数(这些参数可以在源代码中修改和/或作为预构建的二进制库)。
限制 | 32-bit | 64-bit |
---|---|---|
每个数据库的最大对象数 | ||
每个数据库的最大类数 | 65,535 | 65,535 |
每个类的最大字段或向量 | 65,535 | 65,535 |
每个索引的最大字段数 | 65,535 | 65,535 |
每个向量的最大元素数 | 65,535 | 65,535 |
内存要求 | 最少200K | 最少200K |
同时打开的最大数据库数 | 32 | 32 |
每个数据库的最大同时连接数 | 100 | 100 |
注
编程接口
C和C++
SmartEDB根据开发人员的数据设计,优化了更加直观为项目实际需要服务的界面。标准数据库功能集(如游标函数等)的C语言库可以提供适用于所有SmartEDB应用的通用接口。同时,在编译数据库时,还会生成一套特定于应用的原生C语言和/或C++语言的接口(API)。
Python, Java 和 .NET
SmartEDB还提供原生Python、Java和C#接口。
SQL
提供了嵌入式SQL、JDBC、ODBC和LINQ接口,以及在Lua中编写用户定义函数(“存储过程”)的能力。
索引类型与查询
SmartEDB支持几乎所有数据类型,其中可以使用原生接口的查询方法包括以下索引类型:
用于精确匹配搜索的哈希索引;
用于地理信息系统或制图应用的R树;
B树索引支持模式匹配、范围检索和排序查询;
KD树用于多维数据;
Patricia tries适用于前缀搜索(如IP和电信路由)
当目标对象的信息不精确时,用于文本搜索的三角图索引;
具有关联引用的**对象标识符(OID)**提供直接数据访问;
Autoid索引支持系统定义的对象标识符。
索引只包含对数据的引用,而非存储重复数据,从而将内存需求保持在绝对最低程度。
此外,自发性索引(Voluntary indexes) 技术使项目能够控制指数的总体。
SmartEDB SQL通过select
语句提供了支持上述索引类型的create index
语句。
数据类型支持
SmartEDB支持以下数据类型:
1, 2, 4, 8-byte signed/unsigned integers
boolean
float, double
date, time, datetime
char (固定长度)
string(可变长度)
fixed-size array
vector(可变长度数组)
structs (任意嵌入深度)
binary large object(BLOB)
autoid (自动递增)
user-defined object-id (OID) and references
unicode (wchar)
应用程序调试
SmartEDB调试模式运行时在数据库代码中包含了用于检测和修复编程错误的功能,利用了编译器的类型检查特性,程序员的错误会生成编译时错误。
SmartEDB数据库运行时实现提供源代码,用于完全控制开发环境。
支持的开发环境
SmartEDB应用程序最流行的开发工具如下:
gnu toolchain (gcc 4.1 and higher, clang, xlc, icc)
Tornado 2.0 and 2.2 (GNU and Diab compilers)
QNX Momentics IDE (qcc: C, C++, Embedded C++)
GreenHills Multi
Microsoft Visual Studio (C/C++, .NET Framework)
Eclipse
XCode