深入瞭解 NoSQL 資料庫的特點與應用

更新 發佈閱讀 7 分鐘

其實不是所有的資料都像 Excel 表格一樣,每一列都要一模一樣的欄位?事實上,並不是所有的資料都適合這種規矩的方式!這就是 NoSQL 登場的原因啦! 😎


NoSQL 是什麼?

先想像一下:

  • 如果 SQL 資料庫像是一本教科書,每一頁的排版都很固定,章節、標題、內容全都不能亂來。
  • 那麼 NoSQL 就像一本手繪筆記,你可以隨意畫圖、記重點、畫心智圖樹,甚至有的頁面只寫兩行字,完全不用拘泥於固定的格式!✨

用更正式的說法,NoSQL 是一種不用 SQL 語法的資料庫模型,結構超級靈活。它特別適合那些「資料結構多變、成長快速」的場景,比如:社交媒體、電商網站。


為什麼要用 NoSQL?

簡單來說,有三大理由讓人愛上 NoSQL:

1. 結構超級自由

傳統 SQL 資料庫就像一張正規的表格,必須先設好欄位:名字、年齡、電話......沒設好的話,資料根本塞不進去。

而 NoSQL 呢?完全不受限制,比如商品資料:

  • A 商品有「顏色」和「尺寸」。
  • B 商品只有「價格」和「品牌」。

可以透過 NoSQL 支援結構不固定的資料模型(例如 JSON 文件),允許同一表中每筆資料的欄位不同。

2. 跑得快,資料太多加伺服器就好

有沒有想過 IG 那種每天幾百萬次的「按讚」「留言」怎麼處理的?NoSQL 最擅長的就是水平擴展(Horizontal Scaling):需要更大儲存量?沒關係,多加幾台伺服器就好了!輕鬆撐起超大規模的用戶流量。💪


3. 多變的資料結構,你想怎麼存就怎麼存

舉個例子,NoSQL 支援多種模型:

  • 文件型(Document-based): 使用 JSON 一樣,適用於電商網站(如商品資訊)。
  • 鍵值型(Key-Value Store): 使用唯一鍵(Key)對應一個值(Value),可用在即時金融交易。
  • 圖型資料庫(Graph-based): 儲存節點和邊之間的關係,用於分析和查詢關聯性強的數據。像是 Facebook 好友,你可能認識的朋友。

NoSQL 適合誰?

  • 你的資料結構多變,像社群媒體、電商平台那樣,每一條貼文都不一樣。
  • 你的用戶量爆發式增長,需要快速擴展。
  • 你想處理的數據是非結構化的,例如圖片、影片。

NoSQL 的餐廳評價 APP 範例

圖片截圖自

What is a NoSQL Database? How is Cloud Firestore structured? | Get to know Cloud Firestore #1

有一個 APP 使用 NoSQL 存餐廳所有的評價,首先先把餐廳放在一個資料庫,而評價放在另外一個資料庫。每筆評價會標記餐廳代號。使用者也可以編輯自己的個人資料、大頭照。

vocus|新世代的創作平台

But ! 因為這個不是 SQL 資料庫,沒有 JOIN 的功能,當使用者更新大頭照時就需要把資料「複製」到 Reviews,還有可能不小心漏掉 。

vocus|新世代的創作平台

天啊!怎麼會用那麼笨的方法?用關聯式資料庫就好了啊。但這個好處是,搜尋 reviews 的速度非常快,不需要用 JOIN 再把資料串起來,而且使用者換照片的次數不頻繁,所以當更換時再一個一個複製也無傷大雅。

另外,前面提到 NoSQL 的好處是擴展資料庫非常方便,只要加伺服器就好。

vocus|新世代的創作平台

CAP 理論:魚與熊掌的抉擇 🐟

延續 NoSQL 的討論,很多人會問:「為什麼 NoSQL 不像 SQL 那樣,保證所有東西都『完美』?」這就涉及到 CAP 理論,也被稱為分散式系統的「鐵三角」原則。

CAP 理論告訴我們,在分散式系統中,你只能同時滿足三個特性中的兩個,而無法三者兼得。這就是「魚與熊掌不可兼得」的真實寫照。

圖片來源:Sumit Kar's LinkedIn Post, CAP Theorem

圖片來源:Sumit Kar's LinkedIn Post, CAP Theorem

什麼是 CAP 理論?

