nosql入门概述-(3)-数据模型与数据库分类

一、订单数据库举例对比

1、传统的关系型数据库你如何设计?

ER(1:1/1:N/N:N,主外键等常见)

2、Nosql你如何设计

BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象。

BSon画出构建的数据模型:

{ 
 "customer":{ 
   "id":1136, 
   "name":"Z3", 
   "billingAddress":[{"city":"beijing"}], 
   "orders":[ 
    { 
      "id":17, 
      "customerId":1136, 
      "orderItems":[{"productId":27,"price":77.5,"productName":"thinking in java"}], 
      "shippingAddress":[{"city":"beijing"}] 
      "orderPayment":[{"ccinfo":"111-222-333","txnid":"asdfadcd334","billingAddress":{"city":"beijing"}}], 
      } 
    ] 
  } 
} 

3、Nosql比rdbms好处

1、易扩展,字段结构拆分合并方便。

2、传统的集中式的数据库可以进行多表关联查询,但是分布式系统忌讳多表关联查询的。[因为会出现join in跨库]
高并发的操作是不太建议有关联查询的,即便有表也要越少越好,互联网公司用冗余数据来避免关联查询
传统OA系统是强事务的要迅速处理,而对于分布式事务是支持不了太多的并发的。

3、传统数据库查询需要 join in ,nosql 只要 k v 键值对。

二、nosql聚合模型

1、KV键值     2、Bson
3、列族: 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。

4、图形

三、nosql数据库分类

1、KV键值:典型介绍

新浪:BerkeleyDB+redis 美团:redis+tair 阿里、百度:memcache+redis

2、文档型数据库(bson格式比较多):典型介绍

CouchDB       MongoDB
MongoDB 是一个 基于分布式文件存储的数据库 。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

3、列存储数据库:分布式文件系统

Cassandra, HBase

4、图关系数据库

它不是放图形的,放的是关系比如:朋友圈社交网络、广告推荐系统。专注于构建关系图谱。

Neo4J, InfoGrid

5、分类比较

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments