04-NoSQL数据模型简介学习

来源:互联网 发布:战国红异端网络 编辑:程序博客网 时间:2024/05/22 07:01

以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库

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

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


Nosql你如何设计

什么是BSON

 
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"}}],
      }
    ]
  }
}

两者对比,问题和难点

为什么上述的情况可以用聚合模型来处理

高并发的操作是不太建议有关联查询的,互联网公司用冗余数据来避免关联查询

分布式事务是支持不了太多的并发的

启发学生,想想关系模型数据库你如何查?
如果按照我们新设计的BSon,是不是查询起来很可爱

聚合模型

KV键值

Bson

列族

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


图形


0 0
原创粉丝点击