歡迎!

NoSQL 概念

Miriam Antona

Software engineer

課程主題

  • 第 1 章:NoSQL vs 關聯式資料庫/鍵值資料庫
  • 第 2 章:文件型資料庫
  • 第 3 章:欄族資料庫
  • 第 4 章:圖形資料庫
NoSQL 概念

關於本課

  • 觀念式課程(不需寫程式)

Datazy 標誌

NoSQL 概念

NoSQL 與關聯式資料庫

關聯式資料庫

  • 使用資料表/列/欄
  • 需要預先定義綱要,變更困難
  • 多表 JOIN 查詢較慢
  • 垂直擴充
    • 透過增加硬體效能擴充(例如 CPU、RAM)
    • 成本較高
  • 保證 ACID 交易
  • 多半為封閉原始碼

NoSQL

  • 原意為 non-SQL/非關聯式
  • 也可解讀為 Not only SQL
  • 非關聯式資料庫
  • 不用資料表/列/欄
  • 無綱要,易於變更
  • 查詢速度快
  • 水平擴充,成本較低
  • 多數不支援 ACID 交易
  • 開放原始碼
NoSQL 概念

NoSQL 與關聯式資料庫

  • 彼此互補
  • 可共存
NoSQL 概念

NoSQL 類型

  • 鍵值資料庫
  • 文件型資料庫
  • 欄族資料庫
  • 圖形資料庫
NoSQL 概念

鍵值資料庫

  • 最簡單的 NoSQL 類型
  • 以鍵存取與設定值

兩組鍵值配對的視覺示例,第一組的鍵為 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...