非关系型数据库与关系型数据库对比分析
关系型数据库
优 点
容易理解,它的逻辑类似常见的表格
使用方便,都使用sql语句,sql语句非常的成熟
数据一致性高,冗余低,数据完整性好,便于操作
技术成熟,功能强大,支持很多复杂操作
缺 点
读写性能比较差,尤其是海量数据的高效率读写
固定的表结构,灵活度稍欠;
高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
非 关 系 型 数 据 库
优 点
高并发,读写能力强
弱化数据结构一致性,使用更加灵活
有良好的可扩展性
缺 点
通用性差,没有sql语句那样通用的语句
复杂查询方面稍欠
无事务处理;
区别
存储技术(Storage Technology)
- 存储方式
关系型数据库采用表格式, 数据以行和列进行存储,要读取和查询都十分方便。
非关系型数据库通常以数据集的方式,大量的数据集中存储在一起。 - 存储结构
关系型数据库按照结构化的方法存储数据,数据的形式和内容在存入数据之前就已经定义好了,可靠性和稳定性都比较高。一旦存入数据后,如果需要修改数据表的结构就会十分困难。
NoSQL数据库采用的是动态结构,对于数据类型和结构的改变非常的适应,可以根据数据存储的需要灵活的改变数据库的结构。 - 存储规范
关系型数据库数据按照最小关系表的形式进行存储,数据很清晰、一目了然,随着数据表数量的增加,数据管理会越来越复杂。
NoSQL数据库的数据存储方式是用平面数据集的方式集中存放,基本上单个数据库都是采用单独存放的形式,对于数据的读写提供了极大的方便。
拓展方式
关系型数据库的瓶颈出现在多张数据表的操作,提高处理能力只能选择速度更快性能更高的计算机,拓展空间有限。
NoSQL数据库的存储方式是分布式的,可以添加更多数据库服务器到资源池,然后由这些增加的服务器来负担数据量增加的开销。
查询方式
关系型数据库采用结构化查询语言(即SQL)来对数据库进行查询,已获得了各个数据库厂商的支持,成为数据库行业的标准,能够支持数据库的CRUD(增加,查询,更新,删除)操作,同时也可以采用索引的方法来加快查询操作。
NoSQL数据库使用的是非结构化查询语言(UnQL),它以数据集(像文档)为单位来管理和操作数据,没有一个统一的标准,每个数据库厂商提供产品标准是不一样的。
规范化(Standardization)
关系型数据库中,一个数据实体通常被分割成很多部分,需要对每个分割的部分进行规范化。可以利用ORM层(也就是对象关系映射)来将数据库中对象模型映射到基于SQL的关系型数据库中去以及进行不同类型系统间数据的转换。以采用索引的方法来加快查询操作。
NoSQL数据库则没有这方面的问题,它不需要规范化数据,它通常是在一个单独的存储单元中存入一个复杂的数据实体。
事 务 性
关系型数据库强调ACID规则(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)),强调数据的强一致性,对于事务的操作有很好的支持。
NoSQL数据库强调BASE原则(基本可用(Basically Available)、软状态(Soft-state)、最终一致性(Eventual Consistency)),对于事务的操作不能很好的支持。
读 写 性 能
关系型数据库遇到高并发读写的时候性能就会下降的非常厉害
NoSQL数据库是按key-value类型进行存储的,以数据集的方式存储的,对于大数据管理、检索、读写、分析以及可视化方面有优势