Access數(shù)據(jù)庫教程第1章_第1頁
Access數(shù)據(jù)庫教程第1章_第2頁
Access數(shù)據(jù)庫教程第1章_第3頁
Access數(shù)據(jù)庫教程第1章_第4頁
Access數(shù)據(jù)庫教程第1章_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.1數(shù)據(jù)管理技術(shù)發(fā)展過程

1.2數(shù)據(jù)庫基礎(chǔ)知識1.3數(shù)據(jù)庫設(shè)計

第一篇基礎(chǔ)篇1.1.1人工管理階段

20世紀(jì)50年代的數(shù)據(jù)處理都是通過手工進(jìn)行的,因為當(dāng)時的計算機(jī)主要用于科學(xué)計算,計算機(jī)上沒有專門管理數(shù)據(jù)的軟件,也沒有諸如磁盤之類的設(shè)備來存儲數(shù)據(jù)。那時應(yīng)用程序和數(shù)據(jù)之間的關(guān)系如圖1-l所示。1.1數(shù)據(jù)管理技術(shù)發(fā)展過程圖1-1人工管理階段應(yīng)用程序和數(shù)據(jù)之間的關(guān)系人工管理階段時期的數(shù)據(jù)管理技術(shù)具有如下特點:

(1)數(shù)據(jù)管理由應(yīng)用程序完成。應(yīng)用程序中不僅要規(guī)定數(shù)據(jù)的邏輯結(jié)構(gòu),而且在程序中還要設(shè)計物理結(jié)構(gòu),包括存儲結(jié)構(gòu)的存取方法、輸入/輸出方式等,一旦數(shù)據(jù)在存儲器上改變物理地址,就需要相應(yīng)地改變用戶程序。

(2)數(shù)據(jù)不能共享。數(shù)據(jù)和程序一一對應(yīng),數(shù)據(jù)不能共享,數(shù)據(jù)組和數(shù)據(jù)組之間可能有許多重復(fù)數(shù)據(jù),會造成數(shù)據(jù)冗余。

(3)數(shù)據(jù)缺乏獨立性。一組數(shù)據(jù)對應(yīng)一個程序,數(shù)據(jù)面向應(yīng)用,獨立性很差。

(4)數(shù)據(jù)不能保存。在該階段計算機(jī)主要用于科學(xué)計算,一般不需要將數(shù)據(jù)長期保存,只在計算一個題目時,將數(shù)據(jù)輸入計算機(jī),得到計算結(jié)果即可。1.1.2文件系統(tǒng)階段

20世紀(jì)50年代后期到20世紀(jì)60年代,計算機(jī)的硬件和軟件得到了飛速發(fā)展,計算機(jī)不再只用于科學(xué)計算這個單一任務(wù),還可以做一些非數(shù)值數(shù)據(jù)的處理。這時也有了大容量的磁盤等存儲設(shè)備,并且已經(jīng)有了專門管理數(shù)據(jù)的軟件,即文件系統(tǒng)。在文件系統(tǒng)中,按一定的規(guī)則將數(shù)據(jù)組織成為一個文件,應(yīng)用程序通過文件系統(tǒng)對文件中的數(shù)據(jù)進(jìn)行存取和加工。文件系統(tǒng)對數(shù)據(jù)的管理,實際上是通過應(yīng)用程序和數(shù)據(jù)之間的一種接口實現(xiàn)的,如圖1-2所示。圖1-2文件系統(tǒng)階段文件系統(tǒng)階段的數(shù)據(jù)管理技術(shù)具有如下特點:

(1)數(shù)據(jù)管理由文件管理系統(tǒng)完成。文件管理系統(tǒng)解決了應(yīng)用程序和數(shù)據(jù)之間的一個公共接口問題,使得應(yīng)用程序采用統(tǒng)一的存取方法來操作數(shù)據(jù)。同時,應(yīng)用程序和數(shù)據(jù)之間不再是直接的對應(yīng)關(guān)系。

(2)數(shù)據(jù)共享性差,冗余度大。文件系統(tǒng)對數(shù)據(jù)存儲沒有相應(yīng)的模型約束,數(shù)據(jù)冗余度較大。

(3)數(shù)據(jù)獨立性差。數(shù)據(jù)的存放依賴于應(yīng)用程序的使用方法,不同的應(yīng)用程序仍然很難共享同一數(shù)據(jù)文件,即數(shù)據(jù)獨立性較差。

(4)數(shù)據(jù)可長期保存。數(shù)據(jù)可以以文件的方式存在,可保存較長時間。1.1.3數(shù)據(jù)庫系統(tǒng)階段

20世紀(jì)60年代后期,計算機(jī)性能得到了很大提高,出現(xiàn)了大容量磁盤和存儲器,同時價格也急劇下降。人們克服了文件系統(tǒng)的不足,開發(fā)出數(shù)據(jù)庫管理系統(tǒng),從而將傳統(tǒng)的數(shù)據(jù)管理技術(shù)推向一個新的階段,即數(shù)據(jù)庫系統(tǒng)階段。一般來說,數(shù)據(jù)庫系統(tǒng)由計算機(jī)軟、硬件資源組成。通俗地講,數(shù)據(jù)庫系統(tǒng)可把日常一些表格、卡片等數(shù)據(jù)有組織地集合在一起,輸入到計算機(jī)中,然后通過計算機(jī)處理后,再按一定要求輸出結(jié)果。因此,對于數(shù)據(jù)庫來說,主要解決三個問題:第一,有效地組織數(shù)據(jù);第二,方便地將數(shù)據(jù)輸入到計算機(jī)中;第三,根據(jù)用戶的要求將數(shù)據(jù)從計算機(jī)中抽取出來(這是人們處理數(shù)據(jù)的最終目的)。

在這一階段,應(yīng)用程序和數(shù)據(jù)庫之間產(chǎn)生了一個新的數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)軟件。應(yīng)用程序和數(shù)據(jù)庫的關(guān)系如圖1-3所示。圖1-3數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)管理技術(shù)具有如下特點:

