數(shù)據(jù)庫實(shí)用教程答案(第三版)董健全清華大學(xué)出版社_第1頁
數(shù)據(jù)庫實(shí)用教程答案(第三版)董健全清華大學(xué)出版社_第2頁
數(shù)據(jù)庫實(shí)用教程答案(第三版)董健全清華大學(xué)出版社_第3頁
數(shù)據(jù)庫實(shí)用教程答案(第三版)董健全清華大學(xué)出版社_第4頁
數(shù)據(jù)庫實(shí)用教程答案(第三版)董健全清華大學(xué)出版社_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、-數(shù)據(jù)庫實(shí)用教程答案( 第三版 ).doc第1、2章1.1名詞解釋:DB:數(shù)據(jù)庫( Database),DB 是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。 DB 能為各種用戶共享,具有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高的數(shù)據(jù)獨(dú)立性。 DBMS :數(shù)據(jù)庫管理系統(tǒng)(Database Management System), DBMS 是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB 的方法,包括 DB 的建立、查詢、更新及各種數(shù)據(jù)控制。 DBMS 總是基于某種數(shù)據(jù)模型,可以分為層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮?DBMS 。DBS :數(shù)據(jù)庫系統(tǒng)( Database System),DBS

2、 是實(shí)現(xiàn)有組織地、動態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問的計算機(jī)軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫技術(shù)的計算機(jī)系統(tǒng)。 1: 1 聯(lián)系:如果實(shí)體集 E1 中的每個實(shí)體最多只能和實(shí)體集 E2 中的一個實(shí)體有聯(lián)系, 反之亦然, 好么實(shí)體集 E1 對 E2 的聯(lián)系稱為“一對一聯(lián)系”, 記為“ 1:1”。 1: N 聯(lián)系:如果實(shí)體集E1 中每個實(shí)體與實(shí)體集E2 中任意個(零個或多個)實(shí)體有聯(lián)系,而E2 中每個實(shí)體至多和E1 中的一個實(shí)體有聯(lián)系,那么E1對 E2 的聯(lián)系是“一對多聯(lián)系”,記為“1:N”。 M: N 聯(lián)系:如果實(shí)體集E1 中每個實(shí)體與實(shí)體集E2 中任意個(零個或多個)實(shí)體有聯(lián)系,

3、反之亦然,那么E1 對 E2 的聯(lián)系是“多對多聯(lián)系”,記為“ M:N”。 數(shù)據(jù)模型:表示實(shí)體類型及實(shí)體類型間聯(lián)系的模型稱為“數(shù)據(jù)模型”。它可分為兩種類型:概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型。 概念數(shù)據(jù)模型 :它是獨(dú)門于計算機(jī)系統(tǒng)的模型, 完全不涉及信息在系統(tǒng)中的表示,只是用來描述某個特定組織所關(guān)心的信息結(jié)構(gòu)。 結(jié)構(gòu)數(shù)據(jù)模型 :它是直接面向數(shù)據(jù)庫的邏輯結(jié)構(gòu), 是現(xiàn)實(shí)世界的第二層抽象。這類模型涉及到計算機(jī)系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),所以稱為“結(jié)構(gòu)數(shù)據(jù)模型”。結(jié)構(gòu)數(shù)據(jù)模型應(yīng)包含:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)完整性約束三部分。它主要有:層次、網(wǎng)狀、關(guān)系三種模型。 層次模型:用樹型結(jié)構(gòu)表示實(shí)體間聯(lián)系的數(shù)據(jù)模型 網(wǎng)狀模型:

4、用有向圖結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。 關(guān)系模型 :是由若干個關(guān)系模式組成的集合, 其主要特征是用二維表格結(jié)構(gòu)表達(dá)實(shí)體集,用外鍵表示實(shí)體間聯(lián)系。- 概念模式 :是數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述。 它由若干個概念記錄類型組成。概念模式不僅要描述概念記錄類型,還要描述記錄間的聯(lián)系、操作、數(shù)據(jù)的完整性、安全性等要求。 外模式:是用戶與數(shù)據(jù)庫系統(tǒng)的接口,是用戶用到的那部分?jǐn)?shù)據(jù)的描述。 內(nèi)模式:是數(shù)據(jù)庫在物理存儲方面的描述,定義所有的內(nèi)部記錄類型、索引和文件的組成方式,以及數(shù)據(jù)控制方面的細(xì)節(jié)。 模式 / 內(nèi)模式映象 :這個映象存在于概念級和內(nèi)部級之間,用于定義概念模式和內(nèi)模式間的對應(yīng)性,

5、 即概念記錄和內(nèi)部記錄間的對應(yīng)性。 此映象一般在內(nèi)模式中描述。 外模式 / 模式映象 :這人映象存在于外部級和概念級之間,用于定義外模式和概念模式間的對應(yīng)性, 即外部記錄和內(nèi)部記錄間的對應(yīng)性。 此映象都是在外模式中描述。 數(shù)據(jù)獨(dú)立性 :在數(shù)據(jù)庫技術(shù)中, 數(shù)據(jù)獨(dú)立性是指應(yīng)用程序和數(shù)據(jù)之間相互獨(dú)立,不受影響。數(shù)據(jù)獨(dú)立性分成物理數(shù)據(jù)獨(dú)立性和邏輯數(shù)據(jù)獨(dú)立性兩級。 物理數(shù)據(jù)獨(dú)立性 :如果數(shù)據(jù)庫的內(nèi)模式要進(jìn)行修改, 即數(shù)據(jù)庫的存儲設(shè)備和存儲方法有所變化,那么模式 / 內(nèi)模式映象也要進(jìn)行相應(yīng)的修改,使概念模式盡可能保持不變。也就是對模式的修改盡量不影響概念模式。 邏輯數(shù)據(jù)獨(dú)立性 :如果數(shù)據(jù)庫的概念模式要進(jìn)行

6、修改 (如增加記錄類型或增加數(shù)據(jù)項),那么外模式 / 模式映象也要進(jìn)行相應(yīng)的修改,使外模式盡可能保持不變。也就是對概念模式的修改盡量不影響外模式和應(yīng)用程序。 宿主語言 :編寫應(yīng)用程序的語言 (即高級程序設(shè)計語言) 在數(shù)據(jù)庫技術(shù)中稱為宿主語言( host language), 簡稱主語言。 DDL :數(shù)據(jù)定義語言(Data Definition Language),用于定義數(shù)據(jù)庫的三級結(jié)構(gòu),包括外模式、概念模式、內(nèi)模式及其相互之間的映象,定義數(shù)據(jù)的完整性、安全控制等約束。 DML :數(shù)據(jù)操縱語言(Data Manipulation Language),用于讓用戶或程序員使用,實(shí)現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的

