NoSQLAtitit.nosql api 标准化 以及nosql数据库的兑现模型分类差异

Atitit.nosql api 标准化 以及nosql数据库的落实模型分类差异

 

 

1. 常用的nosql数据库MongoDB  Cassandra1

1.1. 查询> db.blogposts.find( { “author.name” : “Jane” } )1

1.2. 保存save  insert1

1.3. Update ,delete2

1.4. MongoDB 与 RDBMS Where 语句子比较2

1.5. MongoDB OR 条件2

1.5.1. 实例3

1.6. AND 暨 OR 联合利用3

2. 对比4

3. 参考5

 

1. Keyword

Zai json中落实表达式的表述,用json来表示sql的表达式

2. 常用的nosql数据库MongoDB  Cassandra

比方2:在一个提到项目数据库中,一篇博客(包含文章内容、评论、评论的投票)会让打散在差不多摆设数表中。在MongoDB中,能因此一个文档来代表同样篇博客, 评论与投票作为文档数组,放在正文主文档中。这样数据还易于管理,消除了民俗关系项目数据库被影响属性及档次扩展性的“JOIN”操作。

 

2.1. 查询> db.blogposts.find( { “author.name” : “Jane” } )

2.2. 保存save  insert

 

> db.blogposts.save({ title : “My First Post”, author: {name : “Jane”, id :1},
  comments : [{ by: “Abe”, text: “First” },
              { by : “Ada”, text : “Good post” }]
})

 

2.3. Update ,delete

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

2.4. MongoDB 与 RDBMS Where 语句比较

一旦你熟悉常规的 SQL 数据,通过下表可以另行好的了解 MongoDB 的尺度语句询问:

 

操作

格式

范例

RDBMS中的类似语句

等于

{<key>:<value>}

db.col.find({"by":"菜鸟教程"}).pretty()

where by = ‘菜鸟教程’

小于

{<key>:{$lt:<value>}}

db.col.find({"likes":{$lt:50}}).pretty()

where likes < 50

小于或等于

{<key>:{$lte:<value>}}

db.col.find({"likes":{$lte:50}}).pretty()

where likes <= 50

大于

{<key>:{$gt:<value>}}

db.col.find({"likes":{$gt:50}}).pretty()

where likes > 50

大于或等于

{<key>:{$gte:<value>}}

db.col.find({"likes":{$gte:50}}).pretty()

where likes >= 50

不等于

{<key>:{$ne:<value>}}

db.col.find({"likes":{$ne:50}}).pretty()

where likes != 50

 

 

 

2.5. MongoDB OR 条件

MongoDB OR 条件语句以了重点字 $or,语法格式如下:

>db.col.find(

   {

      $or: [

     {key1: value1}, {key2:value2}

      ]

   }).pretty()

2.5.1. 实例

以下实例中,我们演示了查询键 by 值为 菜鸟教程 或键 title 值为 MongoDB 教程 的文档。

>db.col.find({$or:[{“by”:”菜鸟教程”},{“title”: “MongoDB 教程”}]}).pretty(){

        “_id” : ObjectId(“56063f17ade2f21f36b03133”),

        “title” : “MongoDB 教程”,

        “description” : “MongoDB 是一个 Nosql 数据库”,

        “by” : “菜鸟教程”,

        “url” : “http://www.runoob.com”,

        “tags” : [

                “mongodb”,

                “database”,

                “NoSQL”

        ],

        “likes” : 100}>

 

2.6. AND 同 OR 联合使用

以下实例演示了 AND 和 OR 联合以,类似常规 SQL 语句也: ‘where url=’http://www.runoob.com’ AND (by = ‘菜鸟教程’ OR title = ‘MongoDB 教程’)’

>db.col.find({“likes”: {$gt:50}, $or: [{“by”: “菜鸟教程”},{“title”: “MongoDB 教程”}]}).pretty(){

        “_id” : ObjectId(“56063f17ade2f21f36b03133”),

        “title” : “MongoDB 教程”,

        “description” : “MongoDB 是一个 Nosql 数据库”,

        “by” : “菜鸟教程”,

        “url” : “http://www.runoob.com”,

        “tags” : [

                “mongodb”,

                “database”,

                “NoSQL”

        ],

        “likes” : 100}

3. 对比

Cassandra 教程资料较为少,crud语句看似sql了。。不是nosql了。。

 

MongoDB的材料多,更加爱oo

然而百度查询MongoDB 百度为汝找到有关结果约3,110,000单  

Cassandra 的数是mongodb的二元让。。

Hbase  百度为你找到有关结果约6,110,000个

至于hbase ,文档少,貌似比较复杂不好用。

 

4. 产卵图是NoSQL家族之进化图,我们可见到这样的升华:Key-Value时代,BigTable时代,Document时代,全文检索时,和Graph数据库时代:

(陈皓注:注意图中SQL说的那句话,NoSQL再如此前进下去就SQL了,哈哈。)

数据模型的向上:

· Key-Value键值对存储是非常简单而强的。下面的过剩技基本上还是因这个技能开始上扬之。但是,Key-Value有一个十分沉重的题目,那就算是只要我们用寻找一段落范围外之key。(陈皓注:学了hash-table数据结构的口还该懂得,hash-table是未序列容器,其并无像屡次组,链接,队列这些有序容器,我们得控制数据存储的逐条)。于是,有序键值(Ordered Key-Value)数据模型被规划出来解决当时同样克,来从根本上提高数据集的问题。

· Ordered Key-Value有序键值模型呢特别强劲,但是,其也从没对Value提供某种数据模型。通常来说,Value的范可以由下负责解析和存取。这种非常不便宜,于是起了BigTable类型的数据库,这个数据模型其实就是map里有map,map里再套map,一交汇一交汇套下去,也不怕是少见嵌套的key- value(value里又是一个key-value),这种数据库的Value主要透过“列族”(column families),列,和日截来控制版本。(陈皓注:关于时间截来对数据的版本控制主要是釜底抽薪数量存储并发问题,也就是是所谓的乐观主义锁,详见《大抵版本出现控制(MVCC)在分布式系统中之动》)

· Document databases 文档数据库 改进了BigTable模型,并提供了区区个发含义的改进。第一单凡是同意Value中生出主观的模式(scheme),而无是map套map。第二个是索引。Full Text Search Engines全文检索引擎可以叫看作是文档数据库的一个变种,他们可以供灵活的可变的多寡模式(scheme)以及机关索引。他们中的不同点主要是,文档数据库用配段名做索引,而全文检索引擎用配段值做索引。

· Graph data models图式数据库 可以为认为是者发展过程中起Ordered Key-Value数据库发展过来的一个分支。图式数据库允许构建议图结构的数据模型。它同文档数据库来关系之缘由是,它的广大贯彻允许value可以是一个map或是一个document。

4.0.0.1. NoSQL数据模型摘要

正文剩下的回用向你介绍数据建模的技艺实现同系模式。但是,在介绍这些技巧之前,先来平等段序言:

· NoSQL数据模型设计一般由事情应用之切实多少查询入手,而未是数里的关联:

· 关系型的数据模型基本上是分析数据之中的结构和关联。其设计理念是: “What answers do I have?”

· NoSQL数据模型基本上是起运对数码的存取方式着手,如:我待支持某种数据查询。其计划意见是 ”What questions do I have?”

· NoSQL数据模型设计于干项目数据库需要针对数据结构和算法的重不行的问询。在就篇文章被我会与大家说那些明明的数据结构,这些数据结构并无单纯是为NoSQL使用,但是对于NoSQL的数据模型却不行有帮。

· 数据冗余和倒规格化是千篇一律等民。

· 关系项目数据库对于拍卖层级数据与图式数据十分的匪便民。NoSQL用来缓解图式数据肯定是一个不行好的化解方案,几乎拥有的NoSQL数据库可好强地缓解此类题材。这就算是胡就篇稿子专门将出同样章节来证明层级数据模型。

 

4.1. 下是NoSQL的分类表,也是自家之所以来形容这篇稿子时举行执行的活:

· Key-Value 存储: Oracle Coherence, Redis, Kyoto Cabinet

· 类BigTable存储: Apache HBase, Apache Cassandra

· 文档数据库: MongoDB, CouchDB

· 全文索引: Apache Lucene, Apache Solr

· 图数据库: neo4j, FlockDB

 

 

 

5. 参考

 

排行前十的SQL和NoSQL数据库-CSDN.NET.htm

8天学通MongoDB——第一天 基础入门 – 一线码农 – 博客园.htm

 

MongoDB 查询文档   菜鸟教程.htm

分布式 Key-Value 存储系统:Cassandra 入门.htm

Cassandra 2.x华语课(2):执行简单的CQL操作   屁民部落.htm

NoSQL数据建模技术-CSDN.NET.htm

HBase使用教程 – 推酷.htm

 

网站地图xml地图