昨天看完SQL,今天就來講NoSQL~
因為現代的應用程式需要處理不同來源的資料,而且像是社群貼文、感測器資料、即時聊天紀錄等等,很容易就會資料量爆炸、結構變化,SQL的固定結構就會變得很難操作,就會導致冗餘、資料重複造成效能等問題
因此NoSQL就出現了,他讓資料庫更彈性,更能輕鬆的擴展
NoSQL(Not Only SQL,不只 SQL)就是一系列 非關聯式資料庫,它的特點是:
所以你可以想像:
NoSQL有很多種描述資料的方式
鍵值型 (Key-Value Store)
{key: value}
文件型 (Document-based)
一個學生的資料
{
"id": 1,
"name": "Joanne",
"courses": ["數學", "英文"],
"address": {
"city": "台北",
"dist": "大安"
}
}
另一個學生可能就沒有 address
欄位,這在文件型資料庫是合法的
圖形資料庫 (Graph Database)
資料以**節點 (Node)和關係 (Edge)**來表示,本質上是一張圖 (Graph)
底層用圖論演算法(像是 BFS、DFS、最短路徑)去查詢
例如 Neo4j
舉例:
節點 (Node):人、商品、文章
關係 (Edge):認識、購買、留言
Amy —[朋友]→ Bob
Amy —[購買]→ iPhone
Bob —[留言]→ iPhone
用途:適合強調關係的場景
https://aws.amazon.com/tw/nosql/
https://www.ithome.com.tw/news/92507