13.1 數據庫系統概述
數據庫系統為我們提供了一種把與我們的工作和生活緊密相關的信息集合在一起的方法,它還提供了在某個集中的地方存儲和維護這些信息的方法。數據庫系統主要由三大部分組成:數據庫管理系統(DBMS:它是專門負責組織和管理數據信息的程序)、 數據庫應用程序(它使我們能夠獲取、顯示和更新由DBMS存儲的數據)、數據庫(按一定結構組織在一起的相關數據的集合)。
一般來說,DBMS和數據庫應用程序都駐留在同一台計算機上並在同一台計算機上運行,很多情況下兩者甚至結合在同一個程序中,以前使用的大多數數據庫系統都是用這種方法設計的。但是隨著DBMS技術的發展,目前的數據庫系統正向客戶/服務器模式發展。客戶/服務器數據庫將DBMS和數據庫應用程序分開,從而提高了數據庫系統的處理能力。數據庫應用程序運行在一個或多個用戶工作站(客戶機)上,並且通過網絡與運行在其它計算機上(服務器)的一個或多個DBMS進行通信。
下面是數據庫系統中一些概念和述語。
13.1.1 數據庫管理系統(DBMS)
數據庫管理系統(DBMS)是用於描述、管理和維護數據庫的程序系統,是數據庫系統的核心組成部分。它建立在操作系統的基礎上,對數據庫進行統一的管理和控制。其主要功能有:
1. 描述數據庫:描述數據庫的邏輯結構、存儲結構、語義信息和保密要求等。
2. 管理數據庫:控制整個數據庫系統的運行,控制用戶的並發性訪問,檢驗數據的安 全、保密與完整性,執行數據檢索、插入、刪除、修改等操作。
3.維護數據庫:控制數據庫初始數據的裝入,記錄工作日志,監視數據庫性能,修改更新數據庫,重新組織數據庫,恢復出現故障的數據庫。
4.數據通信 :組織數據的傳輸。
DBMS主要有四種類型:文件管理系統、層次數據庫系統、 網狀數據庫系統和關系數據庫系統。因為目前關系數據庫系統應用最為廣泛,所以我們重點對關系數據庫系統中的幾個概念進行介紹。
關系數據庫(Relational Database):一個關系數據庫是由若干表組成。在Delphi中,數據庫概念對應到物理文件上是有一些不同的。對於DBase、FoxPro、Paradox這三種數據庫系統,數據庫對應於某一個子目錄,而其它類型如MS Access、BtrIEve則是指某個文件。這是因為前者的表為單獨的文件,而後者的表是聚集在一個數據庫文件中的。
表(Table):一個表就是一組相關的數據按行排列,象一張表格一樣。比如一個班所有學生的期末考試成績,存在一個表中,每一行對應一名學生,在這一行中,包括學生的學號、姓名以及各門課程的成績。
字段(FIEld):在表中,每一列稱為一個字段。每一個字段都有相應的描述信息,如數據類型、數據寬度等。
記錄(Record):在表中,每一行稱為一條記錄。
索引(Index):為了加快訪問數據庫的速度,許多數據庫都使用索引。
13.1.2 數據庫應用程序
DBMS中存儲了大量的數據信息,其目的是為用戶提供數據信息服務,而數據庫應用程序正是與DBMS進行通信,並訪問DBMS中的數據,它是DBMS實現其對外提供數據信息服務這一目的的唯一途徑。簡單地說,數據庫應用程序是一個允許用戶插入、修改、刪除並報告數據庫中的數據的計算機程序。數據庫應用程序在傳統上是由程序員用一種或多種通用或專用的程序設計語言編寫的,但是近年來出現了多種面向用戶的數據庫應用程序開發工具,這些工具可以簡化使用DBMS的過程,並且不需要專門編程。Delphi就是一種強有力的數據庫應用程序開發工具。
用來生成數據庫應用程序的語言主要分為三大類型:
1.過程化語言
標准的計算機程序設計語言如Pascal、Basic和C都是過程化語言,這些語言可以通過某種“應用程序接口”(API)來創建數據庫應用程序,這種API由一組標准的函數(或調用)組成,這些函數和調用則擴展了語言的功能,使之能訪問數據庫中的數據。當程序設計人員用過程化語言創建數據庫應用時,必須把應用的代碼編寫成一系列的過程,每個過程執行應用的某一部分的工作,如一個過程查詢數據庫,而另一過程更新數據庫中的數據,然後不同的過程通過其他的用戶界面過程(例如菜單系統)聯系在一起,並且在應用中的適當地方運行。
上述這些過程化語言一般用來創建非數據庫應用程序,它們通常被稱為“第三代語言”(3GL)。還有一些過程化程序設計語言是某種特定的DBMS專用的, 這些語言一般被稱為“第四代語言”(4GL),即數據庫專用語言。常見的數據庫專用的過程化語言如DBase語言