-
1 # 方哥聊航空
-
2 # 未來資料科技
隨著大資料的發展,資料庫也越來越受重視了。當前資料庫分為關係型資料庫和非關係 資料庫。下面通俗的解釋區別和優缺點。
概念的解釋關係型資料庫:指採用了關係模型來組織資料的資料庫。這邊關係可以理解為表,所以
系模型指的就是二維表格模型,而一個關係型資料庫就是由二維表及其之間的聯絡所組成的一個數據組織。
非關係型資料庫:指非關係型的,分散式的,且一般不保證遵循ACID原則的資料儲存系統。非關係型資料庫以鍵值對儲存,且結構不固定,每一個元組可以有不一樣的欄位,每個元組可以根據需要增加一些自己的鍵值對,不侷限於固定的結構,可以減少一些時間和空間的開銷。
兩者優缺點分析關係型資料庫的優點:
容易理解,它的邏輯類似常見的表格使用方便,都使用sql語句,sql語句非常的成熟資料一致性高,冗餘低,資料完整性好,便於操作技術成熟,功能強大,支援很多複雜操作缺點:
每次操作都要進行sql語句的解析,消耗較大不能很好的滿足併發需求,特別是海量資料爆發,關係型資料庫讀寫能力會顯得不足關係型資料庫往往每一步都要進行加鎖的操作,也造成了資料庫的負擔資料一致性高,有時也會使資料的儲存不靈活非關係資料庫優點:
使用者可以根據需要去新增自己需要的欄位,為了獲取使用者的不同資訊,不像關係型資料庫中,要對多表進行關聯查詢。僅需要根據id取出相應的value就可以完成查詢。高併發,讀寫能力強,分散式計算低成本,架構的靈活性;沒有複雜的關係。弱化資料結構一致性,使用更加靈活,有良好的可擴充套件性缺點:
沒有標準化;查詢功能有限。操作靈活導致容易出錯和混亂常見的關係型資料庫和非關係型資料庫關係型的常見的有
Oracle,Microsoft SQL Server,MySQL,PostgreSQL,DB2,Microsoft Access, SQLite,Teradata,MariaDB(MySQL的一個分支),SAP
常見的非關係型資料庫
NoSql、Cloudant、MongoDB、redis、HBase
區別的總結首先一般非關係型資料庫是基於CAP模型,而傳統的關係型資料庫是基於ACID模型的
1. 資料儲存結構:
首先關係型資料庫一般都有固定的表結構,並且需要透過DDL語句來修改表結構,不是很容易進行擴充套件,而非關係型資料庫的儲存機制就有很多了,比如基於文件的,K-V鍵值對的,還有基於圖的等,對於資料的格式十分靈活沒有固定的表結構,方便擴充套件,因此如果業務的資料結構並不是固定的或者經常變動比較大的,那麼非關係型資料庫是個好的選擇
2. 可擴充套件性
傳統的關係型資料庫給人一種橫向擴充套件難,不好對資料進行分片等,而一些非關係型資料庫則原生就支援資料的水平擴充套件(比如mongodb的sharding機制),並且這可能也是很多NoSQL的一大賣點,其實象Mysql這種關係型資料庫的水平擴充套件也並不是難,即使NoSQL水平擴充套件容易但對於向跨分片進行joins這種場景都沒有什麼太好的解決辦法,不管是關係型還是非關係型資料庫,解決水平擴充套件或者跨分片Joins這種場景,在應用層和資料庫層中間加一層中介軟體來做資料處理也許是個好的辦法
3. 資料一致性
非關係型資料庫一般強調的是資料最終一致性,而不沒有像ACID一樣強調資料的強一致性,從非關係型資料庫中讀到的有可能還是處於一箇中間態的資料,因此如果你的業務對於資料的一致性要求很高,那麼非關係型資料庫並不一個很好的選擇,非關係型資料庫可能更多的偏向於OLAP場景,而關係型資料庫更多偏向於OLTP場景。
回覆列表
1、資料儲存方式不同。
關係型和非關係型資料庫的主要差異是資料儲存的方式。關係型資料天然就是表格式的,因此儲存在資料表的行和列中。資料表可以彼此關聯協作儲存,也很容易提取資料。
與其相反,非關係型資料不適合儲存在資料表的行和列中,而是大塊組合在一起。非關係型資料通常儲存在資料集中,就像文件、鍵值對或者圖結構。你的資料及其特性是選擇資料儲存和提取方式的首要影響因素。
2、擴充套件方式不同。
SQL和NoSQL資料庫最大的差別可能是在擴充套件方式上,要支援日益增長的需求當然要擴充套件。
要支援更多併發量,SQL資料庫是縱向擴充套件,也就是說提高處理能力,使用速度更快速的計算機,這樣處理相同的資料集就更快了。
因為資料儲存在關係表中,操作的效能瓶頸可能涉及很多個表,這都需要透過提高計算機效能來客服。雖然SQL資料庫有很大擴充套件空間,但最終肯定會達到縱向擴充套件的上限。而NoSQL資料庫是橫向擴充套件的。
而非關係型資料儲存天然就是分散式的,NoSQL資料庫的擴充套件可以透過給資源池新增更多普通的資料庫伺服器(節點)來分擔負載。
3、對事務性的支援不同。
如果資料操作需要高事務性或者複雜資料查詢需要控制執行計劃,那麼傳統的SQL資料庫從效能和穩定性方面考慮是你的最佳選擇。SQL資料庫支援對事務原子性細粒度控制,並且易於回滾事務。