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