欢迎!

NoSQL 概念

Miriam Antona

Software engineer

学习内容

  • 第 1 章:NoSQL vs 关系型数据库 / 键值数据库
  • 第 2 章:文档数据库
  • 第 3 章:列族数据库
  • 第 4 章:图数据库
NoSQL 概念

课程简介

  • 概念性课程(无需编码)

Datazy 徽标

NoSQL 概念

NoSQL 与关系型数据库

关系型数据库

  • 使用表/行/列
  • 需预定义模式/更改复杂
  • 多表连接查询较慢
  • 垂直扩展
    • 通过加大单机资源(如 CPU、内存)扩容
    • 成本更高
  • 保证 ACID 事务
  • 通常闭源

NoSQL

  • 最初指非 SQL/非关系型
  • 亦可理解为 Not only SQL
  • 非关系型数据库
  • 不用表/行/列
  • 无模式/易变更
  • 查询更快
  • 水平扩展/更便宜
  • 多数不支持 ACID 事务
  • 开源为主
NoSQL 概念

NoSQL 与关系型数据库

  • 互为补充
  • 可共存
NoSQL 概念

NoSQL 数据库类型

  • 键值数据库
  • 文档数据库
  • 列族数据库
  • 图数据库
NoSQL 概念

键值数据库

  • 最简单的 NoSQL 数据库
  • 通过键 Get/Set 值

两个键值对的示意图,第一个键为 K1,值为 Hello;第二个键为 K2,值为 Goodbye。

NoSQL 概念

键(Key)

  • 示例:
    • DataCampCourse:123:name
    • Client456
    • 123456789
    • [email protected]
    • C09113276F59B26EF3394D90CD31BAA90AA7B4BE
  • 任意二进制序列
  • 唯一
  • 可由算法生成
  • 不宜过长
NoSQL 概念

值(Value)

  • 与键关联
  • 通过键取/设/删值
  • 数字、字符串、JSON、图片等
  • 大小有限制
NoSQL 概念

值(Value)

  • 与键关联
  • 通过键取/设/删值
  • 数字、字符串、JSON、图片等
  • 大小有限制

$$

key value
dataCampCourses:123:name Cleaning data in a SQL Server database
dataCampCourses:123:softLaunchDate 10/01/2020
user:12:address ('123 Sesame Street', 'NY')
user:125:address {"street" : "123 Sesame Street" , "city" : "NY"}
NoSQL 概念

Datazy 示例

用户偏好

key value
user:457:preferences {"language" : "en_US" , "color" : "green" , "timezone" : "GTM-4"}
user:458:preferences {"language" : "es_US" , "color" : "blue" , "timezone" : "GTM+2"}

 

  • 约定(:)
    • user:id:preferences
NoSQL 概念

常见的键值数据库

一些常见键值数据库的标识。

NoSQL 概念

让我们来练习!

NoSQL 概念

Preparing Video For Download...