一、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
四者对比:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战