IRIS / Chronicles 数据库结构

对于我们用得最多的关系型数据库来说,首先有的是数据库名字,然后是表名字,然后就是字段名,随后就是一条一条的数据。

对于 IRIS 来说,因为是使用的层级数据库,所以上面的定义就不能完全的照搬了,而且不建议想象成一样,因为我们没有办法最后完全的对应上。

我们最好的是把 IRIS 想想成一个文件存储柜,如下面的图。

上面的柜子的抽屉是一个一个的文件夹,然后文件夹里面夹的是一张一张的纸,纸上面存有我们的数据。

这里有些名词需要重新定义。

第一层 Database(Master file)

IRIS 中定义的数据库不是这一个大柜子,而是我们上面的那个抽屉。

EPIC 上面的抽屉定义了 800 多个,等于你安装一个 EPIC 系统,系统初始化的时候就会有 800 多个数据库帮你初始化了。

EPIC 系统中的数据库使用的是 3 个大写英文字母表示的,这 3 个英文字母在他们的系统中都有特定的意义,所以不能随便修改。

这个数据库的名称,EPIC 称为 INI,其实使用的是英文单词 Initials(简写)的 3 字母表示的。

如果你是使用 Windows 系统的话,我们知道很多系统的配置文件都用 .ini 表示,所以这里需要明确的就是数据库的名称不是系统文件。

第二层 Record

IRIS 定义第二层为 Record,实际上 就是你在每个抽屉中放的一个一个的文件夹。

以病人的病历为例,上面每一个病人就会使用一个文件夹来装病人的数据。

假设你今天来我们医院看病了,但是你从来没有来过,那么我们在你班里手续的时候就会为你创建一个账号,这个账号就是对应这里的 Record, 对应实际的内容就是抽屉里面放的文件夹。

英文在这里会有歧义,如果你对应关系数据库的话, Record 表示的是表中的一条一条的记录。在这里也可以这么想,但因为缺少了一层,所以 Record 的级别提高了。

因此最好不要用关系数据库中的表来对应。

第三层 Contract

当我们有文件夹了,那么下一步就是放一张一张的纸,在这一张一张的纸上面有我们的数据。

那么这一张一张的纸就叫做 Contract。

这个英文单词在这里又有歧义了,因为和中文翻译合同是同一个词。但在这里没有合同的意思,所以只能最好使用英文原词来避免歧义。

第四层 数据 Items

对我们来说最重要和有价值的就是数据了,所以在 Contract 的这张纸上面我们就放的是数据。

对于数据来说,通常我们可以放各种数据,比如说我们在纸上面画一个表对吧。

但 IRIS 在这里就不这样用了,IRIS 只能在纸上面放 K-V 数据库,就等于是一个一个的键值对的意思。

与数据库对应来说就是 Map 了。

在 Map 中的 K,我们通常使用的词是 Key,但 IRIS 用的单词是 Item。

Item

就是定义 Map 中的 Key,通过这个定义来约束 Value 能够存什么样的东西,这个类似我们关系数据库中在表里面定义的字段,通过这个定义的字段来对可以存储的值来进行约束。

Value

这个好说,就是对应我们 Map 中的 Value,这个 Value 就是我们存储具体数据的地方。

对应关系数据库就是我们的一个一个的数据了。

总结

通过对上面的表述,大家应该对 IRIS 是如何对数据存储结构进行表达有所了解了。