7、操作?;镜臄?shù)據(jù)操作分成兩類四種:檢索(查詢)和更新(插入、刪除、修改)。DML 分成交互型 DML 和嵌入型 DML 兩類。依據(jù)語言的級別,DML 又可分成過程性DML 和非過程性 DML 兩種。 交互型 DML :這類 DML 自成系統(tǒng),可在終端上直接對數(shù)據(jù)庫進(jìn)行操作。 嵌入型 DML :這類 DML 是嵌入在主語言中使用。此時主語言是經(jīng)過擴(kuò)充能處理 DML 語句的語言。 過程性 DML :用戶編程時,不僅需要指出“做什么”(需要什么樣的數(shù)據(jù)),還需要指出“怎么做”(怎么獲得數(shù)據(jù))。層狀、網(wǎng)狀的 DML 屬于過程性語言。 非過程性 DML :用戶編程時,只需要指出“做什么”,不需要指出“怎

8、么做”。關(guān)系型 DML 屬于非過程性語言。-DD:數(shù)據(jù)字典( Data Dictionary), 數(shù)據(jù)庫系統(tǒng)中存放三級結(jié)構(gòu)定義的數(shù)據(jù)庫稱為數(shù)據(jù)字典。(通常 DD 還存放數(shù)據(jù)庫運(yùn)行時的統(tǒng)計信息)DD 系統(tǒng):管理 DD 的實(shí)用程序稱為“ DD 系統(tǒng)”。1.2文件系統(tǒng)階段的數(shù)據(jù)管理有些什么缺陷?試舉例說明。答:文件系統(tǒng)有三個缺陷:1)數(shù)據(jù)冗余性( redundancy) 。由于文件之間缺乏聯(lián)系,造成每個應(yīng)用程序都有對應(yīng)的文件,有可能同樣的數(shù)據(jù)在多個文件中重復(fù)存儲。2)數(shù)據(jù)不一致性( inconsistency) 。這往往是由數(shù)據(jù)冗余造成的,在進(jìn)行更新操作時,稍不謹(jǐn)慎,就可能使同樣的數(shù)據(jù)在不同的文件中

9、不一樣。3)數(shù)據(jù)聯(lián)系弱 (poor data relationship) 。這是由文件之間相互獨(dú)立,缺乏聯(lián)系造成的。1.3數(shù)據(jù)庫階段的數(shù)據(jù)管理有些什么特點(diǎn)?答:有五方面的特征:1)采用復(fù)雜的數(shù)據(jù)模型表示數(shù)據(jù)結(jié)構(gòu)。2)有較高的數(shù)據(jù)獨(dú)立性。3)數(shù)據(jù)庫系統(tǒng)為用戶提供方便的用戶接口。4)系統(tǒng)提供四個方面的數(shù)據(jù)控制功能:數(shù)據(jù)庫的恢復(fù)、并發(fā)控制、數(shù)據(jù)完整性、數(shù)據(jù)安全性,以保證數(shù)據(jù)庫中數(shù)據(jù)是安全的、正確的、可靠的。5)對數(shù)據(jù)的操作不一定以記錄為單位,也可以以數(shù)據(jù)項為單位,增加了系統(tǒng)的靈活性。1.4 你怎樣理解實(shí)體、屬性、記錄、字段這些概念的類型和值的差別?試舉例說明。答:實(shí)體( entity) :是指客觀存

10、在可以相互區(qū)別的事物。實(shí)體可以是具體的對象,如:一個男學(xué)生,一輛汽車等;也可以是抽象的事件,如:一次借書、一聲場球賽等。屬性( attribute): 實(shí)體有很多特性, 每一個特性稱為屬性。 每個屬性有一個值域,其類型可以是整數(shù)型、實(shí)數(shù)型、字符串型。如:學(xué)生(實(shí)體)有學(xué)號、姓名、年齡、性別等屬性,相應(yīng)值域為字符、字符串、整數(shù)和字符串型。字段( field): 標(biāo)記實(shí)體屬性的命名單位稱為字段或數(shù)據(jù)項。它是可以命名的最小信息單位, 所以又稱為數(shù)據(jù)元素或初等項。 字段的命名往往和屬性相同,如:學(xué)生有學(xué)號、姓名、年齡、性別等字段。記錄( record): 字段的有序集合稱為記錄。一般用一個記錄描述一個

11、實(shí)體,所以記錄又可以定義為能完整地描述一個實(shí)體的字段集。 如:一個學(xué)生記錄,由有序的字段集(學(xué)號、姓名、年齡、性別等)組成。2.2 邏輯記錄與物理記錄,邏輯文件與物理文件有些什么聯(lián)系和區(qū)別?-答:數(shù)據(jù)描述有兩形式:物理描述和邏輯描述。物理數(shù)據(jù)描述是指數(shù)據(jù)在存儲設(shè)備上的存儲方式,物理數(shù)據(jù)是實(shí)際存放在存儲設(shè)備上的數(shù)據(jù)。物理記錄、物理文件(還有物理聯(lián)系、物理結(jié)構(gòu)等術(shù)語),都是用來描述存儲數(shù)據(jù)的細(xì)節(jié)。邏輯數(shù)據(jù)描述是指程序員或用戶用以操作的數(shù)據(jù)形式,是抽象的概念化數(shù)據(jù)。邏輯記錄、邏輯文件(還有邏輯聯(lián)系、邏輯結(jié)構(gòu)等術(shù)語),都是用戶觀點(diǎn)的數(shù)據(jù)描述。2.3為某百貨公司設(shè)計一個ER 模型。百貨管轄若干個連鎖商店

12、,每家商店經(jīng)營若干商品,每家商店有若干職工,但每個職工只能服務(wù)于一家商店。實(shí)體類型“商店”的屬性有:商店編號,店號,店址,店經(jīng)理。實(shí)體類型“商品”的屬性有:商品編號,商品名,單價,產(chǎn)地。實(shí)體類型“職工”的屬性有:職工編號,職工名,性別,工資。在聯(lián)系中應(yīng)反映出職工參加某商店工作的開始時間,商店銷售商品的有銷售量。試畫出反映商店、 商品、職工實(shí)體類型及聯(lián)系類型的 ER 圖,并將其轉(zhuǎn)換成關(guān)系模式集。答:實(shí)體:商店(商店編號,店號,店址,店經(jīng)理)商品(商品編號,商品名,單價,產(chǎn)地)職工(職工編號,職工名,性別,工資)聯(lián)系: P1商店銷售商品的有銷售量間P2職工參加某商店工作的開始時ER 圖:-關(guān)系模式