(1)數(shù)據(jù)結(jié)構(gòu)化。數(shù)據(jù)庫也是以文件方式存儲數(shù)據(jù)的,但是,它是數(shù)據(jù)的一種高級組織形式,對數(shù)據(jù)進(jìn)行合理設(shè)計,以便計算機(jī)存取。

(2)數(shù)據(jù)共享程度高。數(shù)據(jù)庫管理系統(tǒng)把所有應(yīng)用程序中所使用的數(shù)據(jù)匯集在一起,并以記錄為單位存儲起來,以便應(yīng)用程序查詢和使用。(3)數(shù)據(jù)獨立性強(qiáng)。數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的區(qū)別是:數(shù)據(jù)庫對數(shù)據(jù)的存儲是按照同一結(jié)構(gòu)進(jìn)行的,不同的應(yīng)用程序都可以直接操作這些數(shù)據(jù)(即對應(yīng)用程序的高度獨立性)。

(4)數(shù)據(jù)冗余度小。數(shù)據(jù)庫系統(tǒng)實現(xiàn)了有組織地、動態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問,數(shù)據(jù)冗余度小。

(5)加強(qiáng)對數(shù)據(jù)的保護(hù)。數(shù)據(jù)庫系統(tǒng)對數(shù)據(jù)的完整性、唯一性和安全性都提供了一套有效的管理手段(即數(shù)據(jù)的充分共享性)。1.2.1幾個基本概念

為了更好地理解數(shù)據(jù)庫管理系統(tǒng),下面先介紹一下信息、數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)這幾個概念。

1.信息與數(shù)據(jù)

1)信息

信息(Infomation)是對客觀事物的特征、運(yùn)動形態(tài)以及事物間的相互聯(lián)系等多種要素的抽象反映。我們可以從兩個方面來理解信息。1.2數(shù)據(jù)庫基礎(chǔ)知識第一,信息是客觀事物固有的特征,比如一個學(xué)生有學(xué)號、姓名、出生日期和身高等信息。信息是客觀存在的,有些信息是人們能感受到的,有些信息則需要特殊的設(shè)備去檢測。第二,信息是一種資源,在信息社會,信息已成為人類社會活動的一種重要資源,它與能源、物質(zhì)并稱為人類社會活動的三大要素。能源提供各種形式的動力,物質(zhì)提供各種有用的材料,而信息可以為人類提供無窮的知識和智慧。2)數(shù)據(jù)

數(shù)據(jù)(Data)是描述事物的物理符號序列,可以是用來表示長度、體積、重量之類的數(shù)字?jǐn)?shù)值,也可以是人名或地名、圖形、圖像、動畫、影像、聲音等非數(shù)值數(shù)據(jù)。

2.數(shù)據(jù)庫

數(shù)據(jù)庫(DataBase,DB)是長期存儲在計算機(jī)內(nèi)有組織的、可共享的數(shù)據(jù)集合。

數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,具有較小的冗余度、較高的數(shù)據(jù)獨立性并且容易擴(kuò)展,可以為各種用戶所共享。3.數(shù)據(jù)庫管理系統(tǒng)

數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)庫管理軟件,負(fù)責(zé)完成各種數(shù)據(jù)處理操作。典型的數(shù)據(jù)庫管理系統(tǒng)有MicrosoftSQLServer、MicrosoftOfficeAccess、MicrosoftFoxPro和Oracle、Sybase等。數(shù)據(jù)庫管理系統(tǒng)主要包括以下4個方面的功能:

(1)數(shù)據(jù)定義功能。數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL),通過它可以方便地對數(shù)據(jù)庫中的數(shù)據(jù)對象進(jìn)行定義。(2)數(shù)據(jù)操縱功能。數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)操縱語言(DataManipulationLanguage,DML),通過它可以操縱數(shù)據(jù)以實現(xiàn)對數(shù)據(jù)庫的基本操作,如查詢、插入、刪除和修改等。

(3)數(shù)據(jù)庫的運(yùn)行管理。數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一控制和管理數(shù)據(jù)庫的運(yùn)行,保證了數(shù)據(jù)庫的安全性、完整性和共享性。

(4)數(shù)據(jù)庫的建立和維護(hù)。數(shù)據(jù)庫管理系統(tǒng)包括了數(shù)據(jù)庫初始數(shù)據(jù)的輸入、數(shù)據(jù)庫的恢復(fù)和數(shù)據(jù)庫的監(jiān)視等功能,這些功能通常由一些程序來完成。4.數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)是指擁有數(shù)據(jù)庫技術(shù)支持的計算機(jī)系統(tǒng)。它可以有組織地、動態(tài)地存儲大量相關(guān)數(shù)據(jù),提供數(shù)據(jù)處理和信息資源共享服務(wù)。數(shù)據(jù)庫系統(tǒng)由計算機(jī)系統(tǒng)(硬件和基本軟件)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應(yīng)用系統(tǒng)和有關(guān)人員(數(shù)據(jù)庫管理員、應(yīng)用設(shè)計人員、最終用戶)組成。數(shù)據(jù)庫系統(tǒng)主要具有如下幾個特點:

(1)數(shù)據(jù)結(jié)構(gòu)化。在傳統(tǒng)的文件系統(tǒng)中,盡管記錄內(nèi)容有了某些結(jié)構(gòu),但是記錄之間沒有聯(lián)系,而數(shù)據(jù)庫系統(tǒng)能實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫和文件系統(tǒng)的根本區(qū)別。例如,學(xué)生管理系統(tǒng)不僅包括學(xué)生的基本信息,還包括與其相關(guān)的選課管理和成績管理等。

(2)數(shù)據(jù)共享。數(shù)據(jù)共享允許多個用戶同時使用數(shù)據(jù),為多種程序設(shè)計語言提供編程接口。(3)數(shù)據(jù)獨立性。數(shù)據(jù)獨立性包括物理獨立性和邏輯獨立性。物理獨立性指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)是相互獨立的,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),當(dāng)數(shù)據(jù)的物理存儲改變時,應(yīng)用程序不用改變。邏輯獨立性指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的,當(dāng)數(shù)據(jù)庫的邏輯結(jié)構(gòu)改變時,應(yīng)用程序無需修改仍可繼續(xù)正常運(yùn)行。(4)減少了數(shù)據(jù)冗余。數(shù)據(jù)冗余指一種數(shù)據(jù)存在多個相同的副本。數(shù)據(jù)庫系統(tǒng)可以大大減少數(shù)據(jù)冗余,提高數(shù)據(jù)使用效率。

