| 特性 | SQL 資料庫 | NoSQL 資料庫 |
|---|---|---|
| 資料庫結構 | 結構化數據,表格形式,嚴格模式 | 非結構化數據,多種數據模型,無模式 |
| 資料庫可擴展性 | 垂直擴展為主,有限的水平擴展 | 水平擴展為主,高可用性和分佈式架構 |
| 優點1 | 強一致性(ACID 原則) | 靈活的數據模型 |
| 優點2 | 豐富的查詢語言(SQL) | 高可擴展性 |
| 優點3 | 成熟的生態系統和工具支持 | 高性能(針對特定應用場景優化) |
SQL: 關聯式資料庫的查詢語言,為第四代的程式語言(4GL),為宣告式的語言,只需要告訴程式「要什麼」,如何實作的細節不需要知道。透過SQL能夠在關聯式資料庫中新增、修改關聯,新增、刪除紀錄資料,還有存取控制。
資料庫結構為關聯,一個二維的資料結構,包含表頭與值組,表頭部分為欄位名稱,值組為實際存入的資料紀錄,欄位順序與值組順序並不重要,值組不重複。
資料庫擴展性較低,關聯式資料庫資料須符合個體完整性限制與參考完整性限制。
優點: 1.查詢語法簡單,不需知道背後如何實作,只需要輸入想要什麼資料與條件即可
2. 資料能夠保持一致正確
3. 標準化: 在不同的關聯式資料庫產品,大致上都是使用相同語言
NoSQL: Not Only SQL,因為關聯式資料庫的在大數據上的存取效率較低(Join的操作效率低),而有了NoSQL,適合用在大數據上。操作上不使用SQL的語言,也不一定是使用關聯式資料庫。
資料庫結構: 使用文件化的方式儲存資料,文件為JSON格式,KEY-VALUE的集合,適合儲存結構化或半結構化的資料,每個文件都有不同的資料結構,
擴展性: 相較於SQL,擴展性較高。
優點: 1. 適合在大數據上使用,存取效率較高
2. 能夠儲存結構化、半結構化、非結構化的資料
3. 新增、更新資料彈性,不需改變原有的資料結構