資料庫系統的產生和發展周口牛皮癬醫院
眾所周知,資料庫系統並不是在計算機產生的同時就出現的,而是隨著計算機技術的不斷發展,在特定的歷史時期、特定的需求環境下出現的。人類在2023年發明了世界上的第一台計算機到20世紀60年代這漫長的20年裡,計算機作業系統還主要侷限於檔案的操作,同樣,對資料的管理也主要是通過檔案系統來實現。進行計算所需要的各種資料存放在各自的檔案裡面。當要使用這些資料的時候,將檔案開啟,讀取檔案中的資料到記憶體中。當計算完畢後,將計算結果仍舊寫入到檔案中去。
雖然這種在檔案中存放資料的方式目前在很多系統中還在使用,但是,這樣的資料存放方式在三四十年前的當時,就已經顯示出了非常明顯的不足。這些不足主要集中在無法對資料進行有效的統一管理。具體表現在這樣幾個方面:
程式設計師編寫應用程式非常不方便。應用程式的設計者需要對程式所使用的檔案的邏輯結構和物理結構都了解的非常清楚。而計算機作業系統只提供將檔案開啟、關閉、儲存等非常低階的操作,而對資料的修改、查詢操作則需要應用程式來解決,如果程式所需要的資料存放在不同的檔案裡,而且這些檔案的儲存格式又迥然不同。這樣就給應用程式的開發帶來了巨大的麻煩,程式設計師要為程式中所用到的每乙個檔案都寫好相應的介面,而且不同的檔案格式相差很大,這樣就大大的增加了程式設計的工作量,從而使得在檔案級別上開發應用程式的效率非常低下,嚴重影響應用軟體的發展。
檔案結構的每一處修改都將導致應用程式的修改,從而使得應用程式的維護工作量特別大。編過程式的人都有這種體會,就是每當自己開發完畢的程式需要修改的時候,又不得不將源程式重新修改、編譯、鏈結。其麻煩程度可想而知。因為有人戲稱程式設計人員為「老改」人員,箇中滋味,外人恐怕很難體會到的。
計算機作業系統中的檔案系統一般不支援對檔案的併發訪問。而在現代計算機系統中,為了充分發揮計算機系統的資源使用效率,一般都允許多個程式「同時」執行,即併發性。對資料庫系統同樣有併發性的要求,現在比較大型的資料庫都有非常強的併發訪問機制,這樣可以充分利用資料庫伺服器的軟、硬體資源,避免浪費。
由於基於檔案系統的資料管理缺乏整體性、統一性,在資料的結構、編碼、表示格式等諸多方面不能做到標準化、規範化,不同的作業系統有風格迥異的表示方式,因此在一定程度上造成了資料管理的混亂。另外,基於檔案系統的資料管理在資料的安全性和保密性發面難以採取有效的措施,在一些對安全性要求比較高的場合,這種安全上的缺陷是完全不允許的。
針對檔案系統的這些重要缺點,人們逐步發展了以統一管理資料和共享資料為主要特徵的系統,這就是資料庫系統。資料庫系統就是在這樣的背景下發展起來了。2023年,美國通用電氣公司開發成功了世界上的第乙個資料庫系統——ids(integrated data store)。ids奠定了網狀資料庫的基礎,並且得到了廣泛的發行和應用,成為資料庫系統發展史上的一座豐碑。2023年,美國國際商用機器公司(ibm)也推出世界上第乙個層次資料庫系統ims(information management system),同樣在資料庫系統發展史上占有重要的地位。周口銀屑病醫院
七十年代初,e.f.codd在總結前面的層次、網狀資料庫優缺點的基礎上,提出了關係資料模型的概念。他提出了關係代數和關係演算(直到今天,在e.f.codd的這些基本理論還在左右這資料庫系統的發展,也依然是高校計算機專業課堂上所要講述的重要內容)。在整個七十年代,關係資料庫系統無論從理論上還是實踐上都去的了豐碩的成果。在理論上,確立了完整的關係模型理論、資料依賴理論和關聯式資料庫的設計理論(在後面將重點講述這些關聯式資料庫的基本理論);在實踐上,世界上出現了很多著名的關係資料庫系統,比較著名的如system r,ingres,oracle等。
和檔案系統相比,資料庫系統有一系列的特點,具體表現在以下幾個方面:
資料庫系統向使用者提供高階的介面。在檔案系統中,使用者要訪問資料,必須了解檔案的儲存格式、記錄的結構等。而在資料庫系統中,這一切都不需要了。資料庫系統為使用者處理了這些具體的細節,向使用者提供非過程化的資料庫語言(即通常所說的sql語言),使用者只要提出需要什麼資料,而不必關心如何獲得這些資料。對資料的管理完全由資料庫管理系統(dbms: database management system)來實現。
查詢的處理和優化。查詢通常指使用者向資料庫系統提交的一些對資料操作的請求。由於資料庫系統向使用者提供了非過程化的資料操縱語言,因此對於使用者的查詢請求就由dbms來完成,查詢的優化處理就成了dbms的重要任務。
併發控制。前面曾經提到,檔案系統一般不支援併發操作,這樣大大的限制了系統資源的有效利用。在資料庫系統中,情況就不一樣了。現代的資料庫系統都有很強的併發操作機制,多個使用者可以同時訪問資料庫,甚至可以同時訪問同乙個表中的不同記錄。這樣極大的提高了計算機系統資源的使用效率。
資料的完整性約束。凡是資料都要遵守一定的約束,最簡單的乙個例子就是資料型別,例如定義成整型的資料就不能是浮點數。由於資料庫中的資料是持久的和共享的,因此對於使用這些資料的單位來說,資料的正確行顯得非常重要。在關係資料庫系統中,比較重要的完整性約束有實體完整性、域完整性、參照完整性和使用者自定義的完整性等,在後面的文章中將有重點講述。
周口牛皮癬專科醫院
進入二十世紀八十年代之後,計算機硬體技術有了飛速的提高。計算機技術的提高促使計算機應用不斷深入,產生了許多新的應用領域,例如計算機輔助設計、計算機輔助製造、計算機輔助教學、辦公自動化、智慧型資訊處理、決策支援等。這些新的領域對資料庫系統提出了新的要求。但是由於應用的多元化,不能設計出乙個統一的資料模型來表示這些新型的資料及其相互關係,因而出現了百家爭鳴的局面,產生了演繹資料庫、物件導向資料庫、分布式資料庫、工程資料庫、時態資料庫、模糊資料庫等新型資料庫的研究和應用。
不過到目前為止,在世界範圍內得到主流應用的還是經典的關係資料庫系統,比較知名的如sybase,oracle,informix,sql server,db2等。在本系列專題文章中,我們也將根據資料庫系統的實際應用情況,重點介紹關係資料庫系統。其他的資料庫系統,也將作簡單的介紹。
PostgreSQL資料庫從入門到精通
課程介紹 postgresql被譽為 世界上功能最強大的開源資料庫 是以加州大學伯克利分校計算機系開發的postgres 4.2為基礎的物件關係型資料庫管理系統。postgresql支援大部分 sql標準並且提供了許多其他現代特性 複雜查詢 外來鍵 觸發器 檢視 事務完整性 mvcc。同樣,post...
PostgreSQL資料庫從入門到精通
阿里雲大學課程 postgresql資料庫從入門到精通 課程介紹 postgresql被譽為 世界上功能最強大的開源資料庫 是以加州大學伯克利分校計算機系開發的postgres 4.2為基礎的物件關係型資料庫管理系統。postgresql支援大部分 sql標準並且提供了許多其他現代特性 複雜查詢 外...
學習Oracle資料庫入門到精通教程資料合集
任何大型資訊系統,都需要有資料庫管理系統作為支撐。其中,oracle以其卓越的效能獲得了廣泛的應用。本合集彙總了學習oracle資料庫從入門到精通的30份教程資料。資料名稱 超詳細oracle教程 pdf版電子書 oracle兩日速成教程 中文 絕好入門教程 oracle 9i基礎教程 第2版 or...