程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 精通數據庫系列入門入門基礎篇2

精通數據庫系列入門入門基礎篇2

編輯:關於SqlServer
眾所周知,數據庫系統並不是在計算機產生的同時就出現的,而是隨著計算機技術的不斷發展,在特定的歷史時期、特定的需求環境下出現的。人類在1946年發明了世界上的第一台計算機到20世紀60年代這漫長的20年裡,計算機操作系統還主要局限於文件的操作,同樣,對數據的管理也主要是通過文件系統來實現。進行計算所需要的各種數據存放在各自的文件裡面。當要使用這些數據的時候,將文件打開,讀取文件中的數據到內存中。當計算完畢後,將計算結果仍舊寫入到文件中去。

  雖然這種在文件中存放數據的方式目前在很多系統中還在使用,但是,這樣的數據存放方式在三四十年前的當時,就已經顯示出了非常明顯的不足。這些不足主要集中在無法對數據進行有效的統一管理。具體表現在這樣幾個方面:

程序員編寫應用程序非常不方便。應用程序的設計者需要對程序所使用的文件的邏輯結構和物理結構都了解的非常清楚。而計算機操作系統只提供將文件打開、關閉、保存等非常低級的操作,而對數據的修改、查詢操作則需要應用程序來解決,如果程序所需要的數據存放在不同的文件裡,而且這些文件的存儲格式又迥然不同。這樣就給應用程序的開發帶來了巨大的麻煩,程序員要為程序中所用到的每一個文件都寫好相應的接口,而且不同的文件格式相差很大,這樣就大大的增加了編程的工作量,從而使得在文件級別上開發應用程序的效率非常低下,嚴重影響應用軟件的發展。


文件結構的每一處修改都將導致應用程序的修改,從而使得應用程序的維護工作量特別大。編過程序的人都有這種體會,就是每當自己開發完畢的程序需要修改的時候,又不得不將源程序重新修改、編譯、鏈接。其麻煩程度可想而知。因為有人戲稱編程人員為“老改”人員,個中滋味,外人恐怕很難體會到的。


計算機操作系統中的文件系統一般不支持對文件的並發訪問。而在現代計算機系統中,為了充分發揮計算機系統的資源使用效率,一般都允許多個程序“同時”運行,即並發性。對數據庫系統同樣有並發性的要求,現在比較大型的數據庫都有非常強的並發訪問機制,這樣可以充分利用數據庫服務器的軟、硬件資源,避免浪費。


由於基於文件系統的數據管理缺乏整體性、統一性,在數據的結構、編碼、表示格式等諸多方面不能做到標准化、規范化,不同的操作系統有風格迥異的表示方式,因此在一定程度上造成了數據管理的混亂。另外,基於文件系統的數據管理在數據的安全性和保密性發面難以采取有效的措施,在一些對安全性要求比較高的場合,這種安全上的缺陷是完全不允許的。
  針對文件系統的這些重要缺點,人們逐步發展了以統一管理數據和共享數據為主要特征的系統,這就是數據庫系統。數據庫系統就是在這樣的背景下發展起來了。1964年,美國通用電氣公司開發成功了世界上的第一個數據庫系統——IDS(Integrated Data Store)。IDS奠定了網狀數據庫的基礎,並且得到了廣泛的發行和應用,成為數據庫系統發展史上的一座豐碑。1969年,美國國際商用機器公司(IBM)也推出世界上第一個層次數據庫系統IMS(Information Management System),同樣在數據庫系統發展史上占有重要的地位。

  七十年代初,E.F.Codd在總結前面的層次、網狀數據庫優缺點的基礎上,提出了關系數據模型的概念。他提出了關系代數和關系演算(直到今天,在E.F.Codd的這些基本理論還在左右這數據庫系統的發展,也依然是高校計算機專業課堂上所要講述的重要內容)。在整個七十年代,關系數據庫系統無論從理論上還是實踐上都去的了豐碩的成果。在理論上,確立了完整的關系模型理論、數據依賴理論和關系數據庫的設計理論(在後面將重點講述這些關系數據庫的基本理論);在實踐上,世界上出現了很多著名的關系數據庫系統,比較著名的如System R,INGRES,Oracle等。

和文件系統相比,數據庫系統有一系列的特點,具體表現在以下幾個方面:

數據庫系統向用戶提供高級的接口。在文件系統中,用戶要訪問數據,必須了解文件的存儲格式、記錄的結構等。而在數據庫系統中,這一切都不需要了。數據庫系統為用戶處理了這些具體的細節,向用戶提供非過程化的數據庫語言(即通常所說的SQL語言),用戶只要提出需要什麼數據,而不必關心如何獲得這些數據。對數據的管理完全由數據庫管理系統(DBMS: Database Management System)來實現。
 
查詢的處理和優化。查詢通常指用戶向數據庫系統提交的一些對數據操作的請求。由於數據庫系統向用戶提供了非過程化的數據操縱語言,因此對於用戶的查詢請求就由DBMS來完成,查詢的優化處理就成了DBMS的重要任務。
 
並發控制。前面曾經提到,文件系統一般不支持並發操作,這樣大大的限制了系統資源的有效利用。在數據庫系統中,情況就不一樣了。現代的數據庫系統都有很強的並發操作機制,多個用戶可以同時訪問數據庫,甚至可以同時訪問同一個表中的不同記錄。這樣極大的提高了計算機系統資源的使用效率。
 
數據的完整性約束。凡是數據都要遵守一定的約束,最簡單的一個例子就是數據類型,例如定義成整型的數據就不能是浮點數。由於數據庫中的數據是持久的和共享的,因此對於使用這些數據的單位來說,數據的正確行顯得非常重要。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved