第四章數(shù)據(jù)庫(kù)技術(shù)_第1頁(yè)
第四章數(shù)據(jù)庫(kù)技術(shù)_第2頁(yè)
第四章數(shù)據(jù)庫(kù)技術(shù)_第3頁(yè)
第四章數(shù)據(jù)庫(kù)技術(shù)_第4頁(yè)
第四章數(shù)據(jù)庫(kù)技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩194頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章數(shù)據(jù)庫(kù)技術(shù)

4-1數(shù)據(jù)庫(kù)基本概念

4-2關(guān)系代數(shù)

4-3數(shù)據(jù)庫(kù)設(shè)計(jì)

4-4關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言(SQL)

4-5數(shù)據(jù)庫(kù)的保護(hù)本章主要介紹:數(shù)據(jù)庫(kù)系統(tǒng)的基本概念,關(guān)系代數(shù),關(guān)系數(shù)據(jù)庫(kù)的基本概念及設(shè)計(jì)方法。學(xué)會(huì)將一個(gè)具體問(wèn)題抽象出實(shí)體、屬性,找到關(guān)鍵字及它們之間的聯(lián)系,能畫出E-R圖、初步E-R圖和基本E-R圖,并能將一個(gè)E-R圖轉(zhuǎn)化為具體的關(guān)系模式,能用關(guān)系代數(shù)和SQL語(yǔ)言對(duì)關(guān)系進(jìn)行操作,找到所需信息。重點(diǎn):

理解數(shù)據(jù)庫(kù)系統(tǒng)的基本概念,掌握關(guān)系代數(shù)的基本運(yùn)算和SQL語(yǔ)言,掌握關(guān)系數(shù)據(jù)庫(kù)的基本概念及設(shè)計(jì)方法。難點(diǎn):關(guān)系數(shù)據(jù)庫(kù)的基本概念及設(shè)計(jì)方法,使用SQL語(yǔ)言正確完成復(fù)雜查詢。4.1數(shù)據(jù)庫(kù)基本概念4.1.1數(shù)據(jù)庫(kù)系統(tǒng)概述一、數(shù)據(jù)與數(shù)據(jù)處理1、信息現(xiàn)實(shí)世界中各種事物的存在方式、運(yùn)動(dòng)形態(tài)以及它們之間的相互聯(lián)系等諸要素在人腦中的反映,通過(guò)人腦的抽象后形成概念。2、數(shù)據(jù)信息的一種符號(hào)化表示方法。數(shù)據(jù)的概念包括兩個(gè)方面含義:數(shù)據(jù)的內(nèi)容是信息(語(yǔ)義),數(shù)據(jù)的表現(xiàn)形式是符號(hào)。

數(shù)據(jù)在大多數(shù)人頭腦里的第一反應(yīng)就是數(shù)字,其實(shí)數(shù)字只是最簡(jiǎn)單的一種數(shù)據(jù),是數(shù)據(jù)的一種傳統(tǒng)和狹義的理解。廣義地,數(shù)據(jù)可以是文字、圖形、圖象、聲音、學(xué)生檔案記錄、貨物的運(yùn)輸情況等。數(shù)據(jù)有多種表現(xiàn)形式,它們都可以經(jīng)數(shù)字化后存入計(jì)算機(jī)。3.信息與數(shù)據(jù)的關(guān)系數(shù)據(jù)是承載信息的物理符號(hào)(載體),信息是數(shù)據(jù)的內(nèi)涵二者的區(qū)別:

數(shù)據(jù)可以表示信息,但不是任何數(shù)據(jù)都能表示信息,同一數(shù)據(jù)可以有不同的解釋。信息是抽象的,同一信息可以有不同的數(shù)據(jù)表示方式。4、數(shù)據(jù)處理將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程。例:在學(xué)生檔案中一個(gè)學(xué)生的數(shù)據(jù)可以這樣描述 (李明,男,21,1972,江蘇,物理系,2000)經(jīng)過(guò)轉(zhuǎn)換我們可得到如下信息:李明是一個(gè)大學(xué)生,1972年出生,男,江蘇人,2000年考入物理系。如不將上述數(shù)據(jù)轉(zhuǎn)換成信息,你也許就不能理解其數(shù)據(jù)的含義。

信息=數(shù)據(jù)+處理為提高數(shù)據(jù)處理后得到信息的價(jià)值,必須用科學(xué)的方法來(lái)管理數(shù)據(jù),這種科學(xué)方法就是數(shù)據(jù)庫(kù)技術(shù)。二、數(shù)據(jù)庫(kù)管理技術(shù)

人工管理

→文件系統(tǒng)

→數(shù)據(jù)庫(kù)管理系統(tǒng)人工管理:1.背景

20世紀(jì)50年代中期以前2.特點(diǎn)

數(shù)據(jù)面向應(yīng)用程序,應(yīng)用程序與其處理數(shù)據(jù)包含在程序中,用戶必須考慮存儲(chǔ)、使用數(shù)據(jù)的一切工作,3.程序與數(shù)據(jù)的關(guān)系存在問(wèn)題:(1)數(shù)據(jù)不保存(2)應(yīng)用程序管理數(shù)據(jù)(3)數(shù)據(jù)不能共享(4)數(shù)據(jù)不具有獨(dú)立性文件系統(tǒng)階段1.背景

20世紀(jì)50年代后期至60年代中期2.特點(diǎn)依靠操作系統(tǒng)的文系統(tǒng)將一大堆雜亂的數(shù)據(jù)按一定的規(guī)律組成文件,有獨(dú)立的文件名。程序通過(guò)文件系統(tǒng)這個(gè)接口與數(shù)據(jù)文件發(fā)生聯(lián)系。一個(gè)應(yīng)用程序可用多個(gè)數(shù)據(jù)文件,而不同的應(yīng)用程序也可使用同一個(gè)數(shù)據(jù)文件(1)數(shù)據(jù)可以長(zhǎng)期保存(2)文件系統(tǒng)管理數(shù)據(jù)3.程序與數(shù)據(jù)的關(guān)系存在問(wèn)題:①數(shù)據(jù)冗余度大數(shù)據(jù)冗余度是指不必要的重復(fù)存儲(chǔ)。文件系統(tǒng)中數(shù)據(jù)文件基本上對(duì)應(yīng)于一個(gè)應(yīng)用程序,即文件是面向應(yīng)用的,數(shù)據(jù)文件之間彼此孤立,不能反映數(shù)據(jù)之間的聯(lián)系,當(dāng)不同的應(yīng)用程序具有相同的數(shù)據(jù)時(shí),也必須建立各自的文件,同一數(shù)據(jù)可能重復(fù)出現(xiàn)在多個(gè)數(shù)據(jù)文件中,數(shù)據(jù)不能共享。例:學(xué)生成績(jī)數(shù)據(jù)文件、學(xué)生團(tuán)員數(shù)據(jù)文件、學(xué)生數(shù)據(jù)文件,這三個(gè)文件中可能有很多重復(fù)數(shù)據(jù)。②缺乏數(shù)據(jù)獨(dú)立性文件系統(tǒng)中數(shù)據(jù)文件是為滿足特定的需要而設(shè)置的,服務(wù)于某一特定的應(yīng)用程序,數(shù)據(jù)和程序間相互依賴,修改數(shù)據(jù)必須修改程序,修改程序也必須要修改數(shù)據(jù)。③數(shù)據(jù)無(wú)集中管理除對(duì)數(shù)據(jù)項(xiàng)的存取由系統(tǒng)承擔(dān)以外,對(duì)數(shù)據(jù)文件的其它管理(例如修改、增刪)必須由應(yīng)用程序承擔(dān)。數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)是結(jié)構(gòu)化的相關(guān)數(shù)據(jù)集合,它不僅包含數(shù)據(jù)本身,而且還包含關(guān)于數(shù)據(jù)間的一切聯(lián)系,數(shù)據(jù)庫(kù)中數(shù)據(jù)不只面向某一項(xiàng)特殊的應(yīng)用,而是面向多種應(yīng)用,可以被多個(gè)用戶、多個(gè)應(yīng)用程序所共享(例如某個(gè)學(xué)校所涉及的全部數(shù)據(jù)的匯集)。其數(shù)據(jù)獨(dú)立于使用數(shù)據(jù)的程序,有專門的軟件對(duì)數(shù)據(jù)實(shí)行專門管理,對(duì)數(shù)據(jù)的修改、增刪、檢索等操作均由這個(gè)軟件統(tǒng)一控制。1.背景20世紀(jì)60年代后期2.?dāng)?shù)據(jù)庫(kù)系統(tǒng)階段程序與數(shù)據(jù)的關(guān)系3.特點(diǎn):(1)數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)庫(kù)系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。(2)實(shí)現(xiàn)數(shù)據(jù)共享,減少冗余因數(shù)據(jù)是面向整個(gè)系統(tǒng),而不是某個(gè)特定的應(yīng)用程序,故數(shù)據(jù)可被多個(gè)用戶所共享,共享可減少冗余度。(3)具有較高的數(shù)據(jù)獨(dú)立性

物理數(shù)據(jù)獨(dú)立性:用戶應(yīng)用程序與存儲(chǔ)在磁盤上數(shù)據(jù)庫(kù)中數(shù)據(jù)相互獨(dú)立。數(shù)據(jù)在磁盤上的存儲(chǔ)由DBMS管理,用戶不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),當(dāng)數(shù)據(jù)物理(存儲(chǔ))結(jié)構(gòu)改變時(shí),應(yīng)用程序不必改變。邏輯數(shù)據(jù)獨(dú)立性:用戶的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的。(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制保證了數(shù)據(jù)安全性(無(wú)關(guān)人員不能隨意讀取)、完整性(未授權(quán)人員不能修改)、并發(fā)性(多個(gè)用戶同時(shí)使用數(shù)據(jù)庫(kù)中數(shù)據(jù)時(shí),由DBMS統(tǒng)一分配管理,不會(huì)出現(xiàn)程序之間互相干擾)。三、數(shù)據(jù)庫(kù)系統(tǒng)的構(gòu)成①

數(shù)據(jù)庫(kù)存貯在計(jì)算機(jī)內(nèi)有結(jié)構(gòu)的數(shù)據(jù)集合(存放數(shù)據(jù)倉(cāng)庫(kù),它里面的數(shù)據(jù)按一定的格式存放)。②數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)以統(tǒng)一的方式管理和維護(hù)數(shù)據(jù)庫(kù),并提供訪問(wèn)數(shù)據(jù)庫(kù)接口的軟件(介于用戶應(yīng)用程序與數(shù)據(jù)庫(kù)之間的一個(gè)接口)其主要功能:定義數(shù)據(jù)庫(kù)結(jié)構(gòu)、管理數(shù)據(jù)庫(kù)、建立和維護(hù)數(shù)據(jù)庫(kù)、與操作系統(tǒng)的通信。③數(shù)據(jù)庫(kù)系統(tǒng)指引進(jìn)數(shù)據(jù)庫(kù)技術(shù)后的計(jì)算機(jī)系統(tǒng)。一般由支持?jǐn)?shù)據(jù)庫(kù)運(yùn)行的軟硬件、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶等部分組成的。數(shù)據(jù)庫(kù)的建立、使用和維護(hù)工作只靠一個(gè)DBMS遠(yuǎn)遠(yuǎn)不夠,還要有專門的人員來(lái)完成,這些人稱為數(shù)據(jù)庫(kù)管理員(DBA)

