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