一、數(shù)據(jù)庫的基本知識
1.什么是數(shù)據(jù)庫
數(shù)據(jù)庫這個詞有多種解釋,簡單的定義是這樣的:數(shù)據(jù)庫(DataBase)是結(jié)構(gòu)化數(shù)據(jù)的集合。
從廣義上講,數(shù)據(jù)庫就是數(shù)據(jù)或信息的集合,相當(dāng)于一個數(shù)據(jù)倉庫。具體來說,數(shù)據(jù)庫是一組經(jīng)過計算機整理后的數(shù)據(jù),在關(guān)系數(shù)據(jù)庫中,它由許多數(shù)據(jù)表組成。
David M.Kroenke關(guān)于數(shù)據(jù)庫的定義是:數(shù)據(jù)庫是指自描述的完整記錄的集合。它表達(dá)了三層含義:
⑴ 數(shù)據(jù)庫是自描述的。
數(shù)據(jù)庫除了包含用戶的源數(shù)據(jù)以外,還包含關(guān)于它本身結(jié)構(gòu)的描述,這個描述稱作數(shù)據(jù)詞典(或數(shù)據(jù)目錄、元數(shù)據(jù))。從這個意義上講,數(shù)據(jù)庫與作為一個自描述的書的集合的圖書館相似:除了書籍以外,圖書館還包含一個描述它們的卡片目錄。
⑵ 數(shù)據(jù)庫是集成記錄的集合。
數(shù)據(jù)的標(biāo)準(zhǔn)結(jié)構(gòu)如下:位 —> 字節(jié) —> 域 —> 記錄 —> 文件, 按這種模式說,文件組合成數(shù)據(jù)庫是非常誘人的,但卻無法深入,數(shù)據(jù)庫將包含四種數(shù)據(jù):用戶數(shù)據(jù)文件、元數(shù)據(jù)、索引、應(yīng)用元數(shù)據(jù)。
用戶數(shù)據(jù)大多表示為表格,稱之為數(shù)據(jù)表,它存放了用戶的各種有用資料和數(shù)據(jù)。例如:
學(xué)生姓名
指導(dǎo)老師
老師電話
劉小景
錢志國
5666043
李 娟
楊一如
5666120
古介新
吳 萌
4108219
屈 達(dá)
錢志國
5666043
王成義
吳 萌
4108219
元數(shù)據(jù)是關(guān)于用戶數(shù)據(jù)的結(jié)構(gòu)的描述,稱之為系統(tǒng)表。例如:
表名
字段數(shù)
主關(guān)鍵字
Student
7
學(xué)號
Adviser
4
姓名
Guideplan
3
學(xué)生姓名
索引數(shù)據(jù)改進(jìn)了數(shù)據(jù)庫的性能和可訪問性,稱之為概括數(shù)據(jù)。例如:
學(xué)生姓名
指導(dǎo)老師
古介新
吳 萌
李 娟
楊一如
劉小景
錢志國
屈 達(dá)
錢志國
王成義
吳 萌
指導(dǎo)老師
老師電話
錢志國
5666043
吳 萌
4108219
楊一如
5666120
應(yīng)用元數(shù)據(jù)用來存儲用戶表格、報表、查詢、媒體數(shù)據(jù)和其它形式的應(yīng)用組件。并非所有的DBMS都支持應(yīng)用組件,支持應(yīng)用組件的DBMS也不一定把全部組件的結(jié)構(gòu)作為應(yīng)用元數(shù)據(jù)存儲在數(shù)據(jù)庫中。
⑶ 數(shù)據(jù)庫是模型的模型。
數(shù)據(jù)庫是用戶關(guān)于現(xiàn)實世界的模型的模型。具體解釋是:非計算機操作數(shù)據(jù)的情況下,人們所建立的一套文件、表格、數(shù)字等的處理內(nèi)容和規(guī)則是人們關(guān)于現(xiàn)實世界的模型,在計算機操作數(shù)據(jù)的情況下,數(shù)據(jù)庫設(shè)計者將在人們關(guān)于現(xiàn)實世界的模型的基礎(chǔ)上再次建模,從而建立一個適用于計算機處理的數(shù)據(jù)庫模型。
三個世界的劃分:
現(xiàn)實世界(客觀世界):實體、實體集、屬性、實體標(biāo)識符
信息世界(觀念世界):記錄、文 件、字段、關(guān)鍵字
數(shù)據(jù)世界(計算機世界):位、字節(jié)、字、塊、卷
2.從文件管理到數(shù)據(jù)庫管理
前面提到從文件組合成數(shù)據(jù)庫是非常誘人的,但卻無法深入。實際上,在數(shù)據(jù)庫處理之前,確實采用的文件管理方式,即用數(shù)據(jù)文件來存放數(shù)據(jù),并通過高級語言完成對數(shù)據(jù)文件的操作。一個數(shù)據(jù)文件包含若干個“記錄(Record)”,一個記錄又包含若干個“數(shù)據(jù)項(Data Item)”,用戶通過對文件的訪問實現(xiàn)對記錄的存取。通常稱支持這種數(shù)據(jù)管理方式的軟件為“文件管理系統(tǒng)”,它一直是操作系統(tǒng)的重要組成部分。
隨著計算機處理的數(shù)據(jù)量不斷增加,文件管理系統(tǒng)采用的一次最多存取一個記錄的訪問方式,以及在不同文件之間缺乏相互聯(lián)系的結(jié)構(gòu),不能適應(yīng)管理大量數(shù)據(jù)的需要,于是數(shù)據(jù)庫管理系統(tǒng)應(yīng)運而生,并在上世紀(jì)60年代末誕生了第一個商業(yè)化的數(shù)據(jù)庫系統(tǒng)——IBM的IMS(Information Management System)。
3.?dāng)?shù)據(jù)庫系統(tǒng)的特點
與文件系統(tǒng)比較,數(shù)據(jù)庫系統(tǒng)有下列特點:
⑴ 數(shù)據(jù)的結(jié)構(gòu)化。文件系統(tǒng)中單個文件的數(shù)據(jù)一般是有結(jié)構(gòu)的,但從整個系統(tǒng)來看,數(shù)據(jù)在整體上沒有結(jié)構(gòu),數(shù)據(jù)庫系統(tǒng)則不同,在同一數(shù)據(jù)庫中的數(shù)據(jù)文件是有聯(lián)系的,且在整體上服從一定的結(jié)構(gòu)形式。
⑵ 數(shù)據(jù)的共享性。在文件系統(tǒng)中,數(shù)據(jù)一般是由特定的用戶專用,數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)可以有為不同部門、不同單位甚至不同用戶所共享。
⑶ 數(shù)據(jù)的獨立性。在文件系統(tǒng)中,數(shù)據(jù)結(jié)構(gòu)和應(yīng)用程序相互依賴,一方的改變總是要影響到另一方的改變。數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)文件與應(yīng)用程序之間的這種依賴關(guān)系已大大減小。
⑷ 數(shù)據(jù)的完整性。在數(shù)據(jù)庫系統(tǒng)中,可以通過對數(shù)據(jù)的性質(zhì)進(jìn)行檢查而管理它們,使之保持完整正確。如商品的價格不能為負(fù)數(shù),一場電影的定票數(shù)不能超過電影院的座位數(shù)。
⑸ 數(shù)據(jù)的靈活性。數(shù)據(jù)庫系統(tǒng)不是把數(shù)據(jù)簡單堆積,而是在記錄數(shù)據(jù)信息的基礎(chǔ)上具有多種管理功能,如輸入、輸出、查詢、編輯、修改等。
⑹ 數(shù)據(jù)的安全性。數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)具有安全管理功能。
⑺ 數(shù)據(jù)可控冗余度。數(shù)據(jù)專用時,每個用戶擁有使用自己的數(shù)據(jù),難免會出現(xiàn)數(shù)據(jù)相互重復(fù),這就是數(shù)據(jù)冗余。實現(xiàn)數(shù)據(jù)共享后,不必要的數(shù)據(jù)重復(fù)將全部消除,有時為了提高查詢效率,也保留少量的重復(fù)數(shù)據(jù),其冗余度可以由設(shè)計者控制。
4.?dāng)?shù)據(jù)庫系統(tǒng)的分代
數(shù)據(jù)庫系統(tǒng)可分為三代。
⑴ 非關(guān)系型數(shù)據(jù)庫系統(tǒng)。是對第一代數(shù)據(jù)庫系統(tǒng)的總稱,包括層次型數(shù)據(jù)庫系統(tǒng)和網(wǎng)狀型數(shù)據(jù)庫系統(tǒng)。其主要特點是:采用“記錄”作為基本數(shù)據(jù)結(jié)構(gòu),在不同“記錄型”之間,允許存在相互聯(lián)系,一次查詢只能訪問數(shù)據(jù)庫中的一個記錄。(P3)
⑵ 關(guān)系型數(shù)據(jù)庫系統(tǒng)(RDBS)。1970年,E.F.Codd在一篇名為“A Relational Model of Data For Large Shared Databanks(大型共享數(shù)據(jù)庫數(shù)據(jù)的關(guān)系模型)”文章提出了“關(guān)系模型”的概念。70年代中期,商業(yè)化的RDBS問世,數(shù)據(jù)庫系統(tǒng)進(jìn)入第二代,目前PC機上使用的數(shù)據(jù)庫系統(tǒng)主要是第二代數(shù)據(jù)庫系統(tǒng)。其主要特點是:采用“表格”作為基本數(shù)據(jù)結(jié)構(gòu),在不同的表之間,允許存在相互聯(lián)系,一次查詢可以訪問整個表格中的數(shù)據(jù)。
⑶ 對象—關(guān)系模型數(shù)據(jù)系統(tǒng)(ORDBS)。將數(shù)據(jù)庫技術(shù)與面向?qū)ο蠹夹g(shù)相結(jié)合,以實現(xiàn)對多媒體數(shù)據(jù)和其它復(fù)雜對象數(shù)據(jù)的處理,這就產(chǎn)生了第三代數(shù)據(jù)庫系統(tǒng)。其主要特點是:包含第二代數(shù)據(jù)庫系統(tǒng)的功能,支持正文、圖形圖像、聲音等新的數(shù)據(jù)類型,支持類、繼承、方法等對象機制,提供高度集成的、可支持客戶/服務(wù)器應(yīng)用的用戶接口。
二、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫應(yīng)用系統(tǒng)
1.?dāng)?shù)據(jù)庫管理系統(tǒng)
實際上,數(shù)據(jù)庫是存于某種存儲介質(zhì)上的相關(guān)數(shù)據(jù)有組織的集合,為了在計算機中對數(shù)據(jù)庫進(jìn)行定義、描述、建立、管理和維護(hù),應(yīng)通過特定的數(shù)據(jù)庫語言進(jìn)行,這就需要一套支持該數(shù)據(jù)庫語言的系統(tǒng)軟件,稱作數(shù)據(jù)庫管理系統(tǒng)(DBMS)。一般說,數(shù)據(jù)庫管理系統(tǒng)具有下列功能:
⑴ 數(shù)據(jù)定義功能。DBMS向用戶提供“數(shù)據(jù)定義語言(DDL)”,用于描述數(shù)據(jù)庫的結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中其標(biāo)準(zhǔn)語言是SQL(Structured Query Language),它提供了DDL語句。
⑵ 數(shù)據(jù)操作功能。對數(shù)據(jù)庫進(jìn)行檢索和查詢,是數(shù)據(jù)庫的主要應(yīng)用。為此DBMS向用戶提供“數(shù)據(jù)操縱語言(DML)”,用于對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢,同樣SQL也提供了DML語句。
⑶ 控制和管理功能。除了DDL和DML兩類語句外,DBMS還具有必要的控制和管理功能。
在討論可視化的數(shù)據(jù)庫管理系統(tǒng)(如VFP、Access)時,一般而言,從組成結(jié)構(gòu)上看,DBMS的特點和功能可以分為三個子系統(tǒng):設(shè)計工具子系統(tǒng)、運行子系統(tǒng)和DBMS引擎。
設(shè)計工具子系統(tǒng)提供設(shè)計工具,包括表生成、窗體生成、查詢生成、報表生成和過程語言編譯器等工具,設(shè)計工具子系統(tǒng)與開發(fā)人員相關(guān)聯(lián)。
運行子系統(tǒng)提供對設(shè)計時產(chǎn)生的程序的執(zhí)行,它與用戶接口。
DBMS引擎介于設(shè)計工具及運行子系統(tǒng)與數(shù)據(jù)本身之間。實際上,它將根據(jù)以上組件的請求,將其翻譯成對操作系統(tǒng)的命令,以實現(xiàn)對物理介質(zhì)上的數(shù)據(jù)的讀寫。除此之外,DBMS引擎還涉及事務(wù)管理、鎖定、備份和恢復(fù)等工作。
2.?dāng)?shù)據(jù)庫應(yīng)用系統(tǒng)
數(shù)據(jù)庫應(yīng)用系統(tǒng)(DataBase Application System、DBAS)專指基于數(shù)據(jù)庫的應(yīng)用系統(tǒng)。一個DBAS通常由數(shù)據(jù)庫和應(yīng)用程序兩部分組成,它們都需要在DBMS支持下開發(fā)。開發(fā)一個信息系統(tǒng),一是要設(shè)計數(shù)據(jù)庫,二是要開發(fā)應(yīng)用程序。并且,這二者亦是相互關(guān)聯(lián)的。
三、Access 2003內(nèi)部結(jié)構(gòu)
Access 2003是一個功能強大、方便靈活的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。Access 2003作為一個小型數(shù)據(jù)庫管理系統(tǒng),它最多能為由此由25-30臺計算機組成的小型網(wǎng)絡(luò)服務(wù)。
進(jìn)入Access 2003,打開一個示例數(shù)據(jù)庫,可以看到如下的界面,在這個界面的【對象】欄中,包含有Access 2003的七個對象。另在【組】欄中,可以包含數(shù)據(jù)庫中不同類型對象的快捷方式的列表,通過創(chuàng)建組,并將對象添加到組,從而創(chuàng)建了相關(guān)對象的快捷方式集合。
Access 2003所提供的對象均存放在同一個數(shù)據(jù)庫文件(.mdb)中。Access 2003中各對象的關(guān)系如下圖所示。
下面對Access 2003每一類對象進(jìn)行簡單介紹。
1. 表
表是Access 2003中所有其他對象的基礎(chǔ),因為表存儲了其他對象用來在Access 2003中執(zhí)行任務(wù)和活動的數(shù)據(jù)。每個表由若干記錄組成,每條記錄都對應(yīng)于一個實體,同一個表中的所有記錄都具有相同的字段定義,每個字段存儲著對應(yīng)于實體的不同屬性的數(shù)據(jù)信息。請看下圖。