1.BSON数据模型
SequoiaDB以二进制表示的文档形式存储数据,这种二进制文档称为BSON(二进制的JSON)。这个BSON()编码扩展了流行的JSON(JavaScript Object Notation),表现在附加的类型上,如整形、长整形以及浮点数。BSON文档包含一个或多个字段,而且每一个字段包含一个特定数据类型值,这些特定数据类型包括数组,二进制数据,子文档。
由于BSON是二进制的JSON,所以,先介绍介绍JSON。 JSON,它包括两种数据结构:键值对集合和数据。
对象是一个无序的“键值对”集合,以“{”(左大括号)开始,“}”(右大括号)结束。每一个元素名后跟一个“:”(冒号);而元素之间使用“,”(逗号)分隔;
数组是值的有序集合,以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔;
值可以为由双引号包裹的字符串,数值,对象,数组,true,false,null,以及 SequoiaDB 数据库特有的数据结构(例如日期,时间等)组成。
下面列举一个典型的JSON结构如下所述:
2. SequoiaDB动态模式
SequoiaDB文档在结构上可以不同。例如,描述用户的所有文档可能包含这个用户ID,以及他们最后一次登录系统的时间。然而仅仅有部分文档可能包含对一个或多个第三方应用程序的用户身份。文档与文档之间的字段也是不相同的,而且文档都包含各自的数据结构,因此没有必要在建立集合的时候指定数据模型。如果要在一个文档中加入一个新的字段,那么就创建这样一个新的字段。这样既不会影响系统中任何其他文档,也不会更新编目信息,更不会让系统离线。
3. SequoiaDB模式设计
尽管SequoiaDB支持强健的模式灵活,但模式设计仍旧是重要的。模式设计者应该从一些主题来考虑,例如应用程序需要执行的查询类型、如何管理应用程序代码中的对象、以及文档随时间推移如何改变和增长。