数据库功能
SmartEDB提供了多种特定的数据存储功能。以下对这些功能进行了简要描述。
如需更详细的说明,请使用相关链接:
主题 | 说明 |
---|---|
暂存或持久类 | 数据库设计者指定特定类的对象是仅存储在内存中(常规内存或共享内存)还是存储在持久介质上。也可以创建混合数据库,其中包含暂存对象和持久对象。 |
动态字段 | 字符串、二进制大对象(blob)、向量和可变二进制(varbinary)类型的字段在创建其所属类的对象时,在数据布局中初始化为 2 或 4 字节的地址。除非显式写入数据库,否则它们不会占用存储空间。 |
自动去碎片化 | 自动去碎片化算法会重新分配对象,消除任何内部碎片。 |
可选结构 | 可选声明意味着该字段可能实际存储在数据库中,也可能不存储。如果字段未存储,运行时不会在数据布局中为其预留(分配)空间,仅保留 2 或 4 字节的引用地址。 |
直接结构 | 直接指定是一种可应用于 C 或 C++ 应用程序中固定大小类布局的高效优化。直接结构将数据字段组织为结构元素,并在内部将数据存储为 C 语言的结构体。 |
可空字段 | 除序列字段外,任何字段均可声明为可空字段。可空属性会增加一个字节的开销(用于空指示字段)。 |
自愿索引 | 索引的自愿限定符意味着该索引可以在运行时创建或删除。自愿索引只有在应用程序明确调用时才会构建。同样,应用程序也可以在运行时删除自愿索引。 |
唯一对象标识符 | 在 C 和 C++ 应用程序中,oid 定义可用于指定类以应用程序特定类型存储,该类型在 declare oid 语句中定义。或者,可以在所有原生语言 API 中声明 autoid,以指定类使用系统生成的唯一标识符存储。SmartEDB 运行时会为数据库中存储的 autoid 维护一个特殊索引,以实现高效查找。 |
数据库事件 | 事件语句声明应用程序将收到特定数据库事件的通知,例如:添加新对象、删除对象、更新对象或对象的指定字段(数组和向量字段除外),以及检查点事件。 |
宽字符支持 | 宽字符字段存储的 Unicode 字符会根据机器的区域设置进行排序。 |
排序规则 | 在 C 和 C++ 应用程序中支持自定义排序规则。 |
二进制模式演变 | “二进制模式演变”(BSE)允许应用程序将存储的数据库映像的数据库模式更改为新定义。 |
二进制字段 | 二进制数据可以存储在 blob、string、binary 和 varbinary 类型的字段中。 |
日期时间字段 | SmartEDB 的 datetime 类型是一个 64 位整数值,用于在数据库中存储日期和时间。 |
垂直数据存储 | 可以使用序列声明指定包含可变长度值数组的字段。分析函数库提供了大量可对序列字段进行操作的统计函数。 |