自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析數(shù)據(jù)庫的進(jìn)化史,看似簡單的輪回

原創(chuàng)
數(shù)據(jù)庫
數(shù)據(jù)庫在變遷,這個變遷你是否注意到了呢?你是否跟著這個變遷的軌跡前進(jìn)呢?有人說數(shù)據(jù)庫的變遷就像是一個輪回,你信嗎?你又是怎么看待這個變遷的呢?

數(shù)據(jù)庫在變遷,這個變遷你是否注意到了呢?你是否跟著這個變遷的軌跡前進(jìn)呢?有人說數(shù)據(jù)庫的變遷就像是一個輪回,你信嗎?你又是怎么看待這個變遷的呢?

一、總體說說數(shù)據(jù)庫

從數(shù)據(jù)管理與應(yīng)用邏輯的角度來講,“File”時期的數(shù)據(jù)管理和應(yīng)用邏輯是混在一起的,數(shù)據(jù)的管理完全由應(yīng)用本身來完成;再來看關(guān)系型數(shù)據(jù)庫的時期,在這個時期數(shù)據(jù)管理和應(yīng)用邏輯實現(xiàn)了分離,應(yīng)用可以不關(guān)心數(shù)據(jù)的管理工作,甚至有一部分邏輯都可以放到數(shù)據(jù)庫中來實現(xiàn);而如果我們再看一下NoSQL時期,數(shù)據(jù)的存儲方式大部分都是Key/Value方式,在這種方式之下,應(yīng)用又要關(guān)心數(shù)據(jù)的管理了,因為很多NoSQL沒有像關(guān)系型數(shù)據(jù)那樣強(qiáng)大的SQL查詢功能。

二、過去的數(shù)據(jù)庫

數(shù)據(jù)庫過去是什么樣子的?讓我們一起來回顧一下吧!在數(shù)據(jù)庫技術(shù)誕生之前,數(shù)據(jù)主要是以File形式存儲的,數(shù)據(jù)的管理也是由具體的應(yīng)用自身來完成的,所以這個時期的數(shù)據(jù)管理和應(yīng)用邏輯是混在一起的。

直到40年前***代數(shù)據(jù)庫技術(shù)的誕生,才實現(xiàn)了數(shù)據(jù)管理與應(yīng)用邏輯的分離,采用層次結(jié)構(gòu)來描述數(shù)據(jù),我們稱之為層次型數(shù)據(jù)庫(IMS)。

至于我們常說RDBMS,其實是第二代數(shù)據(jù)庫技術(shù),上世紀(jì)70年代,來自IBM的E.F Codd博士提出的關(guān)系型理論以及SQL語言的發(fā)明。實現(xiàn)了數(shù)據(jù)建模和數(shù)據(jù)操作處理的標(biāo)準(zhǔn)化,關(guān)系型數(shù)據(jù)庫在其后的20多年的時間取得了長足的發(fā)展,得到了廣泛的應(yīng)用,關(guān)系型數(shù)據(jù)庫似乎已經(jīng)成為了一種宗教式的信仰,數(shù)據(jù)相關(guān)的所有理論問題似乎都已經(jīng)解決。

三、面對新的挑戰(zhàn)

歷史的發(fā)展總是在我們不經(jīng)意間產(chǎn)生轉(zhuǎn)折,所有重大技術(shù)的產(chǎn)生及發(fā)展都有其生存的土壤。在過去的20多年里,IT領(lǐng)域發(fā)生了重大的變化和一系列技術(shù)及理念的創(chuàng)新。數(shù)據(jù)庫所生存的外部土壤隨著Internet以及Web2.0甚至是Web3.0技術(shù)的發(fā)展,對結(jié)構(gòu)化數(shù)據(jù)存儲與管理技術(shù)提出了新的挑戰(zhàn)。

首先,數(shù)據(jù)的復(fù)雜性和靈活性(Complicated &Flexible );

其次,高性能的并發(fā)讀寫(High Performance);

再次,海量數(shù)據(jù)的高效率存儲和訪問(Huge Storage);

***,高可擴(kuò)展性(High Scalability)。

四、它有點兒吃不消

面對以上挑戰(zhàn),關(guān)系數(shù)據(jù)庫的很多優(yōu)秀特性卻往往無用武之地,甚至成為一種負(fù)擔(dān)。