13、集:商店模式(商店編號,店號,店址,店經(jīng)理)商品模式(商品編號,商品名,單價,產(chǎn)地)職工模式(職工編號,職工名,性別,工資)P1 模式(商店編號,商品編號,月銷售量)P2 模式(商店編號,職工編號,開始時間)2.4 試述 ER 模型、層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P偷闹饕攸c(diǎn)。答: ER 模型的主要特點(diǎn):( 1)接近于人的思維,容易理解;( 2)與計算機(jī)無關(guān),用戶容易接受。層次模型的特點(diǎn):記錄之間的聯(lián)系通過指針實(shí)現(xiàn),查詢效率較高。網(wǎng)狀模型的特點(diǎn):記錄之間聯(lián)系通過指針實(shí)現(xiàn),M:N 聯(lián)系也容易實(shí)現(xiàn)(每個 M: N 聯(lián)系可拆成兩個1:N 聯(lián)系),查詢效率較高。關(guān)系模型的特點(diǎn):用關(guān)鍵碼而不是

14、用指針導(dǎo)航數(shù)據(jù),表格簡單,用戶易懂,編程時并不涉及存儲結(jié)構(gòu)、訪問技術(shù)等細(xì)節(jié)。2.7試述概念模式在數(shù)據(jù)庫結(jié)構(gòu)中的重要地位。答:概念模式( 定義)是數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述。它由若干個概念記錄類型組成。 概念模式不僅要描述概念記錄類型, 還要描述記錄間的聯(lián)系、操作、數(shù)據(jù)的完整性、安全性等要求。數(shù)據(jù)按外模式的描述提供給用戶,按內(nèi)模式的描述存儲在磁盤中,而概念模式提供了連接這兩級的相對穩(wěn)定的中間觀點(diǎn), 并使得兩級的任何一級的改變都不受另一級的牽制。-2.9數(shù)據(jù)獨(dú)立性與數(shù)據(jù)聯(lián)系這兩個概念有什么區(qū)別?答:數(shù)據(jù)獨(dú)立性是指應(yīng)用程序與數(shù)據(jù)之間相互獨(dú)立,不受影響。數(shù)據(jù)聯(lián)系是指同一記錄內(nèi)部各字段間的聯(lián)系

15、,以及記錄之間的聯(lián)系。2.11試述 DBMS 的主要功能。答: DBMS 的主要功能有:1)數(shù)據(jù)庫的定義功能2)數(shù)據(jù)庫的操縱功能3)數(shù)據(jù)庫的保護(hù)功能4)數(shù)據(jù)庫的存儲管理5)數(shù)據(jù)庫的維護(hù)功能6)數(shù)據(jù)字典2.12試敘 DBMS 對數(shù)據(jù)庫的保護(hù)功能。答: DBMS 對數(shù)據(jù)庫的保護(hù)主要通過四個方面實(shí)現(xiàn):1)數(shù)據(jù)庫的恢復(fù)。2)數(shù)據(jù)庫的并發(fā)控制。3)數(shù)據(jù)庫的完整性控制。4)數(shù)據(jù)庫的安全性控制。2.13試敘 DBMS 對數(shù)據(jù)庫的維護(hù)功能。答: DBMS 中主要有四個實(shí)用程序提供給數(shù)據(jù)庫管理員運(yùn)行數(shù)據(jù)庫系統(tǒng)時使用,起著數(shù)據(jù)庫維護(hù)的功能:1)數(shù)據(jù)裝載程序 (loading)2)備份程序 (backup)3)文件

16、重組織程序4)性能監(jiān)控程序2.14從模塊結(jié)構(gòu)看,DBMS 由哪些部分組成?答:從模塊結(jié)構(gòu)看,DBMS 由兩大部分組成:查詢處理器和存儲管理器1)查詢處理器有四個主要成分: DDL 編譯器, DML 編譯器,嵌入型 DML 的預(yù)編譯器,查詢運(yùn)行核心程序2)存儲管理器有四個主要成分: 授權(quán)和完整性管理器, 事務(wù)管理器,文件管理器,緩沖區(qū)管理器-2.15DBS 由哪幾個部分組成?答: DBS 由四部分組成:數(shù)據(jù)庫、硬件、軟件、數(shù)據(jù)庫管理員。2.17什么樣的人是DBA ?DBA 應(yīng)具有什么素質(zhì)?DBA 的職責(zé)是什么?答: DBA 是控制數(shù)據(jù)整體結(jié)構(gòu)的人, 負(fù)責(zé) DBS 的正常運(yùn)行。 DBA 可以是一個

17、人,在大型系統(tǒng)中也可以是由幾個人組成的小組。DBA 應(yīng)具有下列素質(zhì):1)熟悉企業(yè)全部數(shù)據(jù)的性質(zhì)和用途;2)對用戶的需求有充分的了解;3)對系統(tǒng)的性能非常熟悉。DBA 的主要職責(zé)有五點(diǎn):1)概念模式定義2)內(nèi)模式定義3)根據(jù)要求修改數(shù)據(jù)庫的概念模式和內(nèi)模式4)對數(shù)據(jù)庫訪問的授權(quán)5)完整性約束的說明2.19使用 DBS 的用戶有哪幾類?答:使用 DBS 的用戶有四類:1) DBA2)專業(yè)用戶3)應(yīng)用程序員4)最終用戶3.1 名詞解釋 :關(guān)系模型:用二維表格結(jié)構(gòu)表示實(shí)體集, 外鍵表示實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。關(guān)系模型是由若干個關(guān)系模式組成的集合。關(guān)系模式:關(guān)系模式實(shí)際上就是記錄類型。它包括:

18、模式名,屬性名,值域名以及模式的主鍵。關(guān)系模式僅是對數(shù)據(jù)特性的描述。關(guān)系實(shí)例:就是一個關(guān)系,即一張二維表格。屬性:在關(guān)系模型中,字段稱為屬性。-域:在關(guān)系中,每一個屬性都有一個取值范圍,稱為屬性的值域。元組:在關(guān)系中,記錄稱為元組。超鍵:在一個關(guān)系中,能唯一標(biāo)識元組的屬性或?qū)傩约?。候選鍵:不含有多余屬性的超鍵稱為候選鍵。主鍵:用戶選作元組標(biāo)識的一個候選鍵為主鍵。外鍵:某個關(guān)系的主鍵相應(yīng)的屬性在另一關(guān)系中出現(xiàn), 此時該主鍵在就是另一關(guān)系的外鍵, 如有兩個關(guān)系 S 和 SC, 其中 S# 是關(guān)系 S 的主鍵,相應(yīng)的屬性 S# 在關(guān)系 SC 中也出現(xiàn),此時 S# 就是關(guān)系 SC 的外鍵。實(shí)體完整性規(guī)

