版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)師事跡范文(5篇)
- 《環(huán)保節(jié)能培訓(xùn)》課件
- 辦公室產(chǎn)品展會(huì)市場(chǎng)分析報(bào)告
- 辦公環(huán)境中小學(xué)語(yǔ)文學(xué)習(xí)的價(jià)值
- 《次施工準(zhǔn)備工作》課件
- 農(nóng)業(yè)科技系統(tǒng)在醫(yī)療健康領(lǐng)域的創(chuàng)新應(yīng)用
- 2025建筑工程分包合同
- 2025附條件贈(zèng)與合同 標(biāo)準(zhǔn)版模板全
- 2025中國(guó)銀行勞動(dòng)合同范本
- 卷煙配件行業(yè)深度研究報(bào)告
- 小學(xué)體育足球課教育課件
- 《世界經(jīng)濟(jì)學(xué)課件》課件
- 安全生產(chǎn)知識(shí)負(fù)責(zé)人復(fù)習(xí)題庫(kù)(附參考答案)
- 《玉米種植技術(shù)》課件
- 2023年聊城市人民醫(yī)院招聘?jìng)浒钢乒ぷ魅藛T筆試真題
- 收費(fèi)站微笑服務(wù)培訓(xùn)
- GB/T 44570-2024塑料制品聚碳酸酯板材
- 雨的形成課件教學(xué)課件
- GB/T 16288-2024塑料制品的標(biāo)志
- 關(guān)于健康的課件圖片
- 2024-2030年農(nóng)產(chǎn)品物流行業(yè)市場(chǎng)深度分析及競(jìng)爭(zhēng)格局與投資價(jià)值研究報(bào)告
評(píng)論
0/150
提交評(píng)論