3.Nodejs入門-----數據庫

一.傳統數據庫技術回顧

數據庫就是存儲數據的,那麼存儲數據就用txt就行了啊,爲什麼要有數據庫?

 

理由之1: 數據庫有行、列的概念,數據有關係,數據不是散的。

老牌數據庫,比如MySQL、SQL Server、Oracle、Access。這些數據庫,我們管他們叫做結構型數據庫。爲什麼?因爲每個表中,都有明確的字段,每行記錄,都有這些字段。不能有的行有,有的行沒有。

理由二:數據庫能夠提供非常方便的接口,讓增刪改查操作變得簡單

我們的老牌數據庫,都無一例外的使用SQL語言,管理數據庫。

SQL就是structure query language。

比如,查詢所有女生: SELECT * FROM step1 WHERE xingbie = '女';

再比如,查詢所有女生,並且年齡20~24之間,且在北京:

1       SELECT * FROM step1 WHERE xingbie = '女' AND nianling < 24 AND nianling >= 20 AND xianzaisuozaidi = '北京';

 

理由之三:數據庫不能自己玩兒,要給向PHP、.net、jsp等語言提供接口。

用php這些語言,能夠向數據庫之中增刪改查。

 


老牌數據庫,都是結構型數據庫,現在出了什麼問題?

比如,我們現在想往一個已經有1000條數據的數據庫中增加一個字段“高中信息”。

之前已經存在的數據,實際上不需要增加這個字段。因爲這些用戶已經填寫完畢表單了,不需要再手機高中信息了。我們的意圖就是在今後註冊的用戶,需要填寫高中信息。但是,我們剛纔說了,所謂的字段,是表的一個結構。所有的行都必須擁有,不能有的行有這個字段,有的行沒有這個字段。

可想而知,大數據時代,數據庫中有100萬條數據都算少的。我們如果要動字段,時間太長。

所以,字段這個東西,太不靈活。

 

數據不靈活。一個字段,需要是同樣類型的數據。不能一行記錄是文本,一行記錄是數字。

 

非結構型數據庫NoSQL應運而生。

NoSQL是個怪胎,無法挑戰老牌數據庫,但是在大數據時代有自己的意義。

 

二.NoSQL


非結構型數據庫。沒有行、列的概念。用JSON來存儲數據。

集合就相當於“表”,文檔就相當於“行”。

 

文檔就是JSON,上下文語境中,也是JavaScript範疇,所以我們的數據庫也是JS範疇的東西,JS全棧。

因此,我們總結NoSQL數據庫在以下的這幾種情況下比較適用:1、數據模型比較簡單;2、需要靈活性更強的IT系統;3、對數據庫性能要求較高;4、不需要高度的數據一致性;5、對於給定key,比較容易映射覆雜值的環境。


我們看,有些系統,特別需要篩選。比如,篩選出所有女生大於20歲的。那麼SQL型數據庫,非常擅長!因爲它有行、列的概念。

但是,有些系統,真的不需要進行那麼多的篩選,比如站內信。站內信只需要存儲就好了。不需要篩選。那麼NoSQL的。

 

NoSQL不是銀彈,沒有資格挑戰老牌數據庫,還是特定情況下,是適合的。

 


發佈了24 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章