(5)保存數(shù)據(jù)一致性。數(shù)據(jù)的不一致性是指同一數(shù)據(jù)在不同存儲位置的值不一樣。數(shù)據(jù)庫中的數(shù)據(jù)只有一個物理備份,所以不存在數(shù)據(jù)不一致的問題。

(6)數(shù)據(jù)安全性。數(shù)據(jù)庫系統(tǒng)可提供一系列有效的安全措施,阻止非法訪問數(shù)據(jù),在數(shù)據(jù)被破壞時也可恢復(fù)。5.數(shù)據(jù)庫應(yīng)用系統(tǒng)

數(shù)據(jù)庫應(yīng)用系統(tǒng)是為特定應(yīng)用開發(fā)的數(shù)據(jù)庫應(yīng)用軟件。數(shù)據(jù)庫管理系統(tǒng)為數(shù)據(jù)的定義、存儲、查詢和修改提供支持,而數(shù)據(jù)庫應(yīng)用系統(tǒng)是對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行處理和加工的軟件,它面向特定應(yīng)用。1.2.2數(shù)據(jù)模型

1.數(shù)據(jù)模型的概念

數(shù)據(jù)(Data)是描述事物的符號記錄。模型(Model)是現(xiàn)實世界的抽象。數(shù)據(jù)模型(DataModel)是數(shù)據(jù)特征的抽象,是數(shù)據(jù)庫管理的教學(xué)形式框架。

數(shù)據(jù)模型描述的內(nèi)容包括三個部分:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。

(1)數(shù)據(jù)結(jié)構(gòu):主要描述數(shù)據(jù)的類型、內(nèi)容、性質(zhì)以及數(shù)據(jù)間的聯(lián)系等。數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)模型的基礎(chǔ),數(shù)據(jù)操作和約束都建立在數(shù)據(jù)結(jié)構(gòu)上。不同的數(shù)據(jù)結(jié)構(gòu)具有不同的操作和約束。(2)數(shù)據(jù)操作:操作算符的集合,包括若干操作和推理規(guī)則,用以對目標(biāo)類型的有效實例所組成的數(shù)據(jù)庫進(jìn)行操作。

(3)數(shù)據(jù)約束:完整性規(guī)則的集合,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化。約束條件可以按不同的原則劃分為數(shù)據(jù)值的約束和數(shù)據(jù)間聯(lián)系的約束,靜態(tài)約束和動態(tài)約束,實體約束和實體間的參照約束等。數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,分別是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。

(1)概念數(shù)據(jù)模型(ConceptualDataModel):簡稱概念模型,是面向數(shù)據(jù)庫用戶的實現(xiàn)世界的模型,主要用來描述世界的概念化結(jié)構(gòu),它使數(shù)據(jù)庫的設(shè)計人員在設(shè)計的初始階段擺脫計算機(jī)系統(tǒng)及DBMS的具體技術(shù)問題,集中精力分析數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系等,與具體的數(shù)據(jù)管理系統(tǒng)(DataBaseManagementSystem,DBMS)無關(guān)。概念數(shù)據(jù)模型必須換成邏輯數(shù)據(jù)模型才能在DBMS中實現(xiàn)。(2)邏輯數(shù)據(jù)模型(LogicalDataModel):簡稱數(shù)據(jù)模型,這是用戶從數(shù)據(jù)庫中看到的模型,是具體的DBMS所支持的數(shù)據(jù)模型,如網(wǎng)狀數(shù)據(jù)模型(NetworkDataModel)、層次數(shù)據(jù)模型(HierarchicalDataModel)等。此模型既要面向用戶,又要面向系統(tǒng),主要用于數(shù)據(jù)庫管理系統(tǒng)(DBMS)的實現(xiàn)。

(3)物理數(shù)據(jù)模型(PhysicalDataModel):簡稱物理模型,是面向計算機(jī)物理表示的模型,描述了數(shù)據(jù)在存儲介質(zhì)上的組織結(jié)構(gòu),它不但與具體的DBMS有關(guān),還與操作系統(tǒng)和硬件有關(guān)。每一種邏輯數(shù)據(jù)模型在實現(xiàn)時都有其對應(yīng)的物理數(shù)據(jù)模型。DBMS為了保證其獨立性與可移植性,大部分物理數(shù)據(jù)模型的實現(xiàn)工作由系統(tǒng)自動完成,而設(shè)計者只設(shè)計索引、聚集等特殊結(jié)構(gòu)。在概念數(shù)據(jù)模型中最常用的是E-R模型、擴(kuò)充的E-R模型、面向?qū)ο竽P图爸^詞模型。在邏輯數(shù)據(jù)類型中最常用的是層次模型、網(wǎng)狀模型和關(guān)系模型。

2.四種常見的數(shù)據(jù)模型

下面分別介紹層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P?。其中,層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型。1)層次模型

層次模型(HierarchicalModle)是用樹狀結(jié)構(gòu)表示數(shù)據(jù)之間聯(lián)系的數(shù)據(jù)模型。樹是由節(jié)點和連線組成的,節(jié)點表示數(shù)據(jù),連線表示數(shù)據(jù)之間的聯(lián)系。層次模型滿足如下兩個條件:

(1)有且只有一個節(jié)點沒有父節(jié)點,該節(jié)點稱為根節(jié)點。

(2)其他節(jié)點有且僅有一個父節(jié)點。

層次模型可以直接表示一對一聯(lián)系和一對多聯(lián)系,但不能直接表示多對多聯(lián)系。如圖1-4所示的就是一個層次模型的例子。其中,D1為根節(jié)點;D2和D3為兄弟節(jié)點,是D1的子節(jié)點;D4和D5為兄弟節(jié)點,是D2的子節(jié)點;D3、D4、D5為葉節(jié)點。圖1-4層次模型示例2)網(wǎng)狀模型

