- Visual FoxPro 6.0程序設計
- 王錫智 劉國香 唐麗芳 張鈞峰
- 3455字
- 2019-10-31 12:46:49
1.1 數據庫系統簡介
1.1.1 計算機數據管理技術
1.數據與數據處理的發展
(1)數據
數據是指存儲在某種媒體上能夠被識別的物理符號序列,其內容是事物特性的反映。數據在大多數人的頭腦中的第一反應就是數字。其實數字只是最簡單的一種數據,是數據的一種傳統和狹義的理解。廣義上的理解,數據包括數值型數據和非數值型數據。數值型數據是以數字表示信息,而非數值型數據是以符號及其組合來表示信息。例如,字符、文字、圖表、圖形、圖像、聲音等均屬于非數值型數據。數據有多種表現形式,它們都可以經過數字化后存入計算機。
數據是人類社會發展的一種重要的信息資源,如何有效地保存和科學地管理這些數據是人們長期以來十分關注的課題,從而促進了數據管理技術的發展。
(2)信息
為了了解世界,交流信息,人們需要描述這些事物。而信息就是經過加工處理并對人類客觀行為產生影響的數據表現形式。信息無時不有,無處不在,客觀存在于人類社會的各個領域,而且不斷地變化著。從計算機的角度,通常將信息看作是人們進行各種活動所需要獲取的知識。
數據和信息是兩個相互聯系但又相互區別的概念。信息是反映客觀現實世界的知識,數據是信息的具體表現形式,數據經過加工處理后使其具有知識性并對人類活動產生有意義的決策作用。
(3)數據處理
數據處理(Data Processing)是指將數據轉換成信息的過程。當信息表示成數據后,這些數據就被人們賦予了特定的含義,反映了現實世界事物的存在特性和變化狀態。由于現實世界事物往往是相互關聯的,因此,可以從已知數據出發,參照相關數據進行加工計算,產生一些新的數據。這些新的數據又表示了新的信息,可以作為某些決策的依據。
數據處理的基本操作包括對數據的收集、存儲、分類、傳輸等一系列活動。這些基本操作環節稱為數據管理,而加工、計算和輸出等操作可根據不同的需求進行不同的處理。數據管理技術是解決數據處理基本操作的,其他環節是由應用程序實現的。
2.數據管理技術
數據處理的中心問題是數據管理。數據管理是指對數據的分類、組織、編碼、存儲、查詢和維護等活動,是數據處理的中心環節。數據管理技術可根據提供的數據獨立性、數據冗余度、數據共享性、數據間相互聯系、數據安全性、數據完整性和數據存取方式等水平的高低劃分為3個不同的發展階段:人工管理階段、文件系統階段、數據庫系統階段。
1.1.2 數據管理發展的3個階段
使用計算機以后,數據處理的速度和規模無論相對于手工方式還是機械方式都是無可比擬的,隨著數據處理量的增長,產生了數據管理技術。數據管理技術的發展與計算機硬件(主要是外部存儲器)、系統軟件及計算機應用的范圍有著密切的聯系。
1.人工管理階段
人工管理階段又稱無關聯階段,在這一階段(20世紀50年代中期以前),計算機主要用于科學計算,其他工作還沒有展開。外部存儲器只有磁帶、卡片和紙帶等,還沒有磁盤等直接存取存儲設備。軟件上沒有操作系統,沒有管理數據的軟件,尚無數據管理方面的軟件。數據處理的方式基本上是批處理。
人工管理階段的數據和程序的聯系可用圖1-1描述。

