其它相关推荐:
系统架构之微服务架构
系统架构设计之微内核架构
鸿蒙操作系统架构
架构设计之大数据架构(Lambda架构、Kappa架构)
所属专栏:系统架构设计师
NoSQL(Not-onlySQL):不仅仅只是SQL,泛指非关系型的数据库。

是对关系型数据库的补充和完善,它不使用传统的表格模式,而是使用其他的数据模型来存储数据。NoSQL数据库非常适合处理大规模的非结构化或半结构化数据,具有高可扩展性、高灵活性、高性能、高可用性等特点。常见的NoSQL数据库包括MongoDB、Cassandra、Redis等。
| 对比维度 | 关系数据库 | NoSQL |
|---|---|---|
| 应用领域 | 面向通用领域 | 特定应用领域 |
| 数据容量 | 有限数据 | 海量数据 |
| 数据类型 | 结构化数据(二维表) | 非结构化数据 |
| 并发支持 | 支持并发,但性能低 | 高并发 |
| 事务支持 | 高事务性 | 弱事务性 |
| 扩展方式 | 向上扩展 | 向外扩展 |
与关系型数据库相比,NoSQL数据库对数据之间的关系的处理更加灵活,因此可以满足更多种类的应用场景,例如大数据、云计算、分布式存储等。
主要优势:
(1)避免不必要的复杂性
(2)高吞吐量
(3)高水平扩展能力和低端硬件集群
(4)避免了昂贵的对象-关系映射
缺点:
(1)数据模型和查询语言没有经过数学验证
(2)不支持ACID特性
(3)功能简单
(4)没有统一的查询模型
NoSQL数据库整体框架分为四层,分别为数据持久层(data persistence)、整体分布层(data distribution model)、数据逻辑模型层(data logical model)和接口层(interface),这四层之间是相辅相成,协调工作。
数据持久层定义了数据的存储形式,主要包括基于内存、硬盘、内存与硬盘相结合、订制可插拔四种形式。基于内存形式的数据存取速度最快,但可能会造成数据丢失;基于硬盘的数据可能保存很久,但存取速度较基于内存的形式慢;内存和硬盘相结合的形式,结合了前两种形式的优点,既保证了速度,又保证了数据不丢失;订制可插拔则保证了数据存取具有较高的灵活性。
整体分布层定义了数据是如何分布的,相对于关系型数据库,NoSQL可选的机制比较多,主要有三种形式:一是CAP支持,可用于水平扩展。
数据逻辑模型层定义了数据之间的联系和操作方式,主要包括文档、键值对、图像、列存储等。
接口层定义了与数据访问相关的接口,包括查询、索引、事务、权限等。

其它相关推荐:
系统架构之微服务架构
系统架构设计之微内核架构
鸿蒙操作系统架构
架构设计之大数据架构(Lambda架构、Kappa架构)
所属专栏:系统架构设计师