NoSQL -- 1.NoSQL与TRDB的区别

2023-11-16

TRDB

TRDB:“Traditional Relational Database”,即“传统关系型数据库”。
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。
TRDB技术设计最初基于单机集中管理数据概念而进行的,所以受单机物理性能的限制。TRDB技术是建立在数据库管理系统(DBMS)上的.
TRDB无法解决的问题:

  • 传统大型关系型数据库无法很好的解决问题
  • 在互联网上的应用
  • 面对的是大量数据存储和使用问题
  • 大数据

代表Oracle、SQL Server、MySQL。

TRDB遵循的原则
  • 1、A (Atomicity) 原子性
    原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。

  • 2、C (Consistency) 一致性
    一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
    例如现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务失败。

  • 3、I (Isolation) 独立性
    所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。

  • 4、D (Durability) 持久性
    持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

TRDB优缺点

1.优点:

  • 非常完备的关系理论基础

  • 具有事务性机制的之处

  • 高效的查询优化机制

2.缺点:

  • 无法满足海量数据的管理需求

  • 无法满足高并发的需求

  • 无法满足高可扩展性和高可用性的需求

NoSQL

NoSQL:“Not only SQL” ,即“不仅仅是SQL”
根据前面我们所提到的传统关系型数据库无法很好的解决大数据问题,因此引入了NoSQL。NoSQL用于超大规模数据的存储.
NoSQL的产生:

  • 解决TRDB无法解决的数据库存储和访问问题。
  • 解决大数据应用问题
  • 解决互联网上的应用问题
NoSQL遵循的原则

BASE是NoSQL数据库通常对可用性及一致性的弱要求原则:

  • 1.BA(Basically Availble) 基本可用
    NoSQL允许分布系统中某些部分出现故障,而系统中其他的部分正常工作。
  • 2.S(Soft-state) 软状态。
    “Soft state” 可以理解为"无连接"的,允许NoSQL在数据处理过程种,存在数据状态暂时不一致的情况,但是经过纠错,最后会一致。
  • 3.E(Eventual Consistency) 最终一致性
    NoSQL的软状态允许数据处理过程状态的暂时不一致,但是最终处理的结果将是一直的,也是 ACID 的最终目的。
NoSQL的优缺点

1.优点:

  • 高可扩展性
  • 分布式计算
  • 低成本
  • 架构的灵活性,半结构化数据
  • 没有复杂的关系

2.缺点:

  • 没有标准化
  • 有限的查询功能(到目前为止)
  • 最终一致是不直观的程序
NoSQL的存储类型
类型 部分代表 特点
键值存储 Memcached/Redis 基于内存数据处理,相对速度最快;可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收,Redis具有大数据管理能力,事物能力处理弱。
文档存储 MongoDB/Couchbase MongoDB基于硬盘数据处理,速度比SQL数据库提高几十倍,Couchbase基于内存处理;两者都有很强的横向扩展能力。具有大数据处理能力,无事务处理能力。
列族存储 Cassandra、Hbase 基于硬盘数据处理,由于主要面向大数据处理,所以写速度明显快于读速度,整体读写速度慢于前面两个存储类型,具有较大的数据查询统计功能,无事务处理能力。
图存储 Neo4j、OrientDB 基于硬盘的数据处理,侧重图数据查询计算。具有ACID事物能力,但使用设计不方便。
其他类型 MarkLogic等

这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

TRDB与NoSQL的区别
  • 1.技术上:
TRDB NoSQL
使用强存储模式技术 使用弱存储模式技术
采用SQL技术标准定义和操作数据库 没有采用SQL技术标准定义和操作数据库
采用强事务保证可用性及安全性 采用弱事务保证数据可用性
主要采用单机集中式处理CP 主要采用多机分布式处理DP
  • 2.事务上:
    上面在技术上其实已经提到了,但还是单独的拿出来说说,TRDB遵循ACID原则,不仅要遵循最终一直性,还要中途不能变。NoSQL遵循BASE原则,只需要保证最终一致性,NoSQL在数据处理过程中,允许状态暂时不一致。
  • 3.处理类型上:
    NoSQL在处理网页、网站访问量、大量的视频存储等,这些数据允许插入出错,给用户带来的损失往往是能接受的。而TRDB所要面对的数据,如财务数据,如果少记录一笔甚至记错一个数字,就可能损失上百万,这都是承受不起的损失。

选择使用ACID还是BASE,或者是说选择TRDB还是NoSQL,取决于他们的优缺点。灵活的运用他们的优势,避开劣势。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NoSQL -- 1.NoSQL与TRDB的区别 的相关文章

  • 【对称字符串】

    对称美学 对称就是最大的美学 现有一道关于对称字符串的美学 已知 第 1 个字符串 R 第 2 个字符串 BR 第 3 个字符串 RBBR 第 4 个字符串 BRRBRBBR 第 5 个字符串 RBBRBRRBBRRBRBBR 相信你已经发
  • gin框架32--路由组

    gin框架32 路由组 介绍 案例 说明 介绍 本文主要介绍gin框架中的 路由组 以及相关案例和测试结果 案例 源码 package main import github com gin gonic gin func loginEndpo

