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

數據庫發(fā)展史

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

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

數據不保存:內外存儲有限,數據量較少,僅應用于科學計算。

人工管理:沒有相應的軟件系統負責數據的管理工作,應用程序中涉及的數據需要由程序員自己管理,包括數據邏輯結構的代碼,數據物理結構的代碼。數據存儲結構的代碼,數據存取和輸入的代碼。

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

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

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

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

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

管理性:文件管理系統是應用程序和數據文件的專門接口,應用程序對數據的存取是由文件管理系統自動完成的,數據文件的邏輯結構和物理結構的轉換是由文件系統自動完成的,不需要應用程序來參與,因此數據和應用程序具備了一定的獨立性。

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

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

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

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

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

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

數據庫關鍵人物

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

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

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

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

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

數據庫現狀

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

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

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

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

結語

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

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

分享到

xiesc

相關推薦