數(shù)據(jù)庫(kù)系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序?yàn)橹行霓D(zhuǎn)向圍繞共享的數(shù)據(jù)庫(kù)為中心的新階段。這樣既便于數(shù)據(jù)集中管理,又有利于應(yīng)用程序的研制和維護(hù),提高了數(shù)據(jù)的利用率和相容性,提高了決策的可靠性。4.1.2數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)從數(shù)據(jù)庫(kù)管理系統(tǒng)的角度:數(shù)據(jù)庫(kù)系統(tǒng)通常采用三級(jí)模式結(jié)構(gòu),數(shù)據(jù)庫(kù)管理系統(tǒng)內(nèi)部的系統(tǒng)結(jié)構(gòu)。從數(shù)據(jù)庫(kù)最終用戶的角度:數(shù)據(jù)庫(kù)結(jié)構(gòu)分為集中式、分布式、客戶/服務(wù)器和并行結(jié)構(gòu),這是數(shù)據(jù)庫(kù)管理系統(tǒng)外部的系統(tǒng)結(jié)構(gòu)。一、數(shù)據(jù)庫(kù)系統(tǒng)模式概念模式是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,采用三級(jí)模式結(jié)構(gòu)并提供兩級(jí)映像功能,保證數(shù)據(jù)庫(kù)中數(shù)據(jù)具有較高的邏輯獨(dú)立性和物理獨(dú)立性。

1、數(shù)據(jù)庫(kù)系統(tǒng)三級(jí)模式結(jié)構(gòu)①.模式(邏輯模式或概念模式)是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。它是數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)的中間層,既不涉及數(shù)據(jù)的物理存儲(chǔ)細(xì)節(jié)和硬件環(huán)境,也與具體的應(yīng)用程序,與所使用的應(yīng)用開(kāi)發(fā)工具及高級(jí)程序設(shè)計(jì)語(yǔ)言無(wú)關(guān)。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)模式。數(shù)據(jù)庫(kù)模式以某一種數(shù)據(jù)模型為基礎(chǔ),統(tǒng)一綜合考慮了所有用戶的需求,并將這些需求有機(jī)地結(jié)合成一個(gè)邏輯整體。定義模式時(shí)不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu)(例數(shù)據(jù)記錄由那些數(shù)據(jù)項(xiàng)構(gòu)成,數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等,還要定義數(shù)據(jù)之間的聯(lián)系,定于與數(shù)據(jù)有關(guān)的安全性、完整性要求。

DBMS提供模式描述語(yǔ)言(模式DDL)定義模式②.外模式(子模式或用戶模式)是數(shù)據(jù)庫(kù)用戶能夠看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式一般是模式的子集。一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)外模式,由于它是各個(gè)用戶的數(shù)據(jù)視圖,如果不同的用戶在應(yīng)用需求、看待數(shù)據(jù)的方式、對(duì)數(shù)據(jù)保密的要求等方面存在差異,其外模式描述就不同。即使對(duì)模式中同一數(shù)據(jù),在外模式中的結(jié)構(gòu)、類型、長(zhǎng)度、保密級(jí)別等都可以不同。同一個(gè)外模式也可以為某一個(gè)用戶的多個(gè)應(yīng)用系統(tǒng)所使用,但一個(gè)應(yīng)用程序只能使用一個(gè)外模式。外模式是保證數(shù)據(jù)庫(kù)安全性的一個(gè)有力措施。每個(gè)用戶只能看見(jiàn)和訪問(wèn)所對(duì)應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫(kù)中的其余數(shù)據(jù)是不可見(jiàn)的。

DBMS提供子模式描述語(yǔ)言(子模式DDL)定義子模式③.內(nèi)模式(存儲(chǔ)模式)是數(shù)據(jù)庫(kù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。(例記錄的存儲(chǔ)方式是順序存儲(chǔ)還是hash方式存儲(chǔ);索引按照什么方式組織;數(shù)據(jù)是否壓縮存儲(chǔ),是否加密;數(shù)據(jù)的存儲(chǔ)記錄結(jié)構(gòu)有何規(guī)定等)。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式。DBMS提供內(nèi)模式描述語(yǔ)言(內(nèi)模式DDL)定義內(nèi)模式二、數(shù)據(jù)庫(kù)的二級(jí)映象功能與數(shù)據(jù)獨(dú)立性

數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式是對(duì)數(shù)據(jù)的三個(gè)抽象級(jí)別,它把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯地抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的具體表示方法與存儲(chǔ)方式。為了能夠在內(nèi)部實(shí)現(xiàn)這三個(gè)抽象層次的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫(kù)管理系統(tǒng)在這三級(jí)模式之間提供了兩層映象。(1)“外模式/模式”之間的映象模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu)。對(duì)應(yīng)同一個(gè)模式可以有任意多個(gè)外模式。對(duì)于每一個(gè)外模式,數(shù)據(jù)庫(kù)系統(tǒng)都有一個(gè)外模式/模式映象,它定義了該外模式與模式之間的對(duì)應(yīng)關(guān)系。當(dāng)模式改變時(shí)由DBA對(duì)各個(gè)外模式/模式的映象作相應(yīng)修改,可使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性。(2)“模式/內(nèi)模式”之間的映象數(shù)據(jù)庫(kù)只有一個(gè)模式,也只有一個(gè)內(nèi)模式,模式/內(nèi)模式映象是唯一的,它定義了數(shù)據(jù)庫(kù)全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),由DBA對(duì)各個(gè)模式/內(nèi)模式的映象作相應(yīng)修改,可使模式保持不變,從而應(yīng)用程序也不用修改,保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的物理獨(dú)立性。

在數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)中,數(shù)據(jù)庫(kù)模式(全局邏輯結(jié)構(gòu))是數(shù)據(jù)庫(kù)的中心和關(guān)鍵,它獨(dú)立于數(shù)據(jù)庫(kù)的其他層次。因此設(shè)計(jì)數(shù)據(jù)庫(kù)模式結(jié)構(gòu)時(shí)應(yīng)首先確定數(shù)據(jù)庫(kù)的邏輯模式。

數(shù)據(jù)庫(kù)外模式面向具體應(yīng)用程序,它定義在邏輯結(jié)構(gòu)之上,但獨(dú)立于存儲(chǔ)模式和存儲(chǔ)設(shè)備。當(dāng)應(yīng)用需求發(fā)生較大變化,相應(yīng)外模式不能滿足需要,該外模式就應(yīng)做相應(yīng)修改,所以設(shè)計(jì)外模式時(shí)應(yīng)充分考慮到應(yīng)用的擴(kuò)充性。

特定的應(yīng)用程序是在外模式描述的數(shù)據(jù)結(jié)構(gòu)上編制的,它依賴于特定的外模式,與數(shù)據(jù)的模式和存儲(chǔ)結(jié)構(gòu)獨(dú)立。不同的應(yīng)用程序可以共用同一個(gè)外模式。

數(shù)據(jù)庫(kù)二級(jí)映象保證了數(shù)據(jù)庫(kù)外模式的穩(wěn)定性,從而從底層保證了應(yīng)用程序的穩(wěn)定性,除非應(yīng)用需求本身發(fā)生變化,否則應(yīng)用程序一般不需要修改。

數(shù)據(jù)與程序之間的獨(dú)立性,使數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出去。另外,由于數(shù)據(jù)存取有DBMS管理,用戶不必考慮存取路徑等細(xì)節(jié),從而簡(jiǎn)化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護(hù)和修改。4.1.3數(shù)據(jù)描述與數(shù)據(jù)模型模型是現(xiàn)實(shí)世界特殊的模擬和抽象。數(shù)據(jù)模型也是一種模型,它是現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象。在數(shù)據(jù)庫(kù)中用數(shù)據(jù)模型這個(gè)工具來(lái)抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。通俗地講,數(shù)據(jù)模型就是對(duì)現(xiàn)實(shí)世界的模擬。現(xiàn)有數(shù)據(jù)庫(kù)系統(tǒng)均是基于某種數(shù)據(jù)模型的,因而了解數(shù)據(jù)模型的基本概念是學(xué)習(xí)數(shù)據(jù)庫(kù)的基礎(chǔ)數(shù)據(jù)模型應(yīng)滿足三個(gè)方面的要求:①能比較真實(shí)地模擬現(xiàn)實(shí)世界;②容易為人們所理解;便于在計(jì)算機(jī)上實(shí)現(xiàn)不同的數(shù)據(jù)模型實(shí)際上是提供給我們模型化數(shù)據(jù)和信息的不同工具。根據(jù)模型應(yīng)用的不同目的,可將它們劃分為兩類,它們分屬兩個(gè)不同層次。①概念模型(信息模型):按用戶觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫(kù)的設(shè)計(jì)。②數(shù)據(jù)模型:按計(jì)算機(jī)系統(tǒng)觀點(diǎn)來(lái)對(duì)數(shù)據(jù)建模,主要用于DBMS

的實(shí)現(xiàn),分為網(wǎng)絡(luò)模型、層次模型和關(guān)系模型等。一、觀念世界中名詞術(shù)語(yǔ)(1)實(shí)體:客觀存在并可相互區(qū)別的事物。它是客觀存在的事物在人頭腦中的反映。實(shí)體既可以是實(shí)際的事物,也可以是抽象的概念或聯(lián)系。例:具體的人(如一個(gè)教師、一個(gè)學(xué)生等)、物(一本書、一門課);抽象的事物(一次借書);事物與事物之間的聯(lián)系(某個(gè)教師在某系工作,某個(gè)學(xué)生選某門課)等。(2)屬性:實(shí)體所具有的特性,一個(gè)實(shí)體可以由若干個(gè)屬性描述例:學(xué)生實(shí)體可由(學(xué)號(hào),姓名,性別,出生年份,系,入學(xué)時(shí)間)而(94002,張三,男,1976,物理,1994)張三這個(gè)學(xué)生。

