是否有任何符合 ACID 的 NoSQL 数据存储?

2023-11-30

有没有NoSQL数据存储是ACID符合吗?


我将其发布为纯粹为了支持对话的答案 -Tim Mahy , nawroth , and CraigTP提出了可行的数据库。CouchDB由于使用将是我的首选Erlang,但还有其他人。

I'd say ACID并不矛盾或否定这个概念NoSQL...虽然似乎有一种趋势遵循以下观点:dove,我认为这些概念是不同的。

NoSQL从根本上讲,它是关于简单的键值(例如 Redis)或文档样式模式(在“文档”模型中收集的键值对,例如 MongoDB)作为经典 RDBMS 中显式模式的直接替代方案。它允许开发商处理things不对称,而传统发动机则强制执行刚性相同性跨数据模型。这之所以如此有趣是因为它提供了一种不同的方式来应对变化,对于更大的数据集,它提供了处理数据量和性能的有趣机会。

ACID提供了管理如何将更改应用到数据库的原则。它以一种非常简单的方式指出(我自己的版本):

  • (A) 当您对数据库进行某些操作时,整个更改应该有效或失败
  • (C) 数据库应该保持一致(这是一个相当广泛的主题)
  • (I) 如果同时发生其他事情,他们不应该能够在更新中看到事情
  • (D) 如果系统崩溃(硬件或软件),数据库需要能够自行恢复;如果它说已完成应用更新,则需要确定

当谈到这个想法时,谈话变得更加令人兴奋传播和约束。一些 RDBMS 引擎提供了强制约束(例如外键)的能力,这些约束可能具有传播元素(例如cascade)。简而言之,一个“事物”可能与数据库中的另一个“事物”有关系,如果您更改一个“事物”的属性,则可能需要更改另一个“事物”(更新、删除……很多选项)。NoSQL数据库(目前)主要关注高数据量和高流量,似乎正在解决在(从消费者角度)任意时间范围内发生的分布式更新的想法。这基本上是一种特殊形式复制通过管理交易- 所以我想说,如果传统的分布式数据库可以支持ACID,那么NoSQL数据库也可以。

