數(shù)據(jù)庫技術(shù)是20世紀60年代開始興起的一門信息管理自動化的新興學科,是計算機科學中的一個重要分支,隨著計算機應用的不斷發(fā)展,數(shù)據(jù)的爆炸式增長,數(shù)據(jù)處理也越來越占主導地位,而數(shù)據(jù)庫技術(shù)的應用也變得愈加廣泛。從概念上來說,數(shù)據(jù)庫是指以一定的方式存儲到一起,能為多個用戶共享,具有更可能小的冗余,與應用程序彼此獨立的數(shù)據(jù)集合。從功能上來說,就是數(shù)據(jù)管理軟件。

數(shù)據(jù)庫發(fā)展史

數(shù)據(jù)庫從理論概念誕生到現(xiàn)在,發(fā)展時間也已經(jīng)超過大半個世紀,其歷史也經(jīng)歷了三個階段,人工管理,文件系統(tǒng),數(shù)據(jù)庫系統(tǒng)。

人工管理階段 人工管理階段受限于當時的硬件,那個時期的計算機內(nèi)存空間少,計算速度低,外部存儲只有磁帶,卡片和紙帶,沒有磁盤這樣能快速存取的設備,加之沒有計算機操作系統(tǒng),數(shù)據(jù)庫管理軟件也不具備,數(shù)據(jù)處理只能以批處理的方式進行。其主要有以下特點:

數(shù)據(jù)不保存:內(nèi)外存儲有限,數(shù)據(jù)量較少,僅應用于科學計算。

人工管理:沒有相應的軟件系統(tǒng)負責數(shù)據(jù)的管理工作,應用程序中涉及的數(shù)據(jù)需要由程序員自己管理,包括數(shù)據(jù)邏輯結(jié)構(gòu)的代碼,數(shù)據(jù)物理結(jié)構(gòu)的代碼。數(shù)據(jù)存儲結(jié)構(gòu)的代碼,數(shù)據(jù)存取和輸入的代碼。

不能共享:數(shù)據(jù)和應用程序是嚴格綁定的,一組數(shù)據(jù)只能對應一組程序,有大量的冗余數(shù)據(jù)存在。

不具備獨立性:由于數(shù)據(jù)的相應結(jié)構(gòu)(邏輯,物理)都是在應用程序中定義,如果需要改變數(shù)據(jù)的結(jié)構(gòu)時,就要對應用程序作相應的更改,也就是說,數(shù)據(jù)和應用程序之間不具備獨立性,耦合性極高,在使用層面上來看,也很不方便。

文件系統(tǒng)階段 文件系統(tǒng)階段是指從20世紀50年代后期到60年代中期,這個時期的計算機應用范圍已經(jīng)不在局限于科學計算,還被大量應用于信息管理,計算機硬件也有了進一步的發(fā)展,出現(xiàn)了磁盤,磁鼓等能直接存取的外存儲設備。在軟件層面上,高級語言和操作系統(tǒng)也已經(jīng)有了完善的產(chǎn)品。操作系統(tǒng)中也有專門負責管理數(shù)據(jù)的文件系統(tǒng)功能,數(shù)據(jù)的處理方式也從批處理,衍生到聯(lián)機實時處理。其主要有以下特點:

數(shù)據(jù)長期保存:計算機需要重復使用數(shù)據(jù),把數(shù)據(jù)以文件的形式保存在磁盤等外存儲器上面,為數(shù)據(jù)的長期保存和使用提供了保證

文件的多樣化和結(jié)構(gòu)化:磁盤的出現(xiàn),順序文件,索引文件,隨機文件等文件組織形式也相應誕生,數(shù)據(jù)庫的數(shù)據(jù)是以數(shù)據(jù)文件形式保存的,每一條數(shù)據(jù)(記錄)由一些字段按照特定的結(jié)構(gòu)組成的,每條數(shù)據(jù)的長度又是相等的,故數(shù)據(jù)文件又是記錄的集合,文件系統(tǒng)實現(xiàn)了記錄內(nèi)部的結(jié)構(gòu)性。

管理性:文件管理系統(tǒng)是應用程序和數(shù)據(jù)文件的專門接口,應用程序?qū)?shù)據(jù)的存取是由文件管理系統(tǒng)自動完成的,數(shù)據(jù)文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)的轉(zhuǎn)換是由文件系統(tǒng)自動完成的,不需要應用程序來參與,因此數(shù)據(jù)和應用程序具備了一定的獨立性。

數(shù)據(jù)庫系統(tǒng)階段 數(shù)據(jù)庫系統(tǒng)階段是指從20世紀60年代后期到現(xiàn)在,正式進入數(shù)據(jù)庫階段有幾個標志事件,1968年美國IBM推出層次模型的IMS(Information Management System)系統(tǒng),1969年美國CODASYL組織頒布了DBTG報告,提出了網(wǎng)狀模型 ,1970年美國IBM的E,F,Codd連續(xù)發(fā)表論文,提出關(guān)系模型,奠定了關(guān)系型數(shù)據(jù)庫的理論基礎。順便提一句,數(shù)據(jù)庫的底層理論建設都是在美國進行的。確實牛逼!數(shù)據(jù)庫系統(tǒng)主要有以下特點:

