一、資料庫的基本知識
1.什麼是資料庫
資料庫這個詞有多種解釋,簡單的定義是這樣的:資料庫(DataBase)是結構化數據的集合。
從廣義上講,資料庫就是數據或信息的集合,相當於一個數據倉庫。具體來說,資料庫是一組經過計算機整理後的數據,在關係資料庫中,它由許多數據表組成。
David M.Kroenke關於資料庫的定義是:資料庫是指自描述的完整記錄的集合。它表達了三層含義:
⑴ 資料庫是自描述的。
資料庫除了包含用戶的源數據以外,還包含關於它本身結構的描述,這個描述稱作數據詞典(或數據目錄、元數據)。從這個意義上講,資料庫與作為一個自描述的書的集合的圖書館相似:除了書籍以外,圖書館還包含一個描述它們的卡片目錄。
⑵ 資料庫是集成記錄的集合。
數據的標準結構如下:位 —> 字節 —> 域 —> 記錄 —> 文件, 按這種模式說,文件組合成資料庫是非常誘人的,但卻無法深入,資料庫將包含四種數據:用戶數據文件、元數據、索引、應用元數據。
用戶數據大多表示為表格,稱之為數據表,它存放了用戶的各種有用資料和數據。例如:
學生姓名
指導老師
老師電話
劉小景
錢志國
5666043
李 娟
楊一如
5666120
古介新
吳 萌
4108219
屈 達
錢志國
5666043
王成義
吳 萌
4108219
元數據是關於用戶數據的結構的描述,稱之為系統表。例如:
表名
欄位數
主關鍵字
Student
7
學號
Adviser
4
姓名
Guideplan
3
學生姓名
索引數據改進了資料庫的性能和可訪問性,稱之為概括數據。例如:
學生姓名
指導老師
古介新
吳 萌
李 娟
楊一如
劉小景
錢志國
屈 達
錢志國
王成義
吳 萌
指導老師
老師電話
錢志國
5666043
吳 萌
4108219
楊一如
5666120
應用元數據用來存儲用戶表格、報表、查詢、媒體數據和其它形式的應用組件。並非所有的DBMS都支持應用組件,支持應用組件的DBMS也不一定把全部組件的結構作為應用元數據存儲在資料庫中。
⑶ 資料庫是模型的模型。
資料庫是用戶關於現實世界的模型的模型。具體解釋是:非計算機操作數據的情況下,人們所建立的一套文件、表格、數字等的處理內容和規則是人們關於現實世界的模型,在計算機操作數據的情況下,資料庫設計者將在人們關於現實世界的模型的基礎上再次建模,從而建立一個適用於計算機處理的資料庫模型。
三個世界的劃分:
現實世界(客觀世界):實體、實體集、屬性、實體標識符
信息世界(觀念世界):記錄、文 件、欄位、關鍵字
數據世界(計算機世界):位、字節、字、塊、卷
2.從文件管理到資料庫管理
前面提到從文件組合成資料庫是非常誘人的,但卻無法深入。實際上,在資料庫處理之前,確實採用的文件管理方式,即用數據文件來存放數據,並通過高級語言完成對數據文件的操作。一個數據文件包含若干個「記錄(Record)」,一個記錄又包含若干個「數據項(Data Item)」,用戶通過對文件的訪問實現對記錄的存取。通常稱支持這種數據管理方式的軟體為「文件管理系統」,它一直是作業系統的重要組成部分。
隨著計算機處理的數據量不斷增加,文件管理系統採用的一次最多存取一個記錄的訪問方式,以及在不同文件之間缺乏相互聯繫的結構,不能適應管理大量數據的需要,於是資料庫管理系統應運而生,並在上世紀60年代末誕生了第一個商業化的資料庫系統——IBM的IMS(Information Management System)。
3.資料庫系統的特點
與文件系統比較,資料庫系統有下列特點:
⑴ 數據的結構化。文件系統中單個文件的數據一般是有結構的,但從整個系統來看,數據在整體上沒有結構,資料庫系統則不同,在同一資料庫中的數據文件是有聯繫的,且在整體上服從一定的結構形式。
⑵ 數據的共享性。在文件系統中,數據一般是由特定的用戶專用,資料庫系統中的數據可以有為不同部門、不同單位甚至不同用戶所共享。
⑶ 數據的獨立性。在文件系統中,數據結構和應用程式相互依賴,一方的改變總是要影響到另一方的改變。資料庫系統中的數據文件與應用程式之間的這種依賴關係已大大減小。
⑷ 數據的完整性。在資料庫系統中,可以通過對數據的性質進行檢查而管理它們,使之保持完整正確。如商品的價格不能為負數,一場電影的定票數不能超過電影院的座位數。
⑸ 數據的靈活性。資料庫系統不是把數據簡單堆積,而是在記錄數據信息的基礎上具有多種管理功能,如輸入、輸出、查詢、編輯、修改等。
⑹ 數據的安全性。資料庫系統中的數據具有安全管理功能。
⑺ 數據可控冗餘度。數據專用時,每個用戶擁有使用自己的數據,難免會出現數據相互重複,這就是數據冗餘。實現數據共享後,不必要的數據重複將全部消除,有時為了提高查詢效率,也保留少量的重複數據,其冗餘度可以由設計者控制。
4.資料庫系統的分代
資料庫系統可分為三代。
⑴ 非關係型資料庫系統。是對第一代資料庫系統的總稱,包括層次型資料庫系統和網狀型資料庫系統。其主要特點是:採用「記錄」作為基本數據結構,在不同「記錄型」之間,允許存在相互聯繫,一次查詢只能訪問資料庫中的一個記錄。(P3)
⑵ 關係型資料庫系統(RDBS)。1970年,E.F.Codd在一篇名為「A Relational Model of Data For Large Shared Databanks(大型共享資料庫數據的關係模型)」文章提出了「關係模型」的概念。70年代中期,商業化的RDBS問世,資料庫系統進入第二代,目前PC機上使用的資料庫系統主要是第二代資料庫系統。其主要特點是:採用「表格」作為基本數據結構,在不同的表之間,允許存在相互聯繫,一次查詢可以訪問整個表格中的數據。
⑶ 對象—關係模型數據系統(ORDBS)。將資料庫技術與面向對象技術相結合,以實現對多媒體數據和其它複雜對象數據的處理,這就產生了第三代資料庫系統。其主要特點是:包含第二代資料庫系統的功能,支持正文、圖形圖像、聲音等新的數據類型,支持類、繼承、方法等對象機制,提供高度集成的、可支持客戶/伺服器應用的用戶接口。
二、資料庫管理系統和資料庫應用系統
1.資料庫管理系統
實際上,資料庫是存於某種存儲介質上的相關數據有組織的集合,為了在計算機中對資料庫進行定義、描述、建立、管理和維護,應通過特定的資料庫語言進行,這就需要一套支持該資料庫語言的系統軟體,稱作資料庫管理系統(DBMS)。一般說,資料庫管理系統具有下列功能:
⑴ 數據定義功能。DBMS向用戶提供「數據定義語言(DDL)」,用於描述資料庫的結構,在關係資料庫中其標準語言是SQL(Structured Query Language),它提供了DDL語句。
⑵ 數據操作功能。對資料庫進行檢索和查詢,是資料庫的主要應用。為此DBMS向用戶提供「數據操縱語言(DML)」,用於對資料庫中的數據進行查詢,同樣SQL也提供了DML語句。
⑶ 控制和管理功能。除了DDL和DML兩類語句外,DBMS還具有必要的控制和管理功能。
在討論可視化的資料庫管理系統(如VFP、Access)時,一般而言,從組成結構上看,DBMS的特點和功能可以分為三個子系統:設計工具子系統、運行子系統和DBMS引擎。
設計工具子系統提供設計工具,包括表生成、窗體生成、查詢生成、報表生成和過程語言編譯器等工具,設計工具子系統與開發人員相關聯。
運行子系統提供對設計時產生的程序的執行,它與用戶接口。
DBMS引擎介於設計工具及運行子系統與數據本身之間。實際上,它將根據以上組件的請求,將其翻譯成對作業系統的命令,以實現對物理介質上的數據的讀寫。除此之外,DBMS引擎還涉及事務管理、鎖定、備份和恢復等工作。
2.資料庫應用系統
資料庫應用系統(DataBase Application System、DBAS)專指基於資料庫的應用系統。一個DBAS通常由資料庫和應用程式兩部分組成,它們都需要在DBMS支持下開發。開發一個信息系統,一是要設計資料庫,二是要開發應用程式。並且,這二者亦是相互關聯的。
三、Access 2003內部結構
Access 2003是一個功能強大、方便靈活的關係型資料庫管理系統。Access 2003作為一個小型資料庫管理系統,它最多能為由此由25-30臺計算機組成的小型網絡服務。
進入Access 2003,打開一個示例資料庫,可以看到如下的界面,在這個界面的【對象】欄中,包含有Access 2003的七個對象。另在【組】欄中,可以包含資料庫中不同類型對象的快捷方式的列表,通過創建組,並將對象添加到組,從而創建了相關對象的快捷方式集合。
Access 2003所提供的對象均存放在同一個資料庫文件(.mdb)中。Access 2003中各對象的關係如下圖所示。
下面對Access 2003每一類對象進行簡單介紹。
1. 表
表是Access 2003中所有其他對象的基礎,因為表存儲了其他對象用來在Access 2003中執行任務和活動的數據。每個表由若干記錄組成,每條記錄都對應於一個實體,同一個表中的所有記錄都具有相同的欄位定義,每個欄位存儲著對應於實體的不同屬性的數據信息。請看下圖。
每個表都必須有主關鍵字,其值能唯一標識一條記錄的欄位。以使記錄唯一(記錄不能重複,它與實體一一對應)。表可以建立索引,以加速數據查詢。
具有複雜結構的數據無法用一個表表示,可用多表表示。表與表之間可建立關聯。
每一個欄位都包含某一類型的信息,如數據類型有文本、數字、日期、貨幣、OLE對象(聲音、圖像)、超連結等。
表的建立包括兩部分,一部分是表的結構建立,另一部分是表的數據建立。
資料庫的每個對象都有兩個視圖,一個是設計視圖,另一個是數據表對象視圖。表的設計視圖,可通過表設計器觀察,它同時也是建立表結構的工具和方法。
應當注意,Access 資料庫只是資料庫各個部分(表、查詢、報表、模塊、宏和指向Web HTML文檔的數據訪問頁面)的一個完整的容器,而表是存儲相關數據的實際容器。
2. 查詢
資料庫的主要目的是存儲和提取信息,在輸入數據後,信息可以立即從資料庫中獲取,也可以在以後再獲取這些信息。查詢成為了資料庫操作的一個重要內容。
Access 2003提供了三種查詢方式。
⑴ 交叉數據表查詢
查詢數據不僅要在數據表中找到特定的欄位、記錄,有時還需要對數據表進行統計、摘要。如求和、計數、求平均值等,這樣就需要交叉數據表查詢方式。請看下面的例子。
SELECT 訂單明細.訂單ID, 訂單明細.產品ID, 產品.產品名稱, 訂單明細.單價,
訂單明細.數量, 訂單明細.折扣,
CCur(訂單明細.單價*[數量]*(1-[折扣])/100)*100 AS 總價
FROM 產品 INNER JOIN 訂單明細 ON 產品.產品ID=訂單明細.產品ID
ORDER BY 訂單明細.訂單ID;
註:Ccur函數,返回一個轉換為貨幣數據類型表達式的值。
⑵ 動作查詢
動作查詢,也稱為操作查詢,可以運用一個動作同時修改多個記錄,或者對數據表進行統一修改。動作查詢有4種,生成表、刪除、添加和更新。
⑶ 參數查詢
參數即條件。參數查詢是選擇查詢的一種,指從一張或多張表中查詢那些符合條件的數據信息,並可以為他們設置查詢條件。
3. 窗體
窗體向用戶提供一個交互式的圖形界面,用於進行數據的輸入、顯示及應用程式的執行控制。在窗體中可以運行宏和模塊,以實現更加複雜的功能。在窗體中也可以進行列印。
可以設置窗體所顯示的內容,還可以添加篩選條件來決定窗體中所要顯示的內容。窗體顯示的內容可以來自一個表或多個表,也可以是查詢的結果。還可以使用子窗體來顯示多個數據表。
4. 報表
報表用來將選定的數據信息進行格式化顯示和列印。報表可以基於某一數據表,也可以基於某一查詢結果,這個查詢結果可以是在多個表之間的關係查詢結果集。報表在列印之前可以預覽。另外,報表也可以進行計算,如求和、求平均值等。在報表中還可以加入圖表。
5. 宏
宏是若干個操作的集合,用來簡化一些經常性的操作。用戶可以設計一個宏來控制一系列的操作,當執行這個宏時,就會按這個宏的定義依次執行相應的操作。宏可以用來打開並執行查詢、打開表、打開窗體、列印、顯示報表、修改數據及統計信息、修改記錄、修改數據表中的數據、插入記錄、刪除記錄、關閉資料庫等操作,也可以運行另一個宏或模塊。
宏沒有具體的實際顯示,只有一系列的操作。所以宏只能顯示它本身的設計視圖。
宏有許多類型,它們之間的差別在於用戶觸發宏的方式。如果創建了一個AutoKeys宏,用戶可以通過按下一個鍵順序地執行宏。如果創建了一個事件宏,當用戶執行一個特定操作時,如雙擊一個控制項或右擊窗體的主體時,Access 2003就啟動這個宏。如果創建了一個條件宏,當用戶設置的條件得到滿足時,條件宏就會運行。
6. 模塊
模塊是用Access 2003所提供的VBA(Visual Basic for Application)語言編寫的程序段。模塊有兩種基本類型:類模塊和標準模塊。模塊中的每一個過程都可以是一個函數過程或一個子程序。模塊可以與報表、窗體等對象結合使用,以建立完整的應用程式。VBA語言是VB的一個子集。
VBA程序設計使用的是現在流行的面向對象的程序設計方法。另:宏可以轉換為模塊。
7. Web頁
Web頁是Access 2003提供的新功能,它使得Access 2003與Internet緊密結合起來。在Access 2003中用戶可以直接建立Web頁。通過Web頁,用戶可以方便、快捷地將所有文件作為Web發布程序存儲到指定的文件夾,或將其複製到Web伺服器上,以便在網絡上發布信息。