zoukankan      html  css  js  c++  java
  • 第一章:NoSql 入门和概述(下)

    一、NoSQL数据模型简介

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

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

        ER图(1:1、1:N、N:1)主外键等

        

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

      问题和难点:

      为什么用聚合模型来处理

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

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

      3、聚合模型

      (1)K-V 键值对

      (2)BSON

      (3)列族

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

        

      (4)图形

        

    二、NoSQL数据库的四大分类

      1、K-V 键值对

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

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

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

      3、列存储数据库

      • Cassandra、HBase
      • 分布式文件系统

      4、图关系数据库

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

      四者对比:

       

  • 相关阅读:
    2021-深信服-安服实习-面试反省
    cookie越权的一个案例
    图片大小相关参数可控导致ddos的一个案例
    流量代理-reGeorg脚本实现
    端口转发-lcx
    渗透各阶段目标&错误配置&正反向连接&MSF初探
    权限维持-几种常用手段复现
    解决pip安装第三方包编码错误:UnicodeDecodeError: 'ascii' codec can't decode byte....
    黑龙江网络安全技能竞赛awd后门分析复现
    实验吧-PHP大法-eregi()函数
  • 原文地址:https://www.cnblogs.com/niujifei/p/15740405.html
Copyright © 2011-2022 走看看