- 數據庫系統原理及應用教程(第5版)
- 苗雪蘭 劉瑞新等編著
- 7252字
- 2020-09-18 17:44:19
1.2 數據庫系統及發展
數據管理技術經歷了手工管理、文件管理和數據庫技術3個發展階段。數據庫技術是20世紀60年代末期發展起來的數據管理技術。數據庫技術的出現改變了傳統的信息管理模式,擴大了信息管理的規模,提高了信息的利用和多重利用能力,縮短了信息傳播的過程,實現了世界信息一體化的管理目標。目前,數據庫技術仍在日新月異的發展,數據庫技術的應用在繼續深入。
1.2.1 手工管理數據階段
20世紀50年代以前,計算機主要用于科學計算。從硬件看,外存只有紙帶、卡片和磁帶,沒有直接存取的存儲設備;從軟件看,那時還沒有操作系統,沒有管理數據的軟件;數據處理方式是批處理。
數據管理在手工管理階段具有以下4個特點。
(1)手工管理階段不保存大量的數據
在手工管理階段,由于數據管理的應用剛剛起步,一切都是從頭開始,其數據管理系統還是仿照科學計算的模式進行設計。由于數據管理規模小,加上當時的計算機軟硬件條件比較差,數據管理中涉及的數據基本不需要、也不允許長期保存。當時的處理方法是在需要時將數據輸入,用完就撤走。
(2)手工管理階段沒有軟件系統對數據進行管理
在手工管理階段,由于沒有專門的軟件管理數據,程序員不僅要規定數據的邏輯結構,而且還要在程序中設計物理結構,即要設計數據的存儲結構、存取方法和輸入/輸出方法等。這就造成程序中存取數據的子程序隨著數據存儲機制的改變而改變的問題,使數據與程序之間不具有相對獨立性,給程序的設計和維護都帶來了一定的麻煩。
(3)手工管理階段基本上沒有“文件”概念
由于手工管理階段還沒有“文件”的概念,所以更談不上使用“文件”功能。數據管理所涉及的數據組成和數據存儲過程必須由程序員自行設計,它給程序設計帶來了極大的困難。
(4)手工管理階段是一組數據對應一個程序
手工管理階段的數據是面向應用的,即使兩個應用程序涉及某些相同的數據,也必須各自定義,無法互相利用、互相參照。所以程序與程序之間有大量重復數據。
1.2.2 文件系統數據管理的特點和缺陷
從20世紀50年代后期到60年代中期,計算機應用領域拓寬,不僅用于科學計算,還大量用于數據管理。這一階段的數據管理水平進入到文件系統階段。在文件系統階段中,計算機外存儲器有了磁盤、磁鼓等直接存取的存儲設備;計算機軟件的操作系統中已經有了專門的數據管理軟件,即所謂的文件系統。文件系統的處理方式不僅有文件批處理,而且還能夠聯機實時處理。在這種背景下,數據管理的系統規模、管理技術和水平都有了較大幅度的發展。盡管文件管理階段比手工管理階段在數據管理手段和管理方法上有很大的改進,但文件管理方法仍然存在著許多缺點。
1.文件管理階段數據管理的特點
數據管理在文件管理階段具有以下4個特點。
(1)管理的數據以文件的形式長久地被保存在計算機的外存中
在文件管理階段,由于計算機大量用于數據處理,僅采用臨時性或一次性地輸入數據根本無法滿足使用要求,數據必須長期保留在外存上。在文件系統中,通過數據文件使管理的數據能夠長久地保存,并通過對數據文件的存取實現對文件進行查詢、修改、插入和刪除等常見的數據操作。
(2)文件系統有專門的數據管理軟件提供有關數據存取、查詢及維護功能
在文件系統中,有專門的計算機軟件提供數據存取、查詢、修改和管理的功能,它能夠為程序和數據之間提供存取方法,為數據文件的邏輯結構與存儲結構提供轉換的方法。這樣,程序員在設計程序時可以把精力集中到算法上,而不必過多地考慮物理細節,同時數據在存儲上的改變不一定反映在程序上,使程序的設計和維護工作量大大地減小。
(3)文件系統中的數據文件已經具有多樣化
由于在文件系統階段已有了直接存取存儲設備,使得許多先進的數據結構能夠在文件系統中實現。文件系統中的數據文件不僅有索引文件、鏈接文件和直接存儲文件等多種形式,而且還可以使用倒排文件進行多碼檢索。
(4)文件系統的數據存取是以記錄為單位的
文件系統是以文件、記錄和數據項的結構組織數據的。文件系統的基本數據存取單位是記錄,即文件系統按記錄進行讀寫操作。在文件系統中,只有通過對整條記錄的讀取操作,才能獲得其中數據項的信息,不能直接對記錄中的數據項進行數據存取操作。
2.文件系統在數據管理上的主要缺點
文件系統在數據管理上的缺點主要表現在以下兩個方面。
(1)文件系統的數據冗余度大
由于文件系統采用面向應用的設計思想,系統中的數據文件都是與應用程序相對應的。這樣,當不同的應用程序所需要的數據有部分相同時,也必須建立各自的文件,而不能共享相同的數據,因此就造成了數據冗余度(Redundancy)大、浪費存儲空間的問題。由于文件系統中相同數據需要重復存儲和各自管理,就給數據的修改和維護帶來了麻煩和困難,還特別容易造成數據不一致的惡果。
(2)文件系統中缺乏數據與程序之間的獨立性
在文件系統中,由于數據文件之間是孤立的,不能反映現實世界中事物之間的相互聯系,使數據間的對外聯系無法表達。同時,由于數據文件與應用程序之間缺乏獨立性,使得應用系統不容易擴充。
文件系統的這種缺點反映在以下3個方面。
1)文件系統中的數據文件是為某一特定應用服務的,數據文件的可重復利用率非常低。因而,要對現有的數據文件增加新的應用,是件非常困難的事情。系統要增加應用就必須增加相應的數據。
2)當數據的邏輯結構改變時,必須修改它的應用程序,同時也要修改文件結構的定義。
3)應用程序的改變,如應用程序所使用的高級語言的變化等,也將影響到文件數據結構的改變。
1.2.3 數據庫技術的發展歷程和研究方向
數據庫系統階段是從20世紀60年代開始的。這一階段的背景是:計算機用于管理的規模更為龐大,應用越來越廣泛,數據量也急劇增加,數據共享的要求也越來越強;出現了內存大、運行速度快的主機和大容量的硬盤;計算機軟件價格在上升,硬件價格在下降,為編制和維護計算機軟件所需的成本相對增加。對研制數據庫系統來說,這種背景既反映了迫切的市場需求,又提供了有利的開發環境。
1.數據庫技術的發展歷程
數據庫技術從20世紀60年代中期開始萌芽,至20世紀60年代末和70年代初,出現了此領域的3件大事。這3件大事標志著數據庫技術已發展到成熟階段,并有了堅實的理論基礎。
第一件大事是1969年IBM公司研制、開發了數據庫管理系統的商品化軟件Information Management System(IMS)。IMS的數據模型是層次結構的,它是一個層次數據庫管理系統,是首例成功的數據庫管理系統的商品化軟件。
第二件大事是美國數據系統語言協會(Conference On Data System Language,CODASYL)下屬的數據庫任務組(Data Base Task Group,DBTG)對數據庫方法進行系統的研究和討論后,于20世紀60年代末到70年代初提出了若干報告。DBTG的報告中確定并建立了數據庫系統的許多概念、方法和技術。DBTG所提議的方法是基于網狀結構的,它是數據庫網狀模型的基礎和典型代表。
第三件大事是1970年IBM公司San Jose研究實驗室的研究員E.F.Codd發表了題為《大型共享數據庫數據的關系模型》的論文。文中提出了數據庫的關系模型,從而開創了數據庫關系方法和關系數據理論的研究領域,為關系數據庫技術奠定了理論基礎。
進入20世紀70年代后,數據庫技術又有了很大的發展。其發展表現在以下3個方面。
(1)出現了許多商品化的數據庫管理系統
這些計算機軟件大都是基于網狀模型和層次模型的數據庫方法,DBTG提出的方法及思想對各種數據庫系統影響很大。
(2)數據庫技術成為實現和優化信息系統的基本技術
商品化的數據庫管理系統的推出和運行使數據庫技術日益廣泛地應用到企業管理、交通運輸、情報檢索、軍事指揮、政府管理和輔助決策等各個方面,深入到人類生產和生活的各個領域。
(3)關系方法的理論研究和軟件系統的研制取得了很大成果
1974—1979年,IBM公司San Jose研究實驗室在IBM370系列機上研究關系數據庫實驗系統System R獲得了成功,1981年IBM公司又宣布了具有System R特征的新型數據庫軟件產品SQL/DS問世。與此同時,美國加州大學伯克利分校也研制了INGRES關系數據庫實驗系統,并緊跟著推出了商用INGRES系統。這些成果,使關系方法從實驗室走向了社會。
在計算機領域中,有人把20世紀70—80年代稱為數據庫時代。20世紀80年代,幾乎所有新開發的系統均是關系系統。同時,微型機的關系數據庫管理系統也越來越豐富,性能越來越好,功能越來越強,它的應用遍及各個領域。
2.當代數據庫研究的范圍和方向
數據庫學科的研究范圍十分廣泛,概括起來,其研究內容大致可以分為下列3個方面。
(1)數據庫管理系統軟件的研制
數據庫管理系統是數據庫應用系統的基礎。研制數據庫管理系統的基本目標是擴大數據庫的功能、提高其性能和可用性,從而提高用戶開發數據庫應用系統的生產率。研制以DBMS為核心的一組相互聯系的軟件系統已成為當前數據庫軟件產品的方向,這些軟件系統有數據通信軟件、電子表格軟件、數據字典和圖形系統等。
由于數據庫應用領域的不斷擴大,數據庫技術不僅廣泛地應用于事務管理系統,而且已開始應用到工程項目設計、多媒體數據處理、工業自動控制和計算機輔助設計等新的應用領域中。這些新應用領域所處理的數據和管理領域中的數據相比,在數據格式上有極大的區別,在處理方法上也有許多不同之處。因而,研究這些新應用領域中的數據庫方法是一個新課題,它涉及應用系統的設計方法,還涉及數據庫系統的模型實現技術等問題。面向對象數據庫系統、擴展數據庫系統和多媒體數據庫等研究方向,就是基于這些新應用要求而興起的。
(2)數據庫設計技術的開發
數據庫設計的主要目的是:在數據庫管理系統的支持下,按照應用要求為某一部門或組織設計一個良好的、使用方便的、效率較高的數據庫及其應用系統。在數據庫設計領域中,主要開展的課題是研究數據庫系統的設計方法和設計工具,其中包括對數據庫設計方法、設計工具和理論的研究;對數據模型和數據建模方法的研究;對計算機輔助設計數據庫設計方法及其軟件系統的研究;對數據庫設計規范的研究等。
(3)數據庫理論的研究
數據庫理論的研究主要涉及關系的設計、優化、查詢及系統的安全性和完整性等關系數據理論。近年來,隨著計算機網絡和人工智能技術的發展,分布式數據庫、并行數據庫、數據倉庫、演繹數據庫和知識數據庫系統的研制都已成為新的研究方向。
1.2.4 數據庫系統管理數據的特點
事實上,數據是對現實世界中的各種事物量化、抽象和概括的結果,各種事物之間存在的內在聯系決定了其被抽象的數據也存在著聯系。當數據庫系統具有對數據及其聯系的統一管理能力后,數據資源就應當為多種應用需要服務,并為多個用戶所共享。數據庫系統不僅實現了多用戶共享同一數據的功能,并解決了由于數據共享而帶來的數據完整性、安全性及并發控制等一系列問題。數據庫系統要克服文件系統中存在的數據冗余大和數據獨立性差等缺陷,使數據冗余度最小,并實現數據與程序之間的獨立。
數據庫技術是在文件系統的基礎上發展起來的新技術,它克服了文件系統的弱點,為用戶提供了一種使用方便、功能強大的數據管理手段。數據庫技術不僅可以實現對數據集中統一的管理,而且可以使數據的存儲和維護不受任何用戶的影響。數據庫技術的發明與發展,使其成為計算機科學領域內的一個獨立的學科分支。
數據庫系統和文件系統相比具有以下主要特點。
1.數據庫系統以數據模型為基礎
數據庫設計的基礎是數據模型。在進行數據庫設計時,要站在全局需要的角度抽象和組織數據;要完整地、準確地描述數據自身和數據之間聯系的情況;要建立適合整體需要的數據模型。數據庫系統以數據庫為基礎,各種應用程序應建立在數據庫之上。數據庫系統的這種特點決定了它的設計方法,即系統設計時應先設計數據庫,再設計功能程序,而不能像文件系統那樣,先設計程序,再考慮程序需要的數據。
2.數據庫系統的數據冗余度小、數據共享度高
數據冗余度小是指重復的數據少。減少冗余數據可以帶來以下優點。
1)數據量小可以節約存儲空間,使數據的存儲、管理和查詢都容易實現。
2)數據冗余小可以使數據統一,避免產生數據的不一致問題。
3)數據冗余小便于數據維護,避免數據統計錯誤。
由于數據庫系統是從整體上看待和描述數據的,數據不再是面向某個應用,而是面向整個系統,所以數據庫中同樣的數據不會多次重復出現。這就使得數據庫中的數據冗余度小,從而避免了由于數據冗余大帶來的數據沖突問題,也避免了由此產生的數據維護麻煩和數據統計錯誤問題。
數據庫系統通過數據模型和數據控制機制提高數據的共享性。數據共享度高會提高數據的利用率,使得數據更有價值和更容易、方便地被使用。數據共享度高使得數據庫系統具有以下3個優點。
1)系統現有用戶或程序可以共同享用數據庫中的數據。
2)當系統需要擴充時,再開發的新用戶或新程序還可以共享原有的數據資源。
3)多用戶或多程序可以在同一時刻共同使用同一數據。
3.數據庫系統的數據和程序之間具有較高的獨立性
由于數據庫中的數據定義功能(即描述數據結構和存儲方式的功能)和數據管理功能(即實現數據查詢、統計和增刪改的功能)是由DBMS提供的,所以數據對應用程序的依賴程度大大降低,數據和程序之間具有較高的獨立性。數據和程序相互之間的依賴程度低、獨立程度大的特性稱為數據獨立性高。數據獨立性高使得程序中不需要有關數據結構和存儲方式的描述,從而減輕了程序設計的負擔。當數據及結構變化時,如果數據獨立性高,程序的維護也會比較容易。
數據庫中的數據獨立性可以分為兩級。
(1)數據的物理獨立性
數據的物理獨立性(Physical Data Independence)是指應用程序對數據存儲結構(也稱物理結構)的依賴程度。數據的物理獨立性高是指當數據的物理結構發生變化時(如當數據文件的組織方式被改變或數據存儲位置發生變化時),應用程序不需要修改也可以正常工作。
數據庫系統之所以具有數據物理獨立性高的特點,是因為數據庫管理系統能夠提供數據的物理結構與邏輯結構之間的映像(Mapping)或轉換功能。正因為數據庫系統具有這種數據映像功能,才使得應用程序可以根據數據的邏輯結構進行設計,并且一旦數據的存儲結構發生變化,系統可以通過修改其映像來適應其變化。所以數據物理結構的變化不會影響到應用程序的正確執行。
(2)數據的邏輯獨立性
數據庫中的數據邏輯結構分全局邏輯結構和局部邏輯結構兩種。數據全局邏輯結構指全系統總體的數據邏輯結構,它是按全系統使用的數據、數據的屬性及數據聯系來組織的。數據局部邏輯結構是指具體一個用戶或程序使用的數據邏輯結構,它是根據用戶自己對數據的需求進行組織的。局部邏輯結構中僅涉及與該用戶(或程序)相關的數據結構。數據局部邏輯結構與全局邏輯結構之間是不完全統一的,兩者間可能會有較大的差異。
數據的邏輯獨立性(Logical Data Independence)是指應用程序對數據全局邏輯結構的依賴程度。數據邏輯獨立性高是指當數據庫系統的數據全局邏輯結構改變時,它們對應的應用程序不需要改變仍可以正常運行。例如,當新增加一些數據和聯系時,不影響某些局部邏輯結構的性質。
數據庫系統之所以具有較高的數據邏輯獨立性,是由于它能夠提供數據的全局邏輯結構和局部邏輯結構之間的映像和轉換功能。正因為數據庫系統具有這種數據映像功能,使得數據庫可以按數據全局邏輯結構設計,而應用程序可以按數據局部邏輯結構進行設計。這樣,既保證了數據庫中的數據優化性質,又可使用戶按自己的意愿或要求組織數據,數據具有整體性、共享性和方便性。同時,當全局邏輯結構中的部分數據結構改變時,即使那些與變化相關的數據局部邏輯結構受到了影響,也可以通過修改與全局邏輯結構的映像來減小其受影響的程度,使數據局部邏輯結構基本上保持不變。由于數據庫系統中的程序是按局部數據邏輯結構進行設計的,并且當全局數據邏輯結構變換時可以使局部數據邏輯結構基本保持不變,所以數據庫系統的數據邏輯獨立性高。
4.數據庫系統通過DBMS進行數據安全性和完整性的控制
數據的安全性控制(Security Control)是指保護數據庫,以防止不合法的使用造成的數據泄漏、破壞和更改。數據安全性受到威脅是指出現用戶看到了不該看到的數據、修改了無權修改的數據、刪除了不能刪除的數據等現象。數據安全性被破壞有以下兩種情況。
1)用戶有超越自身擁有的數據操作權的行為。例如,非法截取信息或蓄意傳播計算機病毒使數據庫癱瘓。顯然,這種破壞數據的行為是有意的。
2)出現了違背用戶操作意愿的結果。例如,由于不懂操作規則或出現計算機硬件故障使數據庫不能使用。這種破壞數據的行為是用戶無意引起的。
數據庫系統通過它的數據保護措施能夠防止數據庫中的數據被破壞。例如,使用用戶身份鑒別和數據存取控制等方法,即使萬一數據被破壞,系統也可以進行數據恢復,以確保數據的安全性。
數據的完整性控制(Integrity Control)是指為保證數據的正確性、有效性和相容性,防止不符合語義的數據輸入或輸出所采用的控制機制。對于具體的一個數據,總會受到一定的條件約束限制,如果數據不滿足其條件,它就是不合語義的數據或是不合理的數據。這些約束條件可以是數據值自身的約束,也可以是數據結構的約束。
數據庫系統的完整性控制包括兩項內容:一是提供進行數據完整性定義的方法,用戶要利用其方法定義數據應滿足的完整性條件;二是提供進行檢驗數據完整性的功能,特別是在數據輸入和輸出時,系統應自動檢查其是否符合已定義的完整性條件,以避免錯誤的數據進入到數據庫或從數據庫中流出,造成不良的后果。數據完整性的高低是決定數據庫中數據的可靠程度和可信程度的重要因素。
數據庫的數據控制機制還包括數據的并發控制和數據恢復兩項內容。數據的并發控制是指排除由于數據共享,即用戶并行使用數據庫中的數據時,所造成的數據不完整和系統運行錯誤問題。數據恢復是通過記錄數據庫運行的日志文件和定期做數據備份工作,保證數據在受到破壞時,能夠及時使數據庫恢復到正確狀態。
5.數據庫中數據的最小存取單位是數據項
在文件系統中,由于數據的最小存取單位是記錄,結果給使用及數據操作帶來許多不便。數據庫系統改善了其不足之處,它的最小數據存取單位是數據項,即使用時可以按數據項或數據項組存取數據,也可以按記錄或記錄組存取數據。由于數據庫中數據的最小存取單位是數據項,使系統在進行查詢、統計、修改及數據再組合等操作時,能以數據項為單位進行條件表達和數據存取處理,給系統帶來了高效性、靈活性和方便性。
- ABB工業機器人編程全集
- Microsoft Power BI Quick Start Guide
- Oracle SOA Governance 11g Implementation
- 腦動力:C語言函數速查效率手冊
- R Machine Learning By Example
- Hadoop 2.x Administration Cookbook
- WOW!Illustrator CS6完全自學寶典
- 返璞歸真:UNIX技術內幕
- 模型制作
- RPA:流程自動化引領數字勞動力革命
- 大數據處理平臺
- Salesforce Advanced Administrator Certification Guide
- WOW!Photoshop CS6完全自學寶典
- Photoshop CS4數碼照片處理入門、進階與提高
- Learn Microsoft Azure