




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)原理與應(yīng)用第1次課2學(xué)時(shí)本次課教學(xué)重點(diǎn):數(shù)據(jù)處理的作用、數(shù)據(jù)管理技術(shù)的開(kāi)展、數(shù)據(jù)庫(kù)系統(tǒng)的組成、數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)、數(shù)據(jù)庫(kù)管理系統(tǒng)的組成本次課教學(xué)難點(diǎn):數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)本次課教學(xué)內(nèi)容:第1章數(shù)據(jù)庫(kù)系統(tǒng)概述第1節(jié)信息、數(shù)據(jù)和數(shù)據(jù)處理一、信息與數(shù)據(jù)1、信息信息是對(duì)現(xiàn)實(shí)世界事物存在方式或運(yùn)動(dòng)狀態(tài)的反映。通俗講,信息是被加工為特定形式的,有價(jià)值的數(shù)據(jù)。2、數(shù)據(jù) 數(shù)據(jù)就是符號(hào)化的信息。 數(shù)據(jù)是數(shù)據(jù)庫(kù)中存儲(chǔ)的根本對(duì)象,也是數(shù)據(jù)庫(kù)用戶操作的對(duì)象。數(shù)據(jù)應(yīng)按照需求進(jìn)行采集并有結(jié)構(gòu)地存入數(shù)據(jù)庫(kù)中。3、數(shù)據(jù)與信息的聯(lián)系 數(shù)據(jù)是信息的載體,信息是數(shù)據(jù)的內(nèi)涵。數(shù)據(jù)和信息是兩個(gè)互相聯(lián)系、互相依賴但又互相區(qū)別的概念。數(shù)據(jù)是用來(lái)記錄信息的可識(shí)別的符號(hào),是信息的具體表現(xiàn)形式。數(shù)據(jù)是信息的符號(hào)表示或載體,信息那么是數(shù)據(jù)的內(nèi)涵,是對(duì)數(shù)據(jù)的語(yǔ)義解釋。只有經(jīng)過(guò)提煉和抽象之后,具有使用價(jià)值的數(shù)據(jù)才能成為信息。二、數(shù)據(jù)處理 數(shù)據(jù)要經(jīng)過(guò)處理才能變?yōu)樾畔?。?shù)據(jù)處理是將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程,是指對(duì)信息進(jìn)行收集、整理、存儲(chǔ)、加工及傳播等一系列活動(dòng)的總和。數(shù)據(jù)處理的目的是從大量的、雜亂無(wú)章的甚至是難于理解的原始數(shù)據(jù)中,提煉、抽取人們所需要的有價(jià)值、有意義的數(shù)據(jù)〔信息〕,作為科學(xué)決策的依據(jù)。可用下式簡(jiǎn)單的表示信息、數(shù)據(jù)與數(shù)據(jù)處理的關(guān)系:信息?=?數(shù)據(jù)?+?數(shù)據(jù)處理數(shù)據(jù)是原料,是輸入,而信息是產(chǎn)出,是輸出結(jié)果。數(shù)據(jù)處理的真正含義應(yīng)該是為了產(chǎn)生信息而處理數(shù)據(jù)。數(shù)據(jù)、數(shù)據(jù)處理、信息的關(guān)系如圖1-1所示:圖1-1數(shù)據(jù)、數(shù)據(jù)處理、信息的關(guān)系數(shù)據(jù)的組織、存儲(chǔ)、檢查和維護(hù)等工作是數(shù)據(jù)處理的根本環(huán)節(jié),這些工作一般統(tǒng)稱為數(shù)據(jù)管理。第2節(jié)數(shù)據(jù)管理技術(shù)的開(kāi)展一、人工管理階段〔20實(shí)際50年代〕
不存儲(chǔ)數(shù)據(jù)。源數(shù)據(jù)與結(jié)果都不保存。
不具有數(shù)據(jù)獨(dú)立性。應(yīng)用程序完全依賴于數(shù)據(jù),不具有數(shù)據(jù)獨(dú)立性,一旦數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化,應(yīng)用程序必須做相應(yīng)的修改。
數(shù)據(jù)不能共享。數(shù)據(jù)是面向應(yīng)用的,一個(gè)數(shù)據(jù)集只能對(duì)應(yīng)一個(gè)應(yīng)用程序。應(yīng)用程序之間不能共享數(shù)據(jù)。
數(shù)據(jù)大量冗余。由于數(shù)據(jù)不能共享,因此即使兩個(gè)應(yīng)用程序使用到某些相同的數(shù)據(jù),它們之間也無(wú)法相互利用對(duì)方的數(shù)據(jù)。二、文件系統(tǒng)階段〔20實(shí)際60年代〕文件管理階段具有以下特點(diǎn):
數(shù)據(jù)以文件的形式長(zhǎng)期保存在計(jì)算機(jī)中。
數(shù)據(jù)的獨(dú)立性有一定的提高。
文件的組織形式多樣化。文件管理系統(tǒng)還存在一些缺乏:
由于數(shù)據(jù)只能以文件為單位進(jìn)行共享,不能實(shí)現(xiàn)以記錄或數(shù)據(jù)項(xiàng)為單位的共享,因此數(shù)據(jù)還存在大量的冗余。
數(shù)據(jù)缺乏邏輯獨(dú)立性,應(yīng)用程序與數(shù)據(jù)文件之間仍互相依賴,文件的邏輯結(jié)構(gòu)一旦改變,應(yīng)用程序也應(yīng)做相應(yīng)的修改。
文件與文件之間相互對(duì)立,無(wú)法實(shí)現(xiàn)文件之間的相互聯(lián)系,不能反映客觀世界事物間的復(fù)雜聯(lián)系。三、數(shù)據(jù)庫(kù)系統(tǒng)階段〔20實(shí)際60年代后期〕 圖1.2數(shù)據(jù)庫(kù)管理階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系
數(shù)據(jù)結(jié)構(gòu)化。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是按照一定的數(shù)據(jù)模型建立起來(lái)的相關(guān)的數(shù)據(jù)的集合,它既反映現(xiàn)實(shí)世界的客觀事物,也反映事物之間的聯(lián)系。數(shù)據(jù)結(jié)構(gòu)化是數(shù)據(jù)庫(kù)系統(tǒng)與文件系統(tǒng)的根本區(qū)別。
數(shù)據(jù)獨(dú)立性高。數(shù)據(jù)庫(kù)中的數(shù)據(jù)既有邏輯獨(dú)立性,又有物理獨(dú)立性。
實(shí)現(xiàn)數(shù)據(jù)的共享與最小冗余。
具有統(tǒng)一的數(shù)據(jù)管理和控制功能。數(shù)據(jù)庫(kù)技術(shù)在數(shù)據(jù)管理中的特點(diǎn)與優(yōu)勢(shì),使得它在計(jì)算機(jī)數(shù)據(jù)管理中占據(jù)主導(dǎo)地位,成為各類信息系統(tǒng)的核心根底。第3節(jié)數(shù)據(jù)庫(kù)系統(tǒng)的組成與結(jié)構(gòu)一、數(shù)據(jù)庫(kù)系統(tǒng)的組成圖1.3數(shù)據(jù)庫(kù)系統(tǒng)的組成結(jié)構(gòu)圖①數(shù)據(jù)庫(kù):數(shù)據(jù)是數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)的信息,它是數(shù)據(jù)庫(kù)系統(tǒng)的操作對(duì)象,存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有上述數(shù)據(jù)庫(kù)的幾大特性。②硬件:硬件是數(shù)據(jù)庫(kù)系統(tǒng)的物理支撐,包括主機(jī)、顯示器、打印機(jī)等。③軟件:軟件包括系統(tǒng)軟件與應(yīng)用軟件,其中系統(tǒng)軟件包括操作系統(tǒng)及負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)的運(yùn)行進(jìn)行控制和管理的核心軟件——數(shù)據(jù)庫(kù)管理系統(tǒng);而應(yīng)用軟件是在DBMS的根底上由用戶根據(jù)實(shí)際需要自行開(kāi)發(fā)的應(yīng)用程序。④用戶:指使用數(shù)據(jù)庫(kù)的人員。在數(shù)據(jù)庫(kù)系統(tǒng)中主要由終端用戶、應(yīng)用程序員和數(shù)據(jù)庫(kù)管理員三類用戶組成。數(shù)據(jù)庫(kù)管理員〔DBA〕是全面負(fù)責(zé)數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行的高級(jí)計(jì)算機(jī)人員,是數(shù)據(jù)庫(kù)系統(tǒng)一個(gè)很重要的人員組成。
二、數(shù)據(jù)庫(kù)系統(tǒng)體系結(jié)構(gòu)1.?dāng)?shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)
〔1〕模式模式〔schema〕又稱概念模式或邏輯模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。模式處于三級(jí)結(jié)構(gòu)的中間層,模式以某一種數(shù)據(jù)模型為根底,表示了數(shù)據(jù)庫(kù)的整體數(shù)據(jù)。模式是客觀世界某一應(yīng)用環(huán)境中所有數(shù)據(jù)的集合,也是所有個(gè)別用戶視圖綜合起來(lái)的結(jié)果,又稱用戶公共數(shù)據(jù)視圖。視圖可理解為用戶或程序員看到和使用的數(shù)據(jù)庫(kù)的內(nèi)容?!?〕外模式外模式也稱子模式或用戶模式,是數(shù)據(jù)庫(kù)用戶〔包括應(yīng)用程序員和最終用戶〕看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式是三級(jí)結(jié)構(gòu)的最外層,個(gè)別用戶只對(duì)整個(gè)數(shù)據(jù)庫(kù)的一局部感興趣,所以外模式是個(gè)別用戶看到和使用的數(shù)據(jù)庫(kù)內(nèi)容。〔3〕內(nèi)模式〔即存儲(chǔ)模式〕具體描述了數(shù)據(jù)如何組織存儲(chǔ)在介質(zhì)上。內(nèi)模式是系統(tǒng)程序員用一定的文件形式組織起來(lái)的一個(gè)個(gè)存儲(chǔ)文件和聯(lián)系手段;也是由他們編制存取程序,實(shí)現(xiàn)數(shù)據(jù)存取的。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式。2.模式之間的映象〔1〕外模式/模式映象對(duì)于同一個(gè)模式可以有任意多個(gè)外模式。對(duì)于每一個(gè)外模式,數(shù)據(jù)庫(kù)系統(tǒng)都有一個(gè)外模式/模式映象,它定義了該外模式和模式之間的對(duì)應(yīng)關(guān)系。這些映象定義通常在各自外模式的描述中。當(dāng)模式改變時(shí),由數(shù)據(jù)庫(kù)管理員對(duì)各個(gè)外模式/模式的映象作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性?!?〕外模式/內(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ù)據(jù)庫(kù)管理員對(duì)模式/內(nèi)模式映象作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變。保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的物理獨(dú)立性。第4節(jié)數(shù)據(jù)庫(kù)管理系統(tǒng)一、DBMS的主要功能1.?dāng)?shù)據(jù)存取功能〔DML〕實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的根本存取操作:檢索、插入、修改和刪除。2.?dāng)?shù)據(jù)庫(kù)的運(yùn)行管理功能數(shù)據(jù)的平安性〔Security〕控制、數(shù)據(jù)的完整性〔Integrity〕控制、數(shù)據(jù)并發(fā)〔Concurrency〕控制3.?dāng)?shù)據(jù)的建立和維護(hù)功能包括數(shù)據(jù)初始數(shù)據(jù)的裝入,數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)、恢復(fù)、重組織,系統(tǒng)性能監(jiān)視、分析等功能。二、DBMS的組成1.語(yǔ)言編譯處理程序2.系統(tǒng)運(yùn)行控制程序3.系統(tǒng)建立、維護(hù)程序4.?dāng)?shù)據(jù)字典教學(xué)組織:1、本節(jié)課主要采取教師多媒體講授的方式進(jìn)行。2、在授課的同時(shí)通過(guò)提出問(wèn)題、學(xué)生思考、學(xué)生討論、教師解答的方式輔助教學(xué)。3、首先針對(duì)學(xué)生專業(yè)來(lái)提出問(wèn)題:信息管理與信息系統(tǒng)專業(yè)的主要目的是什么?什么是信息管理?什么是信息系統(tǒng)?然后點(diǎn)出幾個(gè)學(xué)生答復(fù),最好教師解答,并引向數(shù)據(jù)庫(kù)系統(tǒng),從而暗示該課程的重要性。4、在課堂上通過(guò)適當(dāng)引入生活中的跟數(shù)據(jù)庫(kù)相關(guān)的實(shí)際問(wèn)題,比方管理信息系統(tǒng)、ERP等,來(lái)引導(dǎo)學(xué)生思考,把理論和實(shí)際相結(jié)合。5、課堂上適當(dāng)引入目前數(shù)據(jù)庫(kù)技術(shù)的最新開(kāi)展趨勢(shì),指導(dǎo)學(xué)生學(xué)習(xí)。6、提出問(wèn)題和解答問(wèn)題約需要15分鐘,第一節(jié)約15分鐘,第二節(jié)約20分鐘,第三節(jié)約需要20分鐘,第四節(jié)約需要10分鐘。7、重點(diǎn)問(wèn)題什么是數(shù)據(jù)庫(kù)通過(guò)結(jié)合學(xué)生專業(yè)作為問(wèn)題來(lái)提出,讓學(xué)生思考并答復(fù),組合教師總結(jié)。8、難點(diǎn)數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)結(jié)合網(wǎng)站的構(gòu)架來(lái)講解。作業(yè)布置:1、什么是數(shù)據(jù),數(shù)據(jù)的作用是什么?2、數(shù)據(jù)處理的目的是什么?數(shù)據(jù)庫(kù)在數(shù)據(jù)處理中的作用?3、數(shù)據(jù)庫(kù)采用三級(jí)模式、兩級(jí)映象結(jié)構(gòu)的優(yōu)點(diǎn)是什么?本次課推薦和參考文獻(xiàn)1、
王珊、陳紅編著,?數(shù)據(jù)庫(kù)系統(tǒng)原理?,清華大學(xué)出版社,1999年2、
薩師煊、王珊,?數(shù)據(jù)庫(kù)系統(tǒng)概論〔第四版〕?,高等教育出版社,2006年3、
楊冬青、唐世渭等譯,?數(shù)據(jù)庫(kù)系統(tǒng)概念?,機(jī)械工業(yè)出版社,2000年本次課實(shí)踐教學(xué)設(shè)計(jì):1、三人一組分別舉出現(xiàn)實(shí)生活中用到數(shù)據(jù)庫(kù)的地方,并討論如果沒(méi)有數(shù)據(jù)庫(kù),將會(huì)變成什么樣子。課后自我總結(jié)分析:一、必須對(duì)以下概念給出定義,不能僅做詮釋。1.?dāng)?shù)據(jù)〔data〕數(shù)據(jù)指描述事物的符號(hào)記錄。文字、圖形、圖像、聲音、學(xué)生的檔案記錄、貨物的運(yùn)輸情況等都是數(shù)據(jù)。2.?dāng)?shù)據(jù)庫(kù)〔database,簡(jiǎn)稱DB〕數(shù)據(jù)庫(kù)指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的冗余度,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。3.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)〔databasemanagementsystem,簡(jiǎn)稱DBMS〕數(shù)據(jù)庫(kù)管理系統(tǒng)指位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫(kù)在建立、運(yùn)用和維護(hù)時(shí)由數(shù)據(jù)庫(kù)管理系統(tǒng)統(tǒng)一管理、統(tǒng)一控制。數(shù)據(jù)庫(kù)管理系統(tǒng)使用戶能方便地定義數(shù)據(jù)和操縱數(shù)據(jù),并能夠保證數(shù)據(jù)的平安性、完整性、多用戶對(duì)數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù)。4.?dāng)?shù)據(jù)庫(kù)系統(tǒng)〔databasesystem,簡(jiǎn)稱DBS〕 數(shù)據(jù)庫(kù)系統(tǒng)指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后構(gòu)成的系統(tǒng),一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)〔及其開(kāi)發(fā)工具〕、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶構(gòu)成。二、對(duì)下面幾個(gè)問(wèn)題應(yīng)該重點(diǎn)講解1、數(shù)據(jù)庫(kù)技術(shù)的開(kāi)展過(guò)程與研究領(lǐng)域2、數(shù)據(jù)庫(kù)系統(tǒng)的模式結(jié)構(gòu)與體系結(jié)構(gòu)3、DBMS的功能與組成第2次課2學(xué)時(shí)本次課教學(xué)重點(diǎn):三種數(shù)據(jù)模型,E-R圖的繪制方法本次課教學(xué)難點(diǎn):E-R圖本次課教學(xué)內(nèi)容:第2章數(shù)據(jù)模型第1節(jié)什么是數(shù)據(jù)模型一、數(shù)據(jù)模型 1、數(shù)據(jù)模型是客觀事物及其聯(lián)系的數(shù)據(jù)描述,它應(yīng)具有描述數(shù)據(jù)和數(shù)據(jù)聯(lián)系兩個(gè)方面的功能。2、組成數(shù)據(jù)模型的三個(gè)要素?cái)?shù)據(jù)結(jié)構(gòu):所研究的記錄類型的集合,是對(duì)系統(tǒng)靜態(tài)特性的描述;數(shù)據(jù)操作:是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象〔型〕的實(shí)例〔值〕允許執(zhí)行的操作的集合;數(shù)據(jù)的約束條件:是一組完整性的集合 3、數(shù)據(jù)模型的分類(根據(jù)應(yīng)用的目的〕概念模型〔又稱信息模型〕:它是按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫(kù)設(shè)計(jì)。數(shù)據(jù)模型:主要包括網(wǎng)狀模型、層次模型、關(guān)系模型等,它是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,主要用于DBMS的實(shí)現(xiàn)。4、數(shù)據(jù)模型的分類〔安裝數(shù)據(jù)間結(jié)構(gòu)形式〕在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)模型表示數(shù)據(jù)與數(shù)據(jù)之間的聯(lián)系的結(jié)構(gòu)形式。層次模型、網(wǎng)狀模型和關(guān)系模型是三種最常用的根本數(shù)據(jù)模型。二、數(shù)據(jù)的描述指明各個(gè)記錄類型由哪些數(shù)據(jù)項(xiàng)構(gòu)成,并對(duì)數(shù)據(jù)項(xiàng)進(jìn)行命名,每個(gè)數(shù)據(jù)項(xiàng)均需指明其數(shù)據(jù)類型和取值范圍三、數(shù)據(jù)間聯(lián)系的描述指明各個(gè)不同記錄類型間所存在的聯(lián)系和聯(lián)系方式。第2節(jié)概念模型一、現(xiàn)實(shí)世界客觀對(duì)象的抽象二、信息世界中的根本概念1、實(shí)體〔Entity〕客觀存在并可相互區(qū)別的事物稱為實(shí)體。2、屬性〔Attribute〕實(shí)體具有的某一特性。3、碼〔Key〕也稱關(guān)鍵字,是指在實(shí)體屬性中,可用于區(qū)別實(shí)體中不同個(gè)體的一個(gè)屬性和幾個(gè)屬性的組合。4、域〔Domain〕屬性的取值范圍。5、實(shí)體型〔EntityType〕用實(shí)體名及其屬性名集合來(lái)抽象和刻畫同類實(shí)體。6、實(shí)體集〔EntitySet〕同類實(shí)體的集合。三、實(shí)體間的聯(lián)系方式1、一對(duì)一聯(lián)系〔簡(jiǎn)記為1:1〕如:院長(zhǎng)和學(xué)院之間、班級(jí)和班長(zhǎng)之間、班主任和班級(jí)之間等。2、一對(duì)多聯(lián)系〔簡(jiǎn)記為1:n〕如:學(xué)院和系部之間、班級(jí)和學(xué)生之間等。3、多對(duì)多聯(lián)系〔簡(jiǎn)記為n:n〕如:學(xué)生和課程之間、演員和電影之間等。四、實(shí)體聯(lián)系表示方法1、E—R圖根本元素2、兩個(gè)不同實(shí)體集之間聯(lián)系的畫法 舉例說(shuō)明具體畫法。3、兩個(gè)以上不同實(shí)體集之間聯(lián)系的畫法 舉例說(shuō)明具體畫法。4、同一實(shí)體集內(nèi)的二元聯(lián)系的畫法 舉例說(shuō)明具體畫法。五、怎樣設(shè)計(jì)E-R圖1、E-R圖的設(shè)計(jì)步驟〔1〕用方框表示出實(shí)體;〔2〕用橢圓表示各實(shí)體的屬性;〔3〕用菱形表示實(shí)體之間的聯(lián)系2、舉例說(shuō)明E-R圖的設(shè)計(jì)過(guò)程。第3節(jié)數(shù)據(jù)庫(kù)類型一、層次模型1、層次模型概述層次模型是數(shù)據(jù)庫(kù)系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,采用層次模型的數(shù)據(jù)庫(kù)的典型代表是IBM公司的IMS〔InformationManagementSystem〕數(shù)據(jù)庫(kù)管理系統(tǒng),現(xiàn)實(shí)世界中,許多實(shí)體之間的聯(lián)系都表現(xiàn)出一種很自然的層次關(guān)系,如家族關(guān)系,行政機(jī)構(gòu)等。層次模型用一棵“有向樹(shù)〞的數(shù)據(jù)結(jié)構(gòu)來(lái)表示各類實(shí)體以及實(shí)體間的聯(lián)系。在樹(shù)中,每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型,結(jié)點(diǎn)間的連線〔或邊〕表示記錄類型間的關(guān)系,每個(gè)記錄類型可包含假設(shè)干個(gè)字段,記錄類型描述的是實(shí)體,字段描述實(shí)體的屬性,各個(gè)記錄類型及其字段都必須命名。如果要存取某一記錄型的記錄,可以從根結(jié)點(diǎn)起,按照有向樹(shù)層次向下查找。2、層次模型的特征〔1〕有且僅有一個(gè)結(jié)點(diǎn)沒(méi)有雙親,該結(jié)點(diǎn)就是根結(jié)點(diǎn);〔2〕根以外的其他結(jié)點(diǎn)有且僅有一個(gè)雙親結(jié)點(diǎn),這就使得層次數(shù)據(jù)庫(kù)系統(tǒng)只能直接處理一對(duì)多的實(shí)體關(guān)系;〔3〕任何一個(gè)給定的記錄值只有按其路徑查看時(shí),才能顯出它的全部意義,沒(méi)有一個(gè)子女記錄值能夠脫離雙親記錄值而獨(dú)立存在。3、層次模型的優(yōu)點(diǎn)主要有:〔1〕比擬簡(jiǎn)單,只需很少幾條命令就能操縱數(shù)據(jù)庫(kù),比擬容易使用?!?〕結(jié)構(gòu)清晰,結(jié)點(diǎn)間聯(lián)系簡(jiǎn)單,只要知道每個(gè)結(jié)點(diǎn)的雙親結(jié)點(diǎn),就可知道整個(gè)模型結(jié)構(gòu)?,F(xiàn)實(shí)世界中許多實(shí)體間的聯(lián)系本來(lái)就呈現(xiàn)出一種很自然的層次關(guān)系,如表示行政層次,家族關(guān)系很方便?!?〕它提供了良好的數(shù)據(jù)完整性支持。4、層次模型的缺點(diǎn)主要有:〔1〕不能直接表示兩個(gè)以上的實(shí)體型間的復(fù)雜的聯(lián)系和實(shí)體型間的多對(duì)多聯(lián)系,只能通過(guò)引入冗余數(shù)據(jù)或創(chuàng)立虛擬結(jié)點(diǎn)的方法來(lái)解決,易產(chǎn)生不一致性?!?〕對(duì)數(shù)據(jù)的插入和刪除的操作限制太多。〔3〕查詢子女結(jié)點(diǎn)必須通過(guò)雙親結(jié)點(diǎn)。二、網(wǎng)狀模型1、概述現(xiàn)實(shí)世界中事物之間的聯(lián)系更多的是非層次關(guān)系的,用層次模型表示這種關(guān)系很不直觀,網(wǎng)狀模型克服了這一弊病,可以清晰的表示這種非層次關(guān)系。20世紀(jì)70年代,數(shù)據(jù)系統(tǒng)語(yǔ)言研究會(huì)CODASYL〔ConferenceOnDataSystemLanguage〕下屬的數(shù)據(jù)庫(kù)任務(wù)組DBTG〔DataBaseTaskGroup〕提出了一個(gè)系統(tǒng)方案,DBTG系統(tǒng),也稱CODASYL系統(tǒng),成為了網(wǎng)狀模型的代表。網(wǎng)狀模型取消了層次模型的兩個(gè)限制,兩個(gè)或兩個(gè)以上的結(jié)點(diǎn)都可以有多個(gè)雙親結(jié)點(diǎn),那么此時(shí)有向樹(shù)變成了有向圖,該有向圖描述了網(wǎng)狀模型。2、網(wǎng)狀模型的特征〔1〕有一個(gè)以上的結(jié)點(diǎn)沒(méi)有雙親;〔2〕至少有一個(gè)結(jié)點(diǎn)可以有多于一個(gè)雙親。即允許兩個(gè)或兩個(gè)以上的結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),允許某個(gè)結(jié)點(diǎn)有多個(gè)雙親結(jié)點(diǎn),那么此時(shí)有向樹(shù)變成了有向圖,該有向圖描述了網(wǎng)狀模型。網(wǎng)狀模型中每個(gè)結(jié)點(diǎn)表示一個(gè)記錄型〔實(shí)體〕,每個(gè)記錄型可包含假設(shè)干個(gè)字段〔實(shí)體的屬性〕,結(jié)點(diǎn)間的連線表示記錄類型〔實(shí)體〕間的父子關(guān)系。3、網(wǎng)狀模型的優(yōu)點(diǎn)主要有:〔1〕能更為直接地描述客觀世界,可表示實(shí)體間的多種復(fù)雜聯(lián)系。〔2〕具有良好的性能和存儲(chǔ)效率4、網(wǎng)狀模型的缺點(diǎn)主要有〔1〕結(jié)構(gòu)復(fù)雜,其DDL語(yǔ)言極其復(fù)雜?!?〕數(shù)據(jù)獨(dú)立性差,由于實(shí)體間的聯(lián)系本質(zhì)上是通過(guò)存取路徑表示的,因此應(yīng)用程序在訪問(wèn)數(shù)據(jù)時(shí)要指定存取路徑。三、關(guān)系模型1、概述關(guān)系模型是開(kāi)展較晚的一種模型,1970年美國(guó)IBM公司的研究員E.F.Codd首次提出了數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系模型。他發(fā)表了題為“大型共享數(shù)據(jù)銀行數(shù)據(jù)的關(guān)系模型〞〔ARelationModelofDataforLargeSharedDataBanks〕,在文中解釋了關(guān)系模型,定義了某些關(guān)系代數(shù)運(yùn)算,研究了數(shù)據(jù)的函數(shù)相關(guān)性,定義了關(guān)系的第三范式,從而開(kāi)創(chuàng)了數(shù)據(jù)庫(kù)的關(guān)系方法和數(shù)據(jù)標(biāo)準(zhǔn)化理論的研究,他為此獲得了1981年的圖靈獎(jiǎng)。1977年IBM公司研制的關(guān)系數(shù)據(jù)庫(kù)的代表SystemR開(kāi)始運(yùn)行,其后又進(jìn)行了不斷的改良和擴(kuò)充,出現(xiàn)了基于SystemR的數(shù)據(jù)庫(kù)系統(tǒng)SQL/DB。20世紀(jì)80年代以來(lái),計(jì)算機(jī)廠商新推出的數(shù)據(jù)庫(kù)管理系統(tǒng)幾乎都支持關(guān)系模型,非關(guān)系系統(tǒng)的產(chǎn)品也都加上了關(guān)系接口。數(shù)據(jù)庫(kù)領(lǐng)域當(dāng)前的研究工作也都是以關(guān)系方法為根底。2、關(guān)系數(shù)據(jù)庫(kù)種類關(guān)系數(shù)據(jù)庫(kù)已成為目前應(yīng)用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng),如現(xiàn)在廣泛使用的小型數(shù)據(jù)庫(kù)系統(tǒng)Foxpro、Acess,大型數(shù)據(jù)庫(kù)系統(tǒng)Oracle、Informix、Sybase、SQLServer等都是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。3、關(guān)系模型的特征〔1〕
描述的一致性,不僅用關(guān)系描述實(shí)體本身,而且也用關(guān)系描述實(shí)體之間的聯(lián)系;〔2〕
可直接表示多對(duì)多的聯(lián)系;〔3〕
關(guān)系必須是標(biāo)準(zhǔn)化的關(guān)系,即每個(gè)屬性是不可分的數(shù)據(jù)項(xiàng),不允許表中有表;〔4〕
關(guān)系模型是建立在數(shù)學(xué)概念根底上的,有較強(qiáng)的理論根底。4、關(guān)系模型的優(yōu)點(diǎn)主要有:〔1〕與非關(guān)系模型不同,它有較強(qiáng)的數(shù)學(xué)理論根據(jù)?!?〕數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、清晰,用戶易懂易用,不僅用關(guān)系描述實(shí)體,而且用關(guān)系描述實(shí)體間的聯(lián)系?!?〕關(guān)系模型的存取路徑對(duì)用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性、更好的平安保密性,也簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫(kù)建立和開(kāi)發(fā)的工作。5、關(guān)系模型的缺點(diǎn)主要有:由于存取路徑對(duì)用戶透明,查詢效率往往不如非關(guān)系模型,因此,為了提高性能,必須對(duì)用戶的查詢表示進(jìn)行優(yōu)化,增加了開(kāi)發(fā)數(shù)據(jù)庫(kù)管理系統(tǒng)的負(fù)擔(dān)。教學(xué)組織:1、本節(jié)課主要采取教師多媒體講授的方式進(jìn)行。2、在授課的同時(shí)通過(guò)提出問(wèn)題、學(xué)生思考、學(xué)生討論、教師解答的方式輔助教學(xué)。3、尋找現(xiàn)實(shí)生活中的一個(gè)系統(tǒng),讓學(xué)生來(lái)描述,從而引出模型。4、結(jié)合學(xué)生熟悉的數(shù)學(xué)建模,來(lái)詮釋數(shù)據(jù)模型。5、課堂上適當(dāng)引入目前數(shù)據(jù)模型的最新開(kāi)展趨勢(shì),指導(dǎo)學(xué)生學(xué)習(xí)。6、讓學(xué)生描述一個(gè)現(xiàn)實(shí)系統(tǒng)約15分鐘,第一節(jié)約15分鐘,第二節(jié)約30分鐘,第三節(jié)約需要20分鐘。7、結(jié)合學(xué)生熟悉的學(xué)籍管理系統(tǒng),來(lái)繪制其E-R圖。作業(yè)布置:1、選擇圖書管理系統(tǒng)或者商店銷售系統(tǒng),來(lái)繪制其E-R圖。2、思考數(shù)據(jù)模型的功能本次課推薦和參考文獻(xiàn)1、
王珊、陳紅編著,?數(shù)據(jù)庫(kù)系統(tǒng)原理?,清華大學(xué)出版社,1999年2、
薩師煊、王珊,?數(shù)據(jù)庫(kù)系統(tǒng)概論〔第四版〕?,高等教育出版社,2006年3、
楊冬青、唐世渭等譯,?數(shù)據(jù)庫(kù)系統(tǒng)概念?,機(jī)械工業(yè)出版社,2000年本次課實(shí)踐教學(xué)設(shè)計(jì):1、自由分組,每組3人,每組選擇一個(gè)切實(shí)可行熟悉的系統(tǒng),設(shè)計(jì)其E-R圖。課后自我總結(jié)分析:1、
應(yīng)該先解釋模型的概念,然后再講解什么是數(shù)據(jù)模型。由于第五章的概念結(jié)構(gòu)設(shè)計(jì)中重點(diǎn)講解E-R圖,所以此處一般只是講解繪制方法,一般不給出具體的實(shí)例來(lái)認(rèn)真講解。但是學(xué)生第一次接觸E-R圖,由于沒(méi)有完整的實(shí)例來(lái)學(xué)習(xí),因此普遍感覺(jué)難以接受。所以,以后上課應(yīng)該把第五章的實(shí)例拿過(guò)來(lái)做一局部講解。第3次課2學(xué)時(shí)本次課教學(xué)重點(diǎn):關(guān)系的幾個(gè)概念和關(guān)系的數(shù)學(xué)定義以及關(guān)系代數(shù)本次課教學(xué)難點(diǎn):專門的關(guān)系運(yùn)算本次課教學(xué)內(nèi)容:第3章關(guān)系數(shù)據(jù)庫(kù)第一節(jié)關(guān)系模型的根本概念1、關(guān)系:一個(gè)關(guān)系就是一張二維表,每個(gè)表有一個(gè)關(guān)系名。2、元組:表中的一行即為一個(gè)元組,對(duì)應(yīng)存儲(chǔ)文件中的一個(gè)記錄。3、屬性:表中的列稱為屬性,每一列有一個(gè)屬性名。屬性值相當(dāng)于記錄中的數(shù)據(jù)項(xiàng)或者字段值。4、域:是屬性的取值范圍,即不同元組對(duì)同一個(gè)屬性的值所限定的范圍。5、關(guān)系模式:是對(duì)關(guān)系的描述,其格式為: 關(guān)系名〔屬性名1,屬性名2,…屬性名n〕6、候選碼:又稱候選關(guān)鍵字,它是屬性和屬性組合,其值能夠唯一地標(biāo)識(shí)一個(gè)元組。候選碼和碼是相同地概念。7、主碼:又稱主關(guān)鍵字,在一個(gè)關(guān)系中可能有多個(gè)候選碼,從中選擇一個(gè)為主碼。8、主屬性:包含在主碼中諸屬性。9、外碼:又稱外關(guān)鍵字,如果一個(gè)關(guān)系中地屬性或?qū)傩越M并非該關(guān)系的碼,但它們是另外一個(gè)關(guān)系的碼。10、全碼:是指關(guān)系模型的所有屬性都是這個(gè)關(guān)系模式的候選碼。第二節(jié)關(guān)系的數(shù)學(xué)定義一、域是一組具有相同數(shù)據(jù)類型的值的集合。如:整數(shù)、正整數(shù)、實(shí)數(shù)、{0,1,2}等都可以是域。例如:D1={李平,張紅,王剛}(cāng)m1=3D2={男,女}m2=2D3={17,18,19}m3=3二、笛卡兒積定義:給定一組任意集合D1,D2,…,Dn〔它們可以包含相同的元素〕,這n個(gè)集合笛卡兒積為D1×D2×…×Dn={〔d1,d2,,dn〕|di∈Di,i=1,2,…,n}。笛卡兒積也是一個(gè)集合。其中:。Di稱為域;。每一個(gè)元素〔d1,d2,…,dn〕叫做一個(gè)n元組〔簡(jiǎn)稱元組〕;。元素中每一個(gè)值叫做一個(gè)分量,它來(lái)自相應(yīng)的域〔di∈Di〕。Di〔i=1,2,…,n〕為有限集,Di中的集合元素為Di的基數(shù),用mi〔i=1,2,…,n〕表示。那么笛卡兒積D1×D2×…×Dn的基數(shù)為所有域的基數(shù)的累乘乘積m=m1×m2×…×mn。笛卡兒積也可以用二維表的形式表示。例2-1設(shè)有兩個(gè)域,D1={0,1}和D2={a,b,c}。那么D1×D2={〔0,a〕,〔0,b〕,〔0,c〕,〔1,a〕,〔1,b〕,〔1,c〕}。D1×D2的基數(shù)為2×3=6,即6個(gè)元組。D1×D2也可表示為二維表形式:D1D2000111abcabc三、關(guān)系的數(shù)學(xué)定義定義2-3:笛卡兒積D1×D2×…×Dn的任意一個(gè)子集稱為定義在域D1,D2,…,Dn上的n元關(guān)系,可用R〔D1,D2,…,Dn〕表示。其中R為關(guān)系名,n為關(guān)系的目或度。例2-2設(shè)D1=男人集合〔MAN〕={李平,張英,王剛}(cāng)D2=女人集合〔WOMAN〕={丁紅,肖芳}D3=兒童集合〔CHILD〕={李一,李二,王一}笛卡兒積D=D1×D2×D3={〔李平,丁紅,李一〕,〔李平,丁紅,李二〕,…}D1×D2×D3共有3×2×3=18個(gè)集合元素??梢詮牡芽▋悍e中取子集構(gòu)造關(guān)系:例如從前面的D=D1×D2×D3構(gòu)造一個(gè)家庭關(guān)系:MANWOMANCHILD李平李平王剛丁紅丁紅肖芳李一李二王一四、關(guān)系具有如下特性:〔1〕關(guān)系中沒(méi)有重復(fù)元組?!?〕元組的順序無(wú)關(guān)緊要?!?〕屬性的順序是非排序的〔從左到右〕?!?〕屬性必須有不同的屬性名,不同的屬性可來(lái)自同一個(gè)域?!?〕同一屬性名下的諸屬性值〔同列〕是同類型數(shù)據(jù),且必須來(lái)自同一個(gè)域?!?〕所有的屬性值都是原子的。五、關(guān)系的完整性1.實(shí)體完整性主關(guān)系鍵的值不能為空的約束條件稱為實(shí)體完整性。2.參照完整性如果關(guān)系R2的外部關(guān)系鍵X與關(guān)系R1的〔主〕關(guān)系鍵相符,那么外部關(guān)系鍵X的每個(gè)值必須在關(guān)系R1中〔主〕關(guān)系鍵的值中找到,或者取空值,稱為參照完整性。外部關(guān)系鍵與〔主〕關(guān)系鍵的對(duì)應(yīng)提供了一種實(shí)現(xiàn)兩個(gè)關(guān)系聯(lián)系的方法。例如:DEPTEMPENODNOENAMESEX…
ENOENAME980101張山男
01辦公室980202萬(wàn)名男
02人事部9803
李娟女
03公關(guān)部980401張海燕女
…
…
3.用戶定義完整性用戶定義完整性是針對(duì)某一具體的實(shí)際的數(shù)據(jù)庫(kù)的約束條件,它由應(yīng)用環(huán)境所決定,它反映了某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。第三節(jié)關(guān)系代數(shù)一、傳統(tǒng)的集合運(yùn)算1、并運(yùn)算并運(yùn)算是雙目運(yùn)算。設(shè)關(guān)系R和關(guān)系S是兩個(gè)同類的關(guān)系,那么R與S的并運(yùn)算為:T=R∪S={t|t∈R∨t∈S}T仍為一個(gè)關(guān)系,且與R和S同類。2、差運(yùn)算差運(yùn)算是雙目運(yùn)算。設(shè)關(guān)系R和關(guān)系S是兩個(gè)同類的關(guān)系,那么R與S的差運(yùn)算為:T=R-S={t|t∈R∧nott∈S}T仍為一個(gè)關(guān)系,且與R和S同類。3、交運(yùn)算交運(yùn)算是雙目運(yùn)算。設(shè)關(guān)系R和關(guān)系S是兩個(gè)同類的關(guān)系,那么R與S的交運(yùn)算為:T=R∩S={t|t∈R∧t∈S}T仍為一個(gè)關(guān)系,且與R和S同類。4、廣義笛卡兒積設(shè)關(guān)系R和關(guān)系S是兩個(gè)關(guān)系〔R和S不要求是同類的〕,那么R與S的廣義笛卡兒積為:T=R×S={rs|r∈R∧s∈S}其中:rs=〔r1,r2,…,rrn,s1,s2,…,sm〕,稱為元組的連串。二、專門的關(guān)系運(yùn)算1、投影運(yùn)算投影運(yùn)算也是單目,是指對(duì)給定關(guān)系在垂直方向上進(jìn)行的選取。設(shè)關(guān)系R〔X,Y〕,X,Y均為屬性集合。那么有:Πx〔R〕={r[X]|r∈R}其中:r是關(guān)系R的元組;r[X]表示元組r在屬性X上的諸分量。例在關(guān)系S中選取學(xué)生姓名和所在的系。ΠSNO,DEP〔S〕2、選擇操作選擇是單目運(yùn)算,是指在給定的關(guān)系中,按給定的條件選出符合條件的元組,組成一個(gè)新的關(guān)系的運(yùn)算。設(shè)關(guān)系R〔A1,A2,…,An〕,而p是定義在結(jié)合D1×D2×…×Dn上的邏輯條件,其中Di是屬性Ai的域。那么:σp〔R〕={r|r∈R∧P〔r〕為真}其中:r為關(guān)系R的元組;P為布爾表達(dá)式。設(shè)有學(xué)生學(xué)習(xí)數(shù)據(jù)庫(kù),包含學(xué)生關(guān)系S、課程關(guān)系C、學(xué)生選課關(guān)系SC,分別如下:S〔SNO,SN,AGE,SEX,DEP〕C〔CNO,CN,PCNO〕SC〔SNO,CNO,G〕例求計(jì)算機(jī)系〔‘CS’〕學(xué)生的根本情況。σDEP='cs'〔s〕3、連接連接運(yùn)算是兩目運(yùn)算。是從兩個(gè)關(guān)系的笛卡兒積中選取滿足連接條件的元組。設(shè)關(guān)系R〔A1,A2,…,An〕及S〔B1,B2,…,Bm〕,連接屬性集X是{A1,A2,…,An}的子集,Y是{B1,B2,…,Bm}的子集。那么:RXθYS={rs|r∈R∧s∈S∧XθY為真}其中:θ為關(guān)系運(yùn)算符。連接結(jié)果是一個(gè)〔n+m〕元的關(guān)系。4、自然連接在等值〔θ為“=〞〕連接情況下,當(dāng)屬性集X與Y具有相同屬性名時(shí),那么關(guān)系R與S的連接稱為自然連接。在自然連接的結(jié)果中,相同的屬性名不重復(fù)出現(xiàn)。即:R*S={〔Z,X,W〕|〔Z,X〕∈R∧〔W,X〕∈S∧r[X]=S[X]}5、除法除法運(yùn)算是雙目運(yùn)算。它是用除數(shù)關(guān)系在被除數(shù)關(guān)系中取商。設(shè)有關(guān)系R〔X,Y〕與S〔Z〕,其中X,Y,Z為屬性集合。那么:R÷S={x|x∈Πx〔R〕∧z∈S∧xz∈R}例關(guān)系R和S,求R÷S。R:ABCDa1235a1246a3823a4776S:CD3546R÷S:ABa12
三、例子chcmxf1DS52DB43net3xhxmagexb001a21男002b22女003c20男xhchg001189001256002175Sscc
〔1〕查詢年齡在20歲以上的學(xué)生〔2〕查詢性別為性別為“男〞的學(xué)生學(xué)號(hào)和姓名〔3〕查詢選修了課程的學(xué)生學(xué)號(hào)〔4〕查詢選修了課程的學(xué)生的學(xué)號(hào)和姓名〔5〕查詢選修了課程的且某一門課的成績(jī)大于80的學(xué)生的學(xué)號(hào)、姓名和性別〔6〕查詢選修了“DB〞課程的學(xué)生學(xué)號(hào)和姓名〔7〕查詢沒(méi)有選修“DB〞課程的學(xué)生學(xué)號(hào)和姓名(8) 查詢選修了全部課程的學(xué)生學(xué)號(hào)〔9〕查詢至少選修了課程1和課程2的學(xué)生學(xué)號(hào)〔10〕查詢選修了全部課程的學(xué)生學(xué)號(hào)和姓名〔11〕查詢至少選修了1號(hào)課程和2號(hào)課程的學(xué)生學(xué)號(hào)〔如果為:學(xué)號(hào)和姓名?〕
教學(xué)組織1、本節(jié)課主要采取教師多媒體講授的方式進(jìn)行。2、結(jié)合實(shí)例一步一步推導(dǎo)、運(yùn)算,引導(dǎo)學(xué)生學(xué)習(xí)。3、引導(dǎo)學(xué)生回歸到數(shù)學(xué),從數(shù)學(xué)角度思考。4、選擇學(xué)生常見(jiàn)的Excel中的成績(jī)單進(jìn)行講解關(guān)系的性質(zhì)。5、對(duì)Excel中的成績(jī)記錄單進(jìn)行思考講解10分鐘,第一節(jié)約10分鐘,第二節(jié)約15分鐘,第三節(jié)約需要40分鐘,復(fù)習(xí)5分鐘。作業(yè)布置:1、完成課后習(xí)題。本次課推薦和參考文獻(xiàn)1、王珊、陳紅編著,?數(shù)據(jù)庫(kù)系統(tǒng)原理?,清華大學(xué)出版社,1999年2、
薩師煊、王珊,?數(shù)據(jù)庫(kù)系統(tǒng)概論〔第四版〕?,高等教育出版社,2006年3、
楊冬青、唐世渭等譯,?數(shù)據(jù)庫(kù)系統(tǒng)概念?,機(jī)械工業(yè)出版社,2000年本次課實(shí)踐教學(xué)設(shè)計(jì):1、給學(xué)生三個(gè)關(guān)系“學(xué)生〞、“課程〞和“成績(jī)〞,讓學(xué)生學(xué)出常用的查詢,并寫出其關(guān)系運(yùn)算表達(dá)式。課后自我總結(jié)分析:1、
純粹的數(shù)學(xué)定義講解起來(lái)學(xué)生比擬難接受,所以應(yīng)該結(jié)合實(shí)例來(lái)讓學(xué)生理解其數(shù)學(xué)含義。2、
針對(duì)關(guān)系運(yùn)算應(yīng)該參加大量的實(shí)例來(lái)練習(xí),加深學(xué)生的理解。3、
適當(dāng)多參加局部實(shí)例,讓學(xué)生把文字描述的查詢需求使用關(guān)系代數(shù)來(lái)書寫。第4次課2學(xué)時(shí)本次課教學(xué)重點(diǎn):關(guān)系設(shè)計(jì)中經(jīng)常存在的問(wèn)題、函數(shù)依賴、范式和標(biāo)準(zhǔn)化、無(wú)損分解的概念和測(cè)試方法本次課教學(xué)難點(diǎn):函數(shù)依賴問(wèn)題、關(guān)系模式的分解本次課教學(xué)內(nèi)容:第4章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)化理論第一節(jié)問(wèn)題的提出1、先舉一個(gè)例子。例如,我們?yōu)閷W(xué)校設(shè)計(jì)一個(gè)關(guān)系數(shù)據(jù)庫(kù),為了簡(jiǎn)化問(wèn)題,用學(xué)號(hào)“S#〞描述學(xué)生,用系名“SDN〞描述系,用“MN〞描述系主任,用課程名“CN〞描述課程,用“G〞描述學(xué)習(xí)成績(jī)。我們用這些屬性組成關(guān)系名為UN的一個(gè)關(guān)系模式,也是關(guān)系數(shù)據(jù)庫(kù)模式:UN〔S#,CN,G,SDN,MN〕現(xiàn)實(shí)世界的事實(shí)為:。一個(gè)系有假設(shè)干個(gè)學(xué)生,但一個(gè)學(xué)生只屬于一個(gè)系;。一個(gè)系只有一名系主任;。一個(gè)學(xué)生可以選修多門課程,每門課程可有假設(shè)干學(xué)生選修;。每個(gè)學(xué)生學(xué)習(xí)每門課程有一個(gè)成績(jī)。通過(guò)對(duì)以上事實(shí)的分析,〔S#,CN〕具有元組標(biāo)識(shí)作用,〔S#,CN〕是該關(guān)系模式的關(guān)系鍵,而且是唯一的鍵。圖4-1是UN關(guān)系模式的實(shí)例,在這里就是一個(gè)關(guān)系數(shù)據(jù)庫(kù)。S#CNGSDNMNS1C1A計(jì)算機(jī)系趙S1C2A計(jì)算機(jī)系趙S1C4A計(jì)算機(jī)系趙S1C5B計(jì)算機(jī)系趙S2C2B計(jì)算機(jī)系趙S2C3A計(jì)算機(jī)系趙S2C4B計(jì)算機(jī)系趙S3C1B數(shù)學(xué)系王S3C2C數(shù)學(xué)系王S3C3A數(shù)學(xué)系王S4C1A物理系張S4C2B物理系張S4C3C物理系張S5C2B信息系李S5C3C信息系李S5C4A信息系李圖4-1從以上關(guān)系中,可以看到對(duì)該數(shù)據(jù)庫(kù)操作時(shí),會(huì)出現(xiàn)以下幾個(gè)問(wèn)題:〔1〕“插入異常〞。當(dāng)一個(gè)系剛剛成立,尚無(wú)學(xué)生,或有了學(xué)生,但尚未選課時(shí)。無(wú)法將系名和系主任的信息存入?!?〕“刪除異常〞。當(dāng)某個(gè)系的學(xué)生全部畢業(yè)了,在刪除學(xué)生的信息時(shí),將把系名和系主任的信息全部刪除?!?〕冗余太大。由于具有以上三個(gè)“弊病〞,我們說(shuō),這是一個(gè)“不好〞的關(guān)系數(shù)據(jù)庫(kù)模式,是一個(gè)“不好〞的數(shù)據(jù)庫(kù)設(shè)計(jì)。而一個(gè)“好的〞關(guān)系數(shù)據(jù)庫(kù)模式應(yīng)該不會(huì)發(fā)生插入異常和刪除異常,冗余應(yīng)盡可能減少。2、存在問(wèn)題的原因UN關(guān)系中,某些屬性間存在的數(shù)據(jù)依賴。在數(shù)據(jù)依賴中,和關(guān)系模式標(biāo)準(zhǔn)化最緊密的是函數(shù)依賴〔FD〕。3、解決問(wèn)題的途徑將學(xué)生選課關(guān)系分解成三個(gè)關(guān)系:那么如何才能得到“好的〞關(guān)系數(shù)據(jù)庫(kù)模式呢?假設(shè),我們將上述“不好〞的關(guān)系數(shù)據(jù)庫(kù)模式分解為三個(gè)關(guān)系模式,即一個(gè)學(xué)校的數(shù)據(jù)庫(kù)模式包含了如下三個(gè)關(guān)系模式:SD〔S#,SDN〕SC〔S#,CN,G〕DM〔SDN,MN〕那么,插入異常、刪除異常和冗余太大的三個(gè)“弊病〞就會(huì)消除。因此,由這三個(gè)關(guān)系模式組成的關(guān)系數(shù)據(jù)庫(kù)模式就是一個(gè)“好的〞關(guān)系數(shù)據(jù)庫(kù)模式。我們說(shuō),用幾個(gè)簡(jiǎn)單的關(guān)系去取代原來(lái)結(jié)構(gòu)復(fù)雜的關(guān)系的過(guò)程叫做關(guān)系標(biāo)準(zhǔn)化,關(guān)系標(biāo)準(zhǔn)化理論是關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中一個(gè)非常有用的輔助工具。而關(guān)系標(biāo)準(zhǔn)化與關(guān)系模式中的各屬性之間的互相依賴關(guān)系有關(guān)。因此,在討論關(guān)系標(biāo)準(zhǔn)化之前,先討論函數(shù)依賴問(wèn)題。第二節(jié)函數(shù)依賴一、函數(shù)依賴的定義我們先考察如下的一個(gè)關(guān)系模式: S〔S#,SN,AGE,SEX,DEP〕當(dāng)學(xué)號(hào)S#的值確定之后,對(duì)應(yīng)的SN、AGE、SEX、DEP的值也被唯一地確定了。就像自變量X確定之后,相應(yīng)的函數(shù)值f〔x〕也被唯一確定一樣,我們說(shuō)學(xué)號(hào)S#決定于函數(shù)〔SN,AGE,SEX,DEP〕,或者說(shuō)〔SN,AGE,SEX,DEP〕函數(shù)依賴于S#。這種函數(shù)間的依賴關(guān)系稱為函數(shù)依賴。1、定義:設(shè)關(guān)系模式R〔A1,A2,…,An〕,X、Y是R的兩個(gè)屬性集合,X為{A1,A2,…,An}的子集,Y為{A1,A2,…,An}的子集,R[X,Y]是關(guān)系R在屬性X∪Y上的投影,當(dāng)任何時(shí)候R[X,Y]中的任意兩個(gè)元組中的X屬性值相同時(shí),那么它們的Y屬性值也相同。便稱X函數(shù)決定Y,或Y函數(shù)依賴于X,記作X→Y。X為決定因素。當(dāng)Y不函數(shù)依賴于X,記作XY,當(dāng)X→Y,Y→X時(shí),記作X←→Y。2、函數(shù)依賴的根本性質(zhì):〔1〕唯一性。給定函數(shù)依賴f:X→Y及g:X→Y,那么f=g。〔2〕投影性。當(dāng)屬性集合X是屬性集合Y的子集時(shí),那么存在函數(shù)依賴Y→X。這說(shuō)明一組屬性函數(shù)決定于它的所有子集。這種類型的函數(shù)依賴稱為平凡的函數(shù)依賴,假設(shè)X不是Y的子集時(shí),那么稱Y→X是非平凡函數(shù)依賴。〔3〕疊加性〔合并性〕。假設(shè)X→Y及X→Z,那么存在X→YZ?!?〕分配性〔分解性〕。假設(shè)X→YZ,那么必有X→Y及X→Z?!?〕擴(kuò)張性。假設(shè)X→Y及W→Z,那么必有XW→YZ。3、完全函數(shù)依賴與局部函數(shù)依賴定義:設(shè)關(guān)系模式R〔X,Y〕,X,Y是R的屬性集,當(dāng)對(duì)X的每一個(gè)真子集X'都有X'Y,那么Y對(duì)X的依賴關(guān)系是完全的,記作XY。如果對(duì)X某個(gè)真子集X'有X'→Y,那么稱Y對(duì)X的函數(shù)依賴是局部的,記作XY。例如,在關(guān)系模式SC〔S#,C#,G〕中,S#G,C#G,所以〔S#,C#〕G。在關(guān)系模式UN〔S#,CN,G,SDN,MN〕中,S#→SDN。所以,〔S#,CN〕SDN。注意,只有決定因素是組合屬性時(shí),討論局部函數(shù)依賴才有意義。4、傳遞函數(shù)依賴定義:設(shè)X、Y、Z為關(guān)系模式R〔U〕的互不相同的屬性集合,如果X→Y,而YX,但Y→Z〔Z不是Y的子集,即Z對(duì)于Y是非平凡函數(shù)依賴〕,那么稱Z傳遞函數(shù)依賴于X,記作XZ。例如,在學(xué)校關(guān)系模式UN中,S#→SDN,SDNS#,SDN→MN,那么有,S#MN。又如:在關(guān)系模式S〔S#,SN,SDN〕中,S#←→SN,SN→SDN,那么S#→SDN是直接函數(shù)依賴。5、函數(shù)依賴的幾點(diǎn)說(shuō)明:1〕函數(shù)依賴是所有關(guān)系實(shí)例(關(guān)系模式值的每一狀態(tài))均要滿足的約束條件。2〕函數(shù)依賴是語(yǔ)義范疇。只能根據(jù)語(yǔ)義確定函數(shù)依賴。如:在沒(méi)有同名的情況下“姓名→年齡〞成立3〕數(shù)據(jù)庫(kù)設(shè)計(jì)者可以對(duì)現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定。4〕假設(shè)X→Y,那么X稱為這個(gè)函數(shù)依賴的決定屬性集5〕函數(shù)依賴是關(guān)系模式內(nèi)屬性間最常見(jiàn)的一種依賴關(guān)系二、函數(shù)依賴與屬性關(guān)系學(xué)生關(guān)系屬性的集合U={Sno,Sdept,Mname,Cname,Grade}現(xiàn)實(shí)世界的事實(shí):1〕
一個(gè)學(xué)生只屬于一個(gè)系〔含義:學(xué)號(hào)確定后,學(xué)生所在的系也就被唯一確定了。類似于數(shù)學(xué)中的函數(shù)y=f(x),x=Sno,y=Sdept。我們說(shuō)Sno函數(shù)決定Sdept,或者說(shuō),Sdept函數(shù)依賴于Sno,記做sno→sdept;反過(guò)來(lái)一個(gè)系有假設(shè)干學(xué)生〔解釋系不能決定學(xué)生〕2〕
一個(gè)系只有一名系主任〔含義:系確定后系主任名被唯一確定了,類似于數(shù)學(xué)中的函數(shù),我們說(shuō)Sdept函數(shù)決定Mname,或者說(shuō),Mname函數(shù)依賴于Sdept。記做Sdept→Mname〕3〕
一個(gè)學(xué)生可以選修多門課,每門課程有假設(shè)干學(xué)生選修〔含義:學(xué)號(hào)與課程號(hào)間夠不成決定被決定關(guān)系〕4〕
每個(gè)學(xué)生所學(xué)的每門課程都有一個(gè)成績(jī),含義:(sno,cname)→Grade屬性組U上的一組函數(shù)依賴F={sno→sdept,Sdept→Mname,(sno,cname)→Grade}
gradeSnoCnoSdeptMname
gradeSnoCnoSdeptMname
函數(shù)依賴與屬性關(guān)系(1)
如果X和Y之間1:1關(guān)系〔如學(xué)校和校長(zhǎng)之間〕,那么存在函數(shù)依賴X→Y和Y→X;(2)
如果X和Y之間1:n關(guān)系〔如學(xué)號(hào)和姓名之間〕,那么存在函數(shù)依賴X→Y;(3)
如果X和Y之間m:n關(guān)系〔如學(xué)生和課程之間〕,那么X和Y之間不存在函數(shù)依賴。
第三節(jié)范式和標(biāo)準(zhǔn)化一、什么是范式標(biāo)準(zhǔn)化理論是圍繞著范式而建立的。如果一個(gè)關(guān)系滿足某個(gè)指定的約束集,那么稱它屬于某種特定的范式。滿足不同程度要求的約束集那么稱為不同的范式。二、范式的判定條件與標(biāo)準(zhǔn)化1、第一范式〔1NF〕關(guān)系模式R的所有屬性都是不可分割的根本數(shù)據(jù)項(xiàng),那么R∈1NF。(非主屬性函數(shù)依賴于碼。每個(gè)標(biāo)準(zhǔn)化的關(guān)系都屬于1NF。不滿足1NF的舉例:學(xué)生(學(xué)號(hào),姓名,年齡,入學(xué)畢業(yè)年月)1NF是關(guān)系模式的起碼要求gradeSnogradeSnoCnoSdeptSlocSLC(Sno,Sdept,Sloc,Cno,Grade)屬性函數(shù)依賴情況:
〔虛線表示局部函數(shù)依賴,實(shí)線表示完全函數(shù)依賴〕插入異常:未選課的學(xué)生不能插入,因?yàn)榇a值局部為空〔原因是對(duì)碼的局部函數(shù)依賴造成〕。〔解決問(wèn)題的方法:把局部函數(shù)以來(lái)局部分解出來(lái)〕刪除異常:某一學(xué)生的選課信息全部刪除后,學(xué)生的其他信息也被刪除,否那么碼值局部為空〔不允許〕〔原因是對(duì)碼的局部函數(shù)依賴造成〕。〔解決問(wèn)題的方法:把局部函數(shù)以來(lái)局部分解出來(lái)〕數(shù)據(jù)冗余度大:一個(gè)學(xué)生選修了多門課程,同一學(xué)生的根本信息〔Ssept,Sloc〕需要保存屢次?!苍蚴菍?duì)碼的局部函數(shù)依賴造成〕。〔解決問(wèn)題的方法:把局部函數(shù)以來(lái)局部分解出來(lái)〕修改復(fù)雜:修改某學(xué)生根本信息時(shí),如果其選修多門課程,同一信息需要重復(fù)修改屢次?!苍蚴菍?duì)碼的局部函數(shù)依賴造成〕〔解決問(wèn)題的方法:把局部函數(shù)以來(lái)局部分解出來(lái)〕2、第二范式(2NF):定義:假設(shè)關(guān)系模式R∈1NF,且每個(gè)非主屬性都完全函數(shù)依賴于R的每個(gè)鍵,那么關(guān)系模式R屬于第二范式〔R∈2NF〕。前面的關(guān)系模式不滿足第二范式,分解為下面兩個(gè)模式后,局部函數(shù)依賴被消除:SC(sno,cno,grade)SL(Sno,Sdept,Sloc)
gradeSnoCnogradeSnoCnoSnoSdeptSloc
分解成第二范式后SC(sno,cno,grade),SL(Sno,Sdept,Sloc)。以上4個(gè)問(wèn)題在一定程度上得到了解決。1〕SL關(guān)系中可以插入尚未選修的學(xué)生2〕刪除學(xué)生選課關(guān)系,只涉及SC關(guān)系,不涉及SL中的學(xué)生根本信息。3〕由于學(xué)生選課信息于學(xué)生根本信息分開(kāi)存放,不管該學(xué)生選修了幾門課,Sdept與Sloc值都只存儲(chǔ)一次。4〕某學(xué)生轉(zhuǎn)系,只需要修改相關(guān)關(guān)系中的一個(gè)元組。SnoSdeptSlocSnoSdeptSloc
第二范式SL中存在傳遞函數(shù)依賴,使得SL仍然存在上述4個(gè)問(wèn)題。1〕插入異常:系剛成立,無(wú)在校學(xué)生,無(wú)法存入系信息?!步鉀Q問(wèn)題的方法:把與主碼無(wú)關(guān)的函數(shù)局部分解出來(lái)獨(dú)立構(gòu)成關(guān)系模式,即消除對(duì)主碼的傳遞函數(shù)依賴〕2〕刪除異常:某系的全部學(xué)生畢業(yè)了,系的信息也喪失了?!步鉀Q問(wèn)題的方法:把與主碼無(wú)關(guān)的函數(shù)局部分解出來(lái)獨(dú)立構(gòu)成關(guān)系模式,即消除對(duì)主碼的傳遞函數(shù)依賴〕3〕數(shù)據(jù)冗余度大:每一個(gè)系的學(xué)生都住在同一個(gè)地方,關(guān)于系的住處信息卻要重復(fù)出現(xiàn)。4〕修改復(fù)雜:當(dāng)某系學(xué)生調(diào)整住處時(shí),需要修改所有學(xué)生的Sloc屬性值。造成上述4個(gè)問(wèn)題的主要原因:非主屬性傳遞函數(shù)依賴于主碼。解決方法:將傳遞函數(shù)依賴關(guān)系分解出來(lái)。3、第三范式〔3NF〕定義:假設(shè)關(guān)系R∈2NF,且每個(gè)非主屬性都不傳遞依賴于R的任何鍵,那么R∈3NF。SL(Sno,Sdept,Sloc)分解為SD(sno,sdept)DL(Sdept,Sloc)
標(biāo)準(zhǔn)化過(guò)程:標(biāo)準(zhǔn)化過(guò)程即為關(guān)系模式的不斷分解過(guò)程。標(biāo)準(zhǔn)化的實(shí)質(zhì):概念的單一化。標(biāo)準(zhǔn)化的目的:不斷解決關(guān)系插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜問(wèn)題。
3NF是工程上的標(biāo)準(zhǔn),在工程應(yīng)用上,到達(dá)第三范式一般情況下就可以了4、Boyce-Codd范式〔BCNF〕〔本局部?jī)?nèi)容選舉〕〔1〕3NF的不完善性3NF消除了非主屬性對(duì)鍵的局部函數(shù)依賴和傳遞函數(shù)依賴,從而消除了數(shù)據(jù)的冗余和各種異常。但是3NF并沒(méi)有限制有些主屬性對(duì)鍵具有這些依賴關(guān)系,如果發(fā)生了這種依賴,仍會(huì)引起異?,F(xiàn)象出現(xiàn)。例如:設(shè)關(guān)系模式SCG〔S#,SN,CN,G〕,其中S#代表學(xué)號(hào),SN代表學(xué)生姓名并假設(shè)沒(méi)有重名,CN表示課程名,G表示學(xué)習(xí)成績(jī)。SCG的函數(shù)依賴規(guī)定如下:S#←→SN〔S#,CN〕→G〔SN,CN〕→G可知,在SCG中有兩個(gè)候選鍵〔S#,CN〕和〔SN,CN〕。唯一一個(gè)非主屬性是G不傳遞依賴于任何鍵,所以SCG∈3NF。但是存在著主屬性對(duì)鍵的局部函數(shù)依賴〔主屬性有:S#,SN,CN〕:〔S#,CN〕SN〔因?yàn)椋篠#→SN〕;〔SN,CN〕S#〔因?yàn)椋篠N→S#〕。因此,關(guān)系SCG中存在大量的數(shù)據(jù)冗余,會(huì)引起修改異常。解決的方法仍然是通過(guò)投影分解題該范式等級(jí),為了解決這類問(wèn)題,Boyce與Codd共同提出了對(duì)第三范式的修正,并給出新的定義,即Boyce-Codd范式,簡(jiǎn)稱BCNF。它彌補(bǔ)了第三范式的缺乏。
〔2〕Boyce-Codd范式〔BCNF〕定義4-7假設(shè)R∈1NF,且R中的每一個(gè)決定因素都是候選鍵,那么R∈BCNF。推論:〔1〕滿足BCNF的關(guān)系將消除任何屬性〔主屬性或非主屬性〕對(duì)鍵的局部依賴和函數(shù)依賴,因此,屬于BCNF的關(guān)系必然屬于3NF?!?〕但屬于3NF的關(guān)系卻不一定屬于BCNF。
〔3〕BCNF的標(biāo)準(zhǔn)化BCNF的標(biāo)準(zhǔn)化仍然采用分解的方法。例如,將前面關(guān)系模式SCG〔S#,SN,CN,G〕分解為:SC〔S#,CN,G〕〔只有一個(gè)候選鍵〕S〔S#,SN〕〔有兩候選鍵〕函數(shù)依賴如下:〔S#,CN〕→GS#→SNSN→S#以上關(guān)系模式中,所有決定因素都是候選鍵。因此,SC∈BCNF,S∈BCNF。綜上所述,可以看出:〔1〕BCNF在概念上要比3NF更加簡(jiǎn)單。應(yīng)用BCNF定義時(shí),不需要從1NF→2NF→3NF一步步檢查,可直接判斷1NF關(guān)系是否屬于BCNF。3NF和BCNF是在函數(shù)依賴條件下對(duì)關(guān)系模式分解所能到達(dá)的別離程度所進(jìn)行的測(cè)度。一個(gè)關(guān)系數(shù)據(jù)庫(kù)模式中的關(guān)系模式,如果都屬于BCNF,那么在函數(shù)依賴范疇,它已經(jīng)實(shí)現(xiàn)了徹底的別離,已消除了插入、刪除異常,冗余度得到了控制。第四節(jié)關(guān)系模式的分解一、模式分解中存在的問(wèn)題關(guān)系模式的標(biāo)準(zhǔn)化是通過(guò)對(duì)關(guān)系模式的分解來(lái)實(shí)現(xiàn)的,但是把低一級(jí)的關(guān)系模式分解為假設(shè)干個(gè)高一級(jí)的關(guān)系模式的方法并不是惟一的。在這些分解方法中,只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價(jià)的方法才有意義。〔1〕分解具有無(wú)損連接性。設(shè)關(guān)系模式R<U,F>被分解為假設(shè)干個(gè)關(guān)系模式R1<Ul,F1>,R2<U2,F2>,…,Rn<Un,Fn>〔其中U=U1∪U2∪…Un,且不存在UiUj,Ri為F在Ui上的投影〕,假設(shè)R與R1,R2…Rn自然連接的結(jié)果相等,那么稱關(guān)系模式R的這個(gè)分解具有無(wú)損連接性。〔2〕分解要保持函數(shù)依賴。設(shè)關(guān)系模式R<U,F(xiàn)>被分解為假設(shè)干個(gè)關(guān)系模式R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>〔其中U=Ul∪U2∪…Un,且不存在UiUj,Ri為F在Uj上的投影〕,假設(shè)F所邏輯蘊(yùn)含的函數(shù)依賴一定也由分解得到的某個(gè)關(guān)系模式中的Fj所邏輯蘊(yùn)含,那么稱關(guān)系模式R的這個(gè)分解是保持函數(shù)依賴的。如果一個(gè)分解具有無(wú)損連接性,那么它能夠保證不喪失信息。如果一個(gè)分解保持了函數(shù)依賴,那么它可以減輕或解決各種異常情況。我們給出關(guān)系模式SL(S#,SDEPT,SLOC)的一個(gè)關(guān)系:SLS#〔學(xué)號(hào)〕SDEPT〔所在系〕SLOC〔住處〕95001計(jì)算機(jī)系1號(hào)樓95002信息系2號(hào)樓95003數(shù)學(xué)系3號(hào)樓95004信息系2號(hào)樓95005物理系2號(hào)樓〔1〕分解為3個(gè)關(guān)系模式:SN(S#)、SD(SDEPT)和SO(SLOC),分解后的關(guān)系為SNSDSOS#〔學(xué)號(hào)〕9500195002950039500495005SDEPT〔所在系〕
SLOC〔住處〕計(jì)算機(jī)系
1號(hào)樓信息系
2號(hào)樓數(shù)學(xué)系
3號(hào)樓信息系
2號(hào)樓物理系
2號(hào)樓
分解后的關(guān)系標(biāo)準(zhǔn)化程度很高,但SN、SD、SO無(wú)法連接,喪失了很多信息?!?〕分解為2個(gè)關(guān)系模式:NL(S#,SLOC)和DL(SDEPT,SLOC),分解后的關(guān)系為NLDLS#〔學(xué)號(hào)〕SLOC〔住處〕950011號(hào)樓950022號(hào)樓950033號(hào)樓950042號(hào)樓950052號(hào)樓SDEPT〔所在系〕SLOC〔住處〕計(jì)算機(jī)系1號(hào)樓信息系2號(hào)樓數(shù)學(xué)系3號(hào)樓物理系2號(hào)樓
將NL和DL進(jìn)行自然連接,結(jié)果為S#〔學(xué)號(hào)〕SDEPT〔所在系〕SLOC〔住處〕95001計(jì)算機(jī)系1號(hào)樓95002信息系2號(hào)樓95002物理系2號(hào)樓95003數(shù)學(xué)系3號(hào)樓95004信息系2號(hào)樓95004物理系2號(hào)樓95005信息系2號(hào)樓95005物理系2號(hào)樓比原來(lái)的SL關(guān)系多了3個(gè)元組。〔3〕分解為2個(gè)關(guān)系模式:ND(S#,SDEPT)和NL(S#,SLOC),分解后的關(guān)系為NDNLS#〔學(xué)號(hào)〕SDEPT〔所在系〕
S#〔學(xué)號(hào)〕SLOC〔住處〕95001計(jì)算機(jī)系
950011號(hào)樓95002信息系950022號(hào)樓95003數(shù)學(xué)系950033號(hào)樓95004信息系950042號(hào)樓95005物理系950052號(hào)樓將ND和NL進(jìn)行自然連接,結(jié)果與SL完全一樣,無(wú)信息喪失或添加。但它沒(méi)有保持原關(guān)系中的函數(shù)依賴:SDEPT→SLOC?!?〕分解為:ND(S#,SDEPT)和DL(SDEPT,SLOC),分解后的關(guān)系為NDDLS#〔學(xué)號(hào)〕SDEPT〔所在系〕
SDEPT〔所在系〕SLOC〔住處〕95001計(jì)算機(jī)系
計(jì)算機(jī)系1號(hào)樓95002信息系信息系2號(hào)樓95003數(shù)學(xué)系數(shù)學(xué)系3號(hào)樓95004信息系信息系2號(hào)樓95005物理系物理系2號(hào)樓這種分解方式既沒(méi)有信息喪失,又保持了原關(guān)系中的函數(shù)依賴,是理想的分解。分解具有無(wú)損連接性和分解保持函數(shù)依賴是兩個(gè)互相獨(dú)立的標(biāo)準(zhǔn)。具有無(wú)損連接性的分解不一定能夠保持函數(shù)依賴。同樣,保持函數(shù)依賴的分解也不一定具有無(wú)損連接性。例如,上面的第一種分解方法既不具有無(wú)損連接性,也未保持函數(shù)依賴,它不是原關(guān)系模式的一個(gè)等價(jià)分解;第二種分解方法保持了函數(shù)依賴,但不具有無(wú)損連接性;第三種分解方法具有無(wú)損連接性,但未保持函數(shù)依賴;第四種分解方法既具有無(wú)損連接性,又保持了函數(shù)依賴。二、無(wú)損分解的測(cè)試方法1、驗(yàn)證無(wú)損分解的充要條件如果R的分解為ρ={R1,R2},F(xiàn)為R所滿足的函數(shù)依賴的集合,那么分解ρ具有無(wú)損分解的充分必要條件為:R1∩R2→(R1-R2)或R1∩R2→(R2-R1)2、檢驗(yàn)無(wú)損分解算法輸入:關(guān)系模式R(A1,A2,...,AN),它的函數(shù)依賴集F以及分解ρ={R1,R2,...,Rk};輸出:確定ρ是否具有無(wú)損分解;方法:〔1〕
構(gòu)造一個(gè)k行n列的表,第i行對(duì)應(yīng)于關(guān)系模式Ri,第j列對(duì)應(yīng)于屬性Aj。如果Aj∈Ri,那么在第i行第j列上放入符號(hào)ai,否那么放符號(hào)bij。〔2〕
(2)逐個(gè)檢查F中的每一個(gè)函數(shù)依賴,并修改表中的元素。其方法如下:取F中一個(gè)函數(shù)依賴X→Y,在X的分量中尋找相同的行,如果找到這樣的兩行或更多的行,那么修改這些行,那么使這些行上屬性組Y所在的列上元素相同。修改規(guī)那么是:如果y所在的要修改的行中有一個(gè)為aj,那么這些元素均變成aj;否那么改動(dòng)為bmj〔其中m為這些行的最小行號(hào)〕?!?〕
(3)這樣反復(fù)進(jìn)行,如果發(fā)現(xiàn)某一行變成了a1,a2,...,ak,那么分解ρ具有無(wú)損分解;如果F中所有函數(shù)依賴都不能再修改表中的內(nèi)容,且沒(méi)有發(fā)現(xiàn)這樣的行,那么分解ρ不具有無(wú)損分解。3、例子關(guān)系模式R(ABCDE)及函數(shù)依賴集F={A→C,B→C,C→D,DE→C,CE→A}
驗(yàn)證分解ρ={R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)}是否為無(wú)損聯(lián)接。
教學(xué)組織:1、本節(jié)課主要采取教師多媒體講授的方式進(jìn)行。2、先詳細(xì)介紹不好的數(shù)據(jù)庫(kù)設(shè)計(jì)中存在的問(wèn)題,引導(dǎo)學(xué)生思考為什么會(huì)存在問(wèn)題,進(jìn)而提出本節(jié)課的主題。3、結(jié)合數(shù)學(xué)中的單值函數(shù)來(lái)講解屬性間的函數(shù)依賴。4、講解范式的時(shí)候選擇一個(gè)實(shí)例統(tǒng)一講解,一步一步地推導(dǎo)。5、講解無(wú)損分解驗(yàn)證算法地時(shí)候,重點(diǎn)使用實(shí)例來(lái)講解,算法只簡(jiǎn)單描述。6、問(wèn)題地引入需要講解15分鐘,函數(shù)依賴需要講解20分鐘,范式需要25分鐘,無(wú)損分解驗(yàn)證算法大概需要20分鐘。
作業(yè)布置:1、完成課后習(xí)題中的前四個(gè)題目。2、如何進(jìn)行標(biāo)準(zhǔn)化?3、思考在標(biāo)準(zhǔn)化的過(guò)程中如何才能防止有損分解?本次課推薦和參考文獻(xiàn)1、王珊、陳紅編著,?數(shù)據(jù)庫(kù)系統(tǒng)原理?,清華大學(xué)出版社,1999年2、薩師煊、王珊,?數(shù)據(jù)庫(kù)系統(tǒng)概論〔第四版〕?,高等教育出版社,2006年3、楊冬青、唐世渭等譯,?數(shù)據(jù)庫(kù)系統(tǒng)概念?,機(jī)械工業(yè)出版社,2000年本次課實(shí)踐教學(xué)設(shè)計(jì):1、按照原來(lái)的分組,每個(gè)小組內(nèi)容討論自己設(shè)計(jì)的關(guān)系中存在那些依賴,屬于幾范式。并標(biāo)準(zhǔn)化所以范式至少到達(dá)3NF。
課后自我總結(jié)分析:1、
函數(shù)依賴是中心,一定要先講清楚函數(shù)依賴,否那么不往下進(jìn)行。2、
關(guān)系標(biāo)準(zhǔn)化是設(shè)計(jì)好的數(shù)據(jù)庫(kù)的核心,必須爭(zhēng)取每個(gè)學(xué)生都能掌握,否那么影響后面的系統(tǒng)創(chuàng)立。3、
爭(zhēng)取課堂多多講解幾個(gè)實(shí)例。第5次課2學(xué)時(shí)本次課教學(xué)重點(diǎn):數(shù)據(jù)庫(kù)設(shè)計(jì)步驟、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)本次課教學(xué)難點(diǎn):概念結(jié)構(gòu)設(shè)計(jì)本次課教學(xué)內(nèi)容:第5章數(shù)據(jù)庫(kù)的設(shè)計(jì)第1節(jié)數(shù)據(jù)庫(kù)設(shè)計(jì)概述一、概述數(shù)據(jù)庫(kù)設(shè)計(jì)是在現(xiàn)代DBMS〔主要是關(guān)系DBMS〕支持下進(jìn)行的,它包括信息系統(tǒng)數(shù)據(jù)模型的靜態(tài)模型——模式與子模式的設(shè)計(jì),稱為數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì);和在模型上的動(dòng)態(tài)操作——應(yīng)用程序設(shè)計(jì),稱為數(shù)據(jù)庫(kù)的行為設(shè)計(jì)?,F(xiàn)代數(shù)據(jù)庫(kù)設(shè)計(jì)方法強(qiáng)調(diào)數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)與行為設(shè)計(jì)相結(jié)合,這是數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)之一。大型數(shù)據(jù)庫(kù)的設(shè)計(jì)是一向龐大的工程,屬于軟件工程的范疇。必須把軟件工程的原理和數(shù)據(jù)庫(kù)工程方法應(yīng)用到數(shù)據(jù)庫(kù)建設(shè)中來(lái)。對(duì)于從事數(shù)據(jù)庫(kù)設(shè)計(jì)的人員來(lái)講,應(yīng)該具備多方面的技術(shù)和知識(shí),主要有:〔1〕計(jì)算機(jī)科學(xué)根底知識(shí)社程序設(shè)計(jì)技術(shù)〔2〕數(shù)據(jù)庫(kù)根本知識(shí)和數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)〔3〕軟件工程的原理和方法〔4〕應(yīng)用領(lǐng)域的知識(shí)二、設(shè)計(jì)方法簡(jiǎn)述標(biāo)準(zhǔn)化設(shè)計(jì)法中比擬著名的有新奧爾良〔NewOrleans〕方法。它將數(shù)據(jù)庫(kù)設(shè)計(jì)分為四個(gè)階段:需求分析〔分析用戶要求〕、概念設(shè)計(jì)〔信息分析和定義〕、邏輯設(shè)計(jì)〔設(shè)計(jì)實(shí)現(xiàn)〕和物理設(shè)計(jì)〔物理數(shù)據(jù)庫(kù)設(shè)計(jì)〕?;贓-R模型的數(shù)據(jù)庫(kù)設(shè)計(jì)方法,基于3NF的設(shè)計(jì)方法,基于抽象語(yǔ)法標(biāo)準(zhǔn)的設(shè)計(jì)方法等等,是在數(shù)據(jù)庫(kù)設(shè)計(jì)的不同階段上支持實(shí)現(xiàn)的具體技術(shù)和方法。標(biāo)準(zhǔn)設(shè)計(jì)法從本質(zhì)上看仍然是手工設(shè)計(jì)方法,其根本思想是過(guò)程迭代和逐步求精。三、設(shè)計(jì)步驟按標(biāo)準(zhǔn)設(shè)計(jì)的方法將數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下六個(gè)步驟:〔1〕系統(tǒng)需求分析階段〔2〕概念設(shè)計(jì)階段〔3〕邏輯設(shè)計(jì)階段〔4〕數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段〔5〕應(yīng)用程序編碼、調(diào)試、試運(yùn)行階段〔6〕數(shù)據(jù)庫(kù)的運(yùn)行維護(hù)階段通常,將這種設(shè)計(jì)方法稱為數(shù)據(jù)庫(kù)設(shè)計(jì)的生命周期法。在這六個(gè)階段中,前兩個(gè)階段面向“問(wèn)題〞,即現(xiàn)實(shí)世界或用戶的應(yīng)用要求;中間兩個(gè)階段面向數(shù)據(jù)庫(kù)管理系統(tǒng);最后兩個(gè)階段面向“實(shí)現(xiàn)〞。第2節(jié)需求分析系統(tǒng)需求分析的具體步驟是:調(diào)查分析用戶活動(dòng),確定系統(tǒng)邊界,調(diào)查分析系統(tǒng)功能需求,調(diào)查分析系統(tǒng)數(shù)據(jù),編制系統(tǒng)分析報(bào)告。概念設(shè)計(jì)需求分析概念設(shè)計(jì)需求分析1、調(diào)查組織機(jī)構(gòu)總體情況2、熟悉業(yè)務(wù)活動(dòng)3、明確用戶需求4、確定系統(tǒng)邊界數(shù)據(jù)流圖數(shù)據(jù)字典用戶與設(shè)計(jì)人員交互
一、調(diào)查分析用戶目的是為了充分了解用戶的各種業(yè)務(wù)活動(dòng),包括業(yè)務(wù)處理流程和報(bào)表形式,以確保建立的此數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)能符合客觀管理規(guī)律,滿足用戶要求。具體做法是:〔1〕了解組織機(jī)構(gòu),調(diào)查該組織與哪些部門組成,各部門的職責(zé)和任務(wù)是什么?!?〕調(diào)查了解各部門的業(yè)務(wù)活動(dòng)流程。調(diào)查分析之后,將調(diào)查分析的結(jié)果用業(yè)務(wù)流程圖等一系列圖表表示出來(lái)。二、確定系統(tǒng)邊界區(qū)分確定哪些功能由計(jì)算機(jī)完成或?qū)?lái)準(zhǔn)備由計(jì)算機(jī)完成,哪些工作由人工來(lái)完成。三、調(diào)查分析系統(tǒng)功能目的是確定系統(tǒng)應(yīng)具備哪些功能,完成哪些任務(wù)。四、調(diào)查分析系統(tǒng)數(shù)據(jù)主要包括如下內(nèi)容:〔1〕用戶在數(shù)據(jù)庫(kù)中需要存儲(chǔ)哪些數(shù)據(jù)。確定各實(shí)體集以及實(shí)體集應(yīng)用哪些屬性進(jìn)行描述?!?〕搞清實(shí)體集之間的聯(lián)系,確定聯(lián)系的類型?!?〕各屬性的名稱、別名、類型、長(zhǎng)度、值域、數(shù)據(jù)量、使用特點(diǎn)等?!?〕各數(shù)據(jù)的來(lái)源以及不同來(lái)源的數(shù)據(jù)是否有矛盾。數(shù)據(jù)的性質(zhì)、重要性;數(shù)據(jù)間的聯(lián)系;哪些是根本數(shù)據(jù),哪些是導(dǎo)出數(shù)據(jù),以及數(shù)據(jù)可能發(fā)生的變化等?!?〕用戶對(duì)數(shù)據(jù)的處理要求。要完成什么樣的處理,響應(yīng)時(shí)間、平安性和完整性要求。在對(duì)數(shù)據(jù)的收集和分析的根底上編制數(shù)據(jù)字典,繪制數(shù)據(jù)流程圖。五、編寫系統(tǒng)分析報(bào)告系統(tǒng)分析報(bào)告應(yīng)包括如下內(nèi)容:〔1〕系統(tǒng)概況、系統(tǒng)的目標(biāo)、范圍、背景、歷史和現(xiàn)狀?!?〕系統(tǒng)的原理和技術(shù),對(duì)原系統(tǒng)的改善?!?〕系統(tǒng)總體結(jié)構(gòu)與子系統(tǒng)結(jié)構(gòu)說(shuō)明?!?〕系統(tǒng)功能說(shuō)明。〔5〕數(shù)據(jù)處理概要、工程體制和設(shè)計(jì)階段劃分。系統(tǒng)方案及技術(shù)、經(jīng)濟(jì)、功能和操作上的可行性。六、數(shù)據(jù)流圖1、數(shù)據(jù)流〔用→表示〕是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,因此由一組成分固定的數(shù)據(jù)項(xiàng)組成。2、加工〔用○表示〕指對(duì)數(shù)據(jù)流進(jìn)行某些操作或變換。3、數(shù)據(jù)文件〔用-表示〕指系統(tǒng)保存的數(shù)據(jù),它一般是數(shù)據(jù)庫(kù)文件。4、數(shù)據(jù)的源點(diǎn)或終點(diǎn)〔用□表示〕七、數(shù)據(jù)字典數(shù)據(jù)字典通常由數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)和處理過(guò)程組成。1、
數(shù)據(jù)項(xiàng):不可分割的數(shù)據(jù)單位數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名,數(shù)據(jù)項(xiàng)的含義說(shuō)明,別名,數(shù)據(jù)類型,長(zhǎng)度,取值范圍,取值含義,與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系}例:庫(kù)存數(shù)量范圍、含義2、
數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說(shuō)明,組成:{數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)}}3、
數(shù)據(jù)流可以是數(shù)據(jù)項(xiàng),但更一般的情況是數(shù)據(jù)結(jié)構(gòu)。表示某一處理過(guò)程的輸入或輸出數(shù)據(jù)。數(shù)據(jù)流描述={數(shù)據(jù)流名,說(shuō)明,數(shù)據(jù)流來(lái)源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,頂峰期流量}平均流量:?jiǎn)挝粫r(shí)間〔每天、每周、每月等〕里的傳輸次數(shù)。頂峰期流量:頂峰時(shí)期的數(shù)據(jù)流量。4、
數(shù)據(jù)存儲(chǔ):處理過(guò)程中要存儲(chǔ)的數(shù)據(jù)數(shù)據(jù)存儲(chǔ)描述={數(shù)據(jù)存儲(chǔ)名,說(shuō)明,輸入數(shù)據(jù)流,輸出數(shù)據(jù)流,數(shù)據(jù)量〔每次存儲(chǔ)多少數(shù)據(jù)〕,存取頻度〔每天或每小時(shí)或每月存取幾次〕,存取方式〔批處理還是聯(lián)系處理,是檢索還是更新,是順序存取還是隨機(jī)存取〕}5、
處理過(guò)程:數(shù)據(jù)字典中只描述處理過(guò)程的說(shuō)明性信息。具體處理邏輯一般用判定表與判定樹(shù)來(lái)描述。處理過(guò)程描述={處理過(guò)程名,說(shuō)明,輸入:{輸入流},輸出:{輸出流},處理:{簡(jiǎn)要說(shuō)明處理過(guò)程的功能及處理要求}}說(shuō)明:數(shù)據(jù)字典以能將數(shù)據(jù)描述清楚為度。第3節(jié)概念結(jié)構(gòu)設(shè)計(jì)一、最常用的方法自底向上設(shè)計(jì)概念結(jié)構(gòu)法,通常分兩部:抽象數(shù)據(jù)并設(shè)計(jì)局部視圖,集成局部視圖子需求子需求子需求子需求
子需求子需求子需求子需求……….概念模式概念模式概念模式概念模式
概念模式概念模式概念模式概念模式
……….概念模式概念模式
概念模式概念模式
……….……..全局概念模式
全局概念模式
圖概念結(jié)構(gòu)設(shè)計(jì)謀略
概念結(jié)構(gòu)設(shè)計(jì)抽象數(shù)據(jù),設(shè)計(jì)局部視圖集成視圖
概念結(jié)構(gòu)設(shè)計(jì)抽象數(shù)據(jù),設(shè)計(jì)局部視圖集成視圖
需求分析邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)流圖數(shù)據(jù)字典總E_R圖分E_R圖
數(shù)據(jù)流圖數(shù)據(jù)字典總E_R圖分E_R圖
圖概念結(jié)構(gòu)設(shè)計(jì)二、數(shù)據(jù)抽象與局部視圖設(shè)計(jì)1、
選擇局部應(yīng)用根據(jù)系統(tǒng)的具體情況,在多層數(shù)據(jù)流圖中選擇一個(gè)適當(dāng)層次的數(shù)據(jù)流圖,讓這組圖中每一局部對(duì)應(yīng)局部應(yīng)用,設(shè)計(jì)分E—R圖。往往以中層數(shù)據(jù)流圖作為設(shè)計(jì)分E—R圖的依據(jù),因它較好反映系統(tǒng)中各局部應(yīng)用子系統(tǒng)的組成。如果局部應(yīng)用比擬復(fù)雜,可以從更下層的數(shù)據(jù)流圖入手。2、
逐一設(shè)計(jì)分E—R圖**將收集在數(shù)據(jù)字典中局部應(yīng)用所涉及的數(shù)據(jù)抽取出來(lái),參照數(shù)據(jù)流圖標(biāo)識(shí)局部應(yīng)用中的實(shí)體、實(shí)體屬性、標(biāo)識(shí)實(shí)體的碼,確定實(shí)體間的聯(lián)系及其類型〔1:1,1:n,1:m〕。實(shí)體抽象:將一組具有某些共同特性和行為的對(duì)象抽象為一個(gè)實(shí)體。對(duì)象與實(shí)體間是“ismemberof〞關(guān)系。屬性抽象:對(duì)象類型的組成成分可以抽象為實(shí)體的屬性。組成成分與對(duì)象類型間的關(guān)系是“ispartof〞關(guān)系**有時(shí)實(shí)體與屬性之間很難有截然劃分的界限,同一事物,在一種應(yīng)用環(huán)境中作為“屬性〞,在另一種應(yīng)用環(huán)境中就必須作為實(shí)體。例:學(xué)校的系。有些環(huán)境下只作為屬性描述,而在另一些環(huán)境中作為實(shí)體描述**確定屬性準(zhǔn)那么〔考慮到〕:1〕
屬性不能再具有需要描述的性質(zhì)。即屬性必須是不可分的數(shù)據(jù)項(xiàng),不能再由另外一些屬性組成。例子:職稱2〕
屬性不能與其他實(shí)體有聯(lián)系。聯(lián)系只發(fā)生在實(shí)體間。例子:職稱
教師性別姓名教師性別姓名職稱教師性別姓名職稱
職稱
分配
住房
為了簡(jiǎn)化E_R圖的處理,現(xiàn)實(shí)世界中的事物凡能夠作為屬性的,應(yīng)盡量作為屬性。
例:設(shè)計(jì)學(xué)籍管理局部應(yīng)用的分E-R圖,可用相同方法設(shè)計(jì)其他局部應(yīng)用的分E-R圖**學(xué)籍管理局部應(yīng)用的分E-R圖草圖教室教室
上課
管理上課
管理
班級(jí)班主任班主任11mn
11組成指導(dǎo)
組成指導(dǎo)
nn住宿歸檔檔案材料住宿歸檔檔案材料宿舍宿舍學(xué)生學(xué)生1n11
**學(xué)籍管理局部應(yīng)用的分E-R圖草圖調(diào)整,得到分E-R圖1〕
性別與宿舍分配有關(guān),根據(jù)屬性準(zhǔn)那么2應(yīng)調(diào)整為實(shí)體〔是否描述全〕。學(xué)生宿舍住宿擁有性別
學(xué)生宿舍住宿擁有性別
2〕
數(shù)據(jù)存儲(chǔ)“學(xué)生登記表〞,有用局部已經(jīng)轉(zhuǎn)入學(xué)生檔案中,所以不必作為實(shí)體了〔是否重復(fù)描述〕。**學(xué)籍管理局部應(yīng)用的分E-R得到分E-R圖的所有實(shí)體屬性。
三、視圖集成集成視圖合并集成視圖合并〔消除沖突〕修改與重構(gòu)〔消除不必要的冗余〕初步E-R圖
分E-R圖
根本E-R圖
分析標(biāo)準(zhǔn)化理論
1、合并分E—R圖,初步生成E—R圖消除沖突。各分ER圖之間的沖突主要有三類:屬性沖突,命名沖突,結(jié)構(gòu)沖突1〕屬性沖突〔1〕屬性域沖突。例:學(xué)號(hào)類型不同分E_R圖中分別被說(shuō)明為整形或字符型。〔2〕屬性的取值單位沖突。2〕命名沖突〔1〕同名異義〔2〕異名同義命名沖突在實(shí)體、聯(lián)系和屬性上都可能發(fā)生。其中屬性命名沖突更為常見(jiàn)。通過(guò)討論、協(xié)商等行政手段加以解決。3〕結(jié)構(gòu)沖突〔1〕同一對(duì)象在不同的應(yīng)用中具有不同的抽象。如課程在某一局部應(yīng)用中被當(dāng)作實(shí)體,而在另一局部應(yīng)用中被當(dāng)作屬性。用屬性準(zhǔn)那么加以統(tǒng)一。〔2〕同一實(shí)體在不同應(yīng)用局部應(yīng)用中所包含的屬性不完全相同,或?qū)傩缘呐帕写涡虿煌?。解決方法為取屬性的并集?!?〕實(shí)體間的聯(lián)系在不同的局部應(yīng)用中呈現(xiàn)不同的類型。解決方法:根據(jù)應(yīng)用的語(yǔ)義對(duì)實(shí)體聯(lián)系的類型進(jìn)行綜合或調(diào)整例:學(xué)生管理子系統(tǒng)中學(xué)籍管理與課程管理局部視圖分E_R圖存在的沖突〔1〕學(xué)籍管理中的“班主任〞與課程管理的“教師〞在一定程度上屬于異名同義。統(tǒng)一為教師〔職工號(hào),姓名,性別,職稱,是否為優(yōu)秀班主任〕〔2〕班主任改為教師后,將兩種聯(lián)系〔指導(dǎo)與教學(xué)〕也綜合為教學(xué)聯(lián)系〔3〕性別在兩個(gè)局部應(yīng)用中具有不同的抽象。學(xué)籍管理中為實(shí)體,課程管理中為屬性。根據(jù)屬性準(zhǔn)那么進(jìn)行合并?!?〕學(xué)生實(shí)體的屬性的組成與次序在兩個(gè)不同的分E-R圖中都存在差異,應(yīng)將所有屬性綜合,并重新調(diào)整次序。解決上述沖突后得到的學(xué)生管理子系統(tǒng)的初步E-R圖為:
教師開(kāi)設(shè)
教室
講授管理
班級(jí)組成學(xué)生宿舍檔案材料教學(xué)上課擁有性別課程選修教科書
歸檔成績(jī)住宿
`
2、修改與重購(gòu),生成根本E-R圖目的:消除冗余的數(shù)據(jù)和冗余的實(shí)體間的聯(lián)系〔冗余容易破壞數(shù)據(jù)庫(kù)的完整性,給數(shù)據(jù)維護(hù)增加困難〕如:1〕
工資單〔根本工資,各種補(bǔ)貼,應(yīng)扣房租水電,實(shí)發(fā)工資〕實(shí)發(fā)工資=根本工資+各種補(bǔ)貼–應(yīng)扣房租水電〔在數(shù)據(jù)字典中說(shuō)明〕2〕
學(xué)生〔學(xué)號(hào),姓名,出生年月,年齡,所在系,年級(jí),平均成績(jī)〕年齡=當(dāng)前年份–出生年月平均成績(jī)由學(xué)生選課聯(lián)系中的成績(jī)屬性推算出3〕
上課聯(lián)系可由其他聯(lián)系推算出**冗余的消除方法:主要為分析法,其分析依據(jù)是用數(shù)據(jù)字典中關(guān)于數(shù)據(jù)項(xiàng)之間邏輯關(guān)系的說(shuō)明來(lái)消除冗余。**并不是所有冗余數(shù)據(jù)與冗余聯(lián)系都必須加以消除:為了提高某些應(yīng)用效率,不得不以冗余信息作為代價(jià)。如需要經(jīng)常查詢學(xué)生的平均成績(jī),每次讀都需要計(jì)算效率就太底,保存該冗余數(shù)據(jù)能提高效率?!仓攸c(diǎn)〕**冗余數(shù)據(jù)的一致性維護(hù):觸發(fā)器。任何一科成績(jī)修改或?qū)W生學(xué)了新的科目并有了成績(jī)后,就觸發(fā)該觸發(fā)器去修改該學(xué)生的平均成績(jī)屬性值?!仓攸c(diǎn)〕第4節(jié)邏輯結(jié)構(gòu)設(shè)計(jì)主要工作:1、ER圖向數(shù)據(jù)模型轉(zhuǎn)換;2、數(shù)據(jù)模型優(yōu)化;3、設(shè)計(jì)用戶子模式一、
ER圖向數(shù)據(jù)模型轉(zhuǎn)換*將ER圖轉(zhuǎn)換為關(guān)系模型:將實(shí)體、實(shí)體屬性、和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式*轉(zhuǎn)換的一般原那么:1、
一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。2、
一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。屬性:由與該聯(lián)系相連的實(shí)體碼及聯(lián)系本身的屬性組成。碼與該聯(lián)系相連的實(shí)體碼的組合。如學(xué)生選課聯(lián)系。3、
一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。如學(xué)生“組成〞班級(jí)聯(lián)系,可以轉(zhuǎn)換成:組成〔學(xué)號(hào),班級(jí)號(hào)〕〔獨(dú)立的關(guān)系模式,碼為n端實(shí)體的碼〕或?qū)W生〔學(xué)號(hào),姓名,出生年月,所在系,年級(jí),班級(jí)號(hào),平均成績(jī)〕〔與多端關(guān)系模式合并,〕兩種表示方法到達(dá)同樣的目的:學(xué)生由組成班級(jí)情況。但后一種情況能減少系統(tǒng)中表的個(gè)數(shù),更常用。4、
1:1聯(lián)系可以轉(zhuǎn)換為獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。例:教師“管理〞班級(jí)聯(lián)系〔反映了班主任與班級(jí)的對(duì)應(yīng)關(guān)系〕,可以轉(zhuǎn)換為1〕
獨(dú)立的關(guān)系模式管理〔職工號(hào),班級(jí)號(hào)〕或管理〔職工號(hào),班級(jí)號(hào)〕2〕
與任一端合并班級(jí)〔班級(jí)號(hào),學(xué)生人數(shù),職工號(hào)〕或教師〔職工號(hào),姓名,性別,職稱,班級(jí)號(hào),是否優(yōu)秀班主任〕注:基于效率考慮,有時(shí)聯(lián)系與某一端合并效率更高。如要經(jīng)常查詢某個(gè)班級(jí)的班主任名,那么管理聯(lián)系與教師關(guān)系合并更好些。原因是能減少連接操作。5、
三個(gè)或三個(gè)以上實(shí)體間的聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的嗎以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。關(guān)系的碼為實(shí)體碼的組合。如:授課〔課程號(hào),職工號(hào),書號(hào)〕6、
自聯(lián)系即同一實(shí)體集的實(shí)體間聯(lián)系,也按上述方法處理。7、
具有相同碼的關(guān)系模式可合并:兩個(gè)關(guān)系模式具有相同的主碼,可以考慮將他們合并為一個(gè)關(guān)系模式。例:擁有〔學(xué)號(hào),性別〕學(xué)生〔學(xué)號(hào),姓名,出生年月,所在系,年級(jí),班級(jí)號(hào),平均成績(jī)〕合并為:學(xué)生〔學(xué)號(hào),姓名,性別,出生年月,所在系,年級(jí),班級(jí)號(hào),平均成績(jī)〕例:依照上述的7個(gè)轉(zhuǎn)換規(guī)那么,學(xué)生管理子系統(tǒng)中的18個(gè)實(shí)體和聯(lián)系可以轉(zhuǎn)換為以下關(guān)系模型實(shí)體〔9個(gè)〕:有檔案材料,班級(jí),宿舍,性別,學(xué)生,教師,教室,課程,教科書聯(lián)系〔9個(gè)〕:歸檔,組成,管理,住宿,擁有,教學(xué),選修,講授,開(kāi)設(shè)實(shí)體:1、有檔案材料〔檔案號(hào),…..〕2、班級(jí)〔班級(jí)號(hào),學(xué)生人數(shù)〕3、宿舍〔宿舍編號(hào),地址,人數(shù)〕4性別4、性別〔性別〕考慮書上屬性“宿舍樓〞是否顯多余?5、學(xué)生〔學(xué)號(hào),姓名,出生年月,所在系,年級(jí),平均成績(jī)〕1檔案號(hào),2班級(jí)號(hào),5性別,6、教師〔職工號(hào),姓名,性別,職稱,是否為優(yōu)秀班主任〕3班級(jí)號(hào)7、教室〔教師編碼,地址,容量〕8、課程〔課程,課程名,學(xué)分〕9教室號(hào)9、教科書〔書號(hào),書名,價(jià)錢〕聯(lián)系:〔其中只有6、7、8三個(gè)需要獨(dú)立關(guān)系模式描述〕1、
歸檔
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024北京二中高二(下)段考五生物試題及答案
- 2025年公共交通管理專業(yè)知識(shí)考試卷及答案
- 消化內(nèi)科護(hù)士述職報(bào)告
- 正畸接診標(biāo)準(zhǔn)化流程
- 2025年高中英語(yǔ)期中考試試卷及答案
- 2025年環(huán)境工程師執(zhí)業(yè)資格考試試題及答案
- 腫瘤化療藥物分類
- 2025年紡織工程專業(yè)考試試題及答案
- 2025年電力市場(chǎng)與政策法規(guī)基礎(chǔ)知識(shí)考試試題及答案
- 2025年法律基礎(chǔ)與法規(guī)知識(shí)測(cè)試題及答案
- 傳染病人轉(zhuǎn)診制度
- Notre-Dame de Paris 巴黎圣母院音樂(lè)劇歌詞(中法雙語(yǔ)全)
- 物理學(xué)史考試題庫(kù)及答案(含各題型)
- 深靜脈血栓預(yù)防和護(hù)理評(píng)估
- 扣眼穿刺法課件
- 術(shù)后尿潴留預(yù)防與處理
- 2025年中級(jí)育嬰員技能等級(jí)證書理論全國(guó)考試題庫(kù)(含答案)
- 2025年果樹(shù)種植技術(shù)培訓(xùn)與咨詢服務(wù)合同范本
- 乳腺結(jié)節(jié)疾病的專業(yè)知識(shí)課件
- 2025年西安職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 土地承包租賃合同書
評(píng)論
0/150
提交評(píng)論