網(wǎng)狀模型(NetworkModel)是用網(wǎng)絡(luò)結(jié)構(gòu)表示數(shù)據(jù)之間聯(lián)系的數(shù)據(jù)模型,是層次模型的擴(kuò)展。網(wǎng)狀模型只需滿足下面任意一個條件:

(1)可以有任意多個節(jié)點而沒有父節(jié)點。

(2)一個節(jié)點允許有多個父節(jié)點。

(3)兩個節(jié)點之間可以有兩種或兩種以上的聯(lián)系。

網(wǎng)狀模型可以直接表示多對多聯(lián)系,但節(jié)點間的連線比較復(fù)雜,因而數(shù)據(jù)結(jié)構(gòu)也比較復(fù)雜。如圖1-5所示是一個網(wǎng)狀模型的例子。其中,D1和D2沒有父節(jié)點,D3和D5有兩個父節(jié)點,D2和D3之間有兩種聯(lián)系R1和R2。圖1-5網(wǎng)狀模型示例3)關(guān)系模型

關(guān)系模型(RalationalModel)是用關(guān)系來表示數(shù)據(jù)之間聯(lián)系的數(shù)據(jù)模型,關(guān)系是指由行與列構(gòu)成的二維表。MicrosoftSQLServer、MicrosoftAccess、MicrosoftFoxPro、Oracle、Sybase等都屬于關(guān)系模型數(shù)據(jù)庫管理系統(tǒng)。這部分內(nèi)容會在1.2.3節(jié)進(jìn)一步深入討論。

4)面向?qū)ο竽P?/p>

面向?qū)ο竽P?ObjectOrientalModel)是一種新興的數(shù)據(jù)模型,它采用面向?qū)ο蟮姆椒▉碓O(shè)計數(shù)據(jù)庫。面向?qū)ο竽P偷臄?shù)據(jù)庫存儲以對象為單位,每個對象包含對象的屬性和方法,具有類和繼承等特點。ComputerAssociates公司的Jasmine就是面向?qū)ο竽P偷臄?shù)據(jù)庫系統(tǒng)。在面向?qū)ο蟮臄?shù)據(jù)模型中,一個對象存取另一個對象的數(shù)據(jù)的唯一途徑是調(diào)用被存取對象的某個方法。對象方法的調(diào)用通過在對象之間傳送消息來實現(xiàn)。對象方法的調(diào)用接口是對外可見的。對象內(nèi)部的變量和程序編碼是封閉的、不可見的。面向?qū)ο蟮臄?shù)據(jù)模型實現(xiàn)了數(shù)據(jù)的獨立性。下面用一個例子來說明這種獨立性。我們可以把銀行的賬戶作為一個對象,記做account。對象account具有兩個變量:一個是賬號變量number,另一個是存款余額變量balance。account具有一個方法pay_interest,負(fù)責(zé)計算每個賬戶的利息并增加到該賬戶的balance變量中。該銀行以往付給每個賬戶的利息都是8%?,F(xiàn)在,銀行調(diào)整利息如下:只有balance高于1000元的賬戶才能獲得8%的利息,其他賬戶只能獲得6%的利息。使用其他數(shù)據(jù)模型實現(xiàn)這種利息調(diào)整,必須修改有關(guān)的應(yīng)用程序;使用面向?qū)ο蟮臄?shù)據(jù)模型,則只需修改方法pay_interest就可以實現(xiàn)這種利息調(diào)整,不需要任何其他改變,更不需要修改應(yīng)用程序。1.2.3關(guān)系數(shù)據(jù)庫

關(guān)系數(shù)據(jù)庫是E.F.Cold在20世紀(jì)70年代提出的數(shù)據(jù)庫模型,自20世紀(jì)80年代以來,新推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都支持關(guān)系數(shù)據(jù)模型。MicrosoftOfficeAccess是一種典型的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。

1.關(guān)系模型中的相關(guān)術(shù)語

下面以“課程編號”表(參見表1-1)為例,介紹關(guān)系模型中的相關(guān)術(shù)語。

(1)關(guān)系。一個關(guān)系就是一個二維表,每個關(guān)系有一個關(guān)系名稱,如表1-1所示的課程編號表。表1-1課程編號(2)實體??陀^存在并可相互區(qū)別的事物稱為實體。

(3)屬性。表(關(guān)系)中的列稱為屬性,每一列有一個屬性名,對應(yīng)數(shù)據(jù)表中的一個字段。

(4)域。一個屬性的取值范圍是該屬性的域。

(5)元組。表中的行稱為元組,每一行是一個元組,對應(yīng)數(shù)據(jù)表中的一個具體記錄,元組的各分量分別對應(yīng)于關(guān)系的各個屬性。

(6)候選碼。如果表中的某個屬性或?qū)傩越M能唯一地標(biāo)識一個元組,稱該屬性或?qū)傩越M為候選碼(候選關(guān)鍵字)。(7)主碼。若一個表中有多個候選碼,可以指定其中一個為主碼(主關(guān)鍵字)。

(8)外碼。如果表中的一個屬性(字段)不是本表的主碼或候選碼,而是另外一個表的主碼或候選碼,這個屬性(字段)稱為外碼(外部關(guān)鍵字)。

(9)關(guān)系模式。一個關(guān)系的關(guān)系名及其全部屬性名的集合簡稱為關(guān)系模式,也就是對關(guān)系的描述,一般表示為“關(guān)系名(屬性名1,屬性名2,…,屬性名n)”,如“課程編號(課程編號,課程名稱,課時)”就是一個關(guān)系模型。

(10)聯(lián)系。實體集之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關(guān)聯(lián)。實體間的聯(lián)系按聯(lián)系方式可分為以下三種類型:一對一聯(lián)系(1∶1)、一對多聯(lián)系(1∶n)、多對多聯(lián)系(m∶n)。2.?E-R(Entity-Relationship)模型

實體-聯(lián)系模型(簡稱E-R模型)是由P.P.Chen于1976年首先提出的,也稱為E-R圖。它提供不受任何DBMS約束的面向用戶的表達(dá)方法,在數(shù)據(jù)庫設(shè)計中被廣泛用作數(shù)據(jù)建模的工具。E-R數(shù)據(jù)模型問世后,經(jīng)歷了許多修改和擴(kuò)充。