19、則:這條規(guī)則要求關(guān)系中元組在組成主鍵的屬性上不能有空值。如果出現(xiàn)空值,那么主鍵值就起不了唯一標(biāo)識元組的作用。參照完整性規(guī)則:這條規(guī)則要求“不引用不存在的實(shí)體”。其形式定義如下:如果屬性集 K 是關(guān)系模式 R1 的主鍵, K 也是關(guān)系模式 R2 的外鍵,那么 R2的關(guān)系中, K 的取值只允許有兩種可能,或者為空值,或者等于 R1 關(guān)系中某個主鍵值。這條規(guī)則在使用時有三點(diǎn)應(yīng)注意:外鍵和相應(yīng)的主鍵可以不同名,只要定義在相同值域上即可。2)R1 和 R2 也可以是同一個關(guān)系模式,表示了屬性之間的聯(lián)系。外鍵值是否允許空應(yīng)視具體問題而定。過程性語言:在編程時必須給出獲得結(jié)果的操作步驟,即“干什么”和“怎么

20、干”。如Pascal 和 C 語言等。非過程性語言: 編程時只須指出需要什么信息, 不必組出具體的操作步驟的語言,各種關(guān)系查詢語言均屬于非過程性語言。3.2 為什么關(guān)系中的元組沒有先后順序?答:因為關(guān)系是一個集合,因此不考慮元組間的順序,即沒有行序。3.3 為什么關(guān)系中不允許有重復(fù)元組?答:如果關(guān)系中有重復(fù)元組,那么就無法用鍵來標(biāo)識唯一的元組。因此在關(guān)系模型中對關(guān)系作了限制。3.4 關(guān)系與普通的表格、文件有什么區(qū)別?答:總而言之,關(guān)系是一種規(guī)范化了的二維表格,在關(guān)系模型中,對關(guān)系作了下列規(guī)范性限制:-關(guān)系中每一個屬性值都是不可分解的。關(guān)系中不允許出現(xiàn)相同的元組 ( 沒有重復(fù)元組 ) 。由于關(guān)系

