iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Software Development

NoSQL: Not Only SQL 系列

針對NoSQL的歷史及特性介紹,比較SQL與NoSQL的差異和各自的適用情境,實作不同種類NoSQL的應用程式。
身為後端工程師,我們開發的系統跟資料庫脫離不了關係,我們可以不用像 DBA 一樣那麼了解資料庫,可基本的觀念總要有。自從關聯式資料庫被普遍應用後,多數後端工程師對它的 Schema 設計、SQL 語法和索引都有基本概念,現在,除了關聯式資料庫外,工程師們有了新的資料庫選擇──NoSQL。新崛起的 NoSQL 是 Not Only SQL 的意思,接下來的30天將會探討 NoSQL 究竟是什麼?它有什麼樣的特性?它會取代關聯式資料庫嗎?它又該如何使用?

鐵人鍊成 | 共 30 篇文章 | 14 人訂閱 訂閱系列文 RSS系列文 團隊30 個字以內
DAY 1

[Day1] 資料庫的歷史:關聯式資料庫的出現

現在最常見的關聯式資料庫並不是橫空出世後就廣泛被使用,而是隨著資料管理需求逐漸發展而成,再持續因需求與技術不斷的變化,於是出現了 NoSQL。我們就從資料庫的發...

2022-09-03 ‧ 由 Kei Liao 分享
DAY 2

[Day2] 資料庫的歷史:NoSQL 的出現

儘管關聯式資料庫那麼方便好用,但在資料量持續增長、強調高可用性和可擴展性的領域,關聯式資料庫並無法滿足期望。 當應用服務需要消化的請求數量逐漸成長,我們可以把資...

2022-09-04 ‧ 由 Kei Liao 分享
DAY 3

[Day3] 關聯式資料庫交易的 ACID 特性

在操作關聯式資料庫通常會有多個步驟,當把步驟打包成一包期望資料庫把這包步驟視為一個行為時,這包步驟就稱為交易(Transaction)。在 RDB 中交易具有...

2022-09-05 ‧ 由 Kei Liao 分享
DAY 4

[Day 4] NoSQL Database 的 BASE 特性

操作資料庫時,在資料處理的環節正確使用交易可以節省我們很多心力,但為了達到 ACID 同樣需要付出成本。NoSQL Database 選擇有策略的犧牲部分一致性...

2022-09-06 ‧ 由 Kei Liao 分享
DAY 5

[Day 5] CAP理論:取捨取捨,到底取什麼捨什麼?

前幾天不斷提到取捨、選擇、犧牲、放棄、追求......等行為,到底取什麼捨什麼? 以社群媒體的情境來考慮,用戶會期望可以隨時隨地滑手機看到好友們的新動態。如果暫...

2022-09-07 ‧ 由 Kei Liao 分享
DAY 6

[Day 6] Master-Slave Replication 主從複製

起初,在一台資料庫無法處理所有需求時,於是決定加開一台變成兩台,但兩台主機該如何分工?觀察對資料庫的請求發現請求可以分為兩類:讀取和寫入,那麼一台負責寫而另一台...

2022-09-08 ‧ 由 Kei Liao 分享
DAY 7

[Day 7] Peer-to-peer Replication 點對點複製

Master-Slave 的模式限制在於只有一個 Master 處理寫入請求,那如果每個節點都可以寫入是不是就能克服這個限制?Peer-to-peer 模式裡每...

2022-09-09 ‧ 由 Kei Liao 分享
DAY 8

[Day 8] Partiton & Sharding 資料分片

前面幾篇討論如何透過多台主機突破運算力限制,接著來談談如何切分資料存放在多台主機。資料太多怎麼辦?切!切分方式分成水平和垂直兩種,垂直切分 (vertical...

2022-09-10 ‧ 由 Kei Liao 分享
DAY 9

[Day 9] Range-based Sharding

水平切分的其中一種方式:依資料範圍進行分片。這種方式很直覺,以會員資料為例,將會員依名字首字字母、生日、Id,甚至星座進行分片,再將分片分別存放在不同主機中。因...

2022-09-11 ‧ 由 Kei Liao 分享
DAY 10

[Day 10] Round-Robin Sharding

另一種也很直覺的切方方式是 Round-Robin Sharding,簡單來說就是輪流分配,假設有三台主機,將資料輪流分配到第一、二和三號主機上;若有五台主機,...

2022-09-12 ‧ 由 Kei Liao 分享