NoSQLSQL与NoSQL(关系型与非关系型)数据库的分别

永久是的经典答案依然是:具体问题具体分析。

数据表VS.数据集

关系型和非关系型数据库的重大差距是数额存储的艺术。关系项目数码天然就是是表格式的,因此储存于数据表的行和列中。数据表可以彼此关系协作存储,也非常轻提取数据。与那倒,非关系项目数码不称储存于数据表的行和列中,而是大块组合在一起。非关系型数据一般存储在多少集中,就像文档、键值对要图结构。你的数量及其特点是选数据存储和提方法的要紧影响因素。

预定义结构VS.动态结构

涉项目数码一般对许受结构化数据,因为数据表都起约定义好的组织(列的定义),结构描述了数据的款式和内容。这同接触对数据建模至关重要,你不能不“第一时间先管结构定义好”。虽然预定义结构带来了可靠性和泰,但是都存入数据的表结构要改就异常痛苦了。另一方面,非关系项目数码根据动态结构,通常适用于无结构化数据。非关系型数据可以好容易适应数据类型和结构的生成,因为动态结构自身就支持即一点。

存储规范化VS存储代价

涉嫌项目数据库的多寡存储是为还胜之规范性,把多少分隔成最小的逻辑表(关系表)以避免双重,获得无限精简的空中应用。虽然数额规范性会使数据管理还清晰,但它一般为会见带一点点繁杂,尤其是单个操作可能干多独涉表底时光,数据管理虽生出接触麻烦。另外,更简洁的空间利用一般可以节约宝贵的数目存储,但是当当今世界我们基本可看存储的代价(磁盘空间)是开玩笑的。而不关系项目数码存储于面数据汇总,数据常常或有重新。单个数据库很少受隔开,而是存储成一个完完全全,这样是为了整块数据更易读写。

纵向扩容VS横向扩容

SQL和NoSQL数据库最深之出入可能是当扩张方式上,要支持添加的急需当然要推而广之。要支持更多并发量,SQL数据库是纵向扩展,也就是说提高处理能力,使用速更高速的处理器,这样处理同之数据集就还快了。因为数量存储于关系表中,操作的性质瓶颈可能干众多独说明,这都急需经过加强计算机性能来客服。虽然SQL数据库有很酷扩展空间,但最后必将会达成纵向扩展的上限。而NoSQL数据库是横向扩张的。非关系型数据存储天然就是是分布式的,NoSQL数据库的扩大可以由此叫资源池添加更多便的数据库服务器(节点)来平摊负载。

结构化查询VS非结构化查询

关联项目数据库通过所谓结构化查询语言(也便是咱们经常说之SQL)来操作数据。SQL支持数据库CRUD(增加,查询,更新,删除)操作的效力非常强,是业界规范用法。非关系型数据库以块(像文档一样)为单元操纵数据,使用所谓的莫结构化查询语言(UnQL),它是绝非标准的,因数据库提供商的不同而各异。关系型表中主键的概念对应非关系存储着的文档Id。SQL数据库使用预定义优化措施(比如列索引定义)帮助加快查询操作,而NoSQL数据库采用重复简短而标准的数码看模式。

映射VS本地化

SQL和NoSQL数据存储的选取还在于开发人员,尽管这元素影响不怪。采用面向对象编程语言的开发人员通常会又操作一个要么多单数据实体(包括嵌套数据、列表和多次组的复杂结构),把多少传递给应用程序用户界面。要是讨论到脚数据库,事情就是连无总是那公平合理了。在事关项目存储着,数据实体通常用分成基本上个部分进行规范化,然后分别储存到大半只关系型表中精简存储。幸运的凡,这是一个长期存在的题材,大部分编程平台还产生照应的简便解决方案,比如ORM层(对象关系映射)。ORM是位于关系项目数据源和开发者使用的面向对象数据实体之间的一个映射层。然而,对于非关系型存储,不需要规范化数据,复杂数据实体可以完全存于独单元中。应用程序中以的靶子日常列化为JSon串,存储在NoSQL数据库的JSon文档中。

事务性VS纯扩展性

假使你的数操作需要高事务性或者复杂数据查询需要控制实施计划,那么俗的SQL数据库从性质及安宁方面考虑是您的最佳选择。SQL数据库支持针对业务原子性细粒度控制,并且爱回滚事务。虽然NoSQL数据库也可以使用工作操作,但她确实闪亮的价是当操作的扩展性和运气据量处理者。

ACID VS CAP

SQL
数据库久负盛名的价虽经所谓的ACID属性(原子性,一致性,隔离性,持久性)保证数据完整性,大部分关乎项目存储供应商都支持ACID。我们的靶子是永葆隔离不可分割的政工,其变化是恒久的,数据为保持一致状态。而NoSQL数据库是深受你当CAP(一致性,可用性,分区容忍度)中之任意两宗中选取,因为在根据节点的分布式系统中,很为难就三件都满足。

数据VS大数据

SQL数据库可可靠地囤积和处理数据,而NoSQL最老的优势是在承诺针对特别数目方面,也就是出于我们社会还是电脑每天生的大气未结构化的数码实体。NoSQL用无模式方式开多少管理,所以该横向扩张潜力是最的,这或是深处理好数据捕获、管理、检索、分析和可视化的绝无仅有有效途径。

多少记录VS物联网和食指联网

关系数据库在关注数据规范化和保管性能的底蕴及简单存储。但是近年来,我们有多少的快远甚吃干项目存储能满足存储的力提高。刺激数据如此便捷增长之由来是:巨大量的用户数和物联网。连接至互联网的用户以成倍增加,在一起使用我们的应用。由于大气运动装备数量传设备属互联网,机器出的数据量也大幅增多。因此公司要寻求NoSQL技术与基础架构来拍卖持续涌入的一半结构化和免结构化数据。

里面布置VS云计算

摆计算现在一度无处不在了,它兼具SQL和NoSQL数据库的益处。云环境中的涉及项目存储通常是为服务式提供的,是可复制、高可用性且分布式的,极大地提高了横向扩张能力。托管为道服务受到之NoSQL数据库也自发享有自动分片的补,可以阶段性地活弹性处理,集成高速缓存和伟人的乘除能力来捕获、存储和分析好数据。

付费VS开源

来一致种植意见认为,SQL数据库大多数比昂贵,而NoSQL数据库一般都是开源之。事实上,两种植类型数据库都产生开源之同买卖的。常见的SQL
数据库有微软公司的SQL
Server,MySQL,SQLite,Oracle和PostGres。流行的NoSQL数据库来Couchbase,MongoDB,Redis,BigTable和RavenDB。

SQL和NoSQL这两头都来分别的利弊,选择对的架构取决于你构建利用的要求。

 

 

来源:http://m.blog.csdn.net/article/details?id=51779361

网站地图xml地图