關係型資料庫和非關係型資料庫舉例
1.關係型資料庫通過外來鍵關聯來建立表與表之間的關係,
2.非關係型資料庫通常指資料以物件的形式儲存在資料庫中,而物件之間的關係通過每個物件自身的屬性來決定
比如 有一個學生的資料:
姓名:張三,性別:男,學號:12345,班級:二年級一班
還有一個班級的資料:
班級:二年級一班,班主任:李四
關係型資料庫中,我們建立學生表和班級表來存這兩條資料,並且學生表中的班級儲存的是班級表中的主鍵。
非關係型資料庫中,我們建立兩個物件,一個是學生物件,一個是班級物件,用java來表示就是:
|
通過設定Student類的classid等於Grade類的id來建立這種關係;
非關係型資料庫中,我們查詢一條資料,結果出來一個數組,關係型資料庫中,查詢一條資料結果是一個物件。
RDBMS(關係資料庫) 中的資料儲存在被稱為表(tables)的資料庫物件中。
表是相關的資料項的集合,它由列和行組成。
RDBMS(關係資料庫)的特點:
1.資料以表格的形式出現
2.每行為各種記錄名稱
3.每列為記錄名稱所對應的資料域
4.許多的行和列組成一張表單
5.若干的表單組成database
資料庫 型別 |
特性 | 優點 | 缺點 |
關係型資料庫 SQLite、Oracle、mysql |
1、關係型資料庫,是指採用了關係模型來組織 資料的資料庫; 2、關係型資料庫的最大特點就是事務的一致性; 3、簡單來說,關係模型指的就是二維表格模型, 而一個關係型資料庫就是由二維表及其之間的聯絡所組成的一個數據組織。 | 1、容易理解:二維表結構是非常貼近邏輯世界一個概念,關係模型相對網狀、層次等其他模型來說更容易理解; 2、使用方便:通用的SQL語言使得操作關係型資料庫非常方便; 3、易於維護:豐富的完整性(實體完整性、參照完整性和使用者定義的完整性)大大減低了資料冗餘和資料不一致的概率; 4、支援SQL,可用於複雜的查詢。 |
1、為了維護一致性所付出的巨大代價就是其讀寫效能比較差; 2、固定的表結構; 3、高併發讀寫需求; 4、海量資料的高效率讀寫; |
非關係型資料庫 MongoDb、redis、HBase |
1、使用鍵值對儲存資料; 2、分散式; 3、一般不支援ACID特性; 4、非關係型資料庫嚴格上不是一種資料庫,應該是一種資料結構化儲存方法的集合。 |
1、無需經過sql層的解析,讀寫效能很高; 2、基於鍵值對,資料沒有耦合性,容易擴充套件; 3、儲存資料的格式:nosql的儲存格式是key,value形式、文件形式、圖片形式等等,文件形式、圖片形式等等,而關係型資料庫則只支援基礎型別。 |
1、不提供sql支援,學習和使用成本較高; 2、無事務處理,附加功能bi和報表等支援也不好; |
注1:資料庫事務必須具備ACID特性,ACID是Atomic原子性,Consistency一致性,Isolation隔離性,Durability永續性。
注2:資料的持久儲存,尤其是海量資料的持久儲存,還是需要一種關係資料庫。
關係型資料庫:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
非關係型資料庫:
NoSql、Cloudant、MongoDb、redis、HBase
兩種資料庫之間的區別:
關係型資料庫
關係型資料庫的特性
1、關係型資料庫,是指採用了關係模型來組織資料的資料庫;
2、關係型資料庫的最大特點就是事務的一致性;
3、簡單來說,關係模型指的就是二維表格模型,而一個關係型資料庫就是由二維表及其之間的聯絡所組成的一個數據組織。
關係型資料庫的優點
1、容易理解:二維表結構是非常貼近邏輯世界一個概念,關係模型相對網狀、層次等其他模型來說更容易理解;
2、使用方便:通用的SQL語言使得操作關係型資料庫非常方便;
3、易於維護:豐富的完整性(實體完整性、參照完整性和使用者定義的完整性)大大減低了資料冗餘和資料不一致的概率;
4、支援SQL,可用於複雜的查詢。
關係型資料庫的缺點
1、為了維護一致性所付出的巨大代價就是其讀寫效能比較差;
2、固定的表結構;
3、高併發讀寫需求;
4、海量資料的高效率讀寫;
非關係型資料庫
非關係型資料庫的特性
1、使用鍵值對儲存資料;
2、分散式;
3、一般不支援ACID特性;
4、非關係型資料庫嚴格上不是一種資料庫,應該是一種資料結構化儲存方法的集合。
非關係型資料庫的優點
1、無需經過sql層的解析,讀寫效能很高;
2、基於鍵值對,資料沒有耦合性,容易擴充套件;
3、儲存資料的格式:nosql的儲存格式是key,value形式、文件形式、圖片形式等等,文件形式、圖片形式等等,而關係型資料庫則只支援基礎型別。
非關係型資料庫的缺點
1、不提供sql支援,學習和使用成本較高;
2、無事務處理,附加功能bi和報表等支援也不好;