即實(shí)體是若干屬性的屬性值的集合。(3)碼(鍵、關(guān)鍵字):惟一標(biāo)識(shí)實(shí)體屬性或?qū)傩越M合。例:學(xué)號(hào)是學(xué)生實(shí)體的關(guān)鍵字(碼)(4)域:屬性的取值范圍稱為該屬性的域。例:學(xué)號(hào)的域?yàn)?位整數(shù),姓名域?yàn)樽址?,年齡域?yàn)樾∮?0歲,性別域?yàn)椋?、女)?)實(shí)體型:表征某一類實(shí)體的屬性(名)的集合。實(shí)體是若干屬性的集合,具有相同屬性的實(shí)體必然具有共同的特征和性質(zhì),用表征某一類實(shí)體的屬性的集合來(lái)抽象刻畫同一類實(shí)體,稱為實(shí)體型。例:學(xué)生實(shí)體型:(學(xué)號(hào),姓名,性別,出生年份,系,入學(xué)時(shí)間)→描述該類實(shí)體的特征(學(xué)生實(shí)體特征)學(xué)生實(shí)體:(94002,張三,男,1976,物理,1994)

→描述某個(gè)具體的實(shí)體(某個(gè)學(xué)生信息)分清屬性名(姓名)與屬性值(張三);

屬性名集合→實(shí)體型,屬性值集合→實(shí)體。(6)實(shí)體集:同類(具有相同屬性)實(shí)體(值)的集合。例:同一個(gè)班的學(xué)生具有共同的屬性,每個(gè)學(xué)生為一個(gè)實(shí)體,全班學(xué)生的集合稱為實(shí)體集。實(shí)體值集合→實(shí)體集

(7)聯(lián)系:聯(lián)系分為兩種:一種是實(shí)體內(nèi)部各屬性之間的聯(lián)系,另一種是實(shí)體之間的聯(lián)系。實(shí)體間的各種聯(lián)系可以歸結(jié)為三類:①一對(duì)一聯(lián)系(1:1):如果對(duì)于實(shí)體集E1中的每個(gè)實(shí)體,實(shí)體集E2中至多有一個(gè)(可以沒(méi)有)與之相對(duì)應(yīng),反之亦然,則稱實(shí)體集E1與實(shí)體集E2具有一對(duì)一聯(lián)系。②一對(duì)多聯(lián)系(1:n):如果對(duì)于實(shí)體集E1中的每個(gè)實(shí)體,實(shí)體集E2中有n個(gè)實(shí)體(n≥0)與之相對(duì)應(yīng),反過(guò)來(lái),實(shí)體集E2中的每個(gè)實(shí)體,實(shí)體集E1中至多只有一個(gè)實(shí)體與之聯(lián)系,則稱實(shí)體集E1與實(shí)體集E2具有一對(duì)多聯(lián)系。③多對(duì)多聯(lián)系(m:n):如果對(duì)于實(shí)體集E1中的每個(gè)實(shí)體,實(shí)體集E2中有n個(gè)實(shí)體(n≥0)與之相對(duì)應(yīng),反過(guò)來(lái),實(shí)體集E2中的每個(gè)實(shí)體,實(shí)體集E1中也有m個(gè)實(shí)體(m≥0)與之聯(lián)系,則稱實(shí)體集E1與實(shí)體集E2具有多對(duì)多聯(lián)系。

可看出1:1是1:n的特例,1:n又是m:n的特例??梢苑謩e用圖形表示兩個(gè)實(shí)體之間的聯(lián)系。

當(dāng)涉及到三個(gè)及以上的實(shí)體集同時(shí)聯(lián)系時(shí),應(yīng)認(rèn)真分析,使之能真實(shí)地反映現(xiàn)實(shí)世界。例:如有三個(gè)實(shí)體集:教師、學(xué)生和課程,它們之間有如下關(guān)系:一門課可由若干學(xué)生選修,每個(gè)學(xué)生可選修多門課程,每門課程由不同的教師講授。

同一實(shí)體集內(nèi)部各實(shí)體之間也可以存在一對(duì)一、一對(duì)多和多對(duì)多的聯(lián)系。例:職工實(shí)體集內(nèi)部具有領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的聯(lián)系,即一個(gè)職工(干部)領(lǐng)導(dǎo)若干名職工,而一個(gè)職工僅被另一個(gè)職工直接領(lǐng)導(dǎo),故為一對(duì)多聯(lián)系。

用上面概念可將現(xiàn)實(shí)世界中的事物及其聯(lián)系在觀念世界中描述出來(lái)。事物——實(shí)體事物特征——實(shí)體屬性 不同事物之間聯(lián)系——實(shí)體集之間聯(lián)系事物內(nèi)部聯(lián)系——實(shí)體集中實(shí)體之間聯(lián)系二、概念模型的表示方法

前面已介紹,我們用概念模型表示觀念世界中的數(shù)據(jù)和信息,所以概念模型應(yīng)該能夠方便、準(zhǔn)確地表示出上述觀念世界中的常用概念。概念模型有很多種,其中最為流行的一種是由美籍華人陳平山于1976年提出的實(shí)體聯(lián)系模型(Entity-RelationshipModel,簡(jiǎn)稱E-R模型),這種圖稱為實(shí)體-聯(lián)系圖,簡(jiǎn)稱E-R圖,E-R圖提供了表示實(shí)體集、屬性和聯(lián)系的方法

E―R圖有三個(gè)要素:①用矩形框表示實(shí)體,框內(nèi)標(biāo)明實(shí)體名。②用橢圓框表示實(shí)體的屬性,框內(nèi)標(biāo)明屬性名,用連線與實(shí)體連接起來(lái)。③用菱形表示實(shí)體間的聯(lián)系,框內(nèi)標(biāo)明聯(lián)系名,用連線將菱形框分別與相關(guān)實(shí)體相連,并在連線上標(biāo)明聯(lián)系類型(1:1,1:n或m:n)。如這些聯(lián)系具有屬性,則這些屬性也用連線與聯(lián)系相連。例1:mn例2:用E-R圖來(lái)表示某個(gè)工廠物資管理的概念模型,物資管理涉及的實(shí)體集有:倉(cāng)庫(kù):倉(cāng)庫(kù)號(hào)、面積、電話號(hào)零件:零件號(hào)、名稱、規(guī)格、單價(jià)、描述供應(yīng)商:供應(yīng)商號(hào)、姓名、地址、電話號(hào)、帳號(hào)項(xiàng)目:項(xiàng)目號(hào)、預(yù)算、開(kāi)工日期職工:職工號(hào)、姓名、年齡、職稱這些實(shí)體集之間的聯(lián)系如下:①一個(gè)倉(cāng)庫(kù)可存放多種零件,一個(gè)零件可存放在多個(gè)倉(cāng)庫(kù),用庫(kù)存量表示某個(gè)零件在某個(gè)倉(cāng)庫(kù)中的數(shù)量②一個(gè)倉(cāng)庫(kù)有多個(gè)職工當(dāng)倉(cāng)庫(kù)保管員,一個(gè)職工只能在一個(gè)倉(cāng)庫(kù)工作職工之間有領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的關(guān)系④一個(gè)供應(yīng)商可以供給若干項(xiàng)目多個(gè)零件,每個(gè)項(xiàng)目可使用不同供應(yīng)商供應(yīng)的零件,每種零件可由不同供應(yīng)商供給。倉(cāng)庫(kù):倉(cāng)庫(kù)號(hào)、面積、電話號(hào)零件:零件號(hào)、名稱、規(guī)格、單價(jià)、描述供應(yīng)商:供應(yīng)商號(hào)、姓名、地址、電話號(hào)、帳號(hào)項(xiàng)目:項(xiàng)目號(hào)、預(yù)算、開(kāi)工日期職工:職工號(hào)、姓名、年齡、職稱實(shí)體-聯(lián)系圖(E-R圖)一個(gè)倉(cāng)庫(kù)可存放多種零件,一個(gè)零件可存放在多個(gè)倉(cāng)庫(kù),用庫(kù)存量表示某個(gè)零件在某個(gè)倉(cāng)庫(kù)中的數(shù)量;一個(gè)倉(cāng)庫(kù)有多個(gè)職工當(dāng)倉(cāng)庫(kù)保管員,一個(gè)職工只能在一個(gè)倉(cāng)庫(kù)工作職工之間有領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的關(guān)系;一個(gè)供應(yīng)商可以供給若干項(xiàng)目多個(gè)零件,每個(gè)項(xiàng)目可使用不同供應(yīng)商供應(yīng)的零件,每種零件可由不同供應(yīng)商供給。例3、一個(gè)簡(jiǎn)單的工廠管理系統(tǒng),通過(guò)實(shí)地調(diào)查分析,該工廠管理的實(shí)體集類型有:雇員、部門、項(xiàng)目、零件、供應(yīng)商和倉(cāng)庫(kù)。雇員:雇員號(hào)、姓名、年齡、職稱部門:部門號(hào)、名稱、電話號(hào)項(xiàng)目:項(xiàng)目號(hào)、預(yù)算、開(kāi)工日期零件:零件號(hào)、名稱、規(guī)格、單價(jià)、描述供應(yīng)商:供應(yīng)商號(hào)、姓名、地址、電話號(hào)、帳號(hào)倉(cāng)庫(kù):倉(cāng)庫(kù)號(hào)、面積、電話號(hào)這些實(shí)體集之間的聯(lián)系如下:①一個(gè)雇員只能在一個(gè)部門工作,一個(gè)部門可以有多個(gè)雇員②一個(gè)雇員可參加一個(gè)以上項(xiàng)目,每個(gè)項(xiàng)目需多個(gè)人參加③每個(gè)項(xiàng)目必須確定一個(gè)負(fù)責(zé)人,一個(gè)人可負(fù)責(zé)多個(gè)項(xiàng)目一個(gè)供應(yīng)商可以為多個(gè)項(xiàng)目提供零件,每個(gè)項(xiàng)目可從不同供應(yīng)商那里采購(gòu)零件,每個(gè)項(xiàng)目需多個(gè)零件⑤系統(tǒng)還保存多個(gè)供應(yīng)商可以提供零件的種類和數(shù)量⑥一種零件可以由其它幾種零件組裝而成⑦購(gòu)買的零件存放在倉(cāng)庫(kù)中,一個(gè)倉(cāng)庫(kù)可存放多種零件,一個(gè)零件也可以存放在不同的倉(cāng)庫(kù)中雇員:雇員號(hào)、姓名、年齡、職稱部門:部門號(hào)、名稱、電話號(hào)項(xiàng)目:項(xiàng)目號(hào)、預(yù)算、開(kāi)工日期零件:零件號(hào)、名稱、規(guī)格、單價(jià)、描述供應(yīng)商:供應(yīng)商號(hào)、姓名、地址、電話號(hào)、帳號(hào)倉(cāng)庫(kù):倉(cāng)庫(kù)號(hào)、面積、電話號(hào)實(shí)體-聯(lián)系圖(E-R圖)或參加零件

