數(shù)據(jù)庫基本原理數(shù)據(jù)庫概述數(shù)據(jù)模型關(guān)系的.ppt_第1頁
數(shù)據(jù)庫基本原理數(shù)據(jù)庫概述數(shù)據(jù)模型關(guān)系的.ppt_第2頁
數(shù)據(jù)庫基本原理數(shù)據(jù)庫概述數(shù)據(jù)模型關(guān)系的.ppt_第3頁
數(shù)據(jù)庫基本原理數(shù)據(jù)庫概述數(shù)據(jù)模型關(guān)系的.ppt_第4頁
數(shù)據(jù)庫基本原理數(shù)據(jù)庫概述數(shù)據(jù)模型關(guān)系的.ppt_第5頁
已閱讀5頁,還剩426頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1章 數(shù)據(jù)庫基本原理 1.1 數(shù)據(jù)庫概述 1.2 數(shù)據(jù)模型 1.3關(guān)系的完整性 1.4關(guān)系模型的規(guī)范化,1.1 數(shù)據(jù)庫概述,數(shù)據(jù)庫技術(shù)產(chǎn)生于20世紀(jì)60年代中期,幾十年來得到了迅速發(fā)展。 人們對(duì)信息和數(shù)據(jù)的利用和處理已進(jìn)入自動(dòng)化、網(wǎng)絡(luò)化和社會(huì)化階段,如銀行儲(chǔ)蓄、股票交易、資料查詢、氣象預(yù)報(bào)、機(jī)票預(yù)定等。這些任務(wù)既需要大量數(shù)據(jù),又要求快速處理并及時(shí)得到結(jié)果,是傳統(tǒng)的人工方法不可能完成的。 飛速發(fā)展的計(jì)算機(jī)技術(shù)使上述大規(guī)模的數(shù)據(jù)處理得以實(shí)現(xiàn)。,1.1.1 數(shù)據(jù)庫的產(chǎn)生和發(fā)展,1.1.1 (續(xù)一),數(shù)據(jù)庫 (Database) 這個(gè)名詞起源于20世紀(jì)50年代。 從目前情況看,關(guān)系數(shù)據(jù)庫仍然占絕對(duì)的主導(dǎo)地位,并將影響著數(shù)據(jù)庫技術(shù)的發(fā)展。 數(shù)據(jù)庫技術(shù)的發(fā)展已經(jīng)歷了4個(gè)發(fā)展階段:,1.1.1 (續(xù)二),1. 人工管理數(shù)據(jù)的特點(diǎn) (1)數(shù)據(jù)不保存; (2)沒有專用軟件對(duì)數(shù)據(jù)進(jìn)行管理; (3)數(shù)據(jù)不共享; (4)數(shù)據(jù)不具有獨(dú)立性。 2. 文件系統(tǒng)管理的特點(diǎn) (1)數(shù)據(jù)可以長(zhǎng)期保存; (2)有專用軟件對(duì)數(shù)據(jù)進(jìn)行管理 ; (3)數(shù)據(jù)共享性差、冗余度大; (4)數(shù)據(jù)獨(dú)立性差。,1.1.1 (續(xù)三),3. 數(shù)據(jù)庫系統(tǒng)的特點(diǎn) (1)數(shù)據(jù)結(jié)構(gòu)化; (2)數(shù)據(jù)冗余度??; (3)數(shù)據(jù)共享性好; (4)數(shù)據(jù)獨(dú)立性高; (5)數(shù)據(jù)有統(tǒng)一管理和控制。,1.1.1 (續(xù)四),4. 高級(jí)數(shù)據(jù)庫階段 計(jì)算機(jī)輔助設(shè)計(jì)/制造(CAD/CAM)、計(jì)算機(jī)集成制造(CIM)、地理信息系統(tǒng)(GIS)、辦公信息系統(tǒng)(OIS)、計(jì)算機(jī)輔助超大規(guī)模集成電路設(shè)計(jì)(VLSI CAD)等都需要數(shù)據(jù)庫的支持。 這些系統(tǒng)在數(shù)據(jù)類型或數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)存儲(chǔ)方面有特殊要求,傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)并不能支持。,1.1.2 現(xiàn)實(shí)世界、信息世界、數(shù)據(jù)世界,1. 現(xiàn)實(shí)世界 現(xiàn)實(shí)世界存在著大量的事物。這些事物可以是具體的,也可以是抽象的。 各個(gè)事物都有表征自己的各種特征。 由于考慮問題的不同,同一個(gè)事物可能有不同的特征來描述它。 每一個(gè)事物的全部特征就反映了該事物本身。每一個(gè)事物至少有一個(gè)特征。,1.1.2 (續(xù)一),2. 信息世界 人們觀察各種事物,在大腦中形成抽象概念,這就是信息(Information) 。 信息世界就是現(xiàn)實(shí)世界的事物在人腦中的抽象。,1.1.2 (續(xù)二),3. 數(shù)據(jù)世界 數(shù)據(jù)世界就是信息世界中信息的數(shù)據(jù)化。 信息和數(shù)據(jù)是緊密相關(guān)的,許多場(chǎng)合將它們看作同義詞。 在數(shù)據(jù)世界里,將現(xiàn)實(shí)世界中諸事物凡有規(guī)律的特征都用恰當(dāng)?shù)木幋a表示是非常必要的。 編碼的質(zhì)量是影響數(shù)據(jù)庫系統(tǒng)的決定性因素。,1.1.3 數(shù)據(jù)庫基本概念,(1) 數(shù)據(jù) 數(shù)據(jù)(Data)就是描述信息的符號(hào),是數(shù)據(jù)庫中存儲(chǔ)的基本對(duì)象。 數(shù)據(jù)處理(Data Processing)是將原始數(shù)據(jù)轉(zhuǎn)換成信息的過程。 (2) 數(shù)據(jù)庫 數(shù)據(jù)庫(Database,簡(jiǎn)稱DB)是在計(jì)算機(jī)系統(tǒng)中按照一定數(shù)據(jù)模型組織、存儲(chǔ)和應(yīng)用的相互聯(lián)系的數(shù)據(jù)集合。,1.1.3 (續(xù)一),數(shù)據(jù)庫技術(shù)(Database Technique)就是一種對(duì)數(shù)據(jù)進(jìn)行加工以得到有用信息的計(jì)算機(jī)軟件技術(shù)。 (3) 數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)(Database Management System,簡(jiǎn)稱DBMS)是一種計(jì)算機(jī)軟件系統(tǒng) 。 以數(shù)據(jù)庫管理系統(tǒng)為核心的應(yīng)用系統(tǒng)稱為管理信息系統(tǒng)(Management Information System,簡(jiǎn)稱MIS)。,1.1.3 (續(xù)二),(4) 數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫系統(tǒng)(Database System,簡(jiǎn)稱DBS)就是以數(shù)據(jù)庫應(yīng)用為基礎(chǔ)的計(jì)算機(jī)系統(tǒng)。 數(shù)據(jù)庫系統(tǒng)不僅包括必須存儲(chǔ)的數(shù)據(jù),還包括相應(yīng)的硬件、軟件和各類工作人員。,1.2 數(shù)據(jù)模型,數(shù)據(jù)庫中的大量數(shù)據(jù)必須按嚴(yán)格的數(shù)據(jù)模型來組織。 數(shù)據(jù)庫中的數(shù)據(jù)是高度結(jié)構(gòu)化的,它不僅反映數(shù)據(jù)本身,而且反映數(shù)據(jù)之間的關(guān)系。 數(shù)據(jù)模型就是描述這種關(guān)系的數(shù)據(jù)結(jié)構(gòu)形式。 理想的數(shù)據(jù)模型應(yīng)能滿足三方面的要求:一是能比較真實(shí)地描述現(xiàn)實(shí)世界;二是容易被人所理解;三是便于在計(jì)算機(jī)上實(shí)現(xiàn)。 根據(jù)模型應(yīng)用的不同目的??梢詫⒛P蛣澐譃閮深?,它們分屬于兩個(gè)不同的層次。,1.2 數(shù)據(jù)模型(續(xù)),概念模型(Idea Model)是現(xiàn)實(shí)世界到信息世界的抽象,又稱為信息模型。 數(shù)據(jù)模型(Data Model)是信息世界到數(shù)據(jù)世界的抽象。 數(shù)據(jù)庫領(lǐng)域最常見的數(shù)據(jù)模型有4種:層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P?。其中層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型。 目前,關(guān)系模型是最常用的數(shù)據(jù)模型。以關(guān)系模型為基礎(chǔ)建立的數(shù)據(jù)庫管理系統(tǒng)稱為關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。,1.2.1 數(shù)據(jù)模型的組成要素,數(shù)據(jù)模型通常都是由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束3個(gè)要素組成。 1. 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)是所研究的對(duì)象類型(object type)的集合,用于描述系統(tǒng)的靜態(tài)特征。 2. 數(shù)據(jù)操作 數(shù)據(jù)操作是指數(shù)據(jù)庫中各種對(duì)象(型)的實(shí)例(值)允許執(zhí)行的操作的集合,包括操作及有關(guān)的操作規(guī)則,用于描述系統(tǒng)的動(dòng)態(tài)特征。,1.2.1 數(shù)據(jù)模型的組成要素(續(xù)),3. 數(shù)據(jù)約束條件 數(shù)據(jù)約束條件是一組完整性規(guī)則的集合。 完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和存儲(chǔ)規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。 數(shù)據(jù)模型還應(yīng)該提供定義完整性約束條件的機(jī)制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件。,1.2.2 信息世界的主要概念,1. 實(shí)體 實(shí)體(Entity)就是現(xiàn)實(shí)世界中客觀存在并可相互區(qū)分的事物。 實(shí)體既可以是看得見摸得著的具體的事物,也可以是抽象的概念或聯(lián)系。例如,某一本書、某一架飛機(jī)、某個(gè)學(xué)生等都是實(shí)體。,1.2.2 (續(xù)一),2. 屬性 實(shí)體所具有的某一特征稱為屬性(Attribute)。 一個(gè)實(shí)體由若干個(gè)(至少一個(gè))屬性來描述。 一個(gè)實(shí)體的所有屬性組成實(shí)體本身。 例如,學(xué)生實(shí)體可以由學(xué)號(hào)、姓名、性別、出生年月日、班級(jí)等屬性組成。而(0100001、馮東梅、女、1980/12/26、01電子商務(wù)1)就是一個(gè)學(xué)生(實(shí)體)的屬性值。,1.2.2 (續(xù)二),3. 碼 唯一標(biāo)識(shí)實(shí)體的屬性組稱為碼(Key),通常又稱為關(guān)鍵字。 如果實(shí)體有多個(gè)碼,則可以選定其中一個(gè)碼為主碼(Primary Key),通常又稱為主關(guān)鍵字。 如果實(shí)體只有一個(gè)碼,它也是主碼(主關(guān)鍵字)。,1.2.2 (續(xù)三),例如,一個(gè)學(xué)校里,學(xué)生實(shí)體的學(xué)號(hào)是肯定不重復(fù)的。所以學(xué)號(hào)可以作為學(xué)生實(shí)體的碼。如果學(xué)生實(shí)體中含有身份證號(hào)屬性,則身份證號(hào)也是碼,可以在學(xué)號(hào)和身份證號(hào)中選定一個(gè)作為主碼(主關(guān)鍵字)。 通常情況下只關(guān)注實(shí)體的主碼,所以,在不會(huì)引起混淆時(shí),通常說碼、主碼、關(guān)鍵字或主關(guān)鍵字,含義都相同。 4. 域 屬性的允許取值的集合稱為該屬性的域(Domain)。,1.2.2 (續(xù)四),例如,學(xué)號(hào)的域是7位數(shù)字(某校規(guī)定),性別的域是男、女,班級(jí)的域是該校所有班級(jí)的集合。 5. 實(shí)體型 用實(shí)體名及其所有屬性名集合來抽象和描述同類實(shí)體稱為實(shí)體型(Entity type)。 例如,學(xué)生(學(xué)號(hào)、姓名、性別、出生年月日、班級(jí))就是一個(gè)實(shí)體型。,1.2.2 (續(xù)五),6. 實(shí)體集 同型實(shí)體的集合稱為實(shí)體集(Entity set)。 例如,某個(gè)學(xué)校(或某個(gè)班級(jí))的全體學(xué)生就是一個(gè)實(shí)體集。 7. 聯(lián)系 信息世界的不同實(shí)體集之間和同一實(shí)體集內(nèi)部都可能存在一定的聯(lián)系(Relationship)。,1.2.2 (續(xù)六),數(shù)據(jù)世界的概念是和信息世界的概念相對(duì)應(yīng)的: 數(shù)據(jù)表(Data table)是實(shí)體集的數(shù)據(jù)表示; 記錄(Record)是實(shí)體的數(shù)據(jù)表示; 數(shù)據(jù)項(xiàng)(Item)是屬性的數(shù)據(jù)表示。 記錄由若干數(shù)據(jù)項(xiàng)組成。,1.2.3 實(shí)體的聯(lián)系,信息世界存在的聯(lián)系有兩種:其一是一個(gè)實(shí)體集內(nèi)部的聯(lián)系;其二是不同實(shí)體集之間的聯(lián)系。 1. 實(shí)體集內(nèi)部的聯(lián)系 實(shí)體集內(nèi)部的聯(lián)系通常指組成該實(shí)體的各屬性之間的聯(lián)系。,1.2.3 實(shí)體的聯(lián)系(續(xù)一),在表1-1中,不同實(shí)體的學(xué)號(hào)都不重復(fù),即學(xué)號(hào)與實(shí)體間有一一對(duì)應(yīng)關(guān)系。 學(xué)號(hào)就是學(xué)生情況這個(gè)實(shí)體集的關(guān)鍵字。,1.2.3 實(shí)體的聯(lián)系(續(xù)二),在表1-2中,不同實(shí)體的學(xué)號(hào)(或課程號(hào)、或成績(jī))都有可能重復(fù)。但是,不同實(shí)體的學(xué)號(hào)加課程號(hào)則不可能重復(fù)。所以,學(xué)號(hào)和課程號(hào)這兩個(gè)屬性組成的屬性組是選課及成績(jī)這個(gè)關(guān)系的關(guān)鍵字。,1.2.3 實(shí)體的聯(lián)系(續(xù)三),2. 實(shí)體集之間的聯(lián)系 對(duì)于兩個(gè)不同的實(shí)體集A和B,它們之間的聯(lián)系通常有以下三種方式:,一對(duì)一聯(lián)系(1:1) 一對(duì)多聯(lián)系(1:n) 多對(duì)多聯(lián)系(m:n),1.2.3 實(shí)體的聯(lián)系(續(xù)四),一對(duì)一聯(lián)系是一對(duì)多聯(lián)系的特例,一對(duì)多聯(lián)系又是多對(duì)多聯(lián)系的特例。 多對(duì)多聯(lián)系直接處理起來很困難,通常是將多對(duì)多聯(lián)系轉(zhuǎn)化為兩個(gè)一對(duì)多聯(lián)系來處理。 概念模型和各種數(shù)據(jù)模型均不支持多對(duì)多聯(lián)系,只支持一對(duì)一聯(lián)系和一對(duì)多聯(lián)系。,1.2.3 實(shí)體的聯(lián)系(續(xù)五),同一實(shí)體集內(nèi)的各實(shí)體之間也可以存在一對(duì)一、一對(duì)多或多對(duì)多聯(lián)系。例如,學(xué)生實(shí)體集內(nèi)部存在“領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)”的聯(lián)系,即某一學(xué)生(班長(zhǎng))“領(lǐng)導(dǎo)”多名(全班)學(xué)生,而一個(gè)學(xué)生僅被一個(gè)學(xué)生(班長(zhǎng))“領(lǐng)導(dǎo)”,這就是一對(duì)多聯(lián)系 。 在復(fù)雜問題中,兩個(gè)以上的實(shí)體集之間也往往存在一對(duì)一、一對(duì)多或多對(duì)多聯(lián)系。,1.2.4 概念模型,對(duì)于具體的實(shí)際問題,建立正確合理的概念模型是建立數(shù)據(jù)模型的前提。 一個(gè)好的概念模型應(yīng)該考慮和解決的問題是: (1) 實(shí)際問題需要哪些實(shí)體集以及各個(gè)實(shí)體需要哪些屬性; (2) 這些實(shí)體集內(nèi)部和實(shí)體集之間有怎樣的聯(lián)系; (3) 如果存在多對(duì)多聯(lián)系,如何轉(zhuǎn)化為一對(duì)多聯(lián)系。,1.2.4 概念模型(續(xù)一),表示概念模型最常用的是實(shí)體聯(lián)系方法(entity-relationship approach)。該方法用ER圖來描述。 在ER圖中,實(shí)體型、屬性和聯(lián)系的表示方法如下: (1) 實(shí)體型:用矩形表示,矩形框內(nèi)寫實(shí)體名;,1.2.4 概念模型(續(xù)二),(2) 屬性:用橢圓表示,并用無向線段與相應(yīng)的實(shí)體連接; (3) 聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向線段與有關(guān)的實(shí)體連接。同時(shí)在無向線段旁標(biāo)上聯(lián)系的類型(1:1,1:n或m:n)。 聯(lián)系本身也是一種實(shí)體型,也可以有屬性。如果一個(gè)聯(lián)系有屬性,也用無向線段將屬性與該聯(lián)系連接。,1.2.4 概念模型(續(xù)三),(a)1:1聯(lián)系 (b)1:n聯(lián)系 (c)m:n聯(lián)系 兩個(gè)實(shí)體之間的三類聯(lián)系,1.2.4 概念模型(續(xù)四),學(xué)生實(shí)體、課程實(shí)體及其屬性 將多對(duì)多聯(lián)系轉(zhuǎn)化為一對(duì)多聯(lián)系的一般方法是:增加一個(gè)新的實(shí)體集,并且這個(gè)新的實(shí)體集和原來的兩個(gè)實(shí)體集之間都是一對(duì)多聯(lián)系。,1.2.4 概念模型(續(xù)五),學(xué)生學(xué)習(xí)成績(jī)管理概念模型,1.2.4 概念模型(續(xù)六),這個(gè)例子也給出了將多對(duì)多聯(lián)系轉(zhuǎn)化為一對(duì)多聯(lián)系的一般方法,這就是:增加一個(gè)新的實(shí)體集,并且這個(gè)新的實(shí)體集和原來的兩個(gè)實(shí)體集之間都是一對(duì)多聯(lián)系。,1.2.5 層次模型,層次模型(Hierarchical Model)用樹形結(jié)構(gòu)表示各類實(shí)體以及實(shí)體間的聯(lián)系。 從樹的觀點(diǎn)看,層次模型滿足以下兩個(gè)條件: (1) 有且僅有一個(gè)結(jié)點(diǎn)無雙親結(jié)點(diǎn),稱之為根結(jié)點(diǎn)(簡(jiǎn)稱根); (2) 根以外的其他結(jié)點(diǎn)有且僅有一個(gè)雙親結(jié)點(diǎn)。 層次模型只能反映實(shí)體之間一對(duì)多的關(guān)系。,1.2.5 層次模型(續(xù)),層次模型示意圖,下圖所示是一個(gè)層次模型的典型。,1.2.6 網(wǎng)狀模型,網(wǎng)狀模型(Network Model)是比層次模型更具普遍性的一種結(jié)構(gòu)。它去掉了層次模型的兩個(gè)限制條件,允許有一個(gè)以上的結(jié)點(diǎn)無雙親結(jié)點(diǎn),允許結(jié)點(diǎn)可以有多個(gè)雙親結(jié)點(diǎn),此外它還允許兩個(gè)結(jié)點(diǎn)之間有多種聯(lián)系(稱之為復(fù)合聯(lián)系)。,1.2.6 網(wǎng)狀模型(續(xù)一),網(wǎng)狀模型有如下優(yōu)點(diǎn): (1)可以直接描述包括多對(duì)多在內(nèi)的更復(fù)雜的關(guān)系。 (2)具有良好的性能,存取效率較高。 網(wǎng)狀模型也有缺點(diǎn): (1)對(duì)計(jì)算機(jī)的硬件和軟件環(huán)境要求較高。 (2)數(shù)據(jù)庫的獨(dú)立性較差。 (3)操作比較復(fù)雜。,1.2.6 網(wǎng)狀模型(續(xù)二),下圖表示零部件的采購使用關(guān)系,這是一個(gè)典型的網(wǎng)狀模型。,1.2.6 網(wǎng)狀模型(續(xù)三),下圖表示1.2.4介紹的學(xué)生選修關(guān)系這個(gè)網(wǎng)狀模型。,1.2.7 關(guān)系模型,關(guān)系模型(Relational Model)中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。 表1-1所示的學(xué)生情況就是一個(gè)關(guān)系模型。 關(guān)系模型的主要概念: 關(guān)系(relation):關(guān)系模型中表示數(shù)據(jù)的整個(gè)一張二維表就是關(guān)系。 元組(Tuple):二維表中的每一行即為一個(gè)元組,對(duì)應(yīng)概念模型的一個(gè)實(shí)體。 屬性(Attribute):二維表中的每一列即為一個(gè)屬性,對(duì)應(yīng)概念模型的一個(gè)屬性。,1.2.7 關(guān)系模型(續(xù)一),主碼(Key):二維表中唯一標(biāo)識(shí)元組的某個(gè)屬性組稱為該關(guān)系的主碼,對(duì)應(yīng)概念模型的碼。 域(Domain):二維表中任一屬性的取值范圍稱為該屬性的域,對(duì)應(yīng)概念模型的域。 分量:元組中的每一個(gè)屬性值稱為元組的分量。 關(guān)系模式(Relation schema):對(duì)關(guān)系的描述稱為關(guān)系模式,通常用關(guān)系名及其所有屬性名集合來表示,類似概念模型中實(shí)體型的表示方法。,1.2.7 關(guān)系模型(續(xù)二),整個(gè)表1-1就是一個(gè)關(guān)系。 表中的每一行都是一個(gè)元組。 學(xué)號(hào)、姓名、性別等每一列都是屬性。 學(xué)號(hào)是這個(gè)關(guān)系的碼。 男、女、正確的日期集合分別是性別和出生年月日的域。 0100001、馮東梅、女、1980-12-26、北京和1100等都是分量。 而學(xué)生(學(xué)號(hào),姓名,性別,出生年月日,家庭所在地,家庭人均月收入)是這個(gè)關(guān)系的關(guān)系模式。,1.2.7 關(guān)系模型(續(xù)三),關(guān)系模型既可以反映屬性之間一對(duì)多的關(guān)系,也可以反映屬性之間多對(duì)多的關(guān)系。 關(guān)系模型具有以下特點(diǎn): (1) 數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單,概念清楚; (2) 能夠直接反映實(shí)體之間一對(duì)一、一對(duì)多和多對(duì)多關(guān)系; (3) 通過公共屬性就可以建立表與表之間的聯(lián)系,從而就建立了實(shí)體之間的聯(lián)系; (4) 具有嚴(yán)格的理論基礎(chǔ)。,1.2.8 面向?qū)ο竽P?面向?qū)ο竽P停∣bject Oriented Model)是數(shù)據(jù)庫系統(tǒng)中最近出現(xiàn)的一種模型。面向?qū)ο竽P椭凶罨镜母拍钍菍?duì)象(object)和類(class)。 面向?qū)ο竽P褪钦诎l(fā)展中的模型,具有廣闊的前途和生命力。,1.3 關(guān)系的完整性,關(guān)系模型允許定義三類完整性:實(shí)體完整性、參照完整性和用戶定義的完整性。 實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱為關(guān)系的兩個(gè)不變性,由關(guān)系系統(tǒng)自動(dòng)支持。 這里先列出3個(gè)例題,以便后面引用。 例1-1 學(xué)生實(shí)體和專業(yè)實(shí)體可以用下面的關(guān)系表示(其中主碼用紅色體字標(biāo)識(shí)): 學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡) 專業(yè)(專業(yè)號(hào),專業(yè)名),1.3 關(guān)系的完整性(續(xù)一),例1-2 學(xué)生實(shí)體、課程實(shí)體、學(xué)生與課程之間的選課及成績(jī)實(shí)體可以用如下3個(gè)關(guān)系來表示: 學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡) 課程(課程號(hào),課程名,學(xué)分) 選課及成績(jī)(學(xué)號(hào),課程號(hào),成績(jī)) 例1-3 另一個(gè)學(xué)生實(shí)體的關(guān)系是: 學(xué)生2(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡,班長(zhǎng)學(xué)號(hào)),1.3.1 實(shí)體完整性,一個(gè)基本關(guān)系通常對(duì)應(yīng)現(xiàn)實(shí)世界的一個(gè)實(shí)體集。例如,學(xué)生關(guān)系對(duì)應(yīng)學(xué)生的集合。 現(xiàn)實(shí)世界的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識(shí)。相應(yīng)地,關(guān)系模型中以主碼作為唯一性標(biāo)識(shí)。 主碼中的屬性即主屬性不能取空值。所謂空值就是“不知道”或“無意義”的值。如果主屬性取空值,就說明存在某個(gè)不可標(biāo)識(shí)的實(shí)體,即存在不可區(qū)分的實(shí)體,這與現(xiàn)實(shí)世界的應(yīng)用環(huán)境相矛盾,因此這個(gè)實(shí)體一定不是一個(gè)完整的實(shí)體。,1.3.1 實(shí)體完整性(續(xù)一),實(shí)體完整性(Entity Integrity)規(guī)則: 若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。 在例1-1的學(xué)生關(guān)系中,學(xué)號(hào)為主碼,則學(xué)號(hào)不能取空值。 實(shí)體完整性規(guī)則規(guī)定基本關(guān)系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。在 例1-2的選課及成績(jī)關(guān)系中,學(xué)號(hào)+課程號(hào)為主碼,則學(xué)號(hào)和課程號(hào)兩個(gè)屬性都不能取空值。,1.3.2 參照完整性,現(xiàn)實(shí)世界中的實(shí)體之間往往存在某種聯(lián)系,在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的。這樣就自然存在著關(guān)系與關(guān)系間的引用。 例1-1的兩個(gè)關(guān)系之間存在著屬性的引用,即學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號(hào)”。顯然,學(xué)生關(guān)系中的專業(yè)號(hào)值,必須是確實(shí)存在的專業(yè)的“專業(yè)號(hào)”,即專業(yè)關(guān)系中有該專業(yè)的記錄。這就是說,學(xué)生關(guān)系中的某個(gè)屬性的取值需要參照專業(yè)關(guān)系對(duì)應(yīng)屬性的取值。,1.3.2 參照完整性(續(xù)一),例1-2的3個(gè)關(guān)系之間也存在著屬性的引用,即選課及成績(jī)關(guān)系引用了學(xué)生關(guān)系的主碼“學(xué)號(hào)”和課程關(guān)系的主碼“課程號(hào)”。 選課及成績(jī)關(guān)系中的學(xué)號(hào)值必須是確實(shí)存在的學(xué)生的“學(xué)號(hào)”,即學(xué)生關(guān)系中有該學(xué)生的記錄;選課及成績(jī)關(guān)系中的課程號(hào)值,也必須是確實(shí)存在的課程的“課程號(hào)”,即課程關(guān)系中有該課程的記錄。 選課及成績(jī)關(guān)系中某些屬性的取值需要參照其他關(guān)系對(duì)應(yīng)屬性的取值。,1.3.2 參照完整性(續(xù)二),不僅兩個(gè)或兩個(gè)以上的關(guān)系間可以存在引用關(guān)系,同一關(guān)系內(nèi)部屬性間也可能存在引用關(guān)系。 在例1-3的關(guān)系中,“學(xué)號(hào)”屬性是主碼,“班長(zhǎng)學(xué)號(hào)”屬性表示該學(xué)生所在班級(jí)的班長(zhǎng)的學(xué)號(hào),班長(zhǎng)必須是這個(gè)班的學(xué)生,即“班長(zhǎng)學(xué)號(hào)”必須是確實(shí)存在的學(xué)生的“學(xué)號(hào)”。,1.3.2 參照完整性(續(xù)三),設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼K相對(duì)應(yīng),則稱F是基本關(guān)系R的外碼(Foreign key),并稱基本關(guān)系R為參照關(guān)系(Referencing relation),基本關(guān)系S為被參照關(guān)系(Referenced relation)或目標(biāo)關(guān)系(Target relation)。關(guān)系R和S不一定是不同的關(guān)系。 目標(biāo)關(guān)系S的主碼Ks和參照關(guān)系R的外碼F必須定義在同一個(gè)(或一組)域上。,1.3.2 參照完整性(續(xù)四),下圖清楚地表達(dá)了例1-1、例1-2和例1-3的參照關(guān)系 。,1.3.2 參照完整性(續(xù)五),參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則。 參照完整性(Referential Integrity)規(guī)則: 若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為: 或者取空值(F的每個(gè)屬性值均為空值); 或者等于S中某個(gè)元組的主碼值。,1.3.2 參照完整性(續(xù)六),對(duì)于例1-1,學(xué)生關(guān)系中每個(gè)元組的專業(yè)號(hào)屬性只能取下面兩類值: 空值,表示尚未給該學(xué)生確定所學(xué)專業(yè); 非空值,這時(shí)該值必須是專業(yè)關(guān)系中某個(gè)元組的專業(yè)號(hào)值,表示該學(xué)生不可能分配到一個(gè)不存在的專業(yè)中學(xué)習(xí)。即被參照關(guān)系“專業(yè)”中一定存在一個(gè)元組,它的主碼值等于該參照關(guān)系“學(xué)生”中的外碼值。,1.3.2 參照完整性(續(xù)七),對(duì)于例1-2中的選課及成績(jī)關(guān)系,按參照完整性規(guī)則,學(xué)號(hào)和課程號(hào)屬性也可以取兩類值:空值或目標(biāo)關(guān)系中已經(jīng)存在的值。但由于學(xué)號(hào)和課程號(hào)是選課及成績(jī)關(guān)系中的主屬性,按照實(shí)體完整性規(guī)則,它們均不能取空值。所以選課及成績(jī)關(guān)系中的學(xué)號(hào)和課程號(hào)屬性實(shí)際上只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值。,1.3.2 參照完整性(續(xù)八),參照完整性規(guī)則中,R與S可以是同一個(gè)關(guān)系。 例如,對(duì)于例1-3,按照參照完整性規(guī)則,班長(zhǎng)屬性值可以取兩類值: 空值,表示該學(xué)生所在班級(jí)尚未選出班長(zhǎng) ; 非空值,這時(shí)該值必須是本關(guān)系中某個(gè)元組的學(xué)號(hào)值 。,1.3.3 用戶定義的完整性,實(shí)體完整性和參照性適用于任何關(guān)系數(shù)據(jù)庫系統(tǒng)。除此之外,不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。 用戶定義的完整性就是針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的實(shí)際要求,即取值的限制范圍。,1.3.3 (續(xù)),例如,某個(gè)非主屬性不能取空值(如:姓名)、某個(gè)屬性的取值范圍限定在0100之間(如:成績(jī))、某個(gè)屬性只能取幾個(gè)特定的值(如:性別)等。關(guān)系模型應(yīng)提供定義和檢驗(yàn)這類完整性機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能。,1.4 關(guān)系模型的規(guī)范化,用關(guān)系模型描述現(xiàn)實(shí)世界直觀、明了。但是,要做到用關(guān)系模型很好地描述現(xiàn)實(shí)世界卻不是一件容易的事情。 設(shè)計(jì)一個(gè)好的數(shù)據(jù)庫是一項(xiàng)極其復(fù)雜的工作,規(guī)范化理論就是設(shè)計(jì)過程中的一個(gè)非常有用的輔助工具。 一般地說,關(guān)系模型的范式級(jí)別越高,設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)質(zhì)量越高。第一范式是關(guān)系模型規(guī)范化最基本的要求,第二范式的級(jí)別比第一范式高,第三范式的級(jí)別又比第二范式高。,1.4.1 第一范式,如果關(guān)系模式R的每一個(gè)關(guān)系的屬性值都是不可分的原子值,則稱R屬于第一范式(1NF)。 屬于1NF的關(guān)系稱為規(guī)范化關(guān)系,不屬于1NF的關(guān)系稱為非規(guī)范化關(guān)系。 不難驗(yàn)證,表1-1和表1-2所示的實(shí)體集都是屬于1NF的規(guī)范化關(guān)系。 但是實(shí)際問題中的報(bào)表結(jié)構(gòu)有許多是非規(guī)范化的。例如,下頁表1-3是不規(guī)范的。 從規(guī)范化的關(guān)系模型的數(shù)據(jù)庫是完全能夠生成象表1-3這樣結(jié)構(gòu)的報(bào)表的。,1.4.1 第一范式(續(xù)一),實(shí)際問題中的報(bào)表結(jié)構(gòu)有許多是非規(guī)范化的。例如,表1-3是不規(guī)范的。 不能依這樣的結(jié)構(gòu)設(shè)計(jì)關(guān)系模型,必須將這樣的表需要的數(shù)據(jù)(以及其它數(shù)據(jù))進(jìn)行處理,使之規(guī)范化。,從規(guī)范化的關(guān)系模型的數(shù)據(jù)庫是完全能夠生成象表1-3這樣結(jié)構(gòu)的報(bào)表的。,1.4.1 第一范式(續(xù)二),一個(gè)關(guān)系應(yīng)滿足1NF是最起碼的條件。然而,僅滿足1NF的關(guān)系還可能存在一些問題。,表1-4是滿足1NF的一個(gè)具體實(shí)例,但在操作中可能出現(xiàn)如下的一些問題。 () 插入異常 () 刪除異常 () 數(shù)據(jù)冗余,1.4.2 第二范式,如果關(guān)系模式R屬于1NF,并且每個(gè)非碼屬性都完全依賴于各個(gè)碼,則稱R屬于第二范式(2NF)。如果某個(gè)數(shù)據(jù)庫模式中的每個(gè)關(guān)系模式都是2NF,則這個(gè)數(shù)據(jù)庫模式稱為2NF的數(shù)據(jù)庫模式。 下頁表1-5所示的關(guān)系模式R(學(xué)號(hào),系名,系辦地址,課程號(hào),成績(jī)),主碼為學(xué)號(hào)課程號(hào)。 某個(gè)學(xué)生某門課程的成績(jī)(一個(gè)非碼屬性)是完全依賴于他的學(xué)號(hào)和該課程的代號(hào)(主碼)的。也就是說,知道了一個(gè)學(xué)生的學(xué)號(hào)和他參加考試的課程號(hào)(兩者缺一不可),就知道了他這一門課的成績(jī)。,1.4.2 第二范式(續(xù)一),1.4.2 第二范式(續(xù)二),他所在的系名(另一非碼屬性)實(shí)際上僅完全依賴于他的學(xué)號(hào)(主碼中的一個(gè)屬性),與課程代號(hào)(主碼中的另一個(gè)屬性)無關(guān)。也就是說,只要知道了一個(gè)學(xué)生的學(xué)號(hào)(并不需要知道課程號(hào)),就知道了他所在的系名和系辦地址。 這個(gè)關(guān)系模式不屬于2NF(僅屬于1NF)。 如果將R分解為兩個(gè)關(guān)系模式R1(學(xué)號(hào),系名,系辦地址)和R2(學(xué)號(hào),課程號(hào),成績(jī)),下頁表1-7和表1-6,則R1和R2都屬于2NF了。,1.4.2 第二范式(續(xù)三),這樣分解之后,減少了冗余,節(jié)省了存儲(chǔ)空間,降低了數(shù)據(jù)維護(hù)的代價(jià)。但是,另一方面是增加了查詢難度。 這說明,在確定數(shù)據(jù)模型時(shí),不能簡(jiǎn)單地說采用第二范式一定比第一范式好,采用第三范式也一定比第二范式好。到底采用哪個(gè)范式,要根據(jù)具體問題的要求確定。,1.4.3 第三范式,如果關(guān)系模式R是2NF,且每個(gè)非主屬性都完全直接依賴于各個(gè)碼(即既不部分依賴于碼也不傳遞依賴于碼),則稱R屬于第三范式(3NF)。如果某個(gè)數(shù)據(jù)庫模式中的每個(gè)關(guān)系模式都是3NF,則這個(gè)數(shù)據(jù)庫模式稱為3NF的數(shù)據(jù)庫模式。 如果一個(gè)關(guān)系不屬于第三范式,那么也可能存在一些問題。 在關(guān)系R2中,主碼為(學(xué)號(hào)、課程號(hào)),成績(jī)是完全直接依賴于他的學(xué)號(hào)和該課程的代號(hào)(主碼)的,故R2屬于3NF。,1.4.3 第三范式(續(xù)一),在關(guān)系R1中,主碼為(學(xué)號(hào)) ,知道了一個(gè)學(xué)生的學(xué)號(hào)(主碼),就知道了他所在的系名,知道了他所在的系名(非碼屬性),也就知道了該系辦公室的地址。系名是完全直接依賴于他的學(xué)號(hào)的。但系辦公室的地址是通過系名間接(不是直接)依賴與他的學(xué)號(hào)的,故R1不屬于3NF。 正因?yàn)殛P(guān)系R1不屬于3NF,也存在數(shù)據(jù)冗余和操作異?,F(xiàn)象。例如,有多個(gè)學(xué)生同屬于一個(gè)系,這個(gè)系的地址就多次重復(fù)。 如果將關(guān)系R1分解為R11和R12(下頁表1-8和表1-9),則R11和R12就都是屬于3NF了。,1.4.3 第三范式(續(xù)二),一個(gè)數(shù)據(jù)庫滿足的范式越多,數(shù)據(jù)的冗余度越小,共享性越高,所占的存儲(chǔ)空間越少,并將數(shù)據(jù)的不一致性減少到最低程度。 但是,高范式的數(shù)據(jù)庫查詢起來比較復(fù)雜。所以,不應(yīng)一味追求高范式,對(duì)于包含頻度很高的查詢的數(shù)據(jù)庫,不妨降低些范式。,第2章 Access 數(shù)據(jù)庫基礎(chǔ)知識(shí),2.1 Access 數(shù)據(jù)庫概述 2.2 Access 的特點(diǎn) 2.3 Access 2002 的新增功能 2.4 Access 的基本操作 2.5 Access 數(shù)據(jù)庫設(shè)計(jì) 2.6 Access 數(shù)據(jù)庫的對(duì)象 2.7 數(shù)據(jù)類型與表達(dá)式,2.1 Access 數(shù)據(jù)庫概述,Microsoft Access是第一個(gè)在Windows環(huán)境下開發(fā)的一種全新的關(guān)系數(shù)據(jù)庫管理系統(tǒng),是中小型數(shù)據(jù)庫管理的最佳選擇。Access 2002和Access 2000不僅是數(shù)據(jù)庫管理系統(tǒng),而且還是一個(gè)功能強(qiáng)大的開發(fā)工具。 Access使用標(biāo)準(zhǔn)SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)作為它的數(shù)據(jù)庫語言。,2.1 Access 數(shù)據(jù)庫概述 (續(xù)),每一個(gè)Access數(shù)據(jù)庫,包括它所有的對(duì)象都存儲(chǔ)在以.mdb為擴(kuò)展名的數(shù)據(jù)庫文件中。 打開一個(gè)數(shù)據(jù)庫就是打開一個(gè)數(shù)據(jù)庫文件。就Access而言,可以認(rèn)為數(shù)據(jù)庫和數(shù)據(jù)庫文件含義相同。 Access數(shù)據(jù)庫不但包括各種對(duì)象,還包括對(duì)各種對(duì)象的操作。,2.2 Access 的特點(diǎn),1. 一個(gè)文件管理整個(gè)系 統(tǒng) 2. 真正的關(guān)系數(shù)據(jù)庫管 理 3. 典型的開放式數(shù)據(jù)庫管理 4. 完善的幫助功能 5. 利用Excel整理數(shù)據(jù) 6. 擁有大量的內(nèi)置函數(shù) 7. 提供了許多宏 8. 方便的網(wǎng)絡(luò)功能,2.3 Access 2002 的新增功能,1. 更友好的系統(tǒng)界面 2. 任務(wù)窗格 3. 數(shù)據(jù)庫轉(zhuǎn)換工具 4. 數(shù)據(jù)透視表視圖和數(shù)據(jù)透視圖視圖 5. 數(shù)據(jù)庫自動(dòng)壓縮功能 6. 改進(jìn)了訪問功能,2.4 Access 的基本操作,2.4.1 Access 的啟動(dòng)和退出,啟動(dòng)Access和啟動(dòng)Word的方法一樣,有3種:(1)雙擊桌面上的Access圖標(biāo)。 (2)單擊任務(wù)欄上的“開始”按鈕,在彈出的菜單中選“程序”項(xiàng),在彈出的級(jí)聯(lián)菜單中單擊“Microsoft Access”。 (3)雙擊Access數(shù)據(jù)庫文件(建議盡量不用此法)。 用前兩種方法啟動(dòng)Access 2002就打開了 Access主窗口(下頁)。該窗口的右側(cè)是任務(wù)窗格的“新建文件”模式。,2.4.1 Access 的啟動(dòng)和退出(續(xù)一),2.4.1 Access 的啟動(dòng)和退出(續(xù)二),用第3種方法啟動(dòng)Access后就立即打開了該數(shù)據(jù)庫文件,并打開該數(shù)據(jù)庫的“數(shù)據(jù)庫”窗口(下圖中的內(nèi)窗口)。,2.4.1 Access 的啟動(dòng)和退出(續(xù)三),Access主窗口和“Word”窗口很相似,有標(biāo)題欄、菜單欄、工具欄、工作區(qū)和狀態(tài)欄。 Access工作界面的工作區(qū)內(nèi)可以顯示包括“數(shù)據(jù)庫”窗口在內(nèi)的各種子窗口。 菜單欄下面是“數(shù)據(jù)庫”工具欄。 “數(shù)據(jù)庫”窗口中工具欄的按鈕自左至右分別是:打開、設(shè)計(jì)、新建、刪除、大圖標(biāo)、小圖標(biāo)、列表、詳細(xì)信息。前4個(gè)按鈕用來打開、設(shè)計(jì)、新建或刪除數(shù)據(jù)庫的對(duì)象,后4個(gè)按鈕用來選擇對(duì)象的顯示方式。 退出Access和退出Word的方法完全相同。,2.4.2 使用聯(lián)機(jī)幫助,Access2002有四種獲取幫助的方法。 一、使用Office助手 打開Office助手氣球和助手圖標(biāo)有兩種方法: (1)單擊工具欄上的“Microsoft Access幫助”按鈕; (2)選“幫助”菜單項(xiàng),在其下拉式菜單中單擊“Microsoft Access幫助(H) F1”項(xiàng)。,右圖的助手氣球中間的對(duì)話框讓用戶輸入問題,下部有“選項(xiàng)”和“搜索”兩個(gè)按鈕。,2.4.2 使用聯(lián)機(jī)幫助(續(xù)一),在助手氣球中輸入想問的問題后單擊“搜索”按鈕(或按Enter鍵),則助手氣球中就出現(xiàn)關(guān)于該問題的幾個(gè)搜索主題和“請(qǐng)看下一頁”按鈕(下圖)。,2.4.2 使用聯(lián)機(jī)幫助(續(xù)二),助手圖標(biāo)和助手氣球可分別隱藏(關(guān)閉)。 單擊上頁圖中的某搜索主題(或前面的指示燈),就打開了顯示該主題的“Microsoft Access幫助”窗口,見2.4.2(續(xù)五)中圖。 單擊“選項(xiàng)”按鈕就進(jìn)入了下頁圖所示的“Office助手”對(duì)話框。若選中“選項(xiàng)”選項(xiàng)卡就可以進(jìn)行有關(guān)功能的設(shè)置。若選中“助手之家”選項(xiàng)卡則可以選擇Office助手形象。,2.4.2 使用聯(lián)機(jī)幫助(續(xù)三),2.4.2 使用聯(lián)機(jī)幫助(續(xù)四),二、使用Microsoft Access幫助 上頁圖中的“響應(yīng)F1鍵”選項(xiàng)的含義是:若選中該項(xiàng),按F1就打開2.4.2圖所示的助手氣球;若取消該選項(xiàng),按F1就打開下頁圖所示的“Microsoft Access幫助”窗口;該窗口有“目錄”、“應(yīng)答向?qū)А焙汀八饕?個(gè)選項(xiàng)卡。 如果在窗體或報(bào)表的“設(shè)計(jì)”視圖選中具體控件后按F1,則顯示這類控件的說明,如2.4.2(續(xù)七)圖所示。,2.4.2 使用聯(lián)機(jī)幫助(續(xù)五),“Microsoft Access幫助”窗口的左窗格顯示目錄、提問框或關(guān)鍵字(分別對(duì)應(yīng)三個(gè)選項(xiàng)卡),右窗格顯示與左窗格選中項(xiàng)相應(yīng)的說明內(nèi)容。,本頁圖中左窗格選中的是“關(guān)于設(shè)計(jì)數(shù)據(jù)庫”,右側(cè)就是其說明內(nèi)容。,2.4.2 使用聯(lián)機(jī)幫助(續(xù)六),三、使用“鍵入需要幫助的問題” 這是Access 2002的新增功能。在Access主窗口的菜單欄右邊有“鍵入需要幫助的問題”框。在這個(gè)框中輸入主題詞就可以得到幫助。如果輸入:數(shù)據(jù)庫,然后按Enter鍵就出現(xiàn)關(guān)于數(shù)據(jù)庫的主題列表(右下圖)。,這個(gè)主題列表中列出了和數(shù)據(jù)庫有關(guān)的問題,單擊其中的“關(guān)于設(shè)計(jì)數(shù)據(jù)庫”,就打開了上頁圖所示的“Microsoft Access幫助”窗口。,2.4.2 使用聯(lián)機(jī)幫助(續(xù)七),四、使用“這是什么?” 在“幫助”中單擊“這是什么?”,鼠標(biāo)變成箭頭和問號(hào)組合的形狀,然后將鼠標(biāo)移到需要解釋的主題處單擊,就會(huì)顯示關(guān)于該主題的說明。下圖就是在“數(shù)據(jù)庫”窗口使用“這是什么?”后單擊“窗體”顯示的該主題的說明。,2.5 Access 數(shù)據(jù)庫設(shè)計(jì),表的設(shè)計(jì)是數(shù)據(jù)庫管理系統(tǒng)最基礎(chǔ)、最重要的工作。 表設(shè)計(jì)的好壞對(duì)數(shù)據(jù)庫管理系統(tǒng)的功能有決定性的影響。 數(shù)據(jù)庫中表的設(shè)計(jì)主要考慮這兩個(gè)方面:一是整個(gè)管理系統(tǒng)的所有表中的數(shù)據(jù)要共享性高、冗余度小、占用盡可能小的存儲(chǔ)空間;二是能方便維護(hù)表中的數(shù)據(jù)和快速地從表中獲取數(shù)據(jù)。,2.5.1 數(shù)據(jù)庫中表的設(shè)計(jì)方法,2.5 (續(xù)一),描述被參照關(guān)系和參照關(guān)系的表分別稱為主表和子表。 主碼和外碼在Access數(shù)據(jù)庫中稱為主鍵和外鍵。 本書將僅含主鍵、不含外鍵的表稱為基礎(chǔ)表(包括主要用于編碼的代碼表),將含外鍵的表稱為基本表,將由基礎(chǔ)表和基本表生成的表稱為生成表。 基礎(chǔ)表和基本表是數(shù)據(jù)庫設(shè)計(jì)的重要內(nèi)容,它們的數(shù)據(jù)可以直接維護(hù)。生成表不是數(shù)據(jù)庫直接設(shè)計(jì)的表,它的數(shù)據(jù)由查詢生成,不應(yīng)直接維護(hù)。,2.5 (續(xù)二),Access數(shù)據(jù)庫表的設(shè)計(jì)方法如下: 1進(jìn)行系統(tǒng)分析。 2提煉出將要作為數(shù)據(jù)庫中表的字段。確定字段的原則是:表中的字段(即屬性,將在2.6.1節(jié)介紹)應(yīng)該是該管理事務(wù)所必須的、獨(dú)立的字段。所謂獨(dú)立包括兩方面含義:(1)該字段是不能再分割的;(2)該字段不依賴于其它的字段。 3根據(jù)數(shù)據(jù)庫管理的要求增加必要的字段。尤其是對(duì)有限數(shù)據(jù)集合的字段應(yīng)該增加編碼字段。,2.5 (續(xù)三),4設(shè)計(jì)數(shù)據(jù)庫所必須的表。設(shè)計(jì)表的基本原則是:(1)凡是有限數(shù)據(jù)集合應(yīng)單獨(dú)設(shè)計(jì)一個(gè)表(基礎(chǔ)表);(2)除作為表間聯(lián)系的主鍵和外鍵,不同的表中不能包含重復(fù)的字段;(3)表中的字段必須是直接取決于該表描述的實(shí)體;(4)定義表的主鍵;原則上每一個(gè)表都應(yīng)定義主鍵。 5確定表間關(guān)系。只有確定了表間關(guān)系才算是完成了表的設(shè)計(jì)。通常都是在系統(tǒng)分析的基礎(chǔ)上對(duì)表進(jìn)行初步設(shè)計(jì),以后還需要經(jīng)過幾次循環(huán),反復(fù)修改才能得到理想的設(shè)計(jì)。還要考慮的一個(gè)問題是系統(tǒng)的可擴(kuò)充性。,2.5.2 學(xué)生管理數(shù)據(jù)庫表的設(shè)計(jì),本書所用的“學(xué)生管理”數(shù)據(jù)庫的功能應(yīng)包括以下幾個(gè)方面(學(xué)期成績(jī)=平時(shí)成績(jī)0.3考試成績(jī)0.7 ): ()學(xué)生選修課程和考試成績(jī)維護(hù)(包括輸入、修改和刪除)。 ()按學(xué)號(hào)查詢學(xué)生選修的課程和考試成績(jī) ()按課程查詢選修的人數(shù)。 ()按班級(jí)或個(gè)人或課程對(duì)成績(jī)進(jìn)行排序、篩選、統(tǒng)計(jì)和查詢。 ()按班級(jí)打印學(xué)生考試成績(jī)表。 ()按個(gè)人打印成績(jī)通知單。,2.5.2 (續(xù)一),其它需求有: ()對(duì)學(xué)生的基本情況進(jìn)行查詢,包括學(xué)生的學(xué)號(hào)、姓名、性別、出生年月日、身高、所在班級(jí)、家庭所在地、家庭人均月收入等。 ()對(duì)班級(jí)人數(shù)進(jìn)行統(tǒng)計(jì)、查詢。 ()打印班級(jí)學(xué)生名單。 根據(jù)管理的實(shí)際需要還應(yīng)該補(bǔ)充以下功能:學(xué)生、課程和學(xué)生選課及成績(jī)等基本信息的輸入、修改、刪除和查詢。,2.5.2 (續(xù)二),根據(jù)問題的需求,如下字段是必需的:學(xué)號(hào)、姓名、性別、出生年月日、所在班級(jí)、家庭所在地、家庭人均月收入、課程名稱、平時(shí)成績(jī)和考試成績(jī)等字段。但班級(jí)人數(shù)、課程選修人數(shù)、學(xué)期成績(jī)等統(tǒng)計(jì)數(shù)據(jù)不能作為字段。 如果只用一個(gè)表把上述所有字段都包括進(jìn)去在理論上是可以的,但是這樣處理會(huì)引起許多問題。因?yàn)槊總€(gè)學(xué)生都可以選修多門課程、每門課程也都可以有多人選修。僅用一個(gè)表勢(shì)必要將每個(gè)學(xué)生的學(xué)號(hào)、姓名、性別、出生年月日、所在班級(jí)、課程名稱等內(nèi)容多次重復(fù)輸入,既費(fèi)時(shí)費(fèi)力、占據(jù)大量的存儲(chǔ)空間,又可能引起輸入數(shù)據(jù)的不一致。,2.5.2 (續(xù)三),根據(jù)以上分析,可考慮用兩個(gè)表:將不涉及選課的個(gè)人信息和僅與選課有關(guān)的信息分別設(shè)計(jì)成“學(xué)生情況”和“選課及成績(jī)”兩個(gè)表: 學(xué)生情況,含學(xué)號(hào)、所在班級(jí)、姓名、性別、出生年月日、身高、家庭所在地、家庭人均月收入、是否團(tuán)員等9個(gè)字段; 選課及成績(jī),含學(xué)號(hào)、姓名、課程名稱、平時(shí)成績(jī)和考試成績(jī)等5個(gè)字段。 這兩個(gè)表通過學(xué)號(hào)建立聯(lián)系。 這個(gè)方案存在的問題。,2.5.2 (續(xù)四),設(shè)計(jì)成個(gè)表(花括號(hào)中是各字段的數(shù)據(jù)類型和長(zhǎng)度(將在2.7.1節(jié)介紹),下同)的方案: 班級(jí)簡(jiǎn)況,含班級(jí)代號(hào)文本,5、班級(jí)名稱文本,8兩個(gè)字段。 學(xué)生情況,含學(xué)號(hào)文本,7、班級(jí)代號(hào)文本,5、姓名文本,6、性別文本,1、出生年月日日期/時(shí)間、身高(cm)數(shù)字,字節(jié)、是否住宿文本,1、家庭所在地文本,4、家庭人均月收入貨幣、是否團(tuán)員是/否等9個(gè)字段。 課程檔案,含課程號(hào)文本,4、課程名稱文本,16、總學(xué)時(shí)數(shù)字,字節(jié)3個(gè)字段。,2.5.2 (續(xù)五),選課及成績(jī),含學(xué)號(hào)文本,7、課程號(hào)文本,4、平時(shí)成績(jī)數(shù)字,字節(jié)、考試成績(jī)數(shù)字,字節(jié)、考試日期日期4個(gè)字段。 下圖是在Access數(shù)據(jù)庫中對(duì)這個(gè)表間關(guān)系的表達(dá)。其中兩個(gè)表間關(guān)系連線兩端的“1”和“”表示實(shí)施了參照完整性。,2.5.3 教工管理數(shù)據(jù)庫表的設(shè)計(jì),本書所用的“教工管理”數(shù)據(jù)庫的功能應(yīng)包括這幾個(gè)方面: (1)教師任課情況和教學(xué)效果維護(hù)(包括輸入、修改和刪除)。 (2)按教工編號(hào)查詢教師所任的課程和教學(xué)效果。 (3)按課程查詢?nèi)握n教師。 (4)按技術(shù)職稱或文化程度對(duì)教工進(jìn)行排序、篩選、統(tǒng)計(jì)和查詢。 (5)按姓名打印教師任課情況表。 (6)按部門打印教工個(gè)人情況表。,2.5.3 (續(xù)一),其它需求有: ()對(duì)教工的基本情況進(jìn)行查詢,包括教工的教工編號(hào)、姓名、性別、出生年月日、技術(shù)職稱、文化程度、月工資、家庭電話等。 (2)對(duì)部門人數(shù)進(jìn)行統(tǒng)計(jì)、查詢。 (3)打印部門教工名單。 根據(jù)管理的實(shí)際需要還應(yīng)該補(bǔ)充以下功能:教工、課程和任課情況等基本信息的輸入、修改、查詢和刪除。,2.5.3 (續(xù)二),經(jīng)過和學(xué)生管理數(shù)據(jù)庫表的設(shè)計(jì)類似的分析、設(shè)計(jì)過程,可以得到包括以下7個(gè)表的一種設(shè)計(jì)方案。 部門簡(jiǎn)況,含部門代號(hào)文本,3、部門名稱文本,6、辦公地點(diǎn)文本,63個(gè)字段。 文化程度編碼,含文化程度編碼文本,2、文化程度文本,6兩個(gè)字段。 技術(shù)職稱編碼,含技術(shù)職稱編碼文本,2、技術(shù)職稱文本,6兩個(gè)字段。 教學(xué)效果編碼,含教學(xué)效果編碼文本,1、教學(xué)效果文本,2兩個(gè)字段。,2.5.3 (續(xù)三),教工情況,含教工編號(hào)文本,5、部門代號(hào)文本,3、姓名文本,6、性別文本,1、出生年月日日期/時(shí)間、技術(shù)職稱編碼文本,2、文化程度編碼文本,2、婚姻狀況文本,2、基本工資貨幣、獎(jiǎng)金貨幣、家庭電話文本,12等10個(gè)字段。 課程檔案,含課程號(hào)文本,4、課程名稱文本,10、總學(xué)時(shí)數(shù)字,字節(jié)3個(gè)字段。 任課情況,含職工編號(hào)文本,7、課程號(hào)文本,4、教學(xué)效果編碼文本,13個(gè)字段。,2.5.3 (續(xù)四),下圖是Access數(shù)據(jù)庫對(duì)這些表間關(guān)系的表達(dá)。,2.5.3 (續(xù)五),【說明】 (1)對(duì)于同一個(gè)實(shí)際問題可以有不同的設(shè)計(jì)方案。但是,必須依據(jù)第1章介紹的數(shù)據(jù)庫的基本原理進(jìn)行分析,按規(guī)范化的要求設(shè)計(jì)表。 (2)對(duì)班級(jí)名稱、部門名稱、課程名稱,以至于技術(shù)職稱、文化程度、教學(xué)效果等有限數(shù)據(jù)集合字段進(jìn)行編碼是提高數(shù)據(jù)的共享性、減小它的冗余度的有效措施。,2. 數(shù)據(jù)庫對(duì)象,Access 數(shù)據(jù)庫是數(shù)據(jù)和對(duì)象組成的集合。 Access數(shù)據(jù)庫對(duì)象包括表、查詢、窗體、報(bào)表、頁、宏和模塊等。 用Access新建或打開一個(gè)數(shù)據(jù)庫會(huì)同時(shí)打開一個(gè)數(shù)據(jù)庫窗口(下頁圖)。 “數(shù)據(jù)庫”窗口顯示已打開的數(shù)據(jù)庫包含的所有對(duì)象,并提供對(duì)這些數(shù)據(jù)庫對(duì)象進(jìn)行操作的方法。 Access“數(shù)據(jù)庫”窗口左側(cè)是“對(duì)象”框,右側(cè)是一個(gè)列表框。當(dāng)在對(duì)象框選定某對(duì)象類型時(shí),右側(cè)列表框顯示和左側(cè)選定對(duì)象類別相應(yīng)的創(chuàng)建該類對(duì)象的快捷方式和已建好的具體對(duì)象。,2. 數(shù)據(jù)庫對(duì)象(續(xù)),2.6.1 表,表即數(shù)據(jù)表,是Access數(shù)據(jù)庫中唯一存儲(chǔ)數(shù)據(jù)的對(duì)象,當(dāng)然就是數(shù)據(jù)庫最基本、最重要的對(duì)象。 表的每一列表示同種類型的數(shù)據(jù),稱為一個(gè)屬性或字段,字段名顯示在表的頂端(第一行)。 表的每一行(第一行除外)稱為該表的一個(gè)記錄。,表由多個(gè)記錄組成。也存在沒有記錄的空表。,2.6.2 查詢,任何一個(gè)數(shù)據(jù)庫僅有表是遠(yuǎn)遠(yuǎn)不夠的。人們往往需要或是在一個(gè)表中查找部分字段的內(nèi)容,或是從多個(gè)表中查找某些字段的內(nèi)容,而且可能帶有各種特定的要求。 檢索數(shù)據(jù)就是在適當(dāng)?shù)姆秶鷥?nèi)、按某些條件、以某種方式在一個(gè)或多個(gè)表中查找有關(guān)記錄的指定字段(或字段的函數(shù))。 查詢是檢索數(shù)據(jù)(即實(shí)現(xiàn)上述查找)的工具,是Access數(shù)據(jù)庫很重要的對(duì)象。查詢還可以在表中插入、刪除和修改數(shù)據(jù),也可以生成新表。,2.6.2 查詢(續(xù)一),在“數(shù)據(jù)庫”窗口打開“學(xué)生管理”數(shù)據(jù)庫,單擊“對(duì)象”框中的“查詢”,再雙擊列表框中的“江蘇的學(xué)生”(一個(gè)查詢),系統(tǒng)會(huì)彈出如右圖所示的結(jié)果。,該查詢的結(jié)果相當(dāng)于一張表,它包括學(xué)號(hào)、姓名、家庭所在地3個(gè)字段,含有9個(gè)記錄。但這些內(nèi)容實(shí)際上是存在“學(xué)生情況”表中的,執(zhí)行查詢僅是“看到”而已。,2.6.2 查詢(續(xù)二),因?yàn)橐话愕牟樵兒捅硪粯佑凶侄巍⒂涗浀雀拍?,更重要的是查詢和表有著幾乎同樣的功能,因而在許多場(chǎng)合把查詢和表同等看待。在同一個(gè)數(shù)據(jù)庫中查詢和表不能同名。本書用數(shù)據(jù)源(或記錄源)泛指表或查詢。 查詢既可以建立在表上,也可以建立在其它查詢上。 查詢的功能很強(qiáng)大,也非常靈活,其在數(shù)據(jù)庫中的地位甚至超過表。一個(gè)數(shù)據(jù)庫管理系統(tǒng)中查詢的功能強(qiáng)弱直接影響該系統(tǒng)的性能。,2.6.3 窗體,窗體是用戶與數(shù)據(jù)庫之間進(jìn)行交互的對(duì)象。在一個(gè)完善的數(shù)據(jù)庫管理系統(tǒng)中,用戶都是通過窗體對(duì)數(shù)據(jù)進(jìn)行各種操作,而不是直接對(duì)表、查詢進(jìn)行操作的。通過窗體還可以控制應(yīng)用程序的運(yùn)行過程,因而窗體是Access最靈活的對(duì)象。 窗體中的各種按鈕、列表框、菜單等稱為控件。在窗體中適當(dāng)安排一些控件可以增強(qiáng)和完善窗體的功能。 大多數(shù)窗體都與數(shù)據(jù)源綁定,這些窗體中的大部分內(nèi)容來自它的基表。,2.6.3 窗體(續(xù)一),在“數(shù)據(jù)庫”窗口打開“學(xué)生管理”數(shù)據(jù)庫,單擊“對(duì)象”框中的“窗體”,再雙擊列表框中的“向?qū)?chuàng)建學(xué)生情況縱欄式”(一個(gè)窗體),系統(tǒng)會(huì)出現(xiàn)如下圖所示的結(jié)果。,2.6.3 窗體(續(xù)二),下圖是“羅斯文”數(shù)據(jù)庫中的“雇員”窗體。,2.6.4 報(bào)表,一個(gè)好的數(shù)據(jù)庫系統(tǒng)往往需要以一定的格式將數(shù)據(jù)打印輸出,報(bào)表正是實(shí)現(xiàn)這種功能的有力工具。 打印輸出的報(bào)表易于閱讀和保存,同時(shí)也具有分析、匯總的功能。 報(bào)表還可以在包括Internet在內(nèi)的互連網(wǎng)上發(fā)布。 報(bào)表只用于輸出數(shù)據(jù),不能對(duì)數(shù)據(jù)做任何修改,這是和窗體的本質(zhì)區(qū)別。,2.6.4 報(bào)表(續(xù)一),下圖是“學(xué)生管理”數(shù)據(jù)庫中的一個(gè)報(bào)表。,2.6.5 宏,Access對(duì)各種數(shù)據(jù)庫對(duì)象的操作方法有多種,這些方法在多數(shù)情況下是方便有效的。但是,很多時(shí)候操縱的對(duì)象較多,操作比較復(fù)雜。完全靠人工操作效率很低,又容易出錯(cuò)。宏可以將數(shù)據(jù)庫中各種對(duì)象連接起來,從而大大提高效率。 宏是指一個(gè)或多個(gè)操作的集合,其中每個(gè)操作實(shí)現(xiàn)特定的功能。 宏是組織整個(gè)數(shù)據(jù)庫的重要工具之一。,2.6.6 頁和模塊,頁的全稱是數(shù)據(jù)訪問頁,是鏈接到某個(gè)數(shù)據(jù)庫的Web頁。在數(shù)據(jù)訪問頁中可以瀏覽、添加、編輯和操縱存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)。 有些數(shù)據(jù)庫管理系統(tǒng)的功能需求很多,對(duì)數(shù)據(jù)庫的各種操作更加復(fù)雜,有些功能用宏無法實(shí)現(xiàn)。為此,Access嵌入了功能強(qiáng)大的數(shù)據(jù)庫編程語言Visual Basic for Applications,簡(jiǎn)稱VBA。 模塊就是Access利用VBA開發(fā)出來的程序段。,2.6.7 各種數(shù)據(jù)庫對(duì)象間的關(guān)系,概括地說,各種數(shù)據(jù)庫對(duì)象的作用是:表用來存儲(chǔ)數(shù)據(jù),查詢用來檢索數(shù)據(jù),窗體用來查看和維護(hù)數(shù)據(jù),報(bào)表用來打印數(shù)據(jù),宏用來提高工作效率。 所有數(shù)據(jù)庫對(duì)象通過關(guān)系、宏及模塊聯(lián)系起來。表間關(guān)系主要應(yīng)用在查詢中。窗體和報(bào)表往往以表和查詢?yōu)榛A(chǔ)。宏和模塊是Access的強(qiáng)化工具,能進(jìn)一步擴(kuò)展數(shù)據(jù)庫的功能,提高數(shù)據(jù)庫管理的自動(dòng)化程度和效率。,2.6.7 (續(xù)一),選擇一個(gè)具體的數(shù)據(jù)庫對(duì)象后單擊工具欄上的“屬性”按鈕,系統(tǒng)就彈出該對(duì)象的屬性對(duì)話框,在該對(duì)話框內(nèi)可以設(shè)置該對(duì)象的各種屬性。 利用“數(shù)據(jù)庫”窗口工具欄靠右邊的大圖標(biāo)、小圖標(biāo)等4個(gè)按鈕可以切換不同的查看方式。 在“數(shù)據(jù)庫”窗口中可以對(duì)數(shù)據(jù)庫對(duì)象進(jìn)行刪除、復(fù)制、重命名等操作。其方法和Word中對(duì)文件的刪除、復(fù)制、重命名等操作基本相同。,2.7 數(shù)據(jù)類型與表達(dá)式,數(shù)據(jù)類型和表達(dá)式都是數(shù)據(jù)庫非常重要的內(nèi)容。正確使用數(shù)據(jù)類型是設(shè)計(jì)好表的前提。 靈活運(yùn)用表達(dá)式可以設(shè)計(jì)高質(zhì)量的表和豐富多彩的查詢,因而也就能夠設(shè)計(jì)出功能強(qiáng)大的數(shù)據(jù)庫管理系統(tǒng)。,2.7.1 數(shù)據(jù)類型,Access數(shù)據(jù)庫為字段提供了10種數(shù)據(jù)類型,它們的用法和所占存儲(chǔ)空間大小如下。 1文本型(Text):用于文本或文本與數(shù)字的結(jié)合,最長(zhǎng)為255個(gè)字符(字節(jié)),默認(rèn)值是50。在Access中,每一個(gè)漢字和所有特殊字符(包括中文標(biāo)點(diǎn)符號(hào))都算作一個(gè)字符。 貨幣型(Currency):用來存儲(chǔ)貨幣值,占8個(gè)字節(jié),在計(jì)算中禁止四舍五入。,2.7.1 數(shù)據(jù)類型(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論