比如,關(guān)系數(shù)據(jù)庫嚴(yán)格的數(shù)據(jù)定義與數(shù)據(jù)的復(fù)雜性和靈活性產(chǎn)生了激烈的對抗,關(guān)系數(shù)據(jù)庫的核心E-R模型本質(zhì)上是一個二維的模型,通過一系列二維關(guān)系的組合來描述復(fù)雜實體對象,每個表所代表的所有實體在建模設(shè)計時沒有差異性,即使只有一個實體擁有某種屬性,也必須為其建立一個字段。因而在很多系統(tǒng)中,我們經(jīng)??梢钥吹揭粡埍碛袛?shù)百個字段,而對于每條記錄,大多數(shù)字段都是空的。

同時,隨著IT系統(tǒng)進(jìn)入社會生活的各個方面,信息不僅日益復(fù)雜,而且其需求內(nèi)容和結(jié)構(gòu)隨著時間的推移也不斷地產(chǎn)生變化.現(xiàn)實世界要求信息技術(shù)具有越來越高的靈活性和適應(yīng)性.關(guān)系型數(shù)據(jù)理論所采用的是一種固定的建模方式,任何關(guān)系和屬性一旦定義,就是固定的,難以隨著需求的變化進(jìn)行靈活的調(diào)整。

在高性能的并發(fā)讀寫方面,關(guān)系型數(shù)據(jù)庫良好的事務(wù)一致性使得它很滿足理高性能的并發(fā)讀寫需求,實際情況是對于大部分的Web應(yīng)用并不要求嚴(yán)格的數(shù)據(jù)庫事務(wù),對讀一致性的要求很低,有些場合對寫一致性要求也不高。因此數(shù)據(jù)庫事務(wù)管理反而成了數(shù)據(jù)庫高負(fù)載下一個沉重的負(fù)擔(dān)。

至于海量數(shù)據(jù)存儲高效存儲和訪問,隨著像Facebook,twitter,F(xiàn)riendfeed這類的SNS網(wǎng)站的誕生與發(fā)展,數(shù)據(jù)的增長是爆發(fā)式的,以Friendfeed為例,一個月就達(dá)到了2.5億條用戶動態(tài),對于關(guān)系數(shù)據(jù)庫來說,在一張2.5億條記錄的表里面進(jìn)行SQL查詢,效率是極其低下乃至不可忍受的。為了解決這個問題Friendfeed采用了schema-less的方式來解決問題,由此可見對于海量數(shù)據(jù)的高效存數(shù)和訪問,如果繼續(xù)以傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的方式來管理數(shù)據(jù)是行不通的。

對于高可擴(kuò)展性這兩個方面在基于web的架構(gòu)當(dāng)中,數(shù)據(jù)庫是最難進(jìn)行橫向擴(kuò)展的,當(dāng)一個應(yīng)用系統(tǒng)的用戶量和訪問量與日俱增的時候,你的數(shù)據(jù)庫卻沒有辦法像web server那樣簡單的通過添加更多的硬件和服務(wù)節(jié)點來擴(kuò)展性能和負(fù)載能力。對于很多需要提供24小時不間斷服務(wù)的網(wǎng)站來說,對數(shù)據(jù)庫系統(tǒng)進(jìn)行升級和擴(kuò)展是非常痛苦的事情,往往需要停機(jī)維護(hù)和數(shù)據(jù)遷移,而對于NoSQL類型的數(shù)據(jù)庫這種擴(kuò)展和遷移的成本卻低很多。

五、它能擔(dān)重任嗎?

對于未來結(jié)構(gòu)化數(shù)據(jù)存儲技術(shù)的發(fā)展來說,NoSQL能否擔(dān)當(dāng)大任現(xiàn)在還不好說,但未來“On Fits All”方式的關(guān)系型數(shù)據(jù)庫技術(shù)會越來越捉襟見肘,針對于大型Web應(yīng)用的定制化的存儲方案會越來越多的被采用,而在這些方案中NoSQL一定有它的用武之地,且讓我們拭目以待。

六、這不是一個簡單的輪回

