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