CAP 理論的三個特性分別是:

  1. 一致性(Consistency,C)
    • 每次讀取的資料都一致,即使分散式系統中有多個節點,所有節點的數據狀態都相同。
    • 例子: 你在 A 伺服器上更新資料後,立刻去 B 伺服器查詢,看到的結果必須和 A 一樣。
  2. 可用性(Availability,A)
    • 系統總是能夠回應請求,即使部分節點發生故障。
    • 例子: 不管伺服器某一部分是否掛掉,使用者仍然能讀取數據(哪怕是舊的數據)。
  3. 分區容錯性(Partition Tolerance,P)
    • 系統能在節點之間的網路斷開(分區)時繼續運行。
    • 例子: 在伺服器分散在世界各地的情況下,網路可能斷開,但系統仍需保持某種程度的功能運作。

為什麼不能三者兼得?

在分散式系統中,網路的不穩定是不可避免的(P會變基礎要求)CAP 理論的三種取捨:

1. CA(一致性 + 可用性,但無法容忍分區網路斷開)

  • 系統在分區(如網路斷開)時會完全停擺,因為它無法同時保證一致性和可用性。
  • 適用場景: 分區很少發生的情況,例如公司內網。
  • 缺點: 無法應對分散式系統的網路問題。

2. CP(一致性 + 分區容錯性,但犧牲可用性)

  • 在網路分區發生時,系統選擇犧牲「可用性」,即暫停部分操作,關掉一些服務以維持數據一致性。
  • 適用場景: 金融系統、銀行交易等對數據一致性要求極高的場景。
  • 缺點: 在網路問題發生時,用戶可能無法存取系統。

3. AP(可用性 + 分區容錯性,但犧牲一致性)

  • 在網路分區發生時,系統選擇保證「可用性」,允許不同節點的數據短暫不一致(最終一致性)。
  • 適用場景: 社群媒體,對一致性要求較低的場景。
  • 缺點: 用戶在短時間內可能看到舊數據。

簡單比喻

想像你和朋友一起開了三個分店,分別賣同樣的商品,你們面臨三個選擇:

  1. 一致性(C): 所有分店的商品庫存必須完全相同,哪怕網路斷開也不能有差異。
    • 缺點:如果連線中斷,暫停營業。
  2. 可用性(A): 確保每個分店都能正常營業,即使庫存資料不完全正確。
    • 缺點:用戶可能會看到過期或錯誤的庫存。
  3. 分區容錯性(P): 確保即使分店之間的網路不穩定,系統仍能繼續運行。

要選擇哪一項?

沒有絕對,要看業務需求。

  • 如果資料一致性極為重要:
    選擇 CP,例如銀行系統,寧可暫時不能操作,也要保證交易數據不會錯亂。
  • 如果高可用性更重要:
    選擇 AP,例如社交媒體,寧可一部分數據稍有延遲,也要保證服務不中斷。





