NoSQL是什么(包括了解Fire Store)?

目标

・了解NoSQL的概述及其与关系数据库的区别
・了解Fire Store的概述
・区分分布式数据库和区块链的差异(附加内容)

基礎知識

RDB(关系数据库)是指在一个数据库中存在多个表,它们连接在一起共同发挥作用的数据库。

关于表格,如果从视觉上,你可以将它想象成Excel可能会更容易理解。
横向的行称为记录,纵向的列称为字段,一个数据称为一个记录。
这些记录(数据)的堆积被称为表格。

在代表例中,包括MySQL和Oracle。
准确来说,不是RDB而是RDBMS(关系数据库管理系统)。
简而言之,是指用于管理RDB的系统。

NoSQL是一种数据库管理系统。

开始讨论本题。
NoSQL的简单定义是除了关系数据库(RDB)外的其他数据库。
它的缩写并不是指不使用SQL语句,而是指不仅仅局限于SQL语句(即Not only)。

虽然我们统称为NoSQL数据库,但实际上有多种类型,我将一一加以解释。

键值对

只保存键和值的极其简单的数据库。

4E689FB5-1401-4A67-9FA4-904F453B23CA.jpeg

列式

CCE81A44-F7F5-495A-9C64-FF4714CDEE54.png

图形型

这是一个用于存储具有关系的数据的数据库。
与关系型数据库(RDB)不同,它的插入数据的方式是在一条记录中显示关系的数据。

将上述的3个数据作为一个数据进行保存。
将节点(由谁),
边(与谁),
属性(什么样的关系)

F69C1440-31A5-4198-88D8-8520B3D889FD.jpeg

文档类型

这是一个用于存储JSON和XML格式数据的数据库。

(例:JSON)可以只提供一个选项来用中文进行本地化改写:

{
 "key" : value,
 "key" : value,
 "key" : value
}
1100181F-8202-4101-B8EF-0BD2EFDD20F9.jpeg

RDB和NoSQL的区别是什么?

在以下方面存在重大差异:
– 数据的结构和引用方式
– 事务处理

数据的结构和引用

RDB具有多个表和关系,并通过模式定义(类型定义)实现复杂结构。可以使用SQL语句在复杂条件下进行查询。

NoSQL没有数据的定义和关系。它具有很高的灵活性,但对于复杂的引用和搜索等情况并不适用。

交易

RDB已经被设计成可以避免数据不一致,并且在发生错误时可以回滚到处理前的状态。
它遵循在数据库设计阶段进行的关系定义。

在将NoSQL用作分布式数据库时,事务会起作用。
其形式是结果一致性。
结果一致性指的是在数据更新后,经过一定时间后能够保证最终的一致性。

結果整合性.png

火灭店是什么?

由于这是我个人想要学习的内容,所以我会特别解释一下Fire Store。

Fire Store是由Google提供的NoSQL数据库。
根据上述内容,它被归类为”文档型”数据库。

作为概念,“集合”和“文档”是用来进行设计的。
类似于目录的集合存在,其中保存文档。
在文档中还可以创建更多集合。
这被称为子集合。

rooms (コレクション)

  first_user (ドキュメント)
    name : "yamada"
    age  : "20"
    first_messages (サブコレクション)
      messages (ドキュメント)
        first_msg : こんにちは

  second_user
    name : "tanaka"
    age  : "21"
    secound_messages
      messages
        first_msg : おはよう

以类似的方式进行保存。
而且,不需要模式定义,可以保存任意类型的数据。

我会留意具体的源代码等内容(我将学习并撰写文章)。

分散数据库和区块链的区别(附加内容)

我在调查分散数据库的时候,发现它与区块链很相似…? 所以我进行了一番调查。

以下是主要的区别:
– 服务器的存在
– 防篡改能力
– 下线风险

在分散式數據庫的情況下,存在一台伺服器在客戶端和數據庫之間,扮演著管理者的角色。
而在區塊鏈中,是以點對點(P2P)的形式,各個節點(又稱為 Peer 或者節點)之間進行交流。
而這些節點就對應著客戶端的角色。

分散数据库可以自由进行CRUD操作,而区块链只能进行CR操作。
在进行更改时,需要添加修改的数据(区块)。
此外,为了保证时序的明确性,并几乎没有篡改的风险,需要将最后一个添加的区块的哈希值记录在新区块中。
因此,区块之间像链条一样连接在一起,这就是“链”一词的由来。

正如前述的那样,由于不存在服务器,因此也不存在宕机的可能性。这也是与分散数据库的区别之处。

首先,由于使用目的不同,是否可以进行比较仍然具有一定的含糊性,但以上就是我所调查和了解的情况。

后记

如果有任何曲解或不正確之處,請在評論中指出,由於只是隨意書寫,希望您能給予回饋。

援引图片

Please note that the content of the provided links cannot be paraphrased without further details. Could you please provide a specific sentence or paragraph from the articles that you would like me to paraphrase?

广告
将在 10 秒后关闭
bannerAds