E-R模型的構(gòu)成成分是實體集、屬性和聯(lián)系集,其表示方法如下:

(1)實體集用矩形框表示,矩形框內(nèi)寫上實體名。

(2)實體的屬性用橢圓框表示,框內(nèi)寫上屬性名,并用無向邊與實體集相連。

(3)實體間的聯(lián)系用菱形框表示,聯(lián)系以適當(dāng)?shù)暮x命名,名字寫在菱形框中,用無向連線將參加聯(lián)系的實體矩形框分別與菱形框相連,并在連線上標(biāo)明聯(lián)系的類型,即1-1(1對1)、1-M(1對多)或M-M(多對多)。3.關(guān)系模型的完整性

關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件。關(guān)系模型有四類完整性約束,即實體完整性、參照完整性、值域完整性和用戶定義完整性。

1)實體完整性

每個關(guān)系都有一個主關(guān)鍵字,每個元組主關(guān)鍵字的值應(yīng)是唯一的。主關(guān)鍵字的值不能為空,否則,無從識別元組,這就是實體完整性約束。2)參照完整性

在關(guān)系模型中,實體之間的聯(lián)系是用關(guān)系來描述的,因而存在關(guān)系與關(guān)系之間的引用。這種引用可通過外部關(guān)鍵字來實現(xiàn)。參照完整性規(guī)則是對關(guān)系外部關(guān)鍵字的規(guī)定,要求外部關(guān)鍵字取值必須是客觀存在的,即不允許在一個關(guān)系中引用另一個關(guān)系里不存在的元組。

3)值域完整性

值域完整性指數(shù)據(jù)表中的記錄的每個字段的值應(yīng)在允許的范圍內(nèi)。例如,可規(guī)定“學(xué)號”字段必須由數(shù)字組成,并且字段不能超過5個字符。

4)用戶定義完整性

由用戶根據(jù)實際情況,對數(shù)據(jù)庫中數(shù)據(jù)所做的規(guī)定稱為用戶定義完整性規(guī)則,也稱為域完整性規(guī)則。通過這些規(guī)則限制數(shù)據(jù)庫只接受符合完整性約束條件的數(shù)據(jù)值,從而保證數(shù)據(jù)庫的數(shù)據(jù)合理可靠。4.關(guān)系模型的范式化

范式化是保持存儲數(shù)據(jù)完整性并且使冗余數(shù)據(jù)最少的結(jié)構(gòu)過程,規(guī)范化的數(shù)據(jù)庫即符合關(guān)系模型規(guī)則的數(shù)據(jù)庫。關(guān)系模型規(guī)則稱為范式。范式包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。

1)第一范式

設(shè)R是一個關(guān)系模式,如果R中的每個屬性都是不可再分的最小數(shù)據(jù)項,則稱R滿足第一范式或R是第一范式。第一范式滿足以下兩個條件:

(1)記錄的每個屬性只能包含一個值。

(2)關(guān)系中的每個記錄一定不能相同。

例如,學(xué)生(學(xué)號,姓名,性別,系名,入學(xué)時間,家庭成員)不滿足第一范式,因為家庭成員屬性可以再分解,可將“學(xué)生”分解為學(xué)生(學(xué)號,姓名,性別,系名,入學(xué)時間)和家庭(學(xué)號,家庭成員,親屬關(guān)系)。2)第二范式

如果關(guān)系模式R是第一范式,且所有非主屬性都完全依賴于其主關(guān)鍵字,則稱R是第二范式。

如表1-1中,“課程名稱”、“課時”依賴于“課程編號”屬性,因此“課程編碼”關(guān)系是第二范式。

3)第三范式

假設(shè)關(guān)系中有A、B、C三個屬性,傳遞依賴是指關(guān)系中B屬性依賴于主關(guān)鍵字段A,而C屬性依賴于B屬性,稱字段C傳遞依賴于A。如果關(guān)系模式R是第二范式,且所有非主屬性對任何主關(guān)鍵字都不存在傳遞依賴,則稱R滿足第三范式或R是第三范式。

如表1-2所示,候選鍵是“教師編號”屬性,“系別編號”、“課程編號”、“工作時間”、“學(xué)歷”、“職稱”都依賴該候選鍵,并且相互之間無關(guān),其屬于第三范式。表1-2教師表利用關(guān)系范式實現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)存儲的規(guī)范化,可減少數(shù)據(jù)冗余,節(jié)省存儲空間,避免數(shù)據(jù)不一致性,提高對關(guān)系的操作效率,同時滿足應(yīng)用需求。在實際應(yīng)用中,并不一定要求全部模式都達(dá)到第三范式。有時故意保留部分冗余可能會更方便數(shù)據(jù)查詢,尤其對于那些更新頻度不高,查詢頻度極高的數(shù)據(jù)庫系統(tǒng)更是如此。

5.?E-R模型與關(guān)系模型的轉(zhuǎn)化

E-R模型是數(shù)據(jù)庫的一種概念模型,關(guān)系數(shù)據(jù)庫采用的模型是關(guān)系模型,因此,必須將E-R模型轉(zhuǎn)化為關(guān)系模型。根據(jù)E-R模型中實體之間的聯(lián)系,將E-R模型轉(zhuǎn)化為關(guān)系模型的方法如下。1)一對一(1∶1)聯(lián)系的轉(zhuǎn)換

轉(zhuǎn)換方法:將聯(lián)系與任意一端實體所對應(yīng)的關(guān)系模式合并,在關(guān)系模式的屬性中加入另一個實體的主碼和聯(lián)系本身的屬性。

【例1-1】在人事管理系統(tǒng)中,“部門經(jīng)理”實體和“部門”實體之間的任職聯(lián)系是一對一的聯(lián)系,其E-R模型如圖1-6所示,請將其E-R模型轉(zhuǎn)換為關(guān)系模型。圖1-6部門-經(jīng)理E-R模型轉(zhuǎn)換方法:該E-R模型有兩個實體,即“部門”實體和“部門經(jīng)理”實體,且它們是1∶1的聯(lián)系。因此,將聯(lián)系合并到“部門”實體或“部門經(jīng)理”實體中,并將聯(lián)系本身的屬性和另一個實體的主碼作為屬性放入合并的實體中,以下兩種方法均可:

(1)將“任職”聯(lián)系合并到“部門”實體中。

部門(部門經(jīng)理,部門名稱,經(jīng)理編號,聘任時間,任期)

經(jīng)理(經(jīng)理編號,經(jīng)理姓名)(2)將聯(lián)系合并到“部門經(jīng)理”實體中。

部門(部門編號,部門名稱)

經(jīng)理(經(jīng)理編號,經(jīng)理姓名,部門編號,聘任時間,任期)

2)一對多(1∶n)聯(lián)系的轉(zhuǎn)換

轉(zhuǎn)換方法:將該聯(lián)系與n端實體所對應(yīng)的關(guān)系模式合并。合并時需要在n端實體的關(guān)系模式的屬性中加入1端實體的主碼和聯(lián)系本身的屬性。

【例1-2】請將圖1-7中的E-R模型轉(zhuǎn)換為關(guān)系模型。圖1-7部門-員工E-R模型轉(zhuǎn)換方法:該E-R模型有兩個實體,即“部門”實體和“員工”實體,且它們是1∶n的聯(lián)系。因此,將“隸屬”聯(lián)系并到n端的“員工”實體中,并將聯(lián)系本身的屬性和“部門”實體的主碼“部門編號”作為屬性放入“員工”實體中。

部門(部門編號,部門名稱)

員工(員工編號,姓名,性別,部門編號)3)多對多(m∶n)聯(lián)系的轉(zhuǎn)換

轉(zhuǎn)換方法:將一個多對多的聯(lián)系轉(zhuǎn)換為多個一對多的聯(lián)系,再使用前面介紹的方法轉(zhuǎn)換。

通過上面介紹的E-R模型轉(zhuǎn)換為關(guān)系模型的三種方法,可將通用的概念模型轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫中的物理模型,但得到的關(guān)系模型不一定是最優(yōu)的。在實際應(yīng)用中,還需要根據(jù)應(yīng)用需要,對得到的關(guān)系模型進(jìn)行調(diào)整和優(yōu)化。6.關(guān)系運(yùn)算

早期的關(guān)系操作有兩種表示方式:關(guān)系代數(shù)與關(guān)系演算。理論上,關(guān)系代數(shù)和關(guān)系演算被證明是完全等價的。關(guān)系代數(shù)通過對關(guān)系的運(yùn)算來表達(dá)查詢,其操作對象是關(guān)系,操作結(jié)果亦為關(guān)系。

傳統(tǒng)的集合操作包括并、交、差、廣義笛卡兒積等。這類操作將關(guān)系看做元組的集。其操作是從關(guān)系的水平方向(即關(guān)系的行)來進(jìn)行的。設(shè)關(guān)系R和關(guān)系S具有相同數(shù)目的屬性列(n列屬性),并且相應(yīng)的屬性取自同一個域,則可定義以下四種集合運(yùn)算:

并(Union):關(guān)系R與關(guān)系S的并,它是屬于R或?qū)儆赟的元組組成的集合,結(jié)果為n列屬性的關(guān)系。

交(Intersection):關(guān)系R與關(guān)系S的交,它是既屬于R又屬于S的元組組成的集合,結(jié)果為n列屬性的關(guān)系。

差(Difference):關(guān)系R與關(guān)系S的差,它是屬于R而不屬于S的元組組成的集合,結(jié)果為n列屬性的關(guān)系。廣義笛卡兒積(ExtendedCartesianProduct):關(guān)系R(假設(shè)為n列)和關(guān)系S(假設(shè)為m列)的廣義笛卡兒積是一個(n+m)列元組的集合,每一個元組的前n列是來自關(guān)系R的一個元組,后m列是來自關(guān)系S的一個元組。若R有K1個元組,S有K2個元組,則關(guān)系R和關(guān)系S的廣義笛卡兒積有K1×K2個元組。

以傳統(tǒng)的集合操作為依據(jù),數(shù)據(jù)庫關(guān)系運(yùn)算主要包括選擇(Select)、投影(Project)、連接(Join)、自然連接(NatureJoin)。

1)選擇

選擇運(yùn)算是在關(guān)系中選擇滿足某些條件的元組。也就是說,選擇運(yùn)算是在二維表中選擇滿足指定條件的行。示例如圖1-8所示。圖1-8選擇運(yùn)算2)投影

投影運(yùn)算是從關(guān)系模式中指定若干個屬性組成新的關(guān)系,即在關(guān)系中選擇某些屬性列。示例如圖1-9所示。

3)連接

連接運(yùn)算將兩個關(guān)系模式通過公共的屬性名拼接成一個更寬的關(guān)系模式,生成的新關(guān)系中包含滿足連接條件的元組。示例如圖1-10所示。

4)自然連接

在連接運(yùn)算中,按字段值相等的連接稱為等值連接,去掉重復(fù)值的連接稱為自然連接。示例如圖1-11所示。圖1-9投影運(yùn)算圖1-10連接運(yùn)算圖1-11自然連接運(yùn)算1.3.1數(shù)據(jù)庫設(shè)計的兩個方面

數(shù)據(jù)庫設(shè)計的目標(biāo)是在DBMS的支持下,按照應(yīng)用系統(tǒng)的要求,設(shè)計一個結(jié)構(gòu)合理、使用方便、效率較高的數(shù)據(jù)庫系統(tǒng)。

數(shù)據(jù)庫設(shè)計涉及兩方面:數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計和數(shù)據(jù)庫的行為設(shè)計。在設(shè)計數(shù)據(jù)庫的過程中,應(yīng)將結(jié)構(gòu)設(shè)計和行為設(shè)計相結(jié)合。1.3數(shù)?據(jù)?庫?設(shè)?計數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計是從應(yīng)用的數(shù)據(jù)結(jié)構(gòu)角度對數(shù)據(jù)庫的設(shè)計。由于數(shù)據(jù)的結(jié)構(gòu)是靜態(tài)的,因此數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計又稱為數(shù)據(jù)庫的靜態(tài)結(jié)構(gòu)設(shè)計。其設(shè)計過程是:先將現(xiàn)實世界中的事物、事物之間的聯(lián)系用E-R圖表示,再將各E-R圖匯總,得出數(shù)據(jù)庫的概念結(jié)構(gòu)模型,再將概念結(jié)構(gòu)模型轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫的關(guān)系結(jié)構(gòu)模型。