留言
avatar-img
越南放大鏡 X 下班資工系
63會員
109內容數
雙重身份:越南放大鏡 X 下班資工系 政大東南亞語言學系是我接觸越南語的起點,畢業後找越南外派工作的生活跟資訊時,發現幾乎都是清單式的分享,很難身歷其境。所以我希望「越南放大鏡」可以帶讀者看到更多細節和深入的觀察。 - 下班資工系則是自學資工系的課程內容,記錄實際操作的過程,學習理論的過程。希望可以跟讀者一起成長。
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
看更多
你可能也想看
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
頻繁查詢資料庫造成效能瓶頸?本文探討讀寫分離架構,透過主從資料庫分擔讀寫負載,提升系統效能。並深入分析資料一致性、應用層路由、負載均衡及Redis快取等重要面向,提供解決方案及注意事項。
Thumbnail
頻繁查詢資料庫造成效能瓶頸?本文探討讀寫分離架構,透過主從資料庫分擔讀寫負載,提升系統效能。並深入分析資料一致性、應用層路由、負載均衡及Redis快取等重要面向,提供解決方案及注意事項。
Thumbnail
在現代資訊科技的浪潮下,資料庫管理系統扮演著舉足輕重的角色,決定著企業和開發者如何有效地儲存、查詢和操作數據。MySQL和MongoDB是兩種廣泛使用的資料庫,分別代表了傳統的關聯式資料庫(RDBMS)和新興的非關聯式資料庫(NoSQL)的典型。
Thumbnail
在現代資訊科技的浪潮下,資料庫管理系統扮演著舉足輕重的角色,決定著企業和開發者如何有效地儲存、查詢和操作數據。MySQL和MongoDB是兩種廣泛使用的資料庫,分別代表了傳統的關聯式資料庫(RDBMS)和新興的非關聯式資料庫(NoSQL)的典型。
Thumbnail
在當今的軟體開發與資料管理中,資料庫是不可或缺的一部分。無論是 MySQL、PostgreSQL、Oracle 還是 SQL Server,這些都是常見的關聯式資料庫系統,幫助我們管理結構化資料。今天,我們將深入探討 資料庫正規化 的概念,並了解如何利用它來提升資料庫的效能與可維護性。
Thumbnail
在當今的軟體開發與資料管理中,資料庫是不可或缺的一部分。無論是 MySQL、PostgreSQL、Oracle 還是 SQL Server,這些都是常見的關聯式資料庫系統,幫助我們管理結構化資料。今天,我們將深入探討 資料庫正規化 的概念,並了解如何利用它來提升資料庫的效能與可維護性。
Thumbnail
本文介紹關聯式資料庫與非關聯式資料庫的基本概念,闡述兩者的差異及各自的應用場景。文章進一步分析了 MySQL 的兩種主要儲存引擎:MyISAM與InnoDB,並探討了它們的優缺點及使用情境,幫助讀者瞭解選擇適合的資料庫引擎所需考量的因素。
Thumbnail
本文介紹關聯式資料庫與非關聯式資料庫的基本概念,闡述兩者的差異及各自的應用場景。文章進一步分析了 MySQL 的兩種主要儲存引擎:MyISAM與InnoDB,並探討了它們的優缺點及使用情境,幫助讀者瞭解選擇適合的資料庫引擎所需考量的因素。
Thumbnail
繼上篇文章介紹了 Notion Database 的主要架構、各種 View 的優缺點及使用時機、我個人的架設思路後,這篇文章要帶大家了解構成 Database 的另外一大要素「Property」,以及能讓 Database 更多樣化的「Filter & Sort & Group 」!
Thumbnail
繼上篇文章介紹了 Notion Database 的主要架構、各種 View 的優缺點及使用時機、我個人的架設思路後,這篇文章要帶大家了解構成 Database 的另外一大要素「Property」,以及能讓 Database 更多樣化的「Filter & Sort & Group 」!
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
本文介紹資料庫鎖(DB lock)的基本概念、鎖的類型及其優缺點。通過對資料庫鎖的深入探討,我們可以理解如何在多用戶環境下保護資料的一致性與完整性,並瞭解排他鎖、共享鎖、意向鎖等不同類型鎖的作用。此外,文章還分析了鎖競爭、鎖等待和死鎖等可能的問題,幫助讀者更全面地掌握資料庫鎖的運作機制。
Thumbnail
本文介紹資料庫鎖(DB lock)的基本概念、鎖的類型及其優缺點。通過對資料庫鎖的深入探討,我們可以理解如何在多用戶環境下保護資料的一致性與完整性,並瞭解排他鎖、共享鎖、意向鎖等不同類型鎖的作用。此外,文章還分析了鎖競爭、鎖等待和死鎖等可能的問題,幫助讀者更全面地掌握資料庫鎖的運作機制。
Thumbnail
本文深入探討 NoSQL 資料庫的特性及優勢,並將其與傳統 SQL 資料庫進行比較。NoSQL 資料庫因其結構靈活、擴展性強而適合儲存變化多端的數據,特別是在社交媒體和電商平臺等高需求場景。CAP 理論也被提出,解釋了分散式系統的能力取捨問題,幫助讀者瞭解在不同需求下如何選擇合適的資料庫技術。
Thumbnail
本文深入探討 NoSQL 資料庫的特性及優勢,並將其與傳統 SQL 資料庫進行比較。NoSQL 資料庫因其結構靈活、擴展性強而適合儲存變化多端的數據,特別是在社交媒體和電商平臺等高需求場景。CAP 理論也被提出,解釋了分散式系統的能力取捨問題,幫助讀者瞭解在不同需求下如何選擇合適的資料庫技術。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
資料庫管理系統(Database Management System, DBMS)介紹 資料庫管理系統(DBMS) 是一種軟體工具,用於創建、管理和操作數據庫,幫助用戶高效、安全地存儲和檢索數據。DBMS 是現代企業數據基礎設施的核心技術,支撐著應用程式、分析系統和業務操作。 DBMS 的主要
Thumbnail
資料庫管理系統(Database Management System, DBMS)介紹 資料庫管理系統(DBMS) 是一種軟體工具,用於創建、管理和操作數據庫,幫助用戶高效、安全地存儲和檢索數據。DBMS 是現代企業數據基礎設施的核心技術,支撐著應用程式、分析系統和業務操作。 DBMS 的主要
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News