基于數(shù)據(jù)模型:采用數(shù)據(jù)模型使數(shù)據(jù)結(jié)構(gòu)化,數(shù)據(jù)結(jié)構(gòu)化是文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)最本質(zhì)的區(qū)別,在文件系統(tǒng)中,相互獨立的文件,內(nèi)部是具備結(jié)構(gòu)的,文件是多個等長的記錄的集合,但是記錄之間又是相互獨立的,沒有關(guān)聯(lián)性。這種獨立性對于單個應用來說,是有效的。具備局限性,不適用多個用戶,多應用共享數(shù)據(jù)的需求。而數(shù)據(jù)庫系統(tǒng)可以為用戶提供一個抽象的數(shù)據(jù)視圖。通過數(shù)據(jù)模型來實現(xiàn)抽象視圖,保證了整體數(shù)據(jù)的結(jié)構(gòu)化,數(shù)據(jù)模型其最大的特點在于描述數(shù)據(jù)時,不僅僅是描述自身,還要描述不同數(shù)據(jù)之間的聯(lián)系。

獨立性高:數(shù)據(jù)庫系統(tǒng)提供了三級數(shù)據(jù)抽象(視圖級抽象,概念級抽象,物理級抽象)能力和三種數(shù)據(jù)庫模式(外模式,模式和內(nèi)模式)。真正實現(xiàn)了數(shù)據(jù)的物理獨立性和邏輯獨立性,數(shù)據(jù)和程序的相互獨立。使得可以把數(shù)據(jù)的定義和描述從應用程序中獨立出去,而數(shù)據(jù)的存取統(tǒng)一由DBMS管理,用戶和應用程序不用考慮存取路徑細節(jié),簡化了應用程序?qū)τ跀?shù)據(jù)訪問能力。

冗余性和共享性好:數(shù)據(jù)庫允許多個用戶或多個應用程序同時訪問數(shù)據(jù)庫中的相同數(shù)據(jù),數(shù)據(jù)不再面向單個應用,數(shù)據(jù)的共享,節(jié)省了存儲空間,大大減少了數(shù)據(jù)冗余,避免了數(shù)據(jù)之間的不相容性和不一致性。

方便訪問:用戶可以使用查詢語句進行訪問(SQL)或者終端命令對數(shù)據(jù)庫進行訪問,也可以借助高級語句如JAVA,C等程序?qū)?shù)據(jù)庫進行訪問。

統(tǒng)一的數(shù)據(jù)管理:數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)由DBMS統(tǒng)一管理,不同的用戶或者應用對相同的數(shù)據(jù)有自己的使用理解,可以稱之為視圖,DBMS提供了定義,維護和操作視圖的機制,使得多個用戶可以為他們自己的應用定義,維護和使用自己的視圖。在共享性方面,DBMS還提供了數(shù)據(jù)控制功能,即數(shù)據(jù)的安全性控制(也就是權(quán)限),數(shù)據(jù)的完整性控制,并發(fā)控制(MVCC機制),數(shù)據(jù)庫恢復等

數(shù)據(jù)庫關(guān)鍵人物

數(shù)據(jù)庫經(jīng)歷了半個多世紀的發(fā)展,在此有必要膜拜下數(shù)據(jù)庫方面的大神。正是他們的貢獻,數(shù)據(jù)庫才有如今的成果。

埃德加·考特(EdgarF Codd) ,計算機界公認的關(guān)系型數(shù)據(jù)庫之父,其在IBM工作期間,發(fā)明了關(guān)系模型理論,并持續(xù)完善和發(fā)展關(guān)系型理論,關(guān)系型模型是現(xiàn)代數(shù)據(jù)庫最重要的理論模型。也是他最大的成就。1983年以其對數(shù)據(jù)庫的卓越貢獻,獲得了ACM的圖靈獎(圖靈獎被稱為計算機界的諾貝爾)C.J.戴特(C J Date),他是最早認識到Codd在關(guān)系型模型上所做的開創(chuàng)性學者之一,也是關(guān)系型數(shù)據(jù)庫技術(shù)領(lǐng)域中的非常著名的獨立撰稿人和學者,為關(guān)系型模型的概念普及化,作出了相當大的貢獻, 同時也參與了IBM公司的SQL/DS和DB2兩大產(chǎn)品的技術(shù)規(guī)劃和設計。其著作《數(shù)據(jù)庫系統(tǒng)導論》也影響了很多人,數(shù)據(jù)庫理論學習的經(jīng)典之作。