21、是一個集合,因此不考慮元組間的順序,即沒有行序。元組中,屬性在理論上也是無序的,但在使用時按習(xí)慣考慮列的順序。3.5 笛卡爾積、等值聯(lián)接、自然聯(lián)接三者之間有什么區(qū)別?答:笛卡爾積對兩個關(guān)系R 和 S 進(jìn)行操作,產(chǎn)生的關(guān)系中元組個數(shù)為兩個關(guān)系中元組個數(shù)之積。等值聯(lián)接則是在笛卡爾積的結(jié)果上再進(jìn)行選擇操作,挑選關(guān)系第 i 個分量與第 (r+j) 個分量值相等的元組; 自然連接則是在等值聯(lián)接 ( 以公共屬性值相等為條件 ) 的基礎(chǔ)上再行投影操作,去掉 S 中的公共屬性列,當(dāng)兩個關(guān)系沒有公共屬性時,自然連接就轉(zhuǎn)化笛卡爾積。3.8 假設(shè)轉(zhuǎn)換成R 和 S 分別是三元和二元關(guān)系,試把表達(dá)式 1,5( 2=4

22、3=4 (R S)等價的:(1) 漢語查詢句子; (2) 元組表達(dá)式; (3)域表達(dá)式。解: (1) 漢語表達(dá)式:選擇RS關(guān)系中元組第 2 分量或第3 分量與第4 分量值相等的元組并取第1 列與第5 列組成的新關(guān)系。(2) 元組表達(dá)式:t|(u)(v)(R(u)S(v) (u2=v4u3=v4)t1=u1t2=v2)(3) 域表達(dá)式 :xv|(y)(z)(u)(R(xyz)S(uv) (y=u z=u)3.10 試把域表達(dá)式 ab|R(ab) R(ba) 轉(zhuǎn)換成等價的:(1) 漢語查詢句子;關(guān)系代數(shù)表達(dá)式; (3) 元組表達(dá)式。解: (1) 漢語查詢句子: 選擇 R 中元組第 1 分量值與第

23、2 分量值互換后仍存在于 R 中的元組。關(guān)系代數(shù)表達(dá)式: 1,2 ( 1=4 2=3 (RR) ;(3) 元組表達(dá)式:t|(u)(R(t)R(u) t1=u2t2=u1)3.11設(shè)有兩個關(guān)系 R(A ,B,C)和 S(D ,E,F(xiàn)) ,試把下列關(guān)系代數(shù)表達(dá)式轉(zhuǎn)換成等價的元組表達(dá)式:-(1) A (R) ; (2) B=17 (R) ;(3)R S; (4) A,F ( C=D (RS)解: (1)t|(u)(R(t)R(u) t1=u1)(2)t|R(t)t2=17)(3)t|(u)(v)(R(u) S(v) t1=u1t2=u2t3=u3t4=v1t5=v2t6=v3)(4)t|(u)(v)

24、(R(u)S(v) u3=v4t1u1 t2=v3)3.12 設(shè)有三個關(guān)系:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)試用關(guān)系代數(shù)表達(dá)式表示下列查詢語句。3.13 試用元組表達(dá)式表示上題中各個查詢語句。解:上兩題一并作答:( 前者為關(guān)系代數(shù)表達(dá)式,后者為元組表達(dá)式。)檢索 LIU 老師所授課程的課程號、課程名。 C#,CNAME (TEACHER=LIU (C)t|(u)(C(u) t3=LIU t1=u1 t2=u3)檢索年齡大于 23 歲的男學(xué)生的學(xué)號與姓名。 S#,SNAME ( AGE 23 SEX= 男 (S)t|(u)

25、(S(u) uAGE 23 uSEX=男 t1=uS# t2=uSNAME) (這里分量用屬性表示, 當(dāng)然也可用數(shù)字)檢索學(xué)號為 S3 學(xué)生所學(xué)課程的課程名與任課教師名。CNAME,TEACHER ( S#=S3 SC.C#=C.C# (SC C) ( 也可將兩個關(guān)系自然連接后選擇、投影 )-t|(u)(v)(w)(S(u) SC(v) C(w) u1=S3 v1=u1 v2=w1 t1=w2 t2=w3)檢索至少選修LIU 老師所授課程中一門課程的女學(xué)生的姓名。SNAME (SEX= 女 TEACHER=LIU (S|X|SC|X|C)t|(u)(v)(w)(S(u) SC(v) C(w)

26、uSEX= 女 vS#=uS#vC#=wC# wTEACHER=LIU t1=uSNAME)檢索 WANG 同學(xué)不學(xué)的課程號。C# (SC)- C# ( SNAME=WANG S.S#=SC.S# (SSC)t|(u)(v)(S(u)SC(v) uSNAME=WANG uS# vS# t1=vC#)( 前一式用全部課程號減去 WANG 同學(xué)所學(xué)的課程號,后一句則是直接選擇 SNAME=WANG 的元組并且 WANG 沒有相應(yīng)課程號的元組。 )檢索至少選修兩門課程的學(xué)生學(xué)號。S#( 1=4 2 5(SC SC) (SC 自乘之后,同一個學(xué)號下兩個課程號不同的元組 )t|(u)(v)(SC(u)

27、SC(v) uS#=vS#uC# vC#) t1=uS#檢索全部學(xué)生都選修的課程的課程號與學(xué)生學(xué)號。C#,S# (SC|X|( S#,C# (SC) S#(S) ( 涉及到全部值時,應(yīng)用除法,“除數(shù)”是全部量。 )t|(u)(v)(w)(SC(u) S(v) C(w) uS#=vS# uC#=wC# t1=uC#t2 =vS#)檢索選修課程包含LIU 老師所授課程的學(xué)生學(xué)號。S#( TEACHER=LIU (S|X|SC|X|C)t|(u)(v)(w)(S(u) SC(v) C(w) u1=v1 v2=w1 w3=LIU t1=u 1)-3.15在教學(xué)數(shù)據(jù)庫 S、 SC 、C 中,用戶有一查詢

28、語句:檢索女同學(xué)選修課程的課程名和任課教師名。 (1) 試寫出該查詢的關(guān)系代數(shù)表達(dá)式; (2) 試寫出查詢優(yōu)化的關(guān)系代數(shù)表達(dá)式。解: (1) CNAME,TEACHER ( SEX= 女 (S|X|SC|X|C)(2) 優(yōu)化為: ( (C)|X|(SC)|X| ( (S)CNAME , TEACHERCNAME,TEACHERS#,C#S#SEX= 女 第 4 章 結(jié)構(gòu)化查詢語言4.1名詞解釋: SQL 模式:基本表的集合定義為SQL 模式。一個 SQL 模式 ( 即 數(shù)據(jù)庫模式 ) 由模式名和模式擁有者的用戶名或賬號來確定, 并包含模式中每一個元素( 基本表、視圖、索引等) 的定義。SQL

29、數(shù)據(jù)庫: SQL(Structured Query Language) ,即結(jié)構(gòu)式查詢語言,采用英語單詞表示和結(jié)構(gòu)式的語法規(guī)則。 一個 SQL 數(shù)據(jù)庫是表的匯集, 它用一個或多個 SQL 模式定義。 基本表:在 SQL 中,把傳統(tǒng)的關(guān)系模型中的關(guān)系模式稱為基本表 (Base Table) ,基本表是本身獨(dú)立的表,一個關(guān)系就對應(yīng)一個基本表。 存儲文件:在 SQL 中,把傳統(tǒng)的關(guān)系模型中的存儲模式稱為存儲文件(Stored File)。 視圖:在 SQL 中,把傳統(tǒng)的關(guān)系模型中的子模式稱為視圖 (View) ,視圖是從一個或多個基本表導(dǎo)出的表。 行:在 SQL 中,把傳統(tǒng)的關(guān)系模型中的元組稱為行(

30、row) 。 列:在 SQL 中,把傳統(tǒng)的關(guān)系模型中的屬性稱為列(coloumn) 。 實(shí)表:基本表就被稱為實(shí)表,它是實(shí)際存放在數(shù)據(jù)庫中的表。 虛表:視圖就被稱為虛表, 因為在數(shù)據(jù)庫中只存儲視圖的定義而不存放視圖所對應(yīng)的數(shù)據(jù)。 相關(guān)子查詢:在嵌套查詢中,內(nèi)層查詢稱為相關(guān)子查詢,子查詢中查詢條件依賴于外層查詢中的某個值,所以子查詢的處理不只一次,要反復(fù)求值,以供外層查詢使用。 聯(lián)接查詢:查詢時先對表進(jìn)行笛卡爾積操作,然后再做等值聯(lián)接、選擇、投影等操作。聯(lián)接查詢的效率比嵌套查詢低。 交互式 SQL :在終端交互方式下使用的SQL 語言稱為交互式SQL 。- 嵌入式 SQL :嵌入在高級語言的程序中

31、使用的SQL 語言稱為嵌入式SQL 。 共享變量:在嵌入的 SQL 語句中引用宿主語言的程序變量稱為共享變量。 游標(biāo):游標(biāo)是與某一查詢結(jié)果相聯(lián)系的符號名, 用于把集合操作轉(zhuǎn)換成單記錄處理方式。 卷游標(biāo):卷游標(biāo)在推進(jìn)時不但能沿查詢結(jié)果中元組順序從頭到尾一行行推進(jìn),也能一行行返回(而游標(biāo)是不能返回的)。4.2對于教學(xué)數(shù)據(jù)庫的三個基本表學(xué)生 S(S#,SNAME,AGE,SEX)學(xué)習(xí) SC(S#,C#,GRADE)課程 C(C#,CNAME,TEACHER)試用 SQL 的查詢語句表達(dá)下列查詢:(1)檢索 LIU 老師所授課程的課程號和課程名。SELECT C# ,CNAMEFROM CWHERE

32、TEACHER= LIU (2)檢索年齡大于23 歲的男學(xué)生的學(xué)號和姓名。SELECT S# ,SNAMEFROM SWHERE (AGE23) AND (SEX=M)3)檢索至少選修 LIU 老師所授課程中一門課程的女學(xué)生姓名。SELECT SNAME FROM SWHERE SEX= F AND S# IN (SELECT S#FROM SCWHERE C# IN(SELECT C#FROM CWHERE TEACHER= LIU )-4)檢索 WANG 同學(xué)不學(xué)的課程的課程號。SELECT C#FROM CWHERE C# NOT IN(SELECT C#FROM SCWHERE S#

33、IN(SELECT S#FROM SWHERE SNAME=WANG)(5)檢索至少選修兩門課程的學(xué)生學(xué)號。SELECT S#FROM SCHAVING COUNT(C#) 2(6)檢索全部學(xué)生都選修的課程的課程號與課程名。SELECT C#,CNAMEFROM CWHERE NOT EXISTS(SELECT *FROM SWHERE NOT EXISTS(SELECT *FROM SCWHERE SC.S#=S.S# AND SC.C#=C.C#)7)檢索選修課程包含 LIU 老師所授課的學(xué)生學(xué)號。SELECT S#FROM SWHERE S# IN(SELECT S#FROM SC-WH

34、ERE S.S#=SC.S# AND C# IN(SELECT C#FROM CWHERE TEACHER=LIU)(請討論一下,本題是否可如此:SELECT DISTINGCTS# FROM SC WHERE EXISTS (SELECT C# FROM C WHERE TEACHER=LIU))4.3設(shè)有兩個基本表R(A,B,C)和 S(D,E,F(xiàn)),試用 SQL 查詢語句表達(dá)下列關(guān)系代數(shù)表達(dá)式:(1) (R)(2) (R)(3)R SAB=17(4) A,F ( C=D (RS)(1)SELECT A FROM R(2)SELECT * FROM R WHERE B=17(3)SELEC

35、T A,B,C,D,E,F FROM R,S(4)SELECT A,F FROM R,S WHERE R.C=S.D4.4 設(shè)有兩個基本表 R(A,B,C)和 S(A,B,C)試用 SQL 查詢語句表達(dá)下列關(guān)系代數(shù)表達(dá)式:(1)RS (2)RS(3)RS(4)A,B (R)|X| B,C (S)(1)SELECT A,B,CFROM R,SWHERE NOT EXISTS(SELECT A,B,CFROM R,SWHERE R.A=S.A AND R.B=S.B AND R.C=S.C)(2)SELECT A,B,CFROM R,SWHERE R.A=S.A AND R.B=S.B AND R

36、.C=S.C(3)SELECT A,B,CFROM RWHERE NOT EXISTS(SELECT A,B,C-FROM SWHERE R.A=S.A AND R.B=S.B AND R.C=S.C)(4)SELECT R.A,R.B,S.CFROM R,SWHERE R.B=S.B4.5試敘述SQL 語言的關(guān)系代數(shù)特點(diǎn)和元組演算特點(diǎn)。答: SQL 語言是介乎關(guān)系代數(shù)和元組演算之間的一種語言:.4.6 試用 SQL 查詢語句表達(dá)下列對教學(xué)數(shù)據(jù)庫中三個基本表S、 SC 、C 的查詢:( 1)統(tǒng)計有學(xué)生選修的課程門數(shù)。SELECT COUNT(DISTINCT C#) FROM SC2)求選修

37、C4 課程的學(xué)生的平均年齡。SELECT AVG(AGE)FROM SWHERE S# IN(SELECT S#FROM SCWHERE C#=C4)3)求 LIU 老師所授課程的每門課程的學(xué)生平均成績。SELECT AVG(GRADE) FROM SCWHERE C# IN (SELECT C#FROM CWHERE TEACHER=LIU)4)統(tǒng)計每門課程的學(xué)生選修人數(shù)(超過 10 人的課程才統(tǒng)計)。要求輸出課程號和選修人數(shù), 查詢結(jié)果按人數(shù)降序排列, 若人數(shù)相同, 按課程號升序排列。SELECT DISTINCT C#,COUNT(S#)-FROM SCGROUP BY C#HAVING

38、 COUNT(S#)10ORDER BY 2,C# DESC( 5)檢索學(xué)號比WANG 同學(xué)大,而年齡比他小的學(xué)生姓名。SELCET SNAMEFROM S AS XWHERE X.S#SOME(SELECT S#FROM S AS YWHERE Y.SNAME=WANG AND X.AGEY.AGE)6)檢索姓名以 WANG 打頭的所有學(xué)生的姓名和年齡。SELECT SNAME,AGE FROM SWHERE SNAME LIKE WANG%7)在 SC 中檢索成績?yōu)榭罩档膶W(xué)生學(xué)號和課程號。SELECT S#,C#FROM SCWHERE GRADE IS NULL8)求年齡大于女同學(xué)平均年

39、齡的男學(xué)生姓名和年齡。SELECT SNAME,AGEFROM S AS XWHERE X.SEX=M AND X.AGE(SELECTAVG(AGE) FROM S AS Y WHERE Y.SEX=F)9)求年齡大于所有女同學(xué)年齡的男學(xué)生姓名和年齡。SELECT SNAME,AGE FROM S AS XWHERE X.SEX=M AND X.AGEALL (SELECTAGE FROM S AS Y WHERE Y.SEX=F)-4.7 試用 SQL 更新語句表達(dá)對教學(xué)數(shù)據(jù)庫中三個基本表 S、SC 、 C 的各個更新操作:( 1)往基本表 S 中插入一個學(xué)生元組(S9 , WU , 18

40、)。INSERT INTO S(S#,SNAME,AGE) VALUES(59,WU,18)(2)在基本表S 中檢索每一門課程成績都大于等于80 分的學(xué)生學(xué)號、姓名和性別,并把檢索到的值送往另一個已存在的基本表STUDENT (S, SANME ,SEX )。INSERT INTO STUDENT(S#,SNAME,SEX)SELECT S#,SNAME,SEXFROM SWHERE S# IN(SELECT S# FROM SC WHERE GRADE80)3)在基本表 SC 中刪除尚無成績的選課元組。DELETE FROM SC WHERE GRADE IS NULL4)把 WANG 同學(xué)

41、的學(xué)習(xí)選課和成績?nèi)縿h去。DELETE FROM SCWHERE S# IN(SELECT S#FROM SWHERE NAME=WANG)5)把選修 MATHS 課不及格的成績?nèi)臑榭罩怠PDATE SCSET GRADE=NULL WHERE S# IN(SELECT S#FROM CWHERE CNAME=MATHS) AND SC.GRADE606)把低于總平均成績的女同學(xué)成績提高5% 。UPDATE SCSET GRADE=GRADE*1.05-WHERE GRADE(SELECT AVG(GRADE) FROM SC)ANDS# IN (SELECT S# FROM S WHER

42、E SEX=F)( 7)在基本表 SC 中修改 C4 課程的成績,若成績小于等于 75 分時提高 5%,若成績大于 75 分時提高 4% (用兩個 UPDATE 語句實(shí)現(xiàn))。UPDATE SCSET GRADE=GRADE*1.05WHERE C#=C4 AND GRADE754.8“倉庫管理”關(guān)系模型有五個關(guān)系模式:零件PART ( P, PNAME ,COLOR ,WEIGHT )項目PROJECT (J, JNAME ,DATE )供應(yīng)商SUPPLIER (S, SNAME ,SADDR )供應(yīng)PP(J, P, TOTOAL )采購PS(P, S, QUANTITY )( 1)試用 SQ

43、L DDL 語句定義上述五個基本表,并說明主鍵和外鍵。 CREATE TABLE PART(P# CHAR(4) NOT NULL,PNAME CHAR(10)NOT NULL,COLOR CHAR(10),WEIGHT REAL,PRIMARY KEY(P#,PNAME)CREATETABLE PROJECT(J#CHAR(4) NOTNULL,JNAMECHAR(10)NOT NULL,DATE DATE,PRIMARY KEY(J#)CREATE TABLE SUPLIER(S# CHAR(4) NOT NULL,SNAME CHAR(10),SADDR VARCHAR(10),PRIM

44、ARY KEY(S#)CREATE TABLE P_P(J# CHAR(4),P#CHAR(4),TOTAL INTEGER,FOREIGN KEY(J#,P#)CREATE TABLE P_S(P# CHAR(4),S# CHAR(4),QUANTITY INTEGER,FOREIGN KEY(S#,P#)(2)試將 PROGECT 、PP、PART 三個基本表的自然聯(lián)接定義為一個視圖 VIEW1 , PART 、P S、SUPPLIER 三個基本表的自然聯(lián)接定義為一個視圖VIEW2 。CREATE VIEWVIEW1(P#,PNAME,COLOR,WEIGHT,J#,JNAME,DATE,

45、TOTAL)-AS SELECTPART.P#,PNAME,COLOR,WEIGHT,PROJECT,PROJECT.J#,JNAME,DATE,TOTALFROM PART,PROJECT,P_PWHERE PART.P#=P_P.P# AND P_P.J#=PROJECT.J#CREATE VIEWVIEW2(P#,PNAME,COLOR,WEIGHT,S#,SNAME,SADDR,QUANTITY)AS SELECTPART.P#,PNAME,COLOR,WEIGHT,SUPPLIER.S#,SNAME,SADDR,QUANTITYFROM PART,P_S,SUPPLIER)WHERE

46、 PART.P#=P_S.P# AND P_P.S#=SUPPLIER.S#( 3)試在上述兩個視圖的基礎(chǔ)上進(jìn)行數(shù)據(jù)查詢:1)檢索上海的供應(yīng)商所供應(yīng)的零件的編號和名字。SELECT P#,PNAMEFROM VIEW2 WHERE SADDR=SHANGHAI2)檢索項目 J4 所用零件的供應(yīng)高編號和名字。SELECT S#,SNAMEFROM VIEW2 WHERE P# IN(SELECT P# FROM VIEW1 WHERE J#=J4)4.9對于教學(xué)數(shù)據(jù)庫中基本表SC,已建立下列視圖:CREATE VIEW S GRADE (S, C NUM ,AVG GRADE )ASSELECT

47、 S , COUNT(C ) , AVG ( GRADE )FROM SCGROUP BYS試判斷下列查詢和更新是否允許執(zhí)行。若允許,寫出轉(zhuǎn)換到基本表 SC 上的相應(yīng)操作。1) SELECT *FROM S GRADE允許 :SELECT S#,COUNT(C#),AVG(GRADE) FROM SC2) SELECT S , C NUM FROM S GRADEWHERE AVG GRADE 80允許 :SELECT S#,COUNT(C#) FROM SC WHERE AVG(GRADE)80-3) SELECT S , AVG GRADE FROM S GRADEWHERE C NUM

48、(SELECT C NUMFROM S GRADEWHERES S4 )允許 :SELECT S#,AVG(GRADE) FROM SC AS XWHERECOUNT(X.C#)(SELECTCOUNT(Y.C#)FROMSC AS Y WHEREY.S#=S4)4) UPDATE S GRADESETC NUM CNUM 1WHERE S S4 不允許5) DELETE FROM S GRADE WHERE C NUM 4不允許4.10預(yù)處理方式對于嵌入式SQL 的實(shí)現(xiàn)有什么重要意義?答:預(yù)處理方式是先用預(yù)處理程序?qū)υ闯绦蜻M(jìn)行掃描,識別出SQL 語句,并處理成宿主語言的函數(shù)調(diào)用形式; 然后再

49、用宿主語言的編譯程序把源程序編譯成目標(biāo)程序。4.11在宿主語言的程序中使用SQL 語句有哪些規(guī)定?答:在宿主語言的程序中使用SLQ 語句有以下規(guī)定:1)在程序中要區(qū)分SQL 語句與宿主語言語句2)允許嵌入的SQL 語句引用宿主語言的程序變量(稱為共享變量)3) SQL 的集合處理方式與宿主語言單記錄處理方式之間要協(xié)調(diào)4.12SQL 的集合處理方式與宿主語言單記錄處理方式之間如何協(xié)調(diào)?答:由于 SQL 語句處理的是記錄集合,而宿主語言語句一次只能處理一個記錄,因此需要用游標(biāo) (cousor) 機(jī)制,把集合操作轉(zhuǎn)換成單記錄處理方式。4.13嵌入式SQL 語句何時不必涉及到游標(biāo)?何時必須涉及到游標(biāo)?

50、答: 1)INSERT 、DELETE 、UPDATE 語句,查詢結(jié)果肯定是單元組時的 SELECT 語句,都可直接嵌入在主程序中使用,不必涉及到游標(biāo)。-當(dāng) SELECT 語句查詢結(jié)果是多個元組時,此時宿主語言程序無法使用,一定要用游標(biāo)機(jī)制把多個元組一次一個地傳送給宿主語言處理。5.1 名詞解釋:函數(shù)依賴: FD(functiondependency) ,設(shè)有關(guān)系模式R(U) ,X, Y 是 U 的子集, r 是 R 的任一具體關(guān)系,如果對 r 的任意兩個元組t1,t2, 由 t1X=t2X 導(dǎo)致 t1Y=t2Y, 則稱 X 函數(shù)決定 Y, 或 Y 函數(shù)依賴于 X,記為 XY。XY為模式 R

51、的一個函數(shù)依賴。函數(shù)依賴的邏輯蘊(yùn)涵:設(shè) F 是關(guān)系模式 R 的一個函數(shù)依賴集, X,Y 是 R 的屬性子集,如果從 F 中的函數(shù)依賴能夠推出 XY,則稱 F 邏輯蘊(yùn)涵 XY, 記為 F|=X Y。部分函數(shù)依賴:即局部依賴,對于一個函數(shù)依賴 WA,如果存在 X W(X 包含于 W) 有 XA成立,那么稱 W A是局部依賴,否則稱 WA為完全依賴。完全函數(shù)依賴:見上。傳遞依賴:在關(guān)系模式中,如果YX,XA,且 X( 表示不決定 )Y,和A X(A 不屬于X), 那么稱YA是傳遞依賴。函數(shù)依賴集F 的閉包 F+ : 被邏輯蘊(yùn)涵的函數(shù)依賴的全體構(gòu)成的集合,稱為 F的閉包 (closure),記為 F+

52、。1NF :第一范式。如果關(guān)系模式 R 的所有屬性的值域中每一個值都是不可再分解的值 , 則稱 R 是屬于第一范式模式。如果某個數(shù)據(jù)庫模式都是第一范式的,則稱該數(shù)據(jù)庫存模式屬于第一范式的數(shù)據(jù)庫模式。第一范式的模式要求屬性值不可再分裂成更小部分,即屬性項不能是屬性組合和組屬性組成。2NF :第二范式。如果關(guān)系模式R 為第一范式,并且 R 中每一個非主屬性完全函數(shù)依賴于 R 的某個候選鍵,則稱是第二范式模式; 如果某個數(shù)據(jù)庫模式中每個關(guān)系模式都是第二范式的,則稱該數(shù)據(jù)庫模式屬于第二范式的數(shù)據(jù)庫模式。( 注:如果 A 是關(guān)系模式 R 的候選鍵的一個屬性,則稱 A 是 R 的主屬性,否則稱 A 是 R

53、 的非主屬性。 )3NF :第三范式。如果關(guān)系模式 R 是第二范式, 且每個非主屬性都不傳遞依賴于 R 的候選鍵,則稱 R 是第三范式的模式。 如果某個數(shù)據(jù)庫模式中的每個關(guān)系模式都是第三范式,則稱為 3NF 的數(shù)據(jù)庫模式。BCNF :BC 范式。如果關(guān)系模式 R 是第一范式,且每個屬性都不傳遞依賴于 R 的候選鍵,那么稱 R 是 BCNF 的模式。-4NF :第四范式。設(shè) R 是一個關(guān)系模式, D 是 R 上的多值依賴集合。如果 D 中成立非平凡多值依賴 XY時, X 必是 R 的超鍵,那么稱 R 是第四范式的模式。推理規(guī)則的正確性和完備性:正確性是指,如果X Y是從推理規(guī)則推出的,那么 XY

54、在 F+中。完備性是指,不能從F 使用推理規(guī)則導(dǎo)出的函數(shù)依賴不在 F + 中。依賴集的覆蓋和等價:關(guān)系模式R(U) 上的兩個函數(shù)依賴集F 和 G,如果滿+F和G等價,則可稱 F覆蓋 G或G覆蓋 F。足 F =G ,則稱 F 和 G 是等價的。如果最小依賴集:如果函數(shù)集合F 滿足以下三個條件:(1)F 中每個函數(shù)依賴的右部都是單屬性; (2)F 中的任一函數(shù)依賴 XA,其 F- X A與 F 是不等價的; (3)F中的任一函數(shù)依賴 XA, Z 為 X 的子集。 (F- X AZ A與 F 不等價。則稱 F 為最小函數(shù)依賴集合,記為Fmin 。無損聯(lián)接:設(shè) R 是一關(guān)系模式,分解成關(guān)系模式 =R1

55、,R2.,R k,F 是 R上的一個函數(shù)依賴集。如果對R 中滿足 F 的每一個關(guān)系r 都有r= R1 (r)|X| R2 (r)|X|.|X| Rk (r)則稱這個分解相對于 F 是 無損聯(lián)接分解 。保持依賴集 : 所謂保持依賴就是指關(guān)系模式的函數(shù)依賴集在分解后仍在數(shù)據(jù)庫中保持不變,即關(guān)系模式 R 到 =R 1,R2,.,R k 的分解,使函數(shù)依賴集 F 被 F 這些 Ri 上的投影蘊(yùn)涵。多值依賴:設(shè) R(U) 是屬性集 U 上的一個關(guān)系模式, X, Y , Z 是 U 的子集,并且 Z=U-X-Y, 用 x,y,z 分別代表屬性集 X,Y , Z 的值,只要 r 是 R 的關(guān)系, r 中存在

56、元組 (x,y 1 ,z 1 ) 和(x,y 2,z 2 ) 時,就也存在元組 (x,y 1,z 2) 和(x,y 2 ,z 1), 那么稱多值依賴 (MultiValuedDependency MVD) X Y在關(guān)系模式R 中成立。5.2 關(guān)系模式 R 有 n 個屬性,在模式R 上可能成立的函數(shù)依賴有多少個?其中平凡的函數(shù)依賴集有多少個?非平凡的函數(shù)依賴有多少個?答:在模式 R 上可能成立的函數(shù)依賴最多的個數(shù)即為 R 上函數(shù)依賴集的閉包中函數(shù)依賴的個數(shù)。建立關(guān)于系、學(xué)生、班級、社團(tuán)等信息的一個關(guān)系數(shù)據(jù)庫,一個系有若干個專業(yè),每個專業(yè)每年只招一個班,每個班有若干個學(xué)生,一個系的學(xué)生住在同一宿舍

57、區(qū),每個學(xué)生可以參加若干個社團(tuán),每個社團(tuán)有若干學(xué)生。描述學(xué)生的屬性有:學(xué)號、姓名、出生年月、系名、班級號、宿舍區(qū)。描述班級的屬性有:班級號、專業(yè)名、系名、人數(shù)、入校年份。描述系的屬性有:系名、系號、系辦公地點(diǎn)、人數(shù)。-描述社團(tuán)的屬性有:社團(tuán)名、成立年份、地點(diǎn)、人數(shù)、學(xué)生參加某社團(tuán)的年份。請給出關(guān)系模式,寫出每個關(guān)系模式的最小函數(shù)依賴集,指出是否存在傳遞函數(shù)依賴,對于函數(shù)依賴左部是多屬性的情況,討論函數(shù)依賴是完全函數(shù)依賴還是部分函數(shù)依賴。指出各關(guān)系的候選鍵、外部鍵,有沒有全鍵存在?答:關(guān)系模式如下:學(xué)生 (學(xué)號 , 姓名 ,出生年月 , 系名 ,班級號 , 宿舍區(qū) )班級 ( 班級號 , 專業(yè)名

58、 , 系名, 人數(shù) , 入校年份 )系( 系名 , 系號, 系辦公地點(diǎn) , 人數(shù) )社團(tuán) ( 社團(tuán)名 , 成立年份 , 地點(diǎn) , 人數(shù) , 姓名,學(xué)生參加某社團(tuán)的年份)( 這里加入一個 姓名 ,否則無法實(shí)現(xiàn)函數(shù)依賴 ) 用英文表示如下:Student(Sno,Sname,Sbirth,Dname,Cno,Hostel)Class(Cno,Subname,Dname,Cnum,Cyear)Department(Dname,Dno,Dadd,Dnum)League(Lname,Lyear,Ladd,Lnum,Sname,Syear)每個關(guān)系模式的最小函數(shù)依賴集:Student 的最小函數(shù)依賴集為:

59、Fmin =Sno Sname,Sno Sbirth,SnoCno,Sno Dname , Dname HostelClass 的最小函數(shù)依賴集為: Fmin =(Dname,Subname) Cno,Cno Cnum , Cno CyearDepartment 的最小函數(shù)依賴集為:Fmin =Dno Dname,Dno Dadd,Dno Dnum)League 的最小函數(shù)依賴集為:Fmin =Lname Lyear,Lname Ladd,Lname Lnum,Sname Syear)以上關(guān)系模式中存在傳遞函數(shù)依賴如:Sno Dname , Dname Hostel ,對于函數(shù)依賴左部是多屬性

60、的情況,函數(shù)依賴是完全函數(shù)依賴( 假設(shè)系中專業(yè)名可以相同 )各關(guān)系的候選鍵、外部鍵如下:Student :候選鍵是 Sno, 外部鍵是 Sname,Dname,Cno 。Class :候選鍵是 Cno, 外部鍵是 Dname.-Department :候選鍵是 Dno ,外部鍵是Dname 。League :候選鍵是 Lname ,外部鍵是Sname 。5.3 對函數(shù)依賴 X Y的定義加以擴(kuò)充, X 和 Y 可以為空屬性集,用 表示,那么 X , Y, 的含義是什么 ?答:根據(jù)函數(shù)依賴的定義,以上三個表達(dá)式的含義為:一個關(guān)系模式 R(U) 中, X, Y 是 U 的子集,果對 r 的任意兩個元

溫馨提示

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

評論

0/150

提交評論