所有的Notes应用都是建立在Notes数据库的基础上。与主流的关系型数据库不同,Notes数据库是文档型的。从传统的观点看,一个关系型数据库中含有一个或多个表;每个表中包含的记录都具有相同的长度;每条记录又是有固定数目的字段组成。这样给数据的存储划定严格的界限,好处就是可以快速地存取。适合保存诸如交易记录、人员信息等等结构化的数据。在文档型的数据库中,没有表的概念。文档作为一个灵活的数据结构,用来存储各种不同的数据。一个文档可以有任意数量的字段,每个字段的长度也没有限制。这样一种设计显然使得数据的修改十分方便,但也带来了性能上的代价。
每个Notes数据库都由以下几个部分组成:
1. 数据库头:其中包含版本、名称、类型、复制设置、ID等公共信息。
数据库的版本号表明创建该数据库的Notes的版本,它包括主版本号和副版本号。副版本号只在Notes R1和R2中被用到。主版本号表明的就是数据库采用的ODS(on-disk structure)级别,即代表物理上保存文件的方案。可以在数据库的属性页中看到这个数字。下表列出了迄今为止所有的主版本号。
Notes版本 | 主版本号 |
正式发布之前 | <16 |
版本1和2 | 16 |
版本3 | 17 |
版本4 | 20 |
版本5 | 41 |
版本6 | 43 |
版本7 | 43 |
版本8 | 50 |
版本8.5 | 51 |
版本9.01 | 52 |
ODS的变化往往伴随着存取技术上的更新和进步,或者新功能的引入。比如,R8带来的ODS50就允许对设计元素的压缩存储。51:The current level of ODS provides potential improvement for I/O, folder optimization, compression, and attachment consolidation (http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=%2Fcom.ibm.help.domino.admin85.doc%2FH_DOMINO_S_ON_DISK_STRUCTURE_OVER.html). 52:防止罕见的中到高级加密的数据库扶植时损坏的问题。
Notes具有优异的向后兼容性。这意味着任何一个版本的数据库都可以被同样或较高版本的Notes访问。
2. 特殊的数据结构:用于保存视图索引等信息。
3.Note:Notes数据库核心的数据结构。可以分成两大类。一为非数据Note,又可以分成管理类Note(存取控制列表ACL和复制历史)和设计元素(表单、视图、页面、大纲、代理、脚本库等等)。第二类就是数据Note,也就是我们通常说的用户文档。用于保存界面和执行逻辑的代码的设计元素和用于保存数据的用户文档采用同一种数据结构——note实现。这样独特的设计,在数据保存和程序运行阶段带来了很大的统一和便利。