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 是如何对数据存储结构进行表达有所了解了。