随机推荐

  • OpenSSL中文手册之EVP库详解

    1EVP 概览 1 1 EVP 简介 Openssl EVP high level cryptographic functions 1 提供了丰富的密码学中的各种函数 Openssl 中实现了各种对称算法 摘要算法以及签名 验签算法 EVP
  • Linux安装Phabricator

    背景 公司管理需要 为开发团队寻找一款代码审查工具 最终选择了Phabricator ubuntu14 04 LTS 安装 使用官网上提供的install sh即可 参考链接 https secure phabricator com div
  • Java单元测试用例的编写

    作者 阿里技术 链接 https www zhihu com question 449470796 answer 1781246366 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 编写Java单元测试用例
  • javascript if else优化指南

    不管是平时在学习js中还是在项目书中写js代码 都避免不了一个问题就是有时候要做大量的分支判断 很多人的第一反应就是使用if else 无可厚非 if else早平时做分支判断的时候是非常好用的 但是代码中嵌套的if else结构往往导致代
  • python函数与模块实验报告_python学习笔记及作业(函数,内置模块,模块与包)...

    1 作业 爬取内容牛超的poping 视频并存入本地 importrequests res requests get http f us sinaimg cn 001lksTilx07uuNOl74Q01041200dBV50E010 mp
  • python作业代码敲写

    1 判断以下哪些不能作为标识符 B D A a B a C 12 D a 12 E false F False 2 输入数 判断这个数是否是质数 要求使用函数 for循环 3 求50 150之间的质数是那些 4 打印输出标准水仙花数 输出这
  • 小白看React Native

    欢迎大家前往云 社区 获取更多腾讯海量技术实践干货哦 作者 MelonTeam 1 What is React Native 众所周知 产品的需求总是想快速的迭代 但是由于应用分发市场的审核机制 主要是iOS审核 使一些快速迭代的需求只能选
  • 最火视频直播应用Meerkat: 简单到令人发指 却成功了

    最火视频直播应用Meerkat 简单到令人发指 却成功了 分析师 王鑫 2015 03 24 分享 1 作为一款手机视频直播应用 Meerkat的产品设计足够简单 这种简单不仅体现在操作交互层面 还蕴含于产品的核心逻辑中 类似阅后即焚的直播
  • Markdown基础语法

    Markdown基础语法 一 Markdown简介 Markdown 是一种轻量级标记语言 它允许人们使用易读易写的纯文本格式编写文档 Markdown 语言在 2004 由约翰 格鲁伯 英语 John Gruber 创建 Markdown
  • MATLAB中conv2的详细用法

    转自 https blog csdn net jinv5 article details 52874880 conv2函数 1 用法 C conv2 A B shape 卷积滤波 复制代码 A 输入图像 B 卷积核 假设输入图像A大小为ma
  • 安装 VMware 出现 failed to install the hcmon driver

    安装 VMware 出现 failed to install the hcmon driver 1 先删除所有带vmware注册表 删除后重启电脑 在装一遍 无还是无效 2 在c盘搜索hcmon sys文件 有就删除 删除之后重启电脑 再重
  • 响应式人力资源招聘企业网站源码

    介绍 响应式人力资源招聘企业网站源码 网盘下载地址 http kekewangLuo cc 6lqETgRAZ6a0 图片
  • mysql 表分区 插入数据,分区表导入数据库

    如果是10g及以上版本 可以使用参数REMAP TABLESPACE 来映射表空间 1 在ascii数据库中建立3个tablespaces tbs1 tbs2 tbs3 SQL gt create tablespace tbs1 dataf
  • 百分位数

    来源
  • dedecmscan漏洞扫描

    介绍 推荐一款 大佬编写 实用工具 只做推荐 请勿违法 如有侵权 请联系我删除 dedescan是一款可以扫描所有已公开的dedecms漏洞的扫描器 github地址 https github com lengjibo dedecmscan
  • C++中智能指针的设计和使用

    转载请标明出处 原文地址 http blog csdn net hackbuteer1 article details 7561235 智能指针 smart pointer 是存储指向动态分配 堆 对象指针的类 用于生存期控制 能够确保自动
  • libtorch 1.12.1 cuda11.3 torch1.12.1 visual stdio2019环境搭建

    conda 的环境 name torch1 12 1 channels https mirrors tuna tsinghua edu cn anaconda cloud pytorch https mirrors tuna tsinghu
  • 如何关闭rabbitmq

    rabbitmqctl stop 方式2 先用ps ef grep rabbitmq 查询出进程号 然后用kill 9 进程号 杀死进程 RabbitMQ常用命令 说明 命令 启用Web控制台 rabbitmq plugins enable
  • 路由器ipv6怎么设置才能上网_设置路由器时,如何正确选择上网方式?

    设置路由器时 常见有自动获得IP地址 宽带拨号上网 固定IP地址三种上网方式 选择任意一个 均可进入下一步 但上网方式选择错误 即使设置步骤完成 也不能上网 那么设置路由器时 如何正确选择上网方式呢 取决于当前宽带线路的上网方式 本文以Wi
  • NoSQL -- 1.NoSQL与TRDB的区别

    TRDB TRDB Traditional Relational Database 即 传统关系型数据库 关系型数据库 是指采用了关系模型来组织数据的数据库 其以行和列的形式存储数据 以便于用户理解 关系型数据库这一系列的行和列被称为表 一