零件號(hào)

規(guī)格

名稱

單價(jià)

雇員號(hào)

部門號(hào)

名稱

電話號(hào)

項(xiàng)

項(xiàng)目號(hào)

預(yù)

開(kāi)工日期

倉(cāng)

庫(kù)

倉(cāng)庫(kù)號(hào)

面積

電話號(hào)

務(wù)

供應(yīng)商

供應(yīng)商號(hào)

地址

電話號(hào)

姓名

帳號(hào)

供應(yīng)

可供應(yīng)

零件類型

零件數(shù)

存放

庫(kù)存量

供應(yīng)量

裝配

數(shù)量

1

n

mnm

n

p

m

n

m

n

m

n

三、數(shù)據(jù)模型

數(shù)據(jù)模型是將觀念世界中實(shí)體及實(shí)體之間的聯(lián)系進(jìn)一步抽象成便于計(jì)算機(jī)處理的數(shù)據(jù)模型,一般分為三類(層次模型、網(wǎng)狀模型、關(guān)系模型),現(xiàn)在又提出一種“面向?qū)ο竽P汀?。任何一個(gè)DBMS都是基于某種數(shù)據(jù)模型的。一個(gè)數(shù)據(jù)模型由數(shù)據(jù)結(jié)構(gòu)(邏輯結(jié)構(gòu)、物理結(jié)構(gòu))、數(shù)據(jù)操作和完整性約束條件三個(gè)方面描述。

在非關(guān)系模型中:實(shí)體——記錄實(shí)體屬性——記錄數(shù)據(jù)項(xiàng)(字段)

實(shí)體型——記錄型實(shí)體集——文件實(shí)體間聯(lián)系在非關(guān)系模型中轉(zhuǎn)換為記錄之間的聯(lián)系。注意:這里講的數(shù)據(jù)模型都是邏輯上的,即用戶眼中看到的數(shù)據(jù)范圍。同時(shí)它們又都是能用某種語(yǔ)言描述,使計(jì)算機(jī)系統(tǒng)能夠理解,被數(shù)據(jù)庫(kù)管理系統(tǒng)支持的數(shù)據(jù)視圖。這些數(shù)據(jù)模型將以一定的方式存儲(chǔ)于數(shù)據(jù)庫(kù)系統(tǒng)中,是DBMS中的存儲(chǔ)模型。1、層次模型

用樹(shù)型結(jié)構(gòu)來(lái)表示記錄及記錄之間的聯(lián)系,層次模型按樹(shù)型結(jié)構(gòu)組織數(shù)據(jù),它是以記錄型為結(jié)點(diǎn),以結(jié)點(diǎn)間聯(lián)系為邊的有序樹(shù),數(shù)據(jù)結(jié)構(gòu)為有序樹(shù)或森林。

層次模型容易表示1:n聯(lián)系,但是它不能直接表示m:n的聯(lián)系,必須分成幾個(gè)1:n來(lái)實(shí)現(xiàn),比較麻煩。2、網(wǎng)狀模型以記錄型為結(jié)點(diǎn)的網(wǎng)狀結(jié)構(gòu)(圖),以記錄型為結(jié)點(diǎn),連線表示它們之間的關(guān)系,網(wǎng)中結(jié)點(diǎn)之間的聯(lián)系不受層次限制,可以任意發(fā)生聯(lián)系。容易實(shí)現(xiàn)m:n

學(xué)院

網(wǎng)狀模型和層次模型都屬性格式化模型,即在建立數(shù)據(jù)模型時(shí),應(yīng)根據(jù)應(yīng)用需要,事先把數(shù)據(jù)之間的邏輯關(guān)系固定下來(lái)(必須先畫出它們之間的聯(lián)系圖),結(jié)構(gòu)復(fù)雜,不利于擴(kuò)充、維護(hù)。

20世紀(jì)70年代網(wǎng)狀模型和層次模型數(shù)據(jù)庫(kù)在商業(yè)上得到廣泛應(yīng)用,但現(xiàn)在已退出歷史舞臺(tái),取而代之的是關(guān)系模型,即關(guān)系型數(shù)據(jù)庫(kù)。3、關(guān)系模型⑴、關(guān)系模型邏輯結(jié)構(gòu)關(guān)系數(shù)據(jù)模型是由IBM公司的E.F.Codd于1970年首次提出,以關(guān)系數(shù)據(jù)模型為基礎(chǔ)的數(shù)據(jù)庫(kù)管理系統(tǒng),稱為關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)(RDBMS),目前廣泛使用。它是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上。在用戶觀念下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。例:

關(guān)系模型中,數(shù)據(jù)為一個(gè)二維表,每個(gè)二維表稱為一個(gè)“關(guān)系(表)”。幾個(gè)術(shù)語(yǔ):關(guān)系(表)、元組(記錄)、屬性(字段)、關(guān)系模式、值域(域)、主鍵(關(guān)鍵字)、外鍵①關(guān)系(表)關(guān)系模型中一個(gè)具體的二維表稱為關(guān)系。②關(guān)系模式

二維表表頭稱為關(guān)系模式,是對(duì)關(guān)系的描述。關(guān)系模式表示為:關(guān)系模式名(屬性名1,屬性名2,...,屬性名n)例:學(xué)生(學(xué)號(hào),姓名,性別,出生日期,所在系)關(guān)系是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動(dòng)態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)系數(shù)據(jù)庫(kù)中內(nèi)容不斷變化。主鍵

關(guān)系

關(guān)系模式

元組

屬性

屬性名

列名

jbqk

關(guān)系名

表名

③元組(記錄)關(guān)系中的每一行稱為關(guān)系的一個(gè)元組。④屬性(字段)表中每一列稱為一個(gè)屬性,對(duì)屬性的命名稱為屬性名,取值稱為屬性值⑤值域(域)每個(gè)屬性的取值范圍稱為該屬性的值域。如人年齡值域一般在{0~150}歲之間,性別的值域?yàn)閧男、女},所在系的值域?yàn)橐粋€(gè)學(xué)校所有系名的集合。⑥主鍵(關(guān)鍵字)能夠惟一標(biāo)識(shí)一個(gè)元組的屬性集。⑦外鍵設(shè)F是關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的主鍵,如果F與另一關(guān)系S的主鍵K相對(duì)應(yīng),則稱F是關(guān)系R的外鍵。例1:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)專業(yè)(專業(yè)號(hào),專業(yè)名)

學(xué)生關(guān)系“專業(yè)號(hào)”屬性與專業(yè)關(guān)系的主鍵“專業(yè)號(hào)”相對(duì)應(yīng),因此“專業(yè)號(hào)”屬性是學(xué)生關(guān)系外鍵。對(duì)于表示關(guān)系的二維表,最基本的要求:表中每一個(gè)元組的每一個(gè)分量,必須是不可分的數(shù)據(jù)項(xiàng),即不允許表中再有表。12212212122

在關(guān)系模型中,實(shí)體及實(shí)體間的聯(lián)系都用關(guān)系來(lái)表示例:學(xué)生與課程間多對(duì)多的聯(lián)系在關(guān)系模型中可表示為三個(gè)關(guān)系學(xué)生(學(xué)號(hào),姓名,性別,年齡,籍貫)課程(課程號(hào),課程名,上課地點(diǎn))選修(學(xué)號(hào),課程號(hào),成績(jī))通過(guò)選修中外鍵字段:學(xué)號(hào)、課程號(hào),將學(xué)生與課程聯(lián)系起來(lái)實(shí)體聯(lián)系

在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體間聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)。⑵、關(guān)系模型物理結(jié)構(gòu)

關(guān)系模型中,實(shí)體及實(shí)體間的聯(lián)系都用關(guān)系(二維表)來(lái)表示。在數(shù)據(jù)庫(kù)的物理組織中,關(guān)系表以文件形式存儲(chǔ)。一個(gè)表或幾個(gè)表對(duì)應(yīng)一個(gè)操作系統(tǒng)文件。⑶、關(guān)系模型中數(shù)據(jù)進(jìn)行操作關(guān)系模型中數(shù)據(jù)進(jìn)行主要操作:查詢、插入、刪除、修改數(shù)據(jù)、投影、連接。⑷、關(guān)系模型的完整性約束條件在關(guān)系數(shù)據(jù)庫(kù)中關(guān)系模式是型,關(guān)系是值。關(guān)系模式是對(duì)關(guān)系的描述,現(xiàn)實(shí)世界隨時(shí)間在不斷變化,因而在不同時(shí)刻,關(guān)系模式的關(guān)系也會(huì)有所變化。但現(xiàn)實(shí)世界的許多已有事實(shí)限定了關(guān)系模式所有可能的關(guān)系必須滿足一定的約束條件。這些約束條件或者通過(guò)對(duì)屬性取值范圍的限定(例大學(xué)生入學(xué)年齡小于30歲),或者通過(guò)屬性值間的相互關(guān)連(屬性間存在函數(shù)關(guān)系)反映,關(guān)系模式應(yīng)當(dāng)能刻劃這些約束條件。完整性約束條件是一組完整性規(guī)則集合,完整性規(guī)則用于限定符合數(shù)據(jù)庫(kù)狀態(tài)及狀態(tài)變化,以保證數(shù)據(jù)的正確、有效、相容。關(guān)系模型完整性約束條件有三類:實(shí)體完整性、參照完整性和用戶定義的完整性。其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件。①實(shí)體完整性規(guī)則

基本關(guān)系的所有主屬性(主鍵中屬性)都不能取空值關(guān)系模型中關(guān)系對(duì)應(yīng)于現(xiàn)實(shí)世界的一個(gè)實(shí)體集,現(xiàn)實(shí)世界中實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識(shí),在關(guān)系模型中用主鍵作為唯一標(biāo)識(shí),主鍵的屬性值不能取空值。所謂空值就是“不知道”或“無(wú)意義”的值。如果主屬性取空值,就說(shuō)明存在某個(gè)不可識(shí)別的實(shí)體,即存在不可區(qū)別的實(shí)體,與現(xiàn)實(shí)世界中實(shí)體是可區(qū)分的相矛盾,因此這個(gè)規(guī)則稱為實(shí)體完整性。例:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)

課程(課程號(hào),課程名,上課地點(diǎn))選修(學(xué)號(hào),課程號(hào),成績(jī))②參照完整性規(guī)則

現(xiàn)實(shí)世界中實(shí)體之間往往存在某種聯(lián)系,在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來(lái)描述的。這就存在關(guān)系與關(guān)系間的引用。例1:學(xué)生實(shí)體和專業(yè)實(shí)體用下列關(guān)系表示,主鍵用下劃線標(biāo)識(shí)學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)專業(yè)(專業(yè)號(hào),專業(yè)名)這兩個(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)系的屬性取值。例2:學(xué)生、課程學(xué)生與課程間多對(duì)多聯(lián)系可表示為三個(gè)關(guān)系學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)課程(課程號(hào),課程名,學(xué)分)選修(學(xué)號(hào),課程號(hào),成績(jī))

這三個(gè)關(guān)系間也存在屬性的引用,選修關(guān)系中某些屬性取值需要參照其他關(guān)系的屬性取值。例3:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡,班長(zhǎng))同一個(gè)關(guān)系內(nèi)部屬性間存在屬性的引用。參照完整性規(guī)則就是定義外鍵與主鍵之間的引用規(guī)則。其規(guī)則為:

若屬性(或?qū)傩越M)F是關(guān)系R的外鍵,它與關(guān)系S的主鍵K相對(duì)應(yīng),則對(duì)于R中每個(gè)元組F上的值必須為:空值(F中每個(gè)屬性值均為空值);或等于S中某個(gè)元組的主鍵值。例:根據(jù)參照完整性規(guī)則:對(duì)于例1,學(xué)生關(guān)系中每個(gè)元組的“專業(yè)號(hào)”屬性只能取下面兩類值:空值(表示尚未給該學(xué)生分配專業(yè));非空值,這時(shí)該值必須是專業(yè)關(guān)系中某個(gè)元組的“專業(yè)號(hào)”值,表示該學(xué)生不可能分配到一個(gè)不存在的專業(yè)中。對(duì)于例2,選修關(guān)系中“學(xué)號(hào)”和“課程號(hào)”屬性只能取在學(xué)生和課程關(guān)系中已經(jīng)存在的值(因“學(xué)號(hào)”和“課程號(hào)”為選修主鍵)對(duì)于例3,“班長(zhǎng)”屬性只能取空值(表示該學(xué)生所在班尚未選出班長(zhǎng))或“學(xué)號(hào)”屬性中已經(jīng)存在的學(xué)號(hào)值。③用戶定義的完整性

任何關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)都應(yīng)該支持實(shí)體完整性和參照完整性,除此之外,不同的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)其應(yīng)用環(huán)境不同,還需要一些特殊的約束條件,用戶定義的完整性就是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件。它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須遵循的特定語(yǔ)義約束條件。例如,在學(xué)校數(shù)據(jù)庫(kù)中規(guī)定大學(xué)生入學(xué)年齡不得超過(guò)30歲,碩士研究生入學(xué)年齡不得超過(guò)38歲,學(xué)生累計(jì)成績(jī)不得有三門以上不及格,分?jǐn)?shù)屬性取值范圍在0~100等。

關(guān)系模型提供了定義和檢驗(yàn)這類完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)方法處理它們,而不需應(yīng)用程序承擔(dān)這一功能。4、關(guān)系模型優(yōu)缺點(diǎn)優(yōu)點(diǎn):由于實(shí)體和聯(lián)系都用關(guān)系描述,因此數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單直觀、用戶易理解②具有很高的數(shù)據(jù)獨(dú)立性。在關(guān)系模型中,用戶不涉及數(shù)據(jù)的物理存儲(chǔ),只與數(shù)據(jù)本身的特性發(fā)生關(guān)系,因此數(shù)據(jù)的獨(dú)立性很高。③可以直接處理多對(duì)多的聯(lián)系。在關(guān)系模型中,由于使用表格數(shù)據(jù)來(lái)表示實(shí)體之間的聯(lián)系,因此,可以直接描述多對(duì)多的聯(lián)系④有嚴(yán)格的設(shè)計(jì)理論(關(guān)系代數(shù))⑤存取路徑對(duì)用戶透明,從而具有更高的獨(dú)立性、更好的安全保密性,也簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫(kù)開(kāi)發(fā)建立的工作量。主要缺點(diǎn):由于存取路徑對(duì)用戶透明,造成查詢速度慢,效率低于非關(guān)系型數(shù)據(jù)模型。

現(xiàn)實(shí)世界 觀念世界 關(guān)系模型事物 實(shí)體 元組事物特性 屬性 屬性同類事物特征 實(shí)體型 關(guān)系模式同類事物集合 實(shí)體集 關(guān)系事物之間聯(lián)系實(shí)體間聯(lián)系關(guān)系在關(guān)系模型中,不需要事先構(gòu)造數(shù)據(jù)的邏輯關(guān)系,只需將數(shù)據(jù)按照一定的關(guān)系存入計(jì)算機(jī)(即將數(shù)據(jù)放在不同的關(guān)系表中),當(dāng)需要用到這些數(shù)據(jù)時(shí),就可將這些關(guān)系歸結(jié)為集合的運(yùn)算,如:并、交、差、投影等,從而在許多數(shù)據(jù)中選取所需的數(shù)據(jù)。

4.2關(guān)系代數(shù) 1.域定義1域:一組具有相同數(shù)據(jù)類型的值集合。例如:整數(shù)、實(shí)數(shù)、字符串、{男,女},{0,1}等都可以是域基數(shù):域中數(shù)據(jù)的個(gè)數(shù)稱為域的基數(shù)M。域被命名后用如下方法表示:D1={白亞春,陳韜,王雪蓮},表示姓名的集合,基數(shù)是3;D2={計(jì)算機(jī)系,電子系}2.笛卡爾積定義2給定一組域Dl,D2,…,Dn,則Dl,D2,…,Dn的笛卡爾積為:Dl×D2×…×Dn={(d1,d2,…dn)|di∈Di,i=1,2,…n}其中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)元組,元組中的每一個(gè)值di叫作一個(gè)分量,di必須是Di中的一個(gè)值。顯然,笛卡爾積的基數(shù)就是構(gòu)成該積所有域的基數(shù)累乘積,若Di(i=1,2,…,n)為有限集合,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Di×…×Dn笛卡爾積的基數(shù)M為:例如,我們給出三個(gè)域:

Dl=導(dǎo)師集合supervisor={張清梅,劉逸}D2=專業(yè)集合speciality={計(jì)算機(jī),信息}D3=研究生集合postgraduate={李勇,劉晨,王敏}Dl×D2×D3={(張清梅,計(jì)算機(jī),李勇),(張清梅,計(jì)算機(jī),劉晨),(張清梅,計(jì)算機(jī),王敏),(張清梅,信息,李勇),(張清梅,信息,劉晨),(張清梅,信息,王敏),(劉逸,計(jì)算機(jī),李勇),(劉逸,計(jì)算機(jī),劉晨),(劉逸,計(jì)算機(jī),王敏),(劉逸,信息,李勇),(劉逸,信息,劉晨),(劉逸,信息,王敏)}這2×2×3=12個(gè)元組可列成一張二維表:

supervisorspecialitypostgraduate張清梅計(jì)算機(jī)李勇張清梅計(jì)算機(jī)劉晨張清梅計(jì)算機(jī)王敏張清梅信息李勇張清梅信息劉晨張清梅信息王敏劉

逸計(jì)算機(jī)李勇劉

逸計(jì)算機(jī)劉晨劉

逸計(jì)算機(jī)王敏劉

逸信息李勇劉

逸信息劉晨劉

逸信息王敏3.關(guān)系定義3笛卡爾積D1×D2×…×Di×…×Dn的子集R稱作在域D1,D2,…,Dn上的關(guān)系,記作:R(D1,D2,…,Di,…,Dn)其中:R為關(guān)系名,n為關(guān)系的度或目(Degree),Di是域組中的第i個(gè)域名.當(dāng)n=1時(shí),稱該關(guān)系為單元關(guān)系;當(dāng)n=2時(shí),稱該關(guān)系為二元關(guān)系;以此類推,關(guān)系中有n個(gè)域,稱該關(guān)系為n元關(guān)系。關(guān)系是笛卡爾積的有限子集,所以關(guān)系也是一個(gè)二維表,表中每行對(duì)應(yīng)一個(gè)元組,每列對(duì)應(yīng)一個(gè)域。由于域可以相同,為區(qū)分,必須對(duì)每列起一個(gè)名字,稱為屬性。n目關(guān)系必有n個(gè)屬性。

從上例的笛卡爾積中取出一個(gè)子集來(lái)構(gòu)造一個(gè)關(guān)系。由于一個(gè)導(dǎo)師只有一個(gè)專業(yè),一個(gè)研究生只能師從于一個(gè)導(dǎo)師,學(xué)習(xí)某一個(gè)專業(yè),所以笛卡爾積中許多元組是無(wú)意義的,從中取出有意義的元組來(lái)構(gòu)造關(guān)系,該關(guān)系為:SPA(supervisor,speciality,postgraduate)關(guān)系可以分為三種類型:基本關(guān)系(又稱基本表):是實(shí)際存在的表,它是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示;查詢表:是對(duì)基本表進(jìn)行查詢后得到的結(jié)果表;視圖表:是由基本表或其它視圖導(dǎo)出的表,是一個(gè)虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)supervisorspecialitypostgraduate張清梅信息劉晨張清梅信息李勇劉

逸信息王敏傳統(tǒng)的集合運(yùn)算傳統(tǒng)的集合運(yùn)算是二目運(yùn)算,包括并、交、差、廣義笛卡爾積四種運(yùn)算。1、并運(yùn)算∪R∪S

R-S

R∩S

3、差運(yùn)算-2、交運(yùn)算∩

并、交、差運(yùn)算要求關(guān)系R與S具有相同的關(guān)系模式,且它們的值域相同,經(jīng)過(guò)這些運(yùn)算后,它們?nèi)詾橐粋€(gè)與R、S相同元的關(guān)系。如R、S為n元,則R∪S也為n元。關(guān)系R關(guān)系S并R∪S交R∩SABCabcdefxyzABCxyzabcmnpABCabcdefxyzmnpABCabcxyz差R-SABCdef4.廣義笛卡爾積兩個(gè)分別為n目和m目的關(guān)系R和S的廣義笛卡爾積是一個(gè)(n+m)列的元組的集合。元組的前n列是關(guān)系R的一個(gè)元組,后m列是關(guān)系S的一個(gè)元組。若R有k1個(gè)元組,S有k2個(gè)元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有kl×k2個(gè)元組。記作R×S={tr

ts

|tr∈R且ts∈S}。ABC123456789ABCabcdefhij關(guān)系R

關(guān)系SABCABC123abc123def123hij456abc456def456hij789abc789def789hijR×S

3+3=6元關(guān)系前3個(gè)來(lái)自R后3個(gè)來(lái)自SR×S元組數(shù)為:3×3例:專門的關(guān)系運(yùn)算專門的關(guān)系運(yùn)算包括:選擇、投影和連接,用于數(shù)據(jù)查詢服務(wù)。5、選擇運(yùn)算在給定的關(guān)系中選擇滿足條件的元組,構(gòu)成一個(gè)新關(guān)系,而這個(gè)關(guān)系是原關(guān)系的一個(gè)子集。選擇運(yùn)算結(jié)果是一個(gè)表行的子集,關(guān)系模式不變,元組數(shù)改變。記作:R關(guān)系名;g邏輯表達(dá)式(指定條件),取值為“真”或“假”。由關(guān)系運(yùn)算符:=、≠、>、≥、<、≤和邏輯運(yùn)算符:∧(與)、∨(或)、﹁(非)組成

或例:關(guān)系R如圖所示,現(xiàn)選擇所在系為“COM”、且所選課程為

C1的元組。S#(系編號(hào))

SN(學(xué)生名)SD(系名)C#(課程名)S1MAELEC3S2HUCOMC1S3LIMATHC2S4CHENPHSYC1運(yùn)算為:或:運(yùn)算結(jié)果:S#(系編號(hào))

SN(學(xué)生名)SD(系名)C#(課程名)S2HUCOMC1相當(dāng)于數(shù)據(jù)庫(kù)語(yǔ)言中的查找記錄命令。6、投影從指定的關(guān)系中挑選出所需屬性構(gòu)成新的關(guān)系。這個(gè)操作對(duì)關(guān)系進(jìn)行垂直分解,消去關(guān)系中某些列,并可重新排列屬性次序,關(guān)系模式改變。選擇運(yùn)算的結(jié)果是一個(gè)表列的子集。記作:或

功能:從關(guān)系R中選擇出若干屬性列(字段)組成新關(guān)系。R為關(guān)系名;t(A)為選中屬性列的名稱;A為R的屬性列(名稱或列稱)例:

一個(gè)學(xué)生關(guān)系(學(xué)生)如圖所示,現(xiàn)需查詢學(xué)生的姓名、學(xué)號(hào)和成績(jī),并將查詢結(jié)果放入一個(gè)新關(guān)系SNM中CLS(班級(jí))S#(學(xué)號(hào))SN(姓名)SD(所屬系)SA(年齡)MAR(成績(jī))W1S1MAPHSY1992W4S2ZHUMATH2087W2S5HUELE2083W3S6QICOM1991W1S3ZHOUELE1995學(xué)生運(yùn)算為:或運(yùn)算結(jié)果為:S#SNMARS1MA92S2ZHU87S5HU83S6QI91S3ZHOU95投影可在關(guān)系列的方向進(jìn)行選擇,當(dāng)需取出表中某些列的值時(shí),用投影運(yùn)算很方便。投影后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(行)。因取消列屬性后,就可能出現(xiàn)重復(fù)行,應(yīng)取消這些完全相同的行。7、連接運(yùn)算對(duì)兩個(gè)關(guān)系進(jìn)行運(yùn)算,從兩個(gè)關(guān)系的廣義笛卡爾積中選取屬性間滿足一定條件的元組。設(shè)有k1元關(guān)系R和k2元關(guān)系S,則R與S兩個(gè)關(guān)系的連接運(yùn)算為:

連接運(yùn)算符;

i、j表示關(guān)系R中第i個(gè)屬性的屬性名和S中第j個(gè)屬性的屬性名,它們之間具有可比性;

關(guān)系運(yùn)算符。功能:找出關(guān)系R和S的笛卡爾積中屬性i的值和屬性j的值之間滿足

關(guān)系的所有元組。比較符

為“=”時(shí),稱等值連接

為“<”時(shí),稱小于連接

為“>”時(shí),稱大于連接連接后是一個(gè)k1+k2元關(guān)系[i]

[j]例:關(guān)系R和關(guān)系S如圖所示銷往城市銷售員產(chǎn)品號(hào)銷售量C1M1D12000C2M2D22500C3M3D11500C4M4D23000產(chǎn)品號(hào)生產(chǎn)量訂購(gòu)數(shù)D137003000D255005000D340003500RS連接運(yùn)算[3]=[1]銷往城市銷售員產(chǎn)品號(hào)銷售量產(chǎn)品號(hào)生產(chǎn)量訂購(gòu)數(shù)C1M1D12000D137003000C2M2D22500D255005000C3M3D11500D137003000C4M4D23000D255005000

連接運(yùn)算將兩個(gè)關(guān)系通過(guò)屬性間的關(guān)系連接起來(lái),變成一個(gè)新關(guān)系。8、自然連接一種特殊的等值連接自然連接是對(duì)兩個(gè)具有公共屬性(屬性名相同)的關(guān)系所進(jìn)行的運(yùn)算。如關(guān)系R和關(guān)系S具有公共屬性,則R和S的自然連接是從它們的笛卡爾積R×S中選出公共屬性值相同的那些元組,記為:

設(shè)關(guān)系R和關(guān)系S具有相同的屬性名A1,A2,…,AK,則R與S的自然連接為:①計(jì)算R×S②挑選R×S中同時(shí)滿足

R.A1=S.A1、R.A2=S.A2、…、R.AK=S.AK的那些元組③去掉S.A1、S.A2、…、S.AK這些重復(fù)屬性例、關(guān)系R與S如圖所示銷往城市銷售員產(chǎn)品號(hào)銷售量C1M1D12000C2M2D22500C3M3D11500C4M4D23000產(chǎn)品號(hào)生產(chǎn)量訂購(gòu)數(shù)D137003000D255005000D340003500RS自然連接運(yùn)算銷往城市銷售員產(chǎn)品號(hào)銷售量生產(chǎn)量訂購(gòu)數(shù)C1M1D1200037003000C2M2D2250055005000C3M3D1150037003000C4M4D2300055005000

用關(guān)系運(yùn)算可方便地對(duì)一個(gè)或多個(gè)關(guān)系進(jìn)行各種拆分和組裝操作。在關(guān)系數(shù)據(jù)庫(kù)中,正是通過(guò)這些運(yùn)算完成對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行存取、修改、檢索等操作。例1設(shè)有一個(gè)關(guān)系R,找出平均成績(jī)?cè)?5分及以上的學(xué)生的姓名和學(xué)號(hào)。S#(學(xué)號(hào))SN(姓名)SD(所屬系)AVER(平均成績(jī))

SUM(總成績(jī))

S1MACS185425S2BICS181406S3FANCS291455S4WANGCS287437分兩步:①找出平均成績(jī)≥85分的元組——選擇:②選擇學(xué)號(hào)、姓名兩個(gè)字段——投影:綜合為:結(jié)果為:S#(學(xué)號(hào))SN(姓名)S1MAS3FANS4WANG例2設(shè)有關(guān)系T和P,現(xiàn)找出講授課程G1的教師姓名、所在系和該教師的職稱。TN(姓名)TD(所屬系)TA(年齡)TS(性別)T(職稱)LIPHSY51男副教授WUCHEN42男講師HECOM54男副教授LUELE35男講師TN(姓名)TG(所任課程)LIPHSYWUCHENHECOMLUELETP①TP結(jié)果為:TN(姓名)TD(所屬系)TA(年齡)TS(性別)T(職稱)TG(所任課程)LIPHSY51男副教授PHSYWUCHEN42男講師CHENHECOM54男副教授COMLUELE35男講師ELE②選取講授G1課程的教師(TP)

③選取姓名、系、職稱字段(TP))

連接運(yùn)算比較費(fèi)時(shí),尤其是在包含許多元組的關(guān)系之間進(jìn)行的連接運(yùn)算更是如此。設(shè)關(guān)系R和S分別有m和n個(gè)元組,R與S之間的連接過(guò)程要訪問(wèn)m×n個(gè)元組。從R第一個(gè)元組開(kāi)始依次與S中各元組比較,符合條件首尾相接去掉重復(fù)的字段納入新關(guān)系,一輪共比較n次,再用R第二個(gè)元組與S第1~n個(gè)元組進(jìn)行比較。因此查詢時(shí),為提高效率,如有可能應(yīng)先進(jìn)行選擇運(yùn)算,使關(guān)系中元組盡量少,能投影的先投影,使關(guān)系中字段盡量少,然后再進(jìn)行連接運(yùn)算。根據(jù)這個(gè)思路,上題可改為:①

T()T②③例3設(shè)有一關(guān)系W,在W中增加(插入)一個(gè)元組(a,b,c,d,e,f,g)。ABCDEFGa1b1c1d1e1f1g1a2b2c2d2e2f2g2a3b3c3d3e3f3g3

W=W∪(a,b,c,d,e,f,g)

刪除W中(a2,b2,c2,d2,e2,f2,g2)元組:

W=W-(a2,b2,c2,d2,e2,f2,g2)

從上面例子可看出,關(guān)系代數(shù)的運(yùn)算結(jié)果仍是一個(gè)關(guān)系,我們可以用關(guān)系代數(shù)的運(yùn)算表示我們所需進(jìn)行的各種庫(kù)查詢和更新處理要求。例4:在關(guān)系W中查找字段A為a1的元組:將字段B為b2的元組從W中刪除:W-4.3數(shù)據(jù)庫(kù)設(shè)計(jì)一、數(shù)據(jù)庫(kù)設(shè)計(jì)的基本概念數(shù)據(jù)庫(kù)設(shè)計(jì)是指按照用戶要求,結(jié)合某一數(shù)據(jù)庫(kù)管理系統(tǒng),為被設(shè)計(jì)的對(duì)象建立數(shù)據(jù)模型,并編制相應(yīng)應(yīng)用程序的過(guò)程。從本質(zhì)上講,數(shù)據(jù)庫(kù)設(shè)計(jì)是將數(shù)據(jù)庫(kù)系統(tǒng)與現(xiàn)實(shí)世界的應(yīng)用對(duì)象緊密結(jié)合起來(lái),構(gòu)成一個(gè)有機(jī)整體的過(guò)程。因此要求數(shù)據(jù)庫(kù)設(shè)計(jì)者對(duì)數(shù)據(jù)庫(kù)系統(tǒng)和實(shí)際應(yīng)用對(duì)象兩方面都必須了解。數(shù)據(jù)庫(kù)設(shè)計(jì)是一個(gè)應(yīng)用課題,由于它涉及面較廣,至今尚無(wú)一個(gè)統(tǒng)一的設(shè)計(jì)方法,但一般都是從局部到全局,從邏輯設(shè)計(jì)到物理設(shè)計(jì),即對(duì)客觀世界的事物進(jìn)行抽象,轉(zhuǎn)換成某一個(gè)DBMS的數(shù)據(jù)。數(shù)據(jù)庫(kù)設(shè)計(jì)包含兩方面的內(nèi)容:①結(jié)構(gòu)特性設(shè)計(jì)即數(shù)據(jù)模型與數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)(數(shù)據(jù)庫(kù)框架),它應(yīng)該是具有最小冗余的、能滿足不同用戶數(shù)據(jù)需求的、能實(shí)現(xiàn)數(shù)據(jù)共享的系統(tǒng)。數(shù)據(jù)庫(kù)結(jié)構(gòu)特性是靜態(tài)的,應(yīng)留有擴(kuò)充余地,使系統(tǒng)容易改變。②

行為特性設(shè)計(jì)即應(yīng)用程序、事物處理等的設(shè)計(jì)。

數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)是否合理,直接影響到系統(tǒng)中各個(gè)處理過(guò)程的性能和質(zhì)量。

數(shù)據(jù)庫(kù)設(shè)計(jì)是一項(xiàng)綜合性技術(shù)。“三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)”是數(shù)據(jù)庫(kù)建設(shè)的基本規(guī)律。數(shù)據(jù)庫(kù)設(shè)計(jì)與傳統(tǒng)的軟件設(shè)計(jì)有相同的地方,但在做法上側(cè)重不同,它的主要精力首先是在結(jié)構(gòu)特性的設(shè)計(jì)上,即要匯總各用戶的要求,盡量減少冗余,實(shí)現(xiàn)數(shù)據(jù)共享,設(shè)計(jì)出滿足各用戶的統(tǒng)一的數(shù)據(jù)模型。二、數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程1、需求分析

需求分析就是確定所要開(kāi)發(fā)的應(yīng)用系統(tǒng)的目標(biāo),收集和分析用戶對(duì)數(shù)據(jù)及數(shù)據(jù)處理的需求,了解用戶需要什么樣的、做什么用的數(shù)據(jù)庫(kù)。主要考慮“做什么”問(wèn)題,而不是考慮“怎么做”問(wèn)題需求分析的工作成果是產(chǎn)生用戶和設(shè)計(jì)者都能接受的需求說(shuō)明書,這是數(shù)據(jù)庫(kù)概念設(shè)計(jì)的基礎(chǔ)。需求分析是設(shè)計(jì)數(shù)據(jù)庫(kù)的起點(diǎn),需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實(shí)際要求,將直接影響到后面各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用

需求分析的重點(diǎn)是“數(shù)據(jù)”和“處理”,通過(guò)調(diào)查、分析,獲得用戶對(duì)數(shù)據(jù)庫(kù)的信息和處理要求。信息要求指用戶從數(shù)據(jù)庫(kù)中獲得信息的內(nèi)容與性質(zhì)。處理要求知用戶對(duì)數(shù)據(jù)庫(kù)在處理功能、響應(yīng)時(shí)間、處理方式等方面的要求。信息需求處理需求

需求分析

需求說(shuō)明書⑴了解用戶環(huán)境和要求了解用戶環(huán)境就是了解用戶的業(yè)務(wù)活動(dòng),了解人工管理系統(tǒng)是如何進(jìn)行工作的,為什么要這樣做。在工作過(guò)程中,要了解用戶的環(huán)境和要求,即需要哪些數(shù)據(jù)、如何發(fā)送、數(shù)據(jù)的格式是什么、需要保留哪些數(shù)據(jù)、數(shù)據(jù)量及數(shù)據(jù)的增長(zhǎng)率有多少等。繪制現(xiàn)行人工管理系統(tǒng)的工作流程圖,并描繪出各項(xiàng)工作的功能、數(shù)據(jù)的傳輸格式、類型、長(zhǎng)度及時(shí)間性和完整性要求,從而對(duì)人工管理系統(tǒng)的優(yōu)缺點(diǎn)做出正確地評(píng)價(jià)。在此階段,要盡量讓用戶多提要求,使各方面的要求盡量詳細(xì)、全面。例:某公司決定建立一個(gè)以數(shù)據(jù)庫(kù)為基礎(chǔ)的管理信息系統(tǒng),以取代單一的人工管理。目標(biāo)系統(tǒng)取名為“工資管理系統(tǒng)”。通過(guò)用戶調(diào)查,初步整理出以下結(jié)果。

①當(dāng)前系統(tǒng)工作狀況該公司工資管理中使用三種源數(shù)據(jù)表和數(shù)據(jù)報(bào)表。三種數(shù)據(jù)表:人員基本情況表姓名性別年齡學(xué)歷受聘日期部門職稱婚否扣款表姓名水電費(fèi)煤氣費(fèi)其他扣款效益工資表姓名效益工資兩種數(shù)據(jù)報(bào)表:工資表姓名部門基本工資崗位津貼效益工資扣款應(yīng)發(fā)工資部門工資表部門名稱部門工資匯總

表一為該公司人員基本情況表,根據(jù)表中的學(xué)歷、職稱及受聘日期長(zhǎng)短,決定工資表中基本工資和崗位津貼的具體數(shù)值;表二為公司扣款表,每月由各部門上報(bào),根據(jù)扣款表的內(nèi)容決定工資表中扣款項(xiàng)的金額;表三為效益工資表,每月由各部門根據(jù)當(dāng)月效益及員工的表現(xiàn)申報(bào),由財(cái)務(wù)部門審批。表四為每月的工資表;表五為每月部門工資匯總表。②對(duì)目標(biāo)系統(tǒng)的總體需求

通過(guò)對(duì)當(dāng)前系統(tǒng)的調(diào)查和與用戶的共同討論,對(duì)將要開(kāi)發(fā)的目標(biāo)系統(tǒng)提出以下總體需求:用數(shù)據(jù)文件代替現(xiàn)有的全部帳表具有對(duì)各種數(shù)據(jù)的錄入和維護(hù)功能能根據(jù)人員的基本情況表、扣款表和效益工資表自動(dòng)計(jì)算工作表各項(xiàng)內(nèi)容

能夠靈活修改工資項(xiàng)目按月打印公司工作表及工資匯總表有多種查詢和統(tǒng)計(jì)功能...。

⑵軟件需求說(shuō)明書數(shù)據(jù)庫(kù)開(kāi)發(fā)中一項(xiàng)十分重要的任務(wù)是確定系統(tǒng)中使用的全部數(shù)據(jù)(數(shù)據(jù)分析)和系統(tǒng)(功能分析)的處理功能,并為它們?nèi)∶投x,產(chǎn)生軟件需求說(shuō)明書軟件需求說(shuō)明書是用戶需求分析的規(guī)范化和形式化。制作軟件需求說(shuō)明書目的是為軟件開(kāi)發(fā)提出總體要求,并作為用戶和開(kāi)發(fā)人員之間相互了解和共同開(kāi)發(fā)的基礎(chǔ)。由數(shù)據(jù)流程圖和數(shù)據(jù)字典組成。⑶軟件需求分析方法和工具

數(shù)據(jù)流程圖(描述數(shù)據(jù)和數(shù)據(jù)處理過(guò)程關(guān)系)和數(shù)據(jù)字典(系統(tǒng)中各類數(shù)據(jù)描述的集合)

數(shù)據(jù)流程圖描述從輸入到輸出過(guò)程中數(shù)據(jù)和處理的關(guān)系。

人員基本情況數(shù)據(jù)表

扣款數(shù)據(jù)表

效益工資數(shù)據(jù)表工資項(xiàng)目計(jì)算

工資數(shù)據(jù)表錄入

圓圈表示某種處理和加工;方框表示數(shù)據(jù)存儲(chǔ)符號(hào),包括數(shù)據(jù)庫(kù)文件和其他形式文件;箭頭表示數(shù)據(jù)傳遞或讀寫方向。

數(shù)據(jù)字典用于記載系統(tǒng)中的各種數(shù)據(jù)、數(shù)據(jù)元素以及它們的名字、性質(zhì)、意義及各類約束條件,記錄系統(tǒng)中用到的常量、變量、數(shù)組及其他數(shù)據(jù)單位,是系統(tǒng)開(kāi)發(fā)與維護(hù)中不可缺少的重要文件。數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫(kù)中數(shù)據(jù)的一種描述,而不是數(shù)據(jù)本身。數(shù)據(jù)字典是在需求分析階段建立,在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中不斷修改、充實(shí)、完善的。數(shù)據(jù)字典內(nèi)容根據(jù)具體系統(tǒng),有很大的不同。一般,凡是關(guān)于數(shù)據(jù)描述的信息都可放入數(shù)據(jù)字典中。例實(shí)體、屬性、實(shí)體聯(lián)系、用戶標(biāo)識(shí)、口令、數(shù)據(jù)空間使用情況、各種數(shù)據(jù)使用情況、修改情況等。

數(shù)據(jù)項(xiàng)名稱 應(yīng)發(fā)工資含義員工當(dāng)月應(yīng)發(fā)工資類型及寬度 貨幣型7位取值基本工資+崗位津貼+效益工資-扣款

取值范圍0000.00~9999.99