數(shù)據(jù)庫的行為設(shè)計指根據(jù)應(yīng)用系統(tǒng)用戶的行為對數(shù)據(jù)庫的設(shè)計,是指數(shù)據(jù)查詢、統(tǒng)計、事物處理等。由于用戶的行為是動態(tài)的,因此數(shù)據(jù)庫的行為設(shè)計又稱為數(shù)據(jù)庫的動態(tài)設(shè)計。其設(shè)計過程是:首先將現(xiàn)實世界中的數(shù)據(jù)及應(yīng)用情況用數(shù)據(jù)流圖和數(shù)據(jù)字典表示,并描述用戶的數(shù)據(jù)操作要求,從而得出系統(tǒng)的功能結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu)。

數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計和數(shù)據(jù)庫的行為設(shè)計將貫穿數(shù)據(jù)庫設(shè)計的每一步。1.3.2數(shù)據(jù)庫設(shè)計的步驟

數(shù)據(jù)庫設(shè)計可分為6個階段:需求分析階段、概要設(shè)計階段、詳細(xì)設(shè)計階段、編碼階段、測試階段、安裝及維護(hù)階段。各個階段的主要任務(wù)如下。

1.需求分析階段

需求分析階段的主要任務(wù)是:通過與數(shù)據(jù)庫的最終用戶交流,了解和掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)對象(也稱為用戶,指待使用數(shù)據(jù)庫應(yīng)用系統(tǒng)的部門)的工作流程和每個崗位、每個環(huán)節(jié)的職責(zé),了解和掌握信息從開始產(chǎn)生或建立,到最后輸出、存檔或消亡所經(jīng)過的傳遞和轉(zhuǎn)換過程,了解和掌握各種人員在整個系統(tǒng)活動過程中的作用。為了實現(xiàn)設(shè)計目標(biāo),首先要進(jìn)行下述準(zhǔn)備工作:

(1)確定哪些工作應(yīng)由計算機(jī)來做,哪些工作仍由手工來做。

(2)掌握各種人員對信息和處理各有什么要求。

(3)了解對操作界面和報表輸出格式各有什么要求,對信息的安全性、完整性有什么要求。

(4)了解用戶希望從數(shù)據(jù)庫中得到什么樣的信息。

(5)集體討論數(shù)據(jù)庫所要解決的問題,并描述數(shù)據(jù)庫需要生成的報表。

(6)收集當(dāng)前用于記錄數(shù)據(jù)的表格。

(7)參考某個與當(dāng)前要設(shè)計的數(shù)據(jù)庫相似的典型案例。通過進(jìn)行系統(tǒng)調(diào)查和分析,搜集足夠的數(shù)據(jù)庫設(shè)計的依據(jù)。接著完成如下工作:畫出數(shù)據(jù)流圖,建立數(shù)據(jù)字典和編寫需求說明書。

(1)畫出數(shù)據(jù)流圖。數(shù)據(jù)流圖(DataFlowDiagram,DFD)是描述實際業(yè)務(wù)管理系統(tǒng)工作流程的一種圖形表示。數(shù)據(jù)流圖使用帶箭頭的連線表示數(shù)據(jù)的流動方向或者表示前者(即不帶箭頭的一端)對后者(即箭頭所指向的一端)的使用,用圓圈表示進(jìn)行信息處理的一個環(huán)節(jié),用雙線段或開口矩形表示存檔文件或?qū)嵨?,用矩形表示參與活動的人員或部門。通過下發(fā)給教職員工的工資數(shù)據(jù)流動情況,可以設(shè)計出工資管理系統(tǒng)的數(shù)據(jù)流圖,如圖1-12所示。圖1-13所示為工資管理的業(yè)務(wù)處理流程圖。圖1-12工資管理系統(tǒng)的數(shù)據(jù)流圖圖1-13工資管理的業(yè)務(wù)處理流程圖(2)建立數(shù)據(jù)字典。數(shù)據(jù)字典(DataDictionary)是對系統(tǒng)流程中數(shù)據(jù)和處理的描述。在數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計中,它是最原始的數(shù)據(jù)字典,以后在概要設(shè)計和詳細(xì)設(shè)計中的數(shù)據(jù)字典都由它依次變換和修改而得到。

例如,對教職工工資管理系統(tǒng)進(jìn)行分析,可得出工資款項的定義:工資款項即進(jìn)行工資核算所需要的各個數(shù)據(jù)項,包括工資條上計算應(yīng)發(fā)工資、實發(fā)工資所需要的各項數(shù)據(jù),如姓名、固定工資、績效工資、生活補(bǔ)貼等。工資款項的定義就是建立教職工工資核算所需的各項數(shù)據(jù)。根據(jù)工資款項的不同屬性,工資款項可分為:

①相對固定數(shù)據(jù)項,如職工編號、姓名、參加工作時間、固定工資、生活補(bǔ)貼等。

②變動原始數(shù)據(jù)項,如出勤天數(shù)、病假天數(shù)等。

③變動基礎(chǔ)數(shù)據(jù)項,如病、事假扣款等。

④計算所得數(shù)據(jù)項,如應(yīng)發(fā)工資、實發(fā)工資等。(3)編寫需求說明書。需求說明書就是系統(tǒng)總體設(shè)計方案,它包括數(shù)據(jù)流圖和數(shù)據(jù)字典;包括系統(tǒng)設(shè)計總體目標(biāo),系統(tǒng)適宜采用的計算機(jī)系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)及相應(yīng)配置情況;包括系統(tǒng)開發(fā)人員組成、開發(fā)費用和時間;包括劃分系統(tǒng)邊界,即哪些數(shù)據(jù)和處理由計算機(jī)完成,哪些數(shù)據(jù)和處理仍由人工完成;包括對用戶使用系統(tǒng)的要求等許多方面的詳細(xì)內(nèi)容。需求說明書是開發(fā)單位與用戶共同協(xié)商達(dá)成的文檔,一般要經(jīng)過有關(guān)方面的專家進(jìn)行評審和通過。它是以后各階段進(jìn)行開發(fā)、設(shè)計的主要依據(jù),也是最終進(jìn)行系統(tǒng)測試的依據(jù)。通過相關(guān)需求分析可知,工資管理系統(tǒng)應(yīng)具有以下功能:

