文档存储是以文档为存储信息的基本单位。文档存储一般用类似JSON格式存储,存储的内容是文档型的。
文档数据库 | 关系数据库 |
集合(可以像定义表结构一样使用) | 表结构 |
文档 可以很长,很复杂,无结构,可以是任意结构的字段,且数据具有物理和逻辑上的独立性 | 记录 具有高度结构化的表存储 |
可以通过复杂查询条件来获取数据 | 具备事务处理和联表join等操作 |
不提供对参数完整性和分布事务的支持 支持数据之间交换 |
主流文档型数据库
类型 | 名称 | 说明 | |
JSON型 | MongoDB | 10gen公司开发,特点是无表结构,以BSON(JSON的二进制编码格式,支持更复杂格式)形式保存数据和结构 | 对比关系型: 添加字段:修改程序 查询数据:查询条件灵活,但不支持join查询 事务:不支持 |
(1)高性能:提供JSON、XML等可嵌入数据快速处理功能;提供文档索引功能 (2)丰富的查询语言:为数据聚合、结构文档、地理空间提供丰富的查询功能。 (3)高可用性:提供数据冗余处理和故障自动转移功能。 (4)水平扩展能力:通过集群将数据分布到多台机器 | |||
XML型 | BaseX | 具有高度交互可视性(GUI),可实时执行,可进行Xquery编辑。支持FullText扩展,可动态展示XML文件层次和结点关系 | |
JSON型 | CouchDB | 用Erlang编写,致力于健壮性、高并发性和容错性。 API基于REST,采用标准动词GET、PUT、POST和DELETE。支持JavaScript操作,可通过Map/reduce函数来生成视图。 | 与其他NoSQL数据库最大的不同在于双流向增加副本。 |
多键值 | Lotus Notes | 群件系统,主要用于办公自动化领域,实现了业务流程化,定义了全文检索、复制、集成开发环境和安全机制等方面 | |
XML型 | MarkLogic Server |