1. 程式人生 > >關係型資料庫與NoSQL資料庫

關係型資料庫與NoSQL資料庫

一、關係型資料庫

目前我們常用的資料庫一般是關係型資料庫,比如Oracle、MySQL、SQL Server。

1、定義:基於關係模型(二維表)所提出的一種資料庫。

實際場景:學生與系的關係如下

一個學生必定屬於某一個系,因此我們可以把圖中學生與系的關係抽象成三個表

這三個表所構成的就是一種簡單的關係型資料庫。當然在現實應用中我們還會對其進行一定的優化。

2、ER模型(Entity-Relationship)模型:通過增加外來鍵來減少冗餘

比如我們上面所舉的例子:

中間的那個relation表屬於一個冗餘的表,我們可以通過給student表中增加外來鍵來去掉這個表。

二、NoSQL資料庫

1、常見的NoSQL資料庫:HBase資料庫

2、NoSQL資料庫的思想:BigTable(大表),把所有資料儲存到一張表中,採用冗餘來儲存。可以提高效率但是需要犧牲儲存空間。

3、HBase是基於Hadoop的HDFS的

4、HBase的表結構

特點:

#rowkey相當於主鍵

#行鍵可以重複,但是相同的行鍵表示的同一條資料,比如表中的第一、三行。

#沒有列,而是列族。建立命令 create  `student`.'info'.`grade`