●錄入工資結(jié)算單中各工資數(shù)據(jù)項的原始數(shù)據(jù),據(jù)此進(jìn)行應(yīng)發(fā)工資、代扣款項、實發(fā)工資數(shù)的計算,能對來自人事部門的人員變動數(shù)據(jù)進(jìn)行相應(yīng)的人員變動數(shù)據(jù)處理,打印工資結(jié)算單。

●根據(jù)結(jié)算單,按部門、班組、人員類別、費用科目進(jìn)行分類匯總,打印分類匯總表。

●根據(jù)工資匯總表進(jìn)行工資費用的分配、福利費的計提,打印工資費用計提、分配表。

●根據(jù)工資匯總表中代扣款項(如個人所得稅代扣計算)的有關(guān)數(shù)據(jù)進(jìn)行匯總,將匯總結(jié)果存入銀行或轉(zhuǎn)入其他有關(guān)部門。

●提供工資數(shù)據(jù)的查詢功能。2.概要設(shè)計階段

這個階段是將需求分析階段的結(jié)果模塊化,并把本系統(tǒng)的數(shù)據(jù)流向等關(guān)系搞明白。最好畫出程序的流程圖,把整個項目的框架設(shè)計出來,如圖1-13畫出了工資管理的業(yè)務(wù)處理流程圖。另外,還要考慮需要哪些功能模塊,每個模塊大體需要完成哪些功能,以及它們之間有什么關(guān)系,等等,如圖1-14所示。圖1-14工資管理系統(tǒng)模塊3.詳細(xì)設(shè)計階段

這個階段是在系統(tǒng)模塊化的基礎(chǔ)上,把系統(tǒng)的功能具體化,逐步完善系統(tǒng)的功能需求。這個階段要為具體的設(shè)計打好基礎(chǔ)。

數(shù)據(jù)庫設(shè)計在每一個具體階段的后期都要經(jīng)過用戶確認(rèn)。如果不能滿足要求,則要返回到前面一個或幾個階段進(jìn)行調(diào)整和修改。整個設(shè)計過程實際上是一個不斷返回修改、調(diào)整的迭代過程。

4.編碼階段

該階段主要是根據(jù)詳細(xì)設(shè)計的結(jié)果把原始數(shù)據(jù)裝入數(shù)據(jù)庫,建立一個具體的數(shù)據(jù)庫并編寫和調(diào)試相應(yīng)的應(yīng)用程序。應(yīng)用程序的開發(fā)目標(biāo)是開發(fā)一個可依賴的有效的數(shù)據(jù)庫存取程序,來滿足用戶的處理要求。1)規(guī)劃數(shù)據(jù)庫中的表

表是數(shù)據(jù)庫的基本信息結(jié)構(gòu)。確定表可能是數(shù)據(jù)庫設(shè)計過程中最難處理的步驟,因為要從數(shù)據(jù)庫獲得的結(jié)果(如要打印的報表,要使用的格式,要解決的問題等)不一定能夠提供用于生成它們的表的結(jié)構(gòu)的線索。

在設(shè)計表時,應(yīng)按以下設(shè)計原則對信息進(jìn)行分類:

(1)表中不應(yīng)該包含重復(fù)信息,而且信息不應(yīng)該在表之間復(fù)制。如果每條信息只保存在一個表中,則只需在一處進(jìn)行更新,這樣效率更高,同時也消除了包含不同信息的重復(fù)項的可能性。例如,在一個表中,對每個教職工的職工編號、姓名等只保存一次。(2)每個表應(yīng)該只包含關(guān)于一個主題的信息。如果每個表只包含關(guān)于一個主題的事件,則可以獨立于其他主題來維護(hù)每個主題的信息。例如,將教職工的基本信息與考勤信息存放在不同的表中,這樣就可以在刪除某條考勤記錄后仍然保留教職工的信息。

通過上述分析,在“教職工工資管理系統(tǒng)”中我們設(shè)計如下幾張表:教職工基本信息表、部門表、考勤表、績效工資、工資表。2)確定表中的字段

每個表中都包含關(guān)于同一主題的信息,表中的每個字段則包含關(guān)于該主題的各個事件。例如,教職工基本信息表中包含的字段有職工編號、姓名、性別、出生年月、參加工作時間、學(xué)歷、職稱、聯(lián)系電話、郵箱地址、籍貫、部門編號;部門表中包含的字段有部門編號、部門名稱、負(fù)責(zé)人;考勤表中包含的字段有職工編號、出勤天數(shù)、加班時間、遲到次數(shù)、早退次數(shù)、曠工次數(shù)、事假次數(shù)、病假次數(shù);績效工資中包含的字段有職工編號、加班費、獎金、津貼、考勤扣除金額;工資表中包含的字段有職工編號、姓名、固定工資、生活補(bǔ)貼、應(yīng)發(fā)工資、水電費、公積金、稅收、實發(fā)工資。在草擬每個表的字段時,要注意以下問題:

(1)每個字段都直接與表的主題相關(guān)。

(2)不包含推導(dǎo)或計算的數(shù)據(jù),如表達(dá)式的計算結(jié)果。

(3)包含所需的所有信息。

(4)以最小的邏輯部分保存信息。例如,對英文姓名應(yīng)該將姓和名分開保存。3)確定表之間的關(guān)系

首先要明確主碼與外碼。主碼能唯一識別表中的每一條記錄,為確保主碼字段的唯一性,Access避免任何重復(fù)值或Null值進(jìn)入主碼字段。在Access中可以定義三種主碼:自動編號、單字段和多字段。表之間的關(guān)聯(lián)依靠外碼來維系,設(shè)計的表結(jié)構(gòu)合理,不僅可以存儲所需要的實體信息,而且可以反映實體之間

溫馨提示

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

評論

0/150

提交評論