SQL数据库
传统上,SQL数据库以垂直扩展的方式进行扩展。这意味着资源(例如,CPU、存储或内存)被添加到单个服务器中。虽然这可能会因为只有一个具有有限容量的服务器进行扩展而导致增长数量有限,但有几个选择这个扩展方式的原因
- 原子性、一致性、隔离性和持久性(ACID)合规性:ACID合规性指的是一组保证数据库事务可靠性、一致性和数据完整性的属性。这对于许多包含银行和金融信息的SQL数据库非常重要,这些信息必须符合政府和行业标准。然而,在通过横向扩展而不是单个计算机和垂直扩展的服务器增加资源的情况下,保持ACID合规性可能会更困难。
- 注意:有些分布式系统NoSQL数据库可以保持ACID合规性,例如MongoDB Atlas.
- 事务管理:SQL数据库使用事务管理机制来维护数据完整性和数据库一致性。在分布式数据库环境中管理多个节点上的同时事务可能会增加额外的复杂性和资源使用,这可能影响数据完整性和整体数据库性能。如果使用横向扩展,这些问题可能会出现。
- 模式刚性:SQL数据库使用刚性、预定义的模式来摄入数据。虽然在一个计算机/服务器环境中维护起来很简单,但如果采用横向扩展的分布式系统,则可能会增加复杂性。具体来说,每个节点可能具有不同的模式版本,这将增加管理开销,并可能导致额外的数据一致性问题。
NoSQL数据库
NoSQL数据库系统通常配置为分布式系统。这意味着通过网络连接的一组独立计算机(例如,节点)共同工作以实现共同目标。成为分布式系统的一部分也意味着可以利用横向扩展与垂直扩展。
水平扩展涉及通过向系统中添加更多节点(例如,计算机、服务器)来增加分布式系统的可用资源和容量。这样做可以提供更多节点来支持系统的负载。此外,从容量角度来看,数据库的增长几乎没有任何限制,因为可以继续添加更多节点。
了解更多关于数据库扩展的信息。
SQL与NoSQL数据库技术的应用案例
虽然SQL数据库在管理结构化、关系型数据、保持事务完整性和执行复杂查询方面表现出色,但NoSQL数据库在查询和存储非结构化或半结构化数据方面无与伦比,同时提供无限的扩展性和灵活性。
话虽如此,应用案例是选择SQL和NoSQL数据库(例如,关系型数据库与非关系型数据库)之间的驱动力。以下是SQL数据库和NoSQL数据库的优缺点及关联应用案例的总结。
SQL数据库应用案例
SQL数据库的关键特性使其适用于以下应用案例
合规性监管
由于SQL数据库的结构适合符合ACID规范,因此它们通常用于存储必须符合某些政府或行业标准的数据。
以下案例都涉及一定程度上的ACID合规性。
事务型数据库
事务型数据库存储来自两个或多个参与者之间交互的数据。
示例
- 零售商销售点(PoS)数据库
- 医疗处方和订单数据库
- 商业银行
- 会计和财务记录数据库
企业资源计划(ERP)系统
ERP系统用于帮助企业管理关键业务流程,如员工管理、生产等。
示例
NoSQL数据库应用案例
尽管常见的观念认为NoSQL(例如,非关系型)数据库不符合ACID规范,但实际上一些是符合的。MongoDB是NoSQL、ACID符合性数据库的一个领先例子。
考虑到这一点,以下是一些常见的NoSQL数据库应用案例
事务型数据库
事务型数据库也可以由NoSQL数据库支持,因为它们用于存储两个或多个参与者之间交互产生的非结构化数据。
示例
- 需要非关系型数据库功能(例如,患者记录、X光/扫描照片和视频)的医疗患者档案
- 保险案例文件(例如,汽车事故照片、伤害记录)
- 法律文件数据库(例如,审问、诉状、案件文件)
文档数据库和数字资产管理(DAM)
文档数据库和数字资产管理存储和管理文档、图像、多媒体内容、视频等。
示例
- 在线图书馆(例如,法律图书馆、在线国会图书馆)
- 如Kindle或Nook等数字出版平台
- 如Netflix和Hulu等媒体流媒体服务
- 如Instagram或Meta等在线照片分享平台
图和网络分析
图和网络数据库在管理推荐引擎、社交网络和相关网络分析等数据结构方面非常出色,因为它们能够识别和分析相互连接的数据元素中的非直观关系。
示例
- 社交网络分析(例如,帖子和使用者指标)
- 欺诈检测,用于隔离异常交易或其他异常
- 知识图谱(例如,Gartner 产品/服务象限)
物联网(IoT)平台
物联网平台通常用于实时存储和分析传感器数据及设备元数据。
示例
- 智能家居系统(例如,Google Nest,Amazon Alexa)
- 智慧城市系统(例如,交通信号灯操作)
- 气象信息收集