資料的關係型和非關係型
阿新 • • 發佈:2021-12-08
一.關係型資料庫
概念
關係型資料庫是指採用了關係模型來組織資料的資料庫。簡單來說,關係模式就是二維表格模型。
主要代表:SQL Server,Oracle,Mysql
例子:
如下表中,可以根據條件love=畫畫,找出喜歡畫畫的人。或者找出年齡大於10歲的人。因為他們之間是有關係的。
name | age | love |
---|---|---|
A | 11 | 花朵 |
B | 12 | 畫畫 |
優點
- 容易理解,二維表的結構非常貼近現實世界,二維表格,容易理解。
- 使用方便,通用的sql語句使得操作關係型資料庫非常方便。
- 易於維護,資料庫的ACID屬性,大大降低了資料冗餘和資料不一致的概率。
缺點
海量資料的讀寫效率
對於網站的併發量高,往往達到每秒上萬次的請求,對於傳統關係型資料庫來說,硬碟I/o是一個很大的挑戰。
高擴充套件性和可用性
在基於web的結構中,資料庫是最難以橫向拓展的,當一個應用系統的使用者量和訪問量與日俱增的時候,資料庫沒有辦法像web Server那樣簡單的通過新增更多的硬體和服務節點來拓展效能和負載能力。
二.非關係型資料庫
概念
NoSQL非關係型資料庫,主要指那些非關係型的、分散式的,且一般不保證ACID的資料儲存系統,主要代表MongoDB,Redis、CouchDB。已key-value來儲存值。
例子:
以下是儲存5月份,網站點選量的資料。查詢的時候,查日期,返回點選量次數。邏輯非常簡單,通常用於儲存session資訊,session的id對應服務端儲存的相關資訊。
key | value |
---|---|
5.6 | 10400 |
5.7 | 15034 |
5.8 | 14553 |
優點
- 資料放在記憶體,讀取速度超快
- 擴充套件方便,因為資料間沒有關係,擴充套件輕鬆
缺點
- 不提供對SQL的支援:如果不支援SQL這樣的工業標準,將會對使用者產生一定的學習和應用遷移成本
- 支援的特性不夠豐富:現有產品所提供的功能都比較有限,大多數NoSQL資料庫都不支援事務,也不像MS SQL Server和Oracle那樣能提供各種附加功能,比如BI和報表等