V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yeya24
V2EX  ›  问与答

关系型数据库和 nosql 本质上的区别是什么

  •  
  •   yeya24 · 2019-11-14 23:25:14 +08:00 · 3046 次点击
    这是一个创建于 1813 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT,那么有没有场景是只能使用关系型数据库,而不能采用 nosql 的呢?目前想到的就是银行交易的场景,但是 nosql 中也有支持事务的,如果采用 nosql 在交易场景是否可行?

    16 条回复    2019-11-15 10:38:55 +08:00
    opengps
        1
    opengps  
       2019-11-14 23:42:30 +08:00 via Android
    两个极端:
    一个是逻辑能力强,io 低;
    一个是逻辑简单,io 高
    相辅相成更能发挥更大价值
    liprais
        2
    liprais  
       2019-11-14 23:53:56 +08:00 via iPhone
    五个九的概率你选 nosql 是给自己挖坑
    yeya24
        3
    yeya24  
    OP
       2019-11-14 23:56:36 +08:00 via iPhone
    @liprais 只是有疑问罢了,为什么关系型的可用性就更高?非关系型就没那么高?
    mtrec
        4
    mtrec  
       2019-11-15 00:33:24 +08:00 via Android
    设计理念不同 nosql 更多用在海量数据的场景 走 cp 或者 ap 路线 sql 走的 ca
    CoderGeek
        5
    CoderGeek  
       2019-11-15 01:41:26 +08:00
    关系型还是稳定的 nosql 才沉淀多久
    agagega
        6
    agagega  
       2019-11-15 01:59:07 +08:00 via iPhone
    acid 和 join
    yeya24
        7
    yeya24  
    OP
       2019-11-15 03:00:30 +08:00
    @agagega 不认为 acid 和 join 就能区分这两者,nosql 里面也有支持事务的
    yeya24
        8
    yeya24  
    OP
       2019-11-15 03:01:40 +08:00
    @CoderGeek 所以这个意思是,关系型在生态上更广,人们也对它更熟悉所以稳定。如果 nosql 在发展个几十年稳定了,也能够用在任意的场合?
    miaoever
        9
    miaoever  
       2019-11-15 07:14:02 +08:00   ❤️ 1
    本质上是 data schema 的区别,no-sql 一般用 kv 存储而关系型用树结构,这导致在不同类型数据读写性能以及实现复杂度上有差异。至于 ACID, 分布式事务等等都是上层具体实现问题,没有任何区别。
    wy315700
        10
    wy315700  
       2019-11-15 08:29:54 +08:00
    NoSQL = Not Only SQL
    love
        11
    love  
       2019-11-15 09:33:37 +08:00
    我怎么觉得关系型包含 nosql 且更灵活
    optional
        12
    optional  
       2019-11-15 09:48:08 +08:00 via iPhone
    基于列式存储,分布式与多主写入,数据冗余存储,hbase 等还带数据版本号。
    yeya24
        13
    yeya24  
    OP
       2019-11-15 09:48:19 +08:00
    @wy315700 说了和没说一样。。。
    unixeno
        14
    unixeno  
       2019-11-15 10:34:32 +08:00 via Android
    关系型数据库是基于关系模型构建的数据库,这个在数学上是有理论基础的
    非关系型就是不基于关系模型的数据库,常用有键值对数据库
    至于应用的话,应该是不存在只能用某一种数据库,不能用另一种数据库的情况,只有方便和不方便的区别
    数据库的最本质的功能是存储数据,至于上面的关系也好,事务也好其实都能在软件层面上通过代码解决
    选数据库的原因是上面的这些工作都可以交给数据库去处理,省事儿
    CoderGeek
        15
    CoderGeek  
       2019-11-15 10:34:55 +08:00
    @yeya24 还是稳定,经过时间人的验证后才会适合更多人用 , 如果小项目或者不涉及核心数据那都还好
    taogen
        16
    taogen  
       2019-11-15 10:38:55 +08:00 via Android
    本质区别:数据模型不一样。关系型基于 table 来实现数据库,NoSQL 基于 key-value 实现数据库。

    适用场景:看一下各自的优缺点。看一下它们的使用案例。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1136 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 22:56 · PVG 06:56 · LAX 15:56 · JFK 18:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.