書名: Access數據庫與程序設計(第2版)作者名: 盧湘鴻主編本章字數: 4344字更新時間: 2018-12-29 04:05:08
1.1 數據庫系統概述
數據庫系統是指引進數據庫技術后的整個計算機系統,它可以有效地管理和存取大量的數據資源,滿足多用戶、多應用的不同需求。
1.1.1 數據與數據管理技術
1.數據
數據(Data)是描述事物的符號記錄,可以有多種表現形式,如數字、文字、圖形、圖像、聲音等,它們經過數字化后可以存入計算機。
數據是數據庫中存儲的基本對象,數據與其語義(數據的含義)是密不可分的。例如,75是一個數據,可以表示某個人的身高,也可以表示某個人的體重,還可以表示一個同學某門課的成績等。
2.數據管理技術
數據管理是指對數據進行分類、組織、編碼、存儲、檢索和維護,是數據處理的中心問題。而數據處理則是指對各種數據進行收集、存儲、加工和傳播的一系列活動的總和。
數據庫技術是應數據管理任務的需要而產生的。隨著計算機軟、硬件技術的不斷發展和計算機應用范圍的不斷拓寬,在應用需求的推動下,數據管理技術經歷了人工管理、文件系統和數據庫系統3個發展階段。
(1)人工管理階段 在20 世紀50 年代中期以前,計算機主要用于科學計算。那時,硬件上沒有磁盤等直接存取的存儲設備,軟件上沒有操作系統,更沒有管理數據的軟件。
人工管理數據的主要特點包括以下4點。
① 數據不保存。
② 應用程序管理數據。
③ 數據不共享。一組數據只能對應一個程序,數據冗余量大(一個程序中的數據無法被其他程序利用,因此程序與程序之間存在大量的重復數據,稱為數據冗余)。
④ 數據不具有獨立性。數據與程序彼此依賴,應用程序不僅要規定數據的邏輯結構,而且要設計物理結構(如存儲結構、存取方法、輸入方式等)。
人工管理階段的應用程序與數據之間的對應關系如圖1.1所示。

圖1.1 人工管理階段的應用程序與數據之間的對應關系
(2)文件系統階段 從20世紀50年代后期到20世紀60年代中期,硬件方面有了磁盤、磁鼓等直接存取存儲設備,軟件方面操作系統中已經有了專門的數據管理軟件— 文件系統。
文件系統管理數據的主要特點如下。
① 數據以文件形式長期保存。
② 數據由文件系統管理。在文件系統的支持下,應用程序通過文件名訪問數據文件,程序員不必過多地考慮數據存儲等物理細節。
③ 數據共享性差,冗余度大。在文件系統中,一個(或一組)數據文件基本上對應于一個應用程序,數據文件之間沒有聯系,同一數據項可能重復出現在多個文件中。
④ 數據獨立性差。在文件系統階段,數據和程序可以分開存儲,數據與程序之間有了一定的獨立性,但文件系統中的文件是為某一特定應用服務的,數據仍高度依賴于程序。
文件系統階段的應用程序與數據之間的對應關系如圖1.2所示。

圖1.2 文件系統階段的應用程序與數據之間的對應關系
(3)數據庫系統階段20世紀60年代后期以來,計算機用于管理的規模越來越大,為滿足多用戶、多應用共享數據的需求,出現了統一管理數據的專用軟件系統— 數據庫管理系統。
數據庫系統的主要特點如下。
① 數據結構化。數據庫系統實現整體數據的結構化,數據庫中的數據不再僅僅針對某一個應用,而是面向全組織;不僅內部數據是結構化的,整體也是結構化的,數據之間是具有聯系的。
② 數據由數據庫管理系統統一管理和控制。數據庫管理系統負責數據庫的建立、使用和維護,并提供數據保護和控制功能。
③ 數據的共享性高,冗余度小,易擴充。數據庫系統采用面向全局的觀點組織數據,數據不再面向某個應用,因此,可以被多個用戶、多個應用共享使用。
④ 數據獨立性高。在數據庫系統中,應用程序與數據的邏輯結構和物理存儲結構無關,數據具有較高的邏輯獨立性和物理獨立性。
數據庫系統階段的應用程序與數據之間的對應關系如圖1.3所示。

圖1.3 數據庫系統階段的應用程序與數據之間的對應關系
1.1.2 數據庫系統
1.數據庫
數據庫(DataBase,DB)是指長期存儲在計算機內,有組織的、大量的、可共享的數據集合。數據庫中的數據按一定的數據模型組織、描述和存儲,具有較小的冗余度、較高的數據獨立性和易擴展性,并可為各種用戶共享。
數據庫中不僅包括描述事物的數據本身,而且包括相關事物之間的聯系。對數據庫中數據的增加、刪除、修改和查詢等操作,均由數據庫管理系統統一管理和控制。
2.數據庫管理系統
數據庫管理系統(DataBase Management System,DBMS)是位于用戶與操作系統之間的一層數據管理軟件,在操作系統支持下工作,是數據庫系統的核心組成部分。
DBMS的主要功能包括以下4方面:
(1)數據定義 定義數據庫結構,包括定義表、索引、視圖等數據對象。
(2)數據操縱 實現對數據庫的查詢和更新(插入、刪除、修改)操作。
(3)數據庫的運行管理 數據庫在建立、運行和維護時由DBMS統一管理、統一控制,以保證數據的安全性、完整性、多用戶對數據的并發使用,以及發生故障后的系統恢復。
安全性控制可防止未經允許的用戶存取數據,完整性控制可保證數據的正確性、有效性和相容性,并發控制可防止多用戶并發訪問數據時由于相互干擾而產生的數據不一致。
(4)數據庫的建立和維護 包括數據庫初始數據的輸入和轉換,數據庫的轉儲和恢復,數據庫的重組織,性能監視和分析等。
3.數據庫系統
數據庫系統(DataBase System,DBS)是指在計算機系統中引入數據庫后的系統,一般由數據庫、數據庫管理系統(及其開發工具)、應用系統和數據庫管理員構成。
數據庫管理員(DataBase Administrator,DBA)是負責數據庫的建立、使用和維護的專門人員。
數據庫應用系統就是利用數據庫系統資源,為特定應用環境開發的應用軟件,如教學管理系統、人事管理系統、財務管理系統、圖書管理系統等。
數據庫系統各部分之間的關系如圖1.4所示。

圖1.4 數據庫系統各部分之間的關系示意圖
1.1.3 E-R模型
E-R(Entity-Relationship,實體-聯系)模型是一種描述信息世界的方法,它用E-R圖來組織數據庫系統的信息結構。
E-R模型獨立于具體的計算機系統,是用戶與數據庫設計人員之間進行交流的工具。
E-R模型的主要成分是實體、聯系和屬性,它們的概念如下。
(1)實體(Entity)客觀存在并可相互區分的事物稱為實體。實體可以是具體的人、事、物,也可以是抽象的概念或聯系。例如,一個職工、一個部門、職工與部門的工作關系等都是實體。
(2)屬性(Attribute)實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。例如,學生實體有學號、姓名、性別、出生日期等屬性。
實體名和各個屬性名的集合構成實體型(Entity Type)。例如,學生(學號,姓名,性別,出生日期)就是一個實體型,(310201,張君,男,1986/6/12)就是學生實體型的一個實體。
同一類型的實體的集合構成實體集(Entity Set),例如,全體學生就是一個實體集。
(3)聯系(Relation)現實世界的事物之間總是存在某種聯系,包括實體內部的聯系(通常指組成實體的各屬性之間的聯系)和實體之間的聯系。
兩個實體之間的聯系可分為以下3類。① 一對一聯系(1:1)如果對于實體集A中的每一個實體,實體集B中至多有一個(也可以沒有)實體與之對應,反之亦然,則稱實體集A與實體集B具有一對一聯系,記為1:1。
例如,學校里的每個班級只有一個正班長,而每個正班長只在一個班級中任職,則班級與班長之間就具有一對一聯系。
② 一對多聯系(1:n)如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之對應;反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之對應,則稱實體集A與實體集B具有一對多聯系,記為1:n。
例如,一個班級中有多名學生,而每名學生只屬于一個班級,則班級與學生之間就具有一對多聯系。
③ 多對多聯系(m:n)如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之對應;反之,對于實體集B中的每一個實體,實體集A中也有m個實體(m≥0)與之對應,則稱實體集A與實體集B具有多對多聯系,記為m:n。
例如,一名學生可以同時選修多門課程,而一門課程也可以同時讓多名學生選修,則學生與課程之間就具有多對多聯系。
【例1.1】 用E-R模型描述某高校的教學組織情況:學校有若干系部,每個系部有若干學生,每名學生可選修多門課程。
本例涉及“系部”、“學生”和“課程”3個實體,系部與學生之間的“隸屬”關系為一對多的聯系,學生與課程之間的“選課”關系為多對多的聯系。
假設“系部”實體的屬性有系號、系名和系主任,“學生”實體的屬性有學號、姓名和性別,“課程”實體的屬性有課程號、課程名和學分,“選課”聯系中包含成績屬性。
E-R模型如圖1.5所示。其中,矩形表示實體型,矩形框內為實體名;橢圓表示屬性,橢圓框內為屬性名;菱形表示聯系,菱形框內為聯系名;無向邊用來連接實體型與聯系,邊上注明聯系類型(1:1,1:n或m:n);屬性與對應的實體型或聯系也用無向邊連接。