吉姆·格雷(Jim Gray),數(shù)據(jù)庫內(nèi)核大神。他使關(guān)系型模型技術(shù)實用化,將理論落地成產(chǎn)品,其為數(shù)據(jù)庫的成熟并順利進入市場起到了關(guān)鍵性的作用。在IBM期間,參與和主持過IMS、System R(oracle數(shù)據(jù)庫,db2數(shù)據(jù)庫的原型)、DB2等項目的開發(fā)。除了System R作為研究原型,沒有成為產(chǎn)品,其他幾個都成為IBM在數(shù)據(jù)庫市場上有影響力的產(chǎn)品。其最大的成就在于解決了一系列技術(shù)問題。隨著數(shù)據(jù)庫的規(guī)模愈來愈大,用戶愈來愈多的情況下,在共享模式下,保證數(shù)據(jù)訪問的完整性,安全性,和并發(fā)性,以及數(shù)據(jù)故障情況下,如何恢復。在當時看來,如果這些問題,沒法解決。其對應的產(chǎn)品也就不能被用戶接受,解決問題的方案可以歸結(jié)為四個字—-事務處理。格雷在事務處理方面取得了突出的貢獻,使他成為了該技術(shù)領(lǐng)域公認的權(quán)威,他也成為了1999年的圖靈獎得主。

Michael Stonebraker,是Ingres的創(chuàng)始人,著名的數(shù)據(jù)庫學者,其于1992年提出對象關(guān)系型模型,并主導了postgres項目,并將postgres放在了BSD版權(quán)保護,目前國內(nèi)不少的商業(yè)數(shù)據(jù)庫,都是基于postgres,學院派數(shù)據(jù)庫的代表人物。

以上人物只是列舉了一些在數(shù)據(jù)庫發(fā)展史上的關(guān)鍵性人物,其他的如:Oracle創(chuàng)始人Larry Ellison,創(chuàng)建了Oracle公司。Bob Miner, 引領(lǐng)整個時代的DBA前輩,Oracle的技術(shù)先驅(qū),Monty,編程天才,Mysql 之父,maiar db之父,后面由于mysql被oracle收購,又重新基于mysql的另一個分支開發(fā)了maiar db,并開源。

數(shù)據(jù)庫現(xiàn)狀

在傳統(tǒng)關(guān)系型數(shù)據(jù)庫層面,Oracle、SqlServer、DB2等作為商業(yè)數(shù)據(jù)庫常年占據(jù)國內(nèi)高低端市場,Mysql和postgres作為開源數(shù)據(jù)庫的代表,前者號稱最流行的開源數(shù)據(jù)庫,在國內(nèi)大部分公司都有使用,社區(qū)相當發(fā)達,09年Oracle并購了Sun公司,Mysql也歸Oracle所有,Mysql也有隨時閉源的風險。后者號稱最先進的數(shù)據(jù)庫,在國內(nèi)使用率占比不高,但是功能性相對Mysql來說,更加強大。開源版本更新速度很快,最近一兩年,在國內(nèi)有流行起來的趨勢。

傳統(tǒng)數(shù)據(jù)庫從俠義上來說就是關(guān)系型數(shù)據(jù)庫,但是隨著互聯(lián)網(wǎng)的高速發(fā)展,海量數(shù)據(jù)的誕生,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫在應對大規(guī)模,超大流量的時候就顯得力不從心。借此,nosql數(shù)據(jù)庫,newsql數(shù)據(jù)庫就此登場。

no sql 全稱 “not only sql”,所有非關(guān)系型的數(shù)據(jù)庫都統(tǒng)稱為no sql數(shù)據(jù)庫,no sql數(shù)據(jù)庫主要有四種類型,文檔數(shù)據(jù)庫(MongoDb為代表),鍵值數(shù)據(jù)庫(Redis為代表),寬列存儲(Hbase為代表)和圖形數(shù)據(jù)庫(Neo4J為代表)。no sql 拋棄了傳統(tǒng)數(shù)據(jù)強事務保證和關(guān)系模型,重點放在高可用,可擴展性和高性能上。但是由于不支持sql語句,兼容性是個大問題。

new sql 數(shù)據(jù)庫,提供了與no sql相同的擴展性,但仍屬于關(guān)系型模型,還保留sql作為查詢語言,保證了ACID事務性。代表數(shù)據(jù)庫有Spanner,CockroachDB,限于篇幅關(guān)系后面會單獨出文章來講解nosql和newsql的特點。

結(jié)語

這個時代可以稱之為”數(shù)據(jù)”時代,無論是傳統(tǒng)企業(yè),還是互聯(lián)網(wǎng)企業(yè),數(shù)據(jù)庫都是核心構(gòu)成,其重要性不言而喻。從最初的人工管理,文件管理,到后面的數(shù)據(jù)庫系統(tǒng),以及新興的nosql,newsql數(shù)據(jù)庫,都伴隨著時代的發(fā)展在更替前進。作為一個數(shù)據(jù)庫相關(guān)的從業(yè)者,也是很有感觸,希望數(shù)據(jù)庫行業(yè)能發(fā)展得越來越來的同時,也能帶動我們國產(chǎn)數(shù)據(jù)庫行業(yè)的發(fā)展吧!

來源:網(wǎng)絡,作者:DBA成長日記(百家號)

分享到

xiesc

相關(guān)推薦