資料庫 SQL 與 NoSQL 的區別與聯絡
NoSQL也稱為Not only SQL
可理解為,除關係型資料庫以外的其他資料庫系統的統稱。
特點,菲關係型、分散式、分散式、不提供ACID的資料庫設計模式等特徵。
RDBMS
RDBMS即關係資料庫管理系統(Relational Database Management System),是將資料組織為相關的行和列的系統,而管理關係資料庫的計算機軟體就是關係資料庫管理系統。
NoSQL與RDBMS的九點區別聯絡
1 理解ACID與BASE的區別(ACID是關係型資料庫強一致性的四個要求,而BASE是NoSQL資料庫通常對可用性及一致性的弱要求原則,它們的意思分別是,ACID:atomicity, consistency, isolation, durability;BASE:Basically Available, Soft-state, Eventually Consistent。同時有意思的是ACID在英語裡意為酸,BASE意思為鹼)
2 理解持久化與非持久化的區別。這麼說是因為有的NoSQL系統是純記憶體儲存的。
3 你必須意識到傳統有關係型資料庫與NoSQL系統在資料結構上的本質區別。傳統關係型資料庫通常是基於行的表格型儲存,而NoSQL系統包括了列式儲存(Cassandra)、key/value儲存(Memcached)、文件型儲存(CouchDB)以及圖結構儲存(Neo4j)
4與傳統關係資料庫有統一的SQL語言操作介面不同,NoSQL系統通常有自己特有的API介面。
5 在架構上,你必須搞清楚,NoSQL系統是被設計用於成百上千臺機器的叢集中的,而非共享型資料庫系統的架構。
6在NoSQL系統中,可能你得習慣一下不知道你的資料具體存在何處的情況。
7 在NoSQL系統中,你最好習慣它的弱一致性。”eventually consistent”(最終一致性)正是BASE原則中的重要一項。比如在Twitter,你在Followers列表中經常會感受到資料的延遲。
8 在NoSQL系統中,你要理解,很多時候資料並不總是可用的。
9 你得理解,有的方案是擁有分割槽容忍性的,有的方案不一定有。