圖1.5 描述某高校教學組織情況的E-R模型
1.1.4 數據模型
數據模型是現實世界數據特征的抽象,它將數據庫中的數據按照一定的結構組織起來,以反映事物本身及事物之間的各種聯系。
任何一個DBMS都是基于某種數據模型的。為了把現實世界中的具體事物抽象和組織為某一DBMS支持的數據模型,人們通常先將現實世界抽象為信息世界(如用E-R模型表示),然后再將信息世界轉換為機器世界(用數據模型表示)。
目前常用的數據模型有4 種:層次模型、網狀模型、關系模型、面向對象模型。相應地,數據庫也分為層次型數據庫、網狀型數據庫、關系型數據庫、面向對象數據庫。下面簡要介紹前3種數據模型。
(1)層次模型 用樹狀結構表示實體及實體間聯系的數據模型稱為層次模型,它是數據庫系統最早使用的一種模型。
層次模型的特征是:有且僅有一個節點沒有父節點,它就是根節點;其他節點有且只有一個父節點。圖1.6所示為一個層次模型示例。

圖1.6 層次模型示例
在層次模型中,每個節點表示一個實體型,存儲一條記錄。節點之間的連線(有向邊)表示實體之間的聯系,這種聯系表示一對一或一對多的關系。
層次模型結構簡單、處理方便、算法規范,適于表達現實世界中具有一對多聯系的事物,如行政關系、家族關系等,但不能直接表達實體間的多對多聯系。
(2)網狀模型 用網狀結構表示實體及實體間聯系的數據模型稱為網狀模型。
網狀模型的特征是:允許一個以上的節點沒有父節點,允許一個節點有多個父節點。圖1.7所示為一個網狀模型示例。

圖1.7 網狀模型示例
網狀模型能夠更為直接地描述現實世界,表示實體間的各種聯系,但它的結構復雜,實現的算法也復雜。
層次模型和網狀模型在本質上是一樣的,即每個節點表示一個實體型,存儲一條記錄,節點之間的連線表示實體間的聯系,用鏈接指針來實現。
(3)關系模型 用二維表結構來表示實體及實體間聯系的數據模型稱為關系模型。關系數據模型以關系數學理論為基礎,一個關系對應一個二維表。
關系模型的概念單一,無論實體還是實體之間的聯系都用關系來表示。例如,學生、課程、學生與課程之間的“選課”聯系都用關系來表示。圖1.8所示為一個關系模型示例。

圖1.8 關系模型示例
關系模型是目前最常用也是最重要的一種數據模型。20世紀80年代以來,新推出的數據庫管理系統幾乎都支持關系模型,如Oracle、SQL Server、Sybase、Visual FoxPro,以及本書所要介紹的Microsoft Access,它們都是基于關系模型的關系數據庫管理系統。