一些供进一步阅读的资源:

  • 维基百科关于 ACID 的文章
  • 关于传播约束的维基百科
  • 维基百科(是的,我喜欢这个网站,好吗?)关于数据库规范化
  • CouchDB 上的 Apache 文档很好地概述了它如何应用 ACID
  • 维基百科上集群计算
  • 维基百科(再次...)关于数据库事务的内容
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有任何符合 ACID 的 NoSQL 数据存储? 的相关文章

  • 为什么Aries在数据库管理恢复中要先执行redo before undo?

    如果 Aries 算法已经知道在分析阶段之后要撤消哪些事务 为什么它会在撤消之前应用重做 我知道 认为 这与 Lsn 数字和维护一致性有关 因为在磁盘上刷新的数据撤消事务可能与崩溃时撤消事务不同 由于脏数据 页 但我找不到这个问题的任何 正
  • 如何在 MongoDB 中获取连接的客户端

    我正在编写一个使用 mongo 作为数据库的应用程序 我想打印连接到数据库的客户端 例如打印他们的ip 我怎样才能得到这些信息 我尝试使用 db serverStatus connections 但它给了我可以访问我的数据库的计算机数量 您
  • 如何获取sql server 2005中数据库连接的详细列表?

    如何获取sql server 2005中数据库连接的详细列表 使用系统存储过程sp who2
  • 单笔交易与多笔交易[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Oracle SQL 查询日期格式

    我总是对 ORACLE SQL 查询中的日期格式感到困惑 并花几分钟时间去谷歌 有人可以向我解释当数据库表中有不同格式的日期时解决问题的最简单方法吗 例如 我有一个日期列为 ES DATE 保存的数据为 27 APR 12 11 52 48
  • 是否可以在MySQL UDF中的IF条件中声明游标

    我可以在 if 语句中声明游标吗 如果可能的话我怎样才能做到 因为我刚刚做了这样的光标 CREATE FUNCTION fn test ProductID BIGINT 20 RETURNS DECIMAL 10 2 BEGIN DECLA
  • 猫鼬查找并删除

    我正在尝试删除满足查询的多个文档 但是 我需要这些文档的数据将它们存储在单独的集合中以实现撤消功能 我让它工作的唯一方法是使用多个查询 Data find query exec function err data Data remove q
  • 通过网络恢复数据库备份

    如何通过网络使用 SQL Server 2005 恢复数据库备份 我记得以前这样做过 但这样做的方式有些奇怪 您几乎没有选择使用网络文件作为备份源 在与 MS SQL Server 相同的用户下映射网络驱动器 路径 托管文件 使用 xp c
  • 在 Codeigniter 中从其他数据库切换动态数据库

    mi 文件 config php 是 active group default active record TRUE db master 是唯一的数据库 db master hostname localhost db master user
  • jsp/servlet 从数组填充下拉框

    大家好 我正在尝试创建一个表单 允许您为某个主题创建一个实验室 它有一个下拉框 您可以在其中选择与该用户相关的主题 但是 当我去加载页面时 我收到此错误g apache jasper JasperException java lang Nu
  • 如何从连接字符串中提取数据库名称,而不考虑 RDBMS?

    我正在研究一个不知道正在使用的 RDBMS 的课程 当然 应用程序的其余部分都清楚这一点 连接字符串是此类的输入 我需要数据库名称 无论 RDBMS 如何 如何从连接字符串中提取数据库名称 我读到以下问题 如何使用 SqlConnectio
  • 关于 Cassandra 与 MySQL 的一些建议

    几天前我在这里问了一个问题 得到了一些非常好的答案 我正在考虑做一个带有个人资料 个人简介等的facebook风格的网站 并询问我是否应该使用mysql 答案是使用Cassandra 因为好多了 我只是问这是每个人都会建议的 只是我对mys
  • 如何在数据库中找到实际的联系表7结构?

    我想找到我所有表单的实际代码 有很多 例如 cf7 代码如下所示
  • CAP 定理 - 可用性和分区容错性

    当我尝试理解CAP中的 可用性 A 和 分区容错性 P 时 我发现很难理解各种文章的解释 我感觉A和P可以在一起 我知道事实并非如此 这就是为什么我无法理解 简单解释一下 A和P是什么以及它们之间的区别 一致性意味着整个集群中的数据是相同的
  • 在 Mongoose 中保存模型无法保存嵌套组件

    我有以下模型架构 var memberSchema mongoose Schema project type Schema Types ObjectId ref Project first String last String email
  • 如何登录Oracle数据库?

    我对 Oracle 数据库中常用的日志记录方法感兴趣 我们的方法如下 我们为要记录的表创建一个日志表 日志表包含原始表的所有列以及一些特殊字段 包括时间戳 修改类型 插入 更新 删除 修改者的 id 原始表上的触发器为每次插入和删除创建一个
  • 从数据库而不是配置文件中读取 CodeIgniter 配置值

    您可能知道 当您使用 CI 创建新项目时 您必须手动输入基本网址 加密密钥在config config php中 我正在努力克服这个问题 因此正在寻找一种方法read那些价值观而是从数据库中 为客户进行安装并设置时间作为一个整体decrea
  • ER_ACCESS_DENIED_ERROR:用户 ''@'localhost' 的访问被拒绝(使用密码:NO)

    我有这个问题 我已经研究过但无法解决它 我想它与数据库权限有关 但我无法修复它 if error throw error Error ER ACCESS DENIED ERROR Access denied for user localho
  • PHP 5 的 SQLite 编译设置是什么?

    SQLite 3 7 附带了新的预写日志记录 WAL http www sqlite org wal html并且有很多设置可以被配置 http www sqlite org compile html 但是 似乎没有任何方法可以改变任何事情
  • 如何在我的 iOS 项目中添加和执行 .sql 文件?

    我找到了很多关于在 iOS 中使用 SQLite 数据库的教程 但没有找到任何直接引用 sql 文件的内容 谁能告诉我如何将现有的 SQL 数据库链接到我的应用程序 编辑 这是一个 MySQL 转储 我们有一个基于浏览器的抽认卡程序 现在我

随机推荐

  • 写入子进程文件描述符

    我有一个程序 Sample 它从标准输入和非标准文件描述符 3 或 4 获取输入 如下所示 int pfds 2 pipe pfds printf s nEnter input for stdin read 0 pO 5 printf nE
  • Cordova、Phonegap 和 ionic(ios 缺少 1024x1024 图标)

    缺少营销图标 iOS 应用程序必须包含 1024x1024px 营销 PNG 格式的图标 不包含营销图标的应用程序无法 提交应用程序审核或测试版应用程序审核 当你将您的应用程序上传到苹果商店杂志 您在上面的文章中遇到了类似的错误吗 您可以找
  • 将顶点数组和面索引加载到 OpenGL-ES 的最快方法?

    我正在尝试加载已格式化为的 obj 文件 vertexX vertexY vertexZ normalX normalY normalZ and index1 index2 index3 格式为向量和向量数组 然后直接在 Opengl ES
  • 无效的 ELF header Node js 和 couchbase db

    我看过一些关于此问题的帖子 但结果似乎都特定于用户配置 我正在使用 couchbase db 和 Express js 服务器 当我在本地 Windows 运行代码时 它工作正常 数据库本身托管在 Linux 服务器上 当我将代码部署到我们
  • 删除列表中的项目后如何更新列表

    我需要一些时间来解释这一点 所以请继续听我说 我有桌子NewsFeed与自身有 OneToMany 关系 Entity public class NewsFeed ManyToOne optional true fetch FetchTyp
  • 清除后绘制图像时画布出现“形状伪影”

    我的网络应用程序中有一个非常令人费解的画布工件 错误 清除画布后 在画布上绘制另一个图像时 先前清除的圆形会重新出现 但只会出现一次 图像已经初始化一次 如下所示 this image new Image this image src im
  • 迭代时向列表添加元素

    我知道在迭代列表时不允许删除元素 但是是否允许在迭代时向 python 列表添加元素 这是一个例子 for a in myarr if somecond a myarr append newObj 我已经在我的代码中尝试过这个 它似乎工作正
  • UIImage 用另一张图像填充透明部分

    我想在 iOS 中用另一张图像填充图像的透明部分 我尝试过一些东西UIGraphicsContext 但我无法让它工作 因为我以前从未使用过它 这是图像 我尝试过的一些代码 UIImageView v UIImageView alloc i
  • 使用 ModelState 验证表单

    我正在尝试使用 ModelState 验证表单 通常与 asp net mvc 教程中的方式相同 但是我没有自己的数据库或其对象 并且想要针对 Formcollection 进行验证 我不确定 ModelState 是如何工作的 所以也许我
  • 使用 JQuery 淡入字符串字符?

    这是我的代码 由于某种原因 整个字符串一次淡入 而不是每个单独的字符 我的console log显示字符正在被一一执行 为什么整个字符串会同时淡入 for 循环中的语句不应该针对每个字符执行吗
  • CDF、matplotlib - 没有足够的颜色用于绘图、python

    这里需要在一张图中绘制 8 个不同函数的 CDF 问题是它只给出了 7 种不同的颜色 而 8 个颜色又只给出了第一种蓝色 如何调出8种不同的颜色 这是脚本 locerror 2d Scan Around 1 Triangle Around
  • 在 Crypto++ 中将十六进制字符串转换为字节

    我有需要转换为的十六进制字符串const byte 我正在使用 Crypto 进行散列 它需要密钥位于const byte 有什么方法可以将十六进制字符串转换为const byte 使用任何 Crypto 库还是我必须自己提供 有一个Hex
  • 通过 Devise 销毁会话时“无法找到带有 'id'=sign_out 的用户”

    我正在运行 Rails 5 1 2 和 Ruby 2 4 0 我在 ApplicationController 中创建了一个名为require login检查用户是否按顺序登录 当且仅当他们未登录时 他们才会被转发到登录页面 问题是当我注销
  • eclipse无法检测到我的手机来测试运行

    在问我的问题之前 我浏览了一些与我有相同问题的线程 并尝试了所有给定的解决方案 但没有成功 我来自马来西亚 我无法检测到我的设备以在手机上测试我的应用程序 我检查了手机中的 未知来源 和 USB 调试 设置 我正在使用日食 但如果我创建一个
  • Kubernetes 中的 RBAC 错误

    我在工作场所部署了 kubernetes v1 8 3 个月前 我已经创建了管理员角色并查看对命名空间的访问权限 在初始阶段 RBAC 根据授予用户的访问权限进行工作 现在 RBAC 并未发生 每个有权访问集群的人都拥有 clusterad
  • xts 与另一个 xts 对象的比较不起作用

    this structure c 0 012 0 028 0 044 0 033 0 039 0 042 Dim c 3L 2L Dimnames list NULL c one two index structure c 13136436
  • PyGObject 和 Glade 将窗口发送到前面

    我在向前端发送 GTK 窗口时遇到一些问题 我有一个主窗口 window root 带有启动另一个窗口的按钮 window programs 用这个命令 window root hide window programs show 那么 在w
  • SQLAlchemy 尝试两次删除多对多次要关系

    我有一个product具有多对多关系的模型product categories如下所述 class Product Base The SQLAlchemy declarative model class for a Product obje
  • 在 foreach 循环中调用存储过程 - 仅首先执行

    这确实是衍生自我今天早些时候提出的问题 我在数据库中创建了一个存储过程 我想从 PHP 中连续调用它多次 假设这是我的程序 CREATE PROCEDURE PROC 1 IN param1 VARCHAR 255 IN param2 VA
  • 是否有任何符合 ACID 的 NoSQL 数据存储?

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 有没有NoSQL数据存储是ACID符合吗 我将其发布为纯粹为了支持对话的答案 Tim Mahy nawroth and Cra