图或者文档的API?
在OrientDB中,我们建立了2套API,文档API和图API。图的API建立在文档API基础之上。文档API包括文档,键值和对象模型。图API特殊处理了顶点和边关系。
YOU, THE USER
|| ||
_||_ ||
\ / ||
\/ _||_
+-------------+ \ /
| Graph API | \/
+-------------+-----------------+
| Document API |
+-------------------------------+
| Key/Value and Object Oriented |
+-------------------------------+
图API
在OrientDB 2.0中,我们改进了图API来支撑 统一多模型 的API。这个API可以覆盖80%的使用场景,所以如果你开始使用OrientDB,它就是即将要学习的API。
使用图API:
- 你的数据(关系型数据库中的'记录')将被当做顶点和边存储。你可以在两者上面存储属性。
- 你可以采用无模式,全模式(模式一致)和混合模型。
- 关系被表示为双向的边。如果设置激活轻量级的边, OrientDB可以在没有属性的时候,使用Lightweight Edges,虽然它和文档的连接性能相同,占用空间一样,额外的好处就是可以使用双向边。这意味着可以使用
MOVE VERTEX
命令来重构你的图而不破外连接。更多管理边的信息,请参考Lightweight Edges.
文档API
剩下20%的使用场景在哪里?如果你需要使用OrientDB额外的特征,例如连接,或者你是来自于文档数据库的世界,那么使用文档API是正确的选择。
使用文档API的优势和劣势:
- 文档API比图API简单。
- 关系是单向的。如果你需要双向连接,那么两边都要维护链接(LINK)。
- 一个文档是一个原子单元,在图中,关系通过出度和入度的属性来描述。因为这个原因,图的操作必须在事务中进行(同时操作顶点和边)。相反,当你使用链接(LINK)来表示文档之间的关系,那么操作的时候不会涉及到链接(LINK)的目标文档。这样可以更好的支持多线程操作,特别是增删和改。