`

nosql数据库库和sql数据库的区别

 
阅读更多

自1970年,埃德加·科德提出关系模型之后,关系数据库便开始出现,经过了40多年的演化,如今的关系型数据库具备了强大的存储、维护、查询数据的能力。但在关系数据库日益强大的时候,人们发现,在这个信息爆炸的“大数据”时代,关系型数据库遇到了性能方面的瓶颈,面对一个表中上亿条的数据,SQL语句在大数据的查询方面效率欠佳。我们应该知道,往往添加了越多的约束的技术,在一定程度上定会拖延其效率。

       1998年,Carlo Strozzi提出NOSQL的概念,指的是他开发的一个没有SQL功能,轻量级的,开源的关系型数据库。注意,这个定义跟我们现在对NoSQL的定义有很大的区别,它确确实实字如其名,指的就是没有SQL”的数据库。但是NoSQL的发展慢慢偏离了初衷,CarloStrozzi也发觉,其实我们要的不是"nosql",而应该是"norelational",也就是我们现在常说的非关系型数据库了。

       在关系型数据库中,导致性能欠佳的最主要因素是多表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询。为了保证数据库的ACID特性,我们必须尽量按照其要求的范式进行设计,关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。

       非关系型数据库提出另一种理念,他以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,用户可以根据需要去添加自己需要的字段,这样,为了获取用户的不同信息,不需要像关系型数据库中,要对多表进行关联查询。仅需要根据id取出相应的value就可以完成查询。但非关系型数据库由于很少的约束,他也不能够提供想SQL所提供的where这种对于字段属性值情况的查询。并且难以体现设计的完整性。他只适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,SQL数据库显得更为合适。

       目前出现的NoSQL(Not only SQL,非关系型数据库)有不下于25种,除了Dynamo、Bigtable以外还有很多,比如Amazon的SimpleDB、微软公司的AzureTable、Facebook使用的Cassandra、类Bigtable的Hypertable、Hadoop的HBase、MongoDB、CouchDB、Redis以及Yahoo!的PNUTS等等。这些NoSQL各有特色,是基于不同应用场景而开发的,而其中以MongoDB和Redis最为被大家追捧。

       以下是MongoDB的一些情况:

MongoDB基于文档的存储的(而非表),是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似jsonbjson格式,因此可以存储比较复杂的数据类型。模式自由(schema-free),意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

       Mongo主要解决的是海量数据的访问效率问题。因为Mongo主要是支持海量数据存储的,所以Mongo还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。由于Mongo可以支持复杂的数据结构,而且带有强大的数据查询功能,因此非常受到欢迎

 

参考:NoSQL 初探http://space.itpub.net/26277071/viewspace-708958

         难以抗衡关系型数据库 NoSQL革命仍要等待http://www.oschina.net/news/2447

         简单分析灵活的非关系型数据库NoSQL

http://idg.ccw.com.cn/htm2012/20120209_960633.shtml

总结:

 

 

sql

nosql

价格

昂贵(有对应的供应商)

便宜(因为是开源的)

使用

会强加一些东西

 

性能

性能缓慢,因为会有很多的约束条件来维护数据的完整性和安全性,

很少的约束条件,不能很好的维护数据的完整性

表的存储结构

表都是存储一些格式化的数据结构,每个元组字段的组成都一样(便于表之间的关联)

表结构不固定,以键值对存储

分享到:
评论

相关推荐

    NoSQL数据库PPT.pptx

    二.NoSQL数据库的产生 关系数据库面临挑战 关系数据库面对超大规模和高并发的SNS类型的web2.0纯动态网站显得力不从心,暴露了很多难以克服的问题 A 大数据发展 大规模数据集合,多重数据带来了许多挑战,尤其是...

    8种主流NoSQL数据库对比

    8种主流NoSQL数据库对比,有时间可以了解了解

    论文研究 - 键值NoSQL数据库的冲浪并发事务处理模型

    本文提出了一个包含Redis的键值NoSQL数据库的事务模型,以使用户能够以ACID(原子性,一致性,隔离性和持久性)方式访问数据,该模型被生动地称为冲浪并发事务模型。 详细描述了体系结构,重要功能和实现原理。 还...

    什么是NoSQL数据库?

    关系型数据库和NoSQL数据库 什么是NoSQL 大家有没有听说过“NoSQL”呢?近年,这个词极受关注。看到“NoSQL”这个词,大家可能会误以为是“No!SQL”的缩写,并深感愤怒:“SQL怎么会没有必要了呢?”但实际上,它是...

    8种Nosql数据库系统对比

    但是NoSQL数据库之间的不同,远超过两 SQL数据库之间的差别。这意味着软件架构师更应该在项目开始时就选择好一个适合的 NoSQL数据库。针对这种情况,这里对 Cassandra、 Mongodb、CouchDB、Redis、 Riak、 Membase、...

    NoSQL数据库Ardb.zip

    Ardb是一个新的构建在持久化Key/Value存储实现上的NoSQL DB服务实现,支持list/set/sorted set/bitset/hash/table等复杂的数据结构,以Redis协议对外提供访问接口。 ... 标签:Ardb NoSQL数据库

    NoSQL数据库笔谈

    NoSQL数据库笔谈 Key Column Super column Sorting 存储 API Google之BigT able Yahoo之PNUTS 特点 PNUTS实现 Record-level mastering 记录级别主节点 PNUTS的结构 Tablets寻址与切分 Write调用示意图 PNUTS感悟 ...

    最新统计排名前十的SQL和NoSQL数据库排行榜

    主要介绍了最新统计排名前十的SQL和NoSQL数据库排行榜,本文包括Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB等数据库,需要的朋友可以参考下

    大数据云计算技术系列 NoSQL数据库学习教程(共71页).pdf

    4 微软之SQL数据服务 4 非云服务竞争者 4 文档存储 4 CouchDB 4 特性 4 Riak 4 MongoDB 4 Terrastore 4 ThruDB 4 Key Value / Tuple 存储 4 Amazon之SimpleDB 4 Chordless 4 Redis 4 Scalaris 4 Tokyo cabinet / ...

    NoSQL数据库类型简介

    但是,归结起来,可以将典型的 NoSQL 划分为 4 种类型,分别是键值数据库、列式数据库、文档数据库和图形数据库,如图 1 所示。 图 1 4 种类型的 NoSQL 数据库   图 2 键值数据库举例 1. 键值数据库 键值...

    NoSQL数据库之Redis数据库管理三(string类型和hash类型)

    NoSQL数据库之Redis数据库管理一(string类型和hash类型)

    数据库管理和数据库设计:SQl和NoSQL数据库项目

    数据库管理和数据库设计:SQl和NoSQL数据库项目

    《数据库原理》课后习题及答案.

    第3章 关系数据库标准语言SQL 4 第4章 数据库安全性 6 第5章 数据库完整性 8 第6章 关系数据库理论 10 第7章 数据库设计 13 第9章 关系查询处理和查询优化 第10章 数据库恢复技术 第11章 并发控制

    mORMot2源码下载,优化的交叉编译器和跨平台 JSON/UTF-8 和 RTTI 内核;直接SQL和NoSQL数据库访问

    2.直接SQL和NoSQL数据库访问(例如SQLite3,PostgreSQL,Oracle,MSSQL,OleDB,ODBC,MongoDB); 3.ORM/ODM:对象在几乎任何数据库(SQL或NoSQL)上的持久性; 4.SOA:将业务逻辑组织到 REST 服务中,定义为...

    SQL与NoSQL数据库间的数据查询转换方法研究.pdf

    SQL与NoSQL数据库间的数据查询转换方法研究.pdf

    nosql数据库简介.pptx

    NoSQL(Not Only SQL/non-relational),最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受,泛指非关系型的数据库,它们不保证关系数据的ACID特性,但其提倡运用非关系型的数据存储。

    使用NoSQL数据库提供云级别数据可伸缩性

    在提及数据库扩展性时,人们就会想到相对低成本...NoSQL数据库(包括NoSQL系统HBase、MongoDB和SimpleDB)的特性和功能概述,还将介绍云和 NoSQL数据库的设计基础。就创建、交流、访问内容、共享信息和购买产品而论,快

    NOSQL数据库入门

    NOSQL的简单介绍和使用 NOSQL数据库入门

Global site tag (gtag.js) - Google Analytics