圖1-1 人工管理階段程序和數據的聯系
這個時期的數據管理有以下特點:
①數據不能長期保存。計算機主要用于計算,一般不需要長期保存數據。在進行某一問題計算時,將原始數據隨程序一起輸入內存,運算處理后將結果數據輸出。隨著計算任務的完成,用戶作業退出計算機系統,數據空間隨著程序空間一起被釋放。
②沒有專用的軟件對數據進行管理。每個應用程序都要包括存儲結構、存取方法、輸入/輸出方式等內容。程序中的存取子程序隨著存儲結構的改變而改變,因而數據與程序不具有獨立性。存儲結構改變時,應用程序必須改變。此時,由于程序直接面向存儲結構,因此數據的邏輯結構與物理結構沒有區別。
③只有程序(Program)的概念,沒有文件(File)的概念。數據的組織方式必須由程序員自行設計與安排。
④數據與程序不具有獨立性,即一組數據對應一個程序。因此,數據的邏輯結構或物理結構發生變化后,必須對應用程序做出相應的修改,這就進一步加重了程序員的負擔。
2.文件系統階段
20世紀50年代后期至60年代中后期,計算機開始大量地用于管理中的數據處理工作,大量的數據存儲、檢索和維護成為迫切的需求,可直接存取的磁盤成為聯機的主要外存儲器。在軟件方面,此時出現了高級語言和操作系統。
這一階段的數據管理有以下特點:
①數據以文件形式長期保存在磁盤等存儲設備上。由于計算機的應用轉向信息管理,因此對文件要進行大量的查詢、修改和插入等操作。
②數據的邏輯結構與物理結構有了區別,但比較簡單。程序與數據之間具有“設備獨立性”,即程序只需用文件名就可以進行數據操作,不必關心數據的物理位置。由操作系統的文件系統提供存取方法(讀/寫)。
③文件組織已多樣化。有索引文件、鏈接文件和直接存取文件等,但文件之間相互獨立、缺乏聯系。數據之間的聯系要通過程序去構造。
④程序和數據有了一定的獨立性。但是文件結構的設計仍然是基于特定的用途,程序基于特定的物理結構和存取方法,因此程序與數據結構之間的依賴關系并未根本改變。
在文件系統階段,由于具有設備獨立性,因此當改變存儲設備時,不必改變應用程序。但這只是初級的數據管理,在數據的物理結構修改時,仍然需要修改用戶的應用程序,即應用程序具有“程序-數據依賴”性。有關物理表示的知識和訪問技術將直接體現在應用程序的代碼中。
⑤對數據的操作以記錄為單位。這是由于文件中只存儲數據,不存儲文件記錄的結構描述信息。文件的建立、存取、查詢、插入、刪除、修改等所有操作,都要用程序來實現。
文件系統階段是數據管理技術發展中的一個重要階段。在這一階段中,得到充分發展的數據結構和算法豐富了計算機科學,為數據管理技術的進一步發展打下了基礎,現在仍是計算機軟件科學的重要基礎。
文件系統的缺陷:
①數據冗余(Redundancy):由于文件之間缺乏聯系,造成每個應用程序都有對應的文件,有可能同樣的數據在多個文件中重復存儲。
②數據不一致性(Inconsistency):這往往是由數據冗余造成的,在進行更新操作時,稍不謹慎,就可能使同樣的數據在不同的文件中不一樣。
③數據聯系弱(Poor Data Relationship):這是由于文件之間相互獨立,缺乏聯系造成的。
這個階段的程序和數據間的聯系可用圖1-2表示。

圖1-2 文件系統階段程序和數據的聯系
3.數據庫系統階段
20世紀60年代后期開始,需要計算機管理的數據量急劇增加,并且對數據共享的需求日益增強,文件系統的數據管理方法已無法適應開發應用系統的需要。在20世紀60年代末,磁盤技術取得重要進展,具有數百兆容量和快速存取的磁盤陸續進入市場,成本也不高,為數據庫技術的產生提供了良好的物質條件。
數據庫也是以文件方式存儲數據的,但它是數據的一種高級組織形式。在應用程序和數據庫之間,有一個新的數據管理軟件,即數據庫管理系統(Data Base Management System,DBMS)。數據庫管理系統對數據的處理方式和文件系統不同,它把所有應用程序中使用的數據匯集在一起,并以記錄為單位存儲起來,便于應用程序查詢和使用。
概括起來,數據庫系統的管理方式具有以下特點:
①采用復雜的數據模型表示數據結構。數據模型不僅描述數據本身的特點,還描述數據之間的聯系,這種聯系通過存取路徑實現。通過存取路徑表示自然的數據聯系是數據庫與傳統文件的根本區別。數據不再面向特定的某個或多個應用,而是面向整個應用系統。數據冗余明顯減少,實現了數據共享。
②具有較高的數據獨立性。數據的邏輯結構與物理結構之間,差別可以很大。
③數據庫系統為用戶提供方便的用戶接口,用戶可以使用查詢語言或終端命令操作數據庫,也可以用程序方式(用COBOL、C等高級語言和數據庫語言編制的程序)操作數據庫。
④系統提供4個方面的數據控制功能:數據庫的恢復、并發控制、數據完整性和數據安全性,以保證數據庫中數據是安全的、正確的和可靠的。
⑤對數據的操作不一定以記錄為單位,也可以以數據項為單位,增加了系統的靈活性。
上述5個方面構成了數據庫系統的主要特征。這個階段的程序和數據間的聯系可用圖1-3所示。

圖1-3 數據庫系統階段程序和數據的聯系
4.新型數據庫系統
自20世紀80年代中期以來,數據庫技術與其他領域的技術相結合,出現了數據庫的許多新的分支。例如,與網絡技術相結合出現了網絡數據庫;與分布處理技術相結合出現了分布式數據庫;與面向對象技術相結合出現了面向對象數據庫;與人工智能技術相結合出現了知識庫、主動數據庫;與并行處理技術相結合出現了并行數據庫;與多媒體技術相結合出現了多媒體數據庫。此外,針對不同應用領域出現了工程數據庫、實時數據庫、空間數據庫、地理數據庫、統計數據庫、時態數據庫、數據倉庫等多種數據庫及相關技術。
- Learning LibGDX Game Development(Second Edition)
- ClickHouse性能之巔:從架構設計解讀性能之謎
- 零基礎學Visual C++第3版
- 國際大學生程序設計競賽中山大學內部選拔真題解(二)
- Learning RxJava
- 編程卓越之道(卷3):軟件工程化
- The React Workshop
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- Visual Basic程序設計與應用實踐教程
- Access 2016數據庫管
- HTML5+CSS3網頁設計
- Learning Concurrency in Kotlin
- Python語言實用教程
- 開源項目成功之道
- JavaScript動態網頁編程