关系型数据库 VS 非关系型数据库

什么是关系数据库 SQL

关系数据库以结构化和表的方式存储数据。也就是说,它将信息存储在表中,可以将其视为数据的存储容器。

关系数据库具有严格的、静态的预定义逻辑架构(schema)。

特点
  • 是表格格式
  • 非常有条理,并且数据以某种结构存储
  • 具有严格、预定义的架构
  • 使用 SQL 执行数据库查询和操作数据
ACID 属性

ACID 是原子性(Atomicity)、一致性(Consistency)、事务隔离(Isolation)、持久性(Durability)

原子性意味着事务是原子的并且采取 “all or nothing” 的方法。也就是,要么整个操作成功,从头到尾完成,要么不成功,整个操作“回滚”。所有操作都保证以成功或失败结束,不存在部分成功。

一致性是确保数据库结构从事务开始到结束保持不变。一致性确保进入数据库的任何数据都遵循已设置的规则和约束。它可以保护和维护关系数据库中数据的完整性。

事务隔离意味着尽管在任何时候都发生了许多事务,但每个事务都被视为一个原子的、独立的单元,并且事务似乎是按顺序发生的。

持久性意味着事务的任何结果和更改都已提交,因此是永久性的,并且将持续存在,即使出现系统故障也是如此。

ACID 模型可确保数据库可靠且安全。

什么是非关系数据库 NoSQL

非关系型数据库也称为 NoSQL 数据库。

无论哪种方式,非关系数据库都是指不使用关系数据模型的数据库。

一些最流行的非关系数据库:

MongoDB
Redis
Apache Cassandra
Google Cloud Bigtable
Amazon DynamoDB

非关系数据库不以表格式存储和组织数据。不同数据点之间没有表、行、列或关系。

SQL 和 NoSQL 数据库之间进行选择

何时使用 SQL 数据库
  • 需要分布在多个表中的高度结构化的数据,需要数据遵守严格的、可预测的、预定义的和已经计划好的模式。
  • 数据将保持相对不变。如果不打算频繁更改数据库的结构并且不需要定期更新项目,SQL 数据库会很方便。请记住,它们提供的灵活性很小。
  • 需要一致的数据。
  • 数据完整性和安全性是重中之重。
  • 需要复杂查询的准确结果。

SQL 数据库的一个缺点是它们是垂直扩展的。当存储变多时,需要增加当前机器上的硬件和提高计算能力。这可能代价高昂。需要增加处理能力和内存存储来处理增加的负载以提高性能。

何时使用 NoSQL 数据库
  • 在一个快速的开发环境中工作,需要经常调整需求并不断更改数据库结构。
  • 正在处理大量性质不同但不需要大量结构或准确性的数据。
  • 正在处理需要频繁更新的数据。NoSQL 数据库提供了一个松散、灵活和动态的模式,允许对数据进行定期更改。
  • 需要快速的查询结果和系统的持续可用性。
  • 不想对数据库进行任何前期规划、准备或设计,而是想立即开始构建。

NoSQL 数据库的一大优势是它们可以水平扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值