在了解了大量的數(shù)據(jù)庫發(fā)展演變之后,不知道大家是否發(fā)現(xiàn)一個有趣的規(guī)律,從File→RDBMS,再從RDBMS→NoSQL,就像是轉(zhuǎn)了一個圈,仿若轉(zhuǎn)到了起點,仿佛回到了初始之處。難道退化了嗎?答案,當(dāng)然是No,下面我們請我們的老師——新浪樂居的蔣宗君先生為我們一一道來。

“技術(shù)的發(fā)展會有一個周而復(fù)始,循環(huán)往復(fù)的過程,但絕不會是簡簡單單的畫一個圈,這只是一個應(yīng)用開發(fā)回歸到關(guān)注數(shù)據(jù)存儲與管理的一個過程,我們都知道‘數(shù)據(jù)結(jié)構(gòu)+算法=程序’,未來工程師可能要對數(shù)據(jù)結(jié)構(gòu)投入更多的關(guān)注,我認(rèn)為這是一個‘認(rèn)祖歸宗,回歸本源’的過程,從這個層面來考慮應(yīng)用的開發(fā)和架構(gòu)。我認(rèn)為這不是一種退步,而是一個理性回歸的過程,是一種進(jìn)步,因為我們更接近了應(yīng)用開發(fā)的本質(zhì)。”

當(dāng)記者問道,老師一直在說這是一個輪回,那么,這是一個什么樣子的輪回時,蔣老師為我們解惑曰:“首先,我們要了解結(jié)構(gòu)化數(shù)據(jù)存儲的過程。關(guān)于這個過程,我的理解是經(jīng)歷過幾個時期,***個時期我稱之為數(shù)據(jù)庫技術(shù)的史前時期,我們姑且以“File”時期來描述,第二個時期是數(shù)據(jù)庫技術(shù)尤其是關(guān)系型數(shù)據(jù)庫大行其道時期,而第三個時期我認(rèn)為正在發(fā)展中,現(xiàn)在看來可能還沒有成型,可能還只是一個趨勢,而NoSQL我認(rèn)為可算是站在這個大的趨勢之上的‘弄潮兒’。所以在我看來結(jié)構(gòu)化數(shù)據(jù)的存儲經(jīng)歷了一個從“數(shù)據(jù)管理和應(yīng)用邏輯混在一起”到“數(shù)據(jù)管理與應(yīng)用邏輯分離”再到“應(yīng)用邏輯需要重新關(guān)心數(shù)據(jù)的管理”這一樣一個輪回,這不是一個具體的輪回,而是一個關(guān)于數(shù)據(jù)存儲與管理的理念的輪回,當(dāng)然更不會是一個簡單的輪回。”

它看似簡單,實則蘊含大門道......

它看似上升,又仿佛回到原點......

它看似回歸,實則進(jìn)步上升......

【編輯推薦】

  1. 自己動手豐衣足食,DIY SQL字符串分解函數(shù)Split
  2. Java開源NoSQL數(shù)據(jù)庫大全
  3. 簡單說說SQL Server上的加密術(shù)
  4. 說說SQL Server編年史
責(zé)任編輯:艾婧 來源: 51CTO
相關(guān)推薦

2024-09-21 10:43:15

數(shù)據(jù)技術(shù)信息

2018-03-23 12:20:25

數(shù)據(jù)中心網(wǎng)絡(luò)數(shù)據(jù)

2018-08-22 17:58:01

數(shù)據(jù)平臺數(shù)據(jù)倉庫架構(gòu)

2011-12-21 16:44:00

信息圖手機(jī)進(jìn)化史

2010-10-09 14:46:20

2014-09-01 16:29:34

2018-12-21 11:01:05

存儲大數(shù)據(jù)RAID

2013-06-24 09:18:05

2010-07-27 14:04:52

2011-11-03 15:25:07

Android

2011-09-01 09:34:21

架構(gòu)

2011-11-29 09:54:20

Google進(jìn)化史

2022-03-25 14:01:20

元宇宙虛擬世界進(jìn)化

2023-11-27 09:23:19

2016-02-04 09:17:59

2024-09-25 10:34:21

數(shù)據(jù)飛輪數(shù)據(jù)中臺

2022-03-29 09:35:15

FirefoxUI瀏覽器

2018-08-23 09:33:12

2010-04-07 14:54:20

Unix操作系統(tǒng)

2010-01-21 16:08:26

C++語言
點贊
收藏

51CTO技術(shù)棧公眾號