數(shù)據(jù)流名工資表組成姓名部門基本工資崗位津貼效益工資扣款應(yīng)發(fā)工資來(lái)至過(guò)程工資項(xiàng)目計(jì)算數(shù)據(jù)流條目卡片數(shù)據(jù)項(xiàng)目條目卡片數(shù)據(jù)流:數(shù)據(jù)在系統(tǒng)內(nèi)的傳輸路徑。⑷數(shù)據(jù)分析和功能分析數(shù)據(jù)分析步驟:①確定各項(xiàng)數(shù)據(jù)在目標(biāo)系統(tǒng)中名稱

同一數(shù)據(jù)使用相同的名稱、在容易識(shí)別的前提下盡量簡(jiǎn)化名稱。②定義數(shù)據(jù)項(xiàng)的含義與取值③定義系統(tǒng)的輸入數(shù)據(jù)和輸出打印數(shù)據(jù)數(shù)據(jù)分析的結(jié)果是產(chǎn)生系統(tǒng)數(shù)據(jù)流程圖和數(shù)據(jù)字典。功能分析

確定系統(tǒng)功能,在此階段,開(kāi)發(fā)人員和用戶雙方都必須十分謹(jǐn)慎,要全面考慮計(jì)算機(jī)究竟應(yīng)該做哪些工作。一旦系統(tǒng)功能確定之后,一般情況下不能改動(dòng),以免影響后期工作例工資管理系統(tǒng)功能需求分析結(jié)果:

①數(shù)據(jù)錄入模塊②工資計(jì)算模塊③工資項(xiàng)目修改模塊按所選工資項(xiàng)目整體修改工資表內(nèi)容

按任意條件和所選工資項(xiàng)目部分修改工資表內(nèi)容

④查詢統(tǒng)計(jì)模塊⑤報(bào)表打印模塊按月打印公司工資表及工資匯總表

分析階段產(chǎn)生的系統(tǒng)說(shuō)明書明確描述了用戶要求,主要有三個(gè)作用:①作為用戶和軟件人員之間的合同,為雙方相互了解提供基礎(chǔ)②反映出問(wèn)題的結(jié)構(gòu),可作為軟件人員進(jìn)行設(shè)計(jì)和編程基礎(chǔ)③作為選取測(cè)試用例和進(jìn)行驗(yàn)收的依據(jù)

系統(tǒng)說(shuō)明書是軟件生命周期中一份極其重要文檔,在分析階段必須及時(shí)建立并保證其質(zhì)量。在建立系統(tǒng)說(shuō)明書后,還應(yīng)對(duì)它進(jìn)行反復(fù)檢查,爭(zhēng)取盡早發(fā)現(xiàn)潛在的錯(cuò)誤并及時(shí)糾正。需求分析是整個(gè)設(shè)計(jì)過(guò)程基礎(chǔ),是最困難、最耗費(fèi)時(shí)的一步。需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實(shí)際要求,將直接影響到后面各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用。

2、概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)的目標(biāo)是將需求分析得到的用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型,它是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵。它應(yīng)該:①

充分反映實(shí)際應(yīng)用中各實(shí)體間的相互關(guān)系;②直觀,便于用戶理解與直接參與;③概念模型方便擴(kuò)充和修改;用E-R圖進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)。概念結(jié)構(gòu)設(shè)計(jì)是對(duì)實(shí)體的抽象過(guò)程,可分三步來(lái)完成①選擇局部應(yīng)用,建立分E-R圖建立分E―R圖的主要工作是對(duì)需求分析階段收集到的數(shù)據(jù)進(jìn)行分類、組織,劃分實(shí)體和屬性,確定實(shí)體之間的聯(lián)系。劃分實(shí)體和屬性的準(zhǔn)則:屬性本身不能再具有需要描述的性質(zhì)或與其他實(shí)體具有聯(lián)系(即屬性必須是不可分的數(shù)據(jù)項(xiàng),不能包含其它屬性);屬性不能與其它實(shí)體有聯(lián)系(即E―R圖中所表示的聯(lián)系是實(shí)體之間的聯(lián)系)。凡滿足上述準(zhǔn)則的事物,一般均可作為屬性對(duì)待。例1:職工是一個(gè)實(shí)體,職工號(hào)、姓名、性別、年齡是職工實(shí)體的屬性,職稱如果沒(méi)有與工資、福利掛鉤,換句話說(shuō),沒(méi)有需要進(jìn)一步描述的特性,則可將它作為職工實(shí)體的屬性。但如不同職稱有不同的工資、住房標(biāo)準(zhǔn)和附加福利,則職稱作為一個(gè)實(shí)體看待更恰當(dāng)。例2在醫(yī)院中,一個(gè)病人只能住在一個(gè)病房,病房號(hào)可作為病人實(shí)體的屬性,但如果病房還要與醫(yī)生實(shí)體發(fā)生聯(lián)系,即一個(gè)醫(yī)生負(fù)責(zé)幾個(gè)病房的病人的醫(yī)療工作,則病房應(yīng)作為一個(gè)實(shí)體

住院號(hào)

性別

姓名

年齡

住在

病房號(hào)

電話

所屬科室

1

n

醫(yī)生

性別

姓名

年齡

醫(yī)

1

n

例3:某工廠管理信息系統(tǒng),經(jīng)過(guò)分析,確定了該系統(tǒng)由物資管理、銷售管理、勞動(dòng)人事管理等子系統(tǒng)組成,并為每個(gè)子系統(tǒng)組成了開(kāi)發(fā)小組,分別進(jìn)行需求分析,并畫出每個(gè)子系統(tǒng)的分E-R圖。物資管理分E-R圖:職工號(hào)職工名年齡職稱性別

名稱

單價(jià)

面積

m

n

p

m

n

項(xiàng)目號(hào)

預(yù)

項(xiàng)目名

姓名

地址

帳號(hào)

供應(yīng)商

項(xiàng)

供應(yīng)

供應(yīng)量

存放

倉(cāng)庫(kù)號(hào)

電話

庫(kù)存量

供應(yīng)商號(hào)

電話號(hào)

零件號(hào)

規(guī)格

工作

n

n

1

倉(cāng)

庫(kù)

領(lǐng)導(dǎo)

1

n

銷售管理分E-R圖:勞動(dòng)人事管理分E-R圖:

各分E-R圖建立好后,需對(duì)它們進(jìn)行綜合,把各分E-R圖連接在一起,形成系統(tǒng)的總E-R圖,稱為初步E-R圖。②合并分E-R圖,生成初步E-R圖各個(gè)局部應(yīng)用所面向的問(wèn)題不同,且常由不同的設(shè)計(jì)人員進(jìn)行局部設(shè)計(jì),這就導(dǎo)致了各個(gè)分E-R圖之間必定會(huì)存在許多不一致的地方稱之為沖突。因此合并分E-R圖時(shí)并不能簡(jiǎn)單地將各個(gè)分E-R圖畫在一起,而是必須著力消除各個(gè)分E-R圖中的不一致,以形成一個(gè)能為全系統(tǒng)中所有用戶共同理解和接受的統(tǒng)一的概念模型。合理消除各分E-R圖的沖突是合并分E-R圖的主要工作與關(guān)鍵所在。各分E-R圖之間的沖突主要有三類:a)屬性沖突:同一屬性在不同的分E-R圖中其值的類型、取值范圍、取值單位等不一致。例年齡:有的以日期形式表示,有的以年齡形式表示。零件:有的以公斤為單位,有的以克為單位。編號(hào):有的以整數(shù)形式表示,有的以字符串年齡形式表示。這需要各部門進(jìn)行協(xié)調(diào),使之統(tǒng)一。b)命名沖突:屬性名、實(shí)體名、聯(lián)系名之間有同名異義或異名同義的問(wèn)題。例對(duì)科研項(xiàng)目:財(cái)務(wù)科稱為“項(xiàng)目”、科研處稱為“課題”、生產(chǎn)管理處稱為“工程”——同義異名。對(duì)電話號(hào)碼,供應(yīng)商和顧客均有一個(gè)屬性“電話”——同名異義這顯然是不允許的,需通過(guò)協(xié)商解決改正。c)結(jié)構(gòu)沖突:※同一對(duì)象在不同應(yīng)用中具有不同的抽象。例:職工在某局部應(yīng)用中被當(dāng)成實(shí)體,在另一應(yīng)用中被當(dāng)成屬性解決辦法是將屬性變?yōu)閷?shí)體或?qū)嶓w變?yōu)閷傩?,使它們具有相同的抽象※同一?shí)體在不同分E-R圖中所包含的屬性個(gè)數(shù)和屬性排列次序不完全相同。解決辦法是取各分E-R圖中屬性的并集,再適當(dāng)調(diào)整屬性次序。※實(shí)體間聯(lián)系在不同分E-R圖中為不同類型。如實(shí)體E1與E2在一個(gè)分E-R圖中為1:1,在另一個(gè)分E-R圖中為1:n;又如在一個(gè)分

E-R圖中E1與E2發(fā)生聯(lián)系,在另一個(gè)分E-R圖中,E1、E2、E3

三者之間有聯(lián)系。解決辦法是根據(jù)應(yīng)用的語(yǔ)義對(duì)實(shí)體聯(lián)系的類型進(jìn)行綜合與調(diào)整。在合并各分E-R圖時(shí),必須要處理解決上述各類沖突,從而得到一個(gè)集中了各個(gè)用戶信息要求,為所有用戶共同理解和接受的初步總體模型,即E-R圖。例分E-R圖1分E-R圖2因構(gòu)成和供應(yīng)兩個(gè)聯(lián)系不能互相包含例:上述管理系統(tǒng)三個(gè)分E-R圖合并后,形成的初步E-R圖項(xiàng)目和產(chǎn)品含義相同:某個(gè)項(xiàng)目實(shí)質(zhì)上是指某個(gè)產(chǎn)品的生產(chǎn),統(tǒng)一用產(chǎn)品作實(shí)體名。但因項(xiàng)目與產(chǎn)品中屬性不同,取兩者并集。聯(lián)系名存在同名現(xiàn)象(物資管理分E-R圖和勞動(dòng)人事管理分E-R圖);很多實(shí)體中屬性名同名異義(電話、單價(jià)、顧客號(hào)),必須修改。③消除冗余,生成基本E-R圖在初步E-R圖中,可能存在一些冗余的數(shù)據(jù)和實(shí)體之間冗余的聯(lián)系。所謂冗余數(shù)據(jù)是指可由基

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論