Nosql 理解篇+实战篇 二 NoSQL的数据模型Ⅰ

来源:互联网 发布:数控线切割机编程入门 编辑:程序博客网 时间:2024/05/22 06:23

二  NoSQL的数据模型Ⅰ

 

NoSQL的核心数据模型思想?NoSQL模型的模型分类及其常用模型结构思想?我的项目应该选用哪种NoSQL数据库?

1)  正如C演变到C++那样,其所演变的核心思想是将面向过程演变为面向对象。而关系型数据库演变到NoSQL非关系型数据库的核心思想为“面向行”转变为“面向聚合”

 

关系型数据库的瓶颈在于,每张表的行可以存储value,但并不能存储包含类似键值对(Key:Object)类的聚合类(编者论:有人可能说可以存储以josn格式存储的值来实现此类关系,事实上,单不说在大数据存储中对json,Object的处理方式而引起的效率问题,单单对数据存储而言,此类与我们讨论的NoSQL并非在同一理解层面里。而且负责的“聚合关系”并非行内json所能处理的)

 

2)  常用的NoSQL生态模型:

1 键值

2 文档

3 列族

4 图

其中1,2,3称为聚合 4 为聚合无知

 

3)  关系型数据库和的NoSQL的事务处理

关系型数据库:ACID (一致,原子,隔离,持久)

NoSQL:对于事务的操作一般每次只能在一个聚合结构上进行原子操作;

 

4)  Josn为NoSQL常用的数据格式,以一个订单结构来示例:

 

5)  键值数据模型与文档数据模型

键值数据库:聚合不透明,包涵众多没有意义的大块信息。优势在于可以随意存储任意数据,数据库可能限制聚合的总大小。

文档数据库:聚合结构可以看到,数据库对存储内容限制其结构和数据类型,优势为更加灵活的访问数据。

 

在键值数据库中,要访问聚合内容,只能通过见来查找。

在文档数据库中,可以通过聚合中字段来查找,可以只获取一部分聚合,而不用获取全部内容。此外,数据库可以按照内容创建索引。

 

事实上,键值和文档数据库界限有些模糊,经常在文档数据库中,用它做“键值查询”,而在键值型的数据也可以允许略带含义的数据结构

 

6)  列族数据库:

以一张订单表为例

 

7)  数据库选用:

如果数据交换大多在同一聚合内执行,则应该使用面向聚合的数据库

若执行交互操作需要使用多种不同格式的数据,最好选用“聚合无知式”数据库

1 0
原创粉丝点击