自學(xué)考試數(shù)據(jù)庫(kù)系統(tǒng)原理(丁寶康主編-經(jīng)濟(jì)科學(xué)出版社)課后習(xí)題答案_第1頁
自學(xué)考試數(shù)據(jù)庫(kù)系統(tǒng)原理(丁寶康主編-經(jīng)濟(jì)科學(xué)出版社)課后習(xí)題答案_第2頁
自學(xué)考試數(shù)據(jù)庫(kù)系統(tǒng)原理(丁寶康主編-經(jīng)濟(jì)科學(xué)出版社)課后習(xí)題答案_第3頁
自學(xué)考試數(shù)據(jù)庫(kù)系統(tǒng)原理(丁寶康主編-經(jīng)濟(jì)科學(xué)出版社)課后習(xí)題答案_第4頁
自學(xué)考試數(shù)據(jù)庫(kù)系統(tǒng)原理(丁寶康主編-經(jīng)濟(jì)科學(xué)出版社)課后習(xí)題答案_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)系統(tǒng)原理課后習(xí)題參考答案

數(shù)據(jù)庫(kù)原理之?dāng)?shù)據(jù)庫(kù)概論課后習(xí)題及答案...........................................2

數(shù)據(jù)庫(kù)原理之關(guān)系模型課后習(xí)題及答案.............................................11

數(shù)據(jù)庫(kù)原理之關(guān)系數(shù)據(jù)庫(kù)SQL語言課后習(xí)題及答案..................................18

數(shù)據(jù)庫(kù)原理之關(guān)系數(shù)據(jù)庫(kù)的模式設(shè)計(jì)課后習(xí)題及答案................................28

數(shù)據(jù)庫(kù)原理之?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)課后習(xí)題及答案..........................................43

數(shù)據(jù)庫(kù)原理之?dāng)?shù)據(jù)庫(kù)保護(hù)課后習(xí)題及答案..........................................48

數(shù)據(jù)庫(kù)原理之分布式數(shù)據(jù)庫(kù)系統(tǒng)課后習(xí)題及答案....................................62

數(shù)據(jù)庫(kù)原理之?dāng)?shù)據(jù)庫(kù)概論課后習(xí)題及答案

1.1名詞解釋

(DDB:即數(shù)據(jù)庫(kù)(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。DB能為各種用戶共享,具

有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高的數(shù)據(jù)獨(dú)立性。

⑵DBMS:即數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間

的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法,包括DB的建立、查詢、

更新及各種數(shù)據(jù)控制。DBMS總是基于某種數(shù)據(jù)模型,可以分為層次型、網(wǎng)狀型、關(guān)系型、

面向?qū)ο笮虳BMS。

⑶DBS:即數(shù)據(jù)庫(kù)系統(tǒng)(DatabaseSystem),是實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),方

便多用戶訪問的計(jì)算機(jī)軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)系

統(tǒng)。

(4)1:1聯(lián)系:如果實(shí)體集E1中的每個(gè)實(shí)體最多只能和實(shí)體集E2中的一個(gè)實(shí)體有聯(lián)系,反

之亦然,那么實(shí)體集E1對(duì)E2的聯(lián)系稱為“一對(duì)一聯(lián)系”,記為“1:1”。

(5)1:N聯(lián)系:如果實(shí)體集E1中每個(gè)實(shí)體與實(shí)體集E2中任意個(gè)(零個(gè)或多個(gè))實(shí)體有聯(lián)

系,而E2中每個(gè)實(shí)體至多和E1中的一個(gè)實(shí)體有聯(lián)系,那么E1對(duì)E2的聯(lián)系是“一對(duì)多聯(lián)

系”,記為“1:N”。

(6)M:N聯(lián)系:如果實(shí)體集E1中每個(gè)實(shí)體叮實(shí)體集E2中任意個(gè)(零個(gè)或多個(gè))實(shí)體有聯(lián)

系,反之亦然,那么E1對(duì)E2的聯(lián)系是“多對(duì)多聯(lián)系”,記為“M:N”。

(7)數(shù)據(jù)模型:模型是對(duì)現(xiàn)實(shí)世界的抽象。在數(shù)據(jù)庫(kù)技術(shù)中,表示實(shí)體類型及實(shí)體類型間聯(lián)

系的模型稱為“數(shù)據(jù)模型它可分為兩種類型:概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型。

(6)概念數(shù)據(jù)模型:是獨(dú)門于計(jì)算機(jī)系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是

用來描述某個(gè)特定組織所關(guān)心的信息結(jié)構(gòu)。

(9)結(jié)構(gòu)數(shù)據(jù)模型:是直接面向數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),是現(xiàn)實(shí)世界的第二層抽象。這類模型

涉及到計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(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)系三種模型。

(10)層次模型:用樹型結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。

(11)網(wǎng)狀模型:用有向圖結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。

(12)關(guān)系模型:是目前最流行的數(shù)據(jù)庫(kù)模型。其主要特征是用二維表格結(jié)構(gòu)表達(dá)實(shí)體集,

用外維表示實(shí)體間聯(lián)系。關(guān)系模型是由若干個(gè)關(guān)系模式組成的集合。

(13)概念模式:是數(shù)據(jù)庫(kù)中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述。它由若干個(gè)概念記錄類型組

成。概念模式不僅要描述概念記錄類型,還要描述記錄間的聯(lián)系、操作、數(shù)據(jù)的完整性、

安全性等要求。

三級(jí)模式與二級(jí)映像

(14)外模式:是用戶與數(shù)據(jù)庫(kù)系統(tǒng)的接口,是用戶用到的那部分?jǐn)?shù)據(jù)的描述。

(15)內(nèi)模式:是數(shù)據(jù)庫(kù)在物理存儲(chǔ)方面的描述,定義所有的內(nèi)部記錄類型、索引和文件的

組成方式,以及數(shù)據(jù)控制方面的細(xì)節(jié)。

(16)模式/內(nèi)模式映象:這個(gè)映象存在于概念級(jí)和內(nèi)部級(jí)之間,用于定義概念模式和內(nèi)模式

間的對(duì)應(yīng)性,即概念記錄和內(nèi)部記錄間的對(duì)應(yīng)性。此映象一般在內(nèi)模式中描述。

(17)外模式煤式映象:這人映象存在于外部級(jí)和概念級(jí)之間,用于定義外模式和概念模式

間的對(duì)應(yīng)性,即外部記錄和內(nèi)部記錄間的對(duì)應(yīng)性。此映象都是在外模式中描述。

(18)數(shù)據(jù)獨(dú)立性:在數(shù)據(jù)庫(kù)技術(shù)中,數(shù)據(jù)獨(dú)立性是指應(yīng)用程序和數(shù)據(jù)之間相互獨(dú)立,不受

影響。數(shù)據(jù)獨(dú)立性分成物理數(shù)據(jù)獨(dú)立性和邏輯數(shù)據(jù)獨(dú)立性兩級(jí)。

(19)物理數(shù)據(jù)獨(dú)立性:如果數(shù)據(jù)庫(kù)的內(nèi)模式要進(jìn)行修改,即數(shù)據(jù)庫(kù)的存儲(chǔ)設(shè)備和存儲(chǔ)方法

有所變化,那么模式/內(nèi)模式映象也要進(jìn)行相應(yīng)的修改,使概念模式盡可能保持不變。也就

是對(duì)模式的修改盡量不影響概念模式。

(20)邏輯數(shù)據(jù)獨(dú)立性:如果數(shù)據(jù)庫(kù)的概念模式要進(jìn)行修改(如增加記錄類型或增加數(shù)據(jù)項(xiàng)),

那么外模式/模式映象也要進(jìn)行相應(yīng)的修改,使外模式盡可能保持不變。也就是對(duì)概念模式

的修改盡量不影響外模式和應(yīng)用程序。

(21)宿主語言:在數(shù)據(jù)庫(kù)技術(shù)中,編寫應(yīng)用程序的語言仍然是一些高級(jí)程序設(shè)計(jì)語言,這

些語言稱為宿主語言(hostlanguage),簡(jiǎn)稱主語言。

(22)DDL:數(shù)據(jù)定義語言(DataDefinitionLanguage),用于定義數(shù)據(jù)庫(kù)的三級(jí)結(jié)構(gòu),包括外模

式、概念模式、內(nèi)模式及其相互之間的映象,定義數(shù)據(jù)的完整性、安全控制等約束。

(23)DML:數(shù)據(jù)操縱語言(DataManipulationLanguage),由DBMS提供,用于讓用戶或程序

員使用,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的操作。DML分成交互型DML和嵌入型DML兩類。依據(jù)

語言的級(jí)別,DML又可分成過程性DML和非過程性DML兩種。

(24)交互型DML:如果DML自成系統(tǒng),可在終端上直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,這種DML

稱為交互型DML。

(25)嵌入型DML:如果DML嵌入在主語言中使用,此時(shí)主語言是經(jīng)過擴(kuò)充能處理DML

語句的語言,這種DML稱為嵌入型DML。

(26)過程性DML:用戶編程時(shí),不僅需要指出“做什么”(需要什么樣的數(shù)據(jù)),還需要指

出“怎么做”(怎么獲得數(shù)據(jù))。層狀、網(wǎng)狀的DML屬于過程性語言。

(27)非過程性DML:用戶編程時(shí),只需要指出“做什么”,不需要指出“怎么做

Notice:以上關(guān)于DML的各個(gè)概念單獨(dú)出現(xiàn)時(shí),首先要解釋DML的含義。

(28)DD:數(shù)據(jù)字典(DataDictionary),數(shù)據(jù)庫(kù)系統(tǒng)中存放三級(jí)結(jié)構(gòu)定義的數(shù)據(jù)庫(kù)稱為數(shù)據(jù)字

典。對(duì)數(shù)據(jù)庫(kù)的操作都要通過訪問DD才能實(shí)現(xiàn)。

(29)DD系統(tǒng):管理DD的實(shí)用程序稱為“DD系統(tǒng)”。

1.2文件系統(tǒng)階段的數(shù)據(jù)管理有些什么缺陷?試舉例說明。

文件系統(tǒng)有三個(gè)缺陷:

(1)數(shù)據(jù)冗余性(redundancy)。由于文件之間缺乏聯(lián)系,造成每個(gè)應(yīng)用程序都有對(duì)應(yīng)的

文件,有可能同樣的數(shù)據(jù)在多個(gè)文件中重復(fù)存儲(chǔ)。

(2)數(shù)據(jù)不一致性(inconsistency)。這往往是由數(shù)據(jù)冗余造成的,在進(jìn)行更新操作時(shí),

稍不謹(jǐn)慎,就可能使同樣的數(shù)據(jù)在不同的文件中不一樣。

(3)數(shù)據(jù)聯(lián)系弱(poordatarelationship)。這是由文件之間相互獨(dú)立,缺乏聯(lián)系造成的。

1.3數(shù)據(jù)庫(kù)階段的數(shù)據(jù)管理有些什么特點(diǎn)?

(1)采用復(fù)雜的數(shù)據(jù)模型表示數(shù)據(jù)結(jié)構(gòu)

(2)有較高的數(shù)據(jù)獨(dú)立性(數(shù)據(jù)結(jié)構(gòu)分成用戶的邏輯結(jié)構(gòu)、整體邏輯結(jié)構(gòu)和物理結(jié)構(gòu)三級(jí))

(3)數(shù)據(jù)庫(kù)系統(tǒng)為用戶提供方便的用戶接口,可以使用查詢語言、終端命令或程序方式操

作數(shù)據(jù),也可以用程序方式操作數(shù)據(jù)庫(kù)。

(4)系統(tǒng)提供了四個(gè)方面的數(shù)據(jù)控制功能:數(shù)據(jù)庫(kù)的恢復(fù)、并發(fā)控制、數(shù)據(jù)完整性和數(shù)據(jù)

安全性,以保證數(shù)據(jù)庫(kù)中數(shù)據(jù)是安全的、正確的和可靠的。

(5)對(duì)數(shù)據(jù)的操作不一定以記錄為單位,還可以數(shù)據(jù)項(xiàng)為單位,增加了系統(tǒng)的靈活性。

1.4你怎樣理解實(shí)體、屬性、記錄、字段這些概念的類型和值的差別?試舉例

說明。

實(shí)體(entity):是指客觀存在可以相互區(qū)別的事物。實(shí)體可以是具體的對(duì)象,如:一個(gè)學(xué)

生,一輛汽車等;也可以是抽象的事件,如:一次借書、一場(chǎng)足球賽等。

屬性(attribute):實(shí)體有很多特性,每一個(gè)特性稱為屬性。每個(gè)屬性有一個(gè)值域,其類型

可以是整數(shù)型、實(shí)數(shù)型、字符串型。比如,學(xué)生(實(shí)體)有學(xué)號(hào)、姓名、年齡、性別等屬性,

相應(yīng)值域?yàn)樽址?、字符串、整?shù)和字符串型。

輪(Geld):標(biāo)記實(shí)體屬性的命名單位稱為字段或數(shù)據(jù)項(xiàng)。它是可以命名的最小信息單位,

所以又稱為數(shù)據(jù)元素或初等項(xiàng)。字段的命名往往和屬性名相同,比如,學(xué)生有學(xué)號(hào)、姓名、

年齡、性別等字段。

記錄(record):字段的有序集合稱為記錄。一般用一個(gè)記錄描述一個(gè)實(shí)體,所以記錄又可

以定義為能完整地描述一個(gè)實(shí)體的字段集。如:一個(gè)學(xué)生記錄,由有序的字段集(學(xué)號(hào)、姓

名、年齡、性別等)組成。

1.5邏輯記錄與物理記錄,邏輯文件與物理文件有些什么聯(lián)系和區(qū)別?

聯(lián)系:

(1)邏輯記錄與物理記錄都是記錄,是字段的有序集合:

(2)邏輯文件與物理文件都是文件,是同一類記錄的匯集。

區(qū)別:

(1)邏輯記錄與邏輯文件是邏輯數(shù)據(jù)描述,物理記錄與物理文件是物理數(shù)據(jù)描述。

(2)物理數(shù)據(jù)描述是指數(shù)據(jù)在存儲(chǔ)設(shè)備上的存儲(chǔ)方式,物理記錄、物理文件(還有物理聯(lián)

系、物理結(jié)構(gòu)等術(shù)語),都是用來描述實(shí)際存儲(chǔ)設(shè)備上的數(shù)據(jù)。

(3)邏輯數(shù)據(jù)描述是指程序員或用戶用以操作的數(shù)據(jù)形式,是抽象的概念化數(shù)據(jù)。邏輯記

錄、邏輯文件(還有邏輯聯(lián)系、邏輯結(jié)構(gòu)等術(shù)語),都是用戶觀點(diǎn)的數(shù)據(jù)描述。

1.6為某百貨公司設(shè)計(jì)一個(gè)ER模型。

百貨管轄若干個(gè)連鎖商店,每家商店經(jīng)營(yíng)若干商品,每家商店有若干職工,但每個(gè)職工只能服

務(wù)丁一一家商店。實(shí)體類型“商店”的屬性有:商店編號(hào),店名,店址,店經(jīng)理。實(shí)體類型“商品”

的屬性有:商品編號(hào),商品名,單價(jià),產(chǎn)地。實(shí)體類型“職工”的屬性有:職工編號(hào),職工名,性

別,工資。在聯(lián)系中應(yīng)反映出職工參加某商店工作的開始時(shí)間,商店銷售商品的月銷售量。

試畫出反映商店、商品、職工實(shí)體類型及聯(lián)系類型的ER圖,并將其轉(zhuǎn)換成關(guān)系模式集。

實(shí)體:商店(商店編號(hào),店名,店址,店經(jīng)理)

商品(商品編號(hào),商品名,單價(jià),產(chǎn)地)

職工(職工編號(hào),職工名,性別,工資)

聯(lián)系:SC(商店一商品之間1:N的聯(lián)系,聯(lián)系屬性為“職工參加商店工作的開始時(shí)間”。

SE(商店一職工之間1:N的聯(lián)系),聯(lián)系屬性為“月銷售量

ER圖:

關(guān)系模式集:商店模式(商店編號(hào),店名,店址,店經(jīng)理)

商品模式(商品編號(hào),商品名,單價(jià),產(chǎn)地,商店編號(hào),月銷售量)

職工模式(職工編號(hào),職工名,性別,工資,商店編號(hào),開始時(shí)間)

1.7試述ER模型、層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P偷闹饕攸c(diǎn)。

ER模型的主要特點(diǎn):

3)優(yōu)點(diǎn):接近于人的思維,容易理解;與計(jì)算機(jī)無關(guān),用戶容易接受。

(2)缺點(diǎn):只能說明實(shí)體間語義的聯(lián)系,不能進(jìn)一步說明詳細(xì)的數(shù)據(jù)結(jié)構(gòu)。

層次模型的特點(diǎn):

(1)優(yōu)點(diǎn):記錄之間的聯(lián)系通過指針實(shí)現(xiàn),查詢效率較高。

(2)缺點(diǎn):只能表示1:N聯(lián)系,實(shí)現(xiàn)M:N結(jié)構(gòu)較復(fù)雜;由于層次順序的嚴(yán)格和復(fù)雜,

引起數(shù)據(jù)的查詢和更新操作也很復(fù)雜。

網(wǎng)狀模型的特點(diǎn):

(1)優(yōu)點(diǎn):記錄之間聯(lián)系通過指針實(shí)現(xiàn),M:N聯(lián)系也容易實(shí)現(xiàn)(每個(gè)M:N聯(lián)系可拆

成兩個(gè)1:N聯(lián)系),查詢效率較高。

(2)缺點(diǎn):編寫應(yīng)用程序比較復(fù)雜,程序員必須熟悉數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。

關(guān)系模型的特點(diǎn):

用關(guān)維碼而不是用指針導(dǎo)航數(shù)據(jù),表格簡(jiǎn)單,用戶易懂,編程時(shí)并不涉及存儲(chǔ)結(jié)構(gòu)、訪

問技術(shù)等細(xì)節(jié)。

1.8試述概念模式在數(shù)據(jù)庫(kù)結(jié)構(gòu)中的重要地位。

概念模式是數(shù)據(jù)庫(kù)中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述。它由若干個(gè)概念記錄類型組成。

概念模式不僅要描述概念記錄類型,還要描述記錄間的聯(lián)系、操作、數(shù)據(jù)的完整性、安全性

等要求。數(shù)據(jù)按外模式的描述提供給用戶,按內(nèi)模式的描述存儲(chǔ)在磁盤中,而概念模式提

供了連接這兩級(jí)的相對(duì)穩(wěn)定的中間觀點(diǎn),并使得兩級(jí)的任何一級(jí)的改變都不受另一級(jí)的牽

制。

1.9數(shù)據(jù)獨(dú)立性與數(shù)據(jù)聯(lián)系這兩個(gè)概念有什么區(qū)別?

數(shù)據(jù)獨(dú)立性是指應(yīng)用程序與數(shù)據(jù)之間相互獨(dú)立,不受影響。

數(shù)據(jù)聯(lián)系是指同一記錄內(nèi)部各字段間的聯(lián)系,以及記錄之間的聯(lián)系。

1.10試述DBMS在用戶訪問數(shù)據(jù)庫(kù)過程中所起的作用.

用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,DBMS把操作從應(yīng)用程序帶到外部級(jí)、概念級(jí)、再導(dǎo)向內(nèi)部級(jí),

進(jìn)而操作存儲(chǔ)器中的數(shù)據(jù)。

(結(jié)合P22“用戶訪問數(shù)據(jù)的過程”來理解)

1.11試述DBMS的主要功能。

DBMS的主要功能有:

(1)數(shù)據(jù)庫(kù)的定義功能

(2)數(shù)據(jù)庫(kù)的操縱功能

(3)數(shù)據(jù)庫(kù)的保護(hù)功能

(4)數(shù)據(jù)庫(kù)的存儲(chǔ)管理

(5)數(shù)據(jù)庫(kù)的維護(hù)功能

(6)數(shù)據(jù)字典

1.12試敘DBMS對(duì)數(shù)據(jù)庫(kù)的保護(hù)功能。

DBMS對(duì)數(shù)據(jù)庫(kù)的保護(hù)主要通過四個(gè)方面實(shí)現(xiàn):

(1)數(shù)據(jù)庫(kù)的恢復(fù)。

(2)數(shù)據(jù)庫(kù)的并發(fā)控制。

(3)數(shù)據(jù)庫(kù)的完整性控制。

(4)數(shù)據(jù)庫(kù)的安全性控制。

1.13試敘DBMS對(duì)數(shù)據(jù)庫(kù)的維護(hù)功能。

DBMS中有一些程序提供給數(shù)據(jù)庫(kù)管理員運(yùn)行數(shù)據(jù)庫(kù)系統(tǒng)時(shí)使用,這些程序起著數(shù)據(jù)庫(kù)維

護(hù)的功能。

主要有四個(gè)實(shí)用程序:

(1)數(shù)據(jù)裝載程序(loading)

(2)備份程序(backup)

(3)文件重組織程序

(4)性能監(jiān)控程序

1.14從模塊結(jié)構(gòu)看,DBMS由哪些部分組成?

從模塊結(jié)構(gòu)看,DBMS由兩大部分組成:查詢處理器和存儲(chǔ)管理器

(1)查詢處理器有四個(gè)主要成分:DDL編譯器,DML編譯器,嵌入型DML的預(yù)編譯

器,查詢運(yùn)行核心程序

(2)存儲(chǔ)管理器有四個(gè)主要成分:授權(quán)和完整性管理器,事務(wù)管理器,文件管理器,

緩沖區(qū)管理器

(以上幾題具體可參照書上p20-21)

1.15DBS由哪幾個(gè)部分組成?

DBS由四部分組成:數(shù)據(jù)庫(kù)、硬件、軟件、數(shù)據(jù)庫(kù)管理員。

1.16什么樣的人是DBA?DBA應(yīng)具有什么素質(zhì)?DBA的職責(zé)是什么?

DBA是控制數(shù)據(jù)整體結(jié)構(gòu)的人,負(fù)責(zé)DBS的正常運(yùn)行。DBA可以是一個(gè)人,在大型系

統(tǒng)中也可以是由幾個(gè)人組成的小組。DBA承擔(dān)創(chuàng)建、監(jiān)控和維護(hù)整個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)的責(zé)任。

DBA應(yīng)具有下列素質(zhì):

(1)熟悉企業(yè)全部數(shù)據(jù)的性質(zhì)和用途;

(2)對(duì)用戶的需求有充分的了解;

(3)對(duì)系統(tǒng)的性能非常熟悉。

DBA的主要職責(zé)有五點(diǎn):

(1)概念模式定義

(2)內(nèi)模式定義

(3)根據(jù)要求修改數(shù)據(jù)庫(kù)的概念模式和內(nèi)模式

(4)對(duì)數(shù)據(jù)庫(kù)訪問的授權(quán)

(5)完整性約束的說明

1.17試對(duì)DBS的全局結(jié)構(gòu)作詳細(xì)解釋。

參照教材p24-25?

1.18使用DBS的用戶有哪幾類?

使用DBS的用戶有四類:

1)DBA

2)專業(yè)用戶

3)應(yīng)用程序員

4)最終用戶

1.19DBMS的查詢處理器有哪些功能?

DBMS的查詢處理器可分成四個(gè)成分:

1)DML編譯器

2)嵌入型DML的預(yù)編譯器

3)DDL編譯器

4)查詢運(yùn)行核心程序

(各成分功能參照P24)

1.20DBMS的存儲(chǔ)處理器有哪些功能?

DBMS的存儲(chǔ)處理器提供了應(yīng)用程序訪問數(shù)據(jù)庫(kù)中數(shù)據(jù)的界面,可分成四個(gè)成分:

1)授權(quán)和完整性管理器

2)事務(wù)管理器

3)文件管理器

4)緩沖區(qū)管理器

(各成分功能參照P25)

1.21磁盤存儲(chǔ)器中有哪四類主要的數(shù)據(jù)結(jié)構(gòu)?

數(shù)據(jù)文件:存儲(chǔ)了數(shù)據(jù)庫(kù)中的數(shù)據(jù);

數(shù)據(jù)字典(DD):存儲(chǔ)三級(jí)結(jié)構(gòu)的描述;

索引文件:為提高查詢速度而設(shè)置的邏輯排序手段:

統(tǒng)計(jì)數(shù)據(jù)組織:存儲(chǔ)DBS運(yùn)行時(shí)統(tǒng)計(jì)分析數(shù)據(jù)。

數(shù)據(jù)庫(kù)原理之關(guān)系模型課后習(xí)題及答案

2.1名詞解釋

(1)關(guān)系模型:用二維表格結(jié)構(gòu)表示實(shí)體集,外鍵表示實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。

(2)關(guān)系模式:關(guān)系模式實(shí)際上就是記錄類型。它的定義包括:模式名,屬性名,值域名以

及模式的主鍵。關(guān)系模式不涉及到物理存儲(chǔ)方面的描述,儀僅是對(duì)數(shù)據(jù)特性的描述。

(3)關(guān)系實(shí)例:元組的集合稱為關(guān)系和實(shí)例,一個(gè)關(guān)系即一張二維表格。

(4)屬性:實(shí)體的一個(gè)特征。在關(guān)系模型中,字段稱為屬性。

(5)域:在關(guān)系中,每一個(gè)屬性都有一個(gè)取值范圍,稱為屬性的值域,簡(jiǎn)稱域。

(6)元組:在關(guān)系中,記錄稱為元組。元組對(duì)應(yīng)表中的行;表示一個(gè)實(shí)體。

(7)超鍵:在關(guān)系中能唯一標(biāo)識(shí)元組的屬性集稱為關(guān)系模式的超鍵。

(8)候選鍵:不含有多余屬性的超鍵稱為候選鍵。

(9)主鍵:用戶選作元組標(biāo)識(shí)的一個(gè)候選鍵為主鍵。(單獨(dú)出現(xiàn),要先解釋“候選鍵”)

(10)外鍵:某個(gè)關(guān)系的主鍵相應(yīng)的屬性在另一關(guān)系中出現(xiàn),此時(shí)該主鍵在就是另一關(guān)系的外

鍵,如有兩個(gè)關(guān)系S和SC,其中S#是關(guān)系S的主鍵,相應(yīng)的屬性S#在關(guān)系SC中也出現(xiàn),

此時(shí)S#就是關(guān)系SC的外鍵。

(11)實(shí)體完整性規(guī)則:這條規(guī)則要求關(guān)系中元組在組成主鍵的屬性上不能有空值。如果出

現(xiàn)空值,那么主鍵值就起不了唯?標(biāo)識(shí)元組的作用。

(12)參照完整性規(guī)則:這條規(guī)則要求“不引用不存在的實(shí)體”。其形式定義如下:如果屬性

集K是關(guān)系模式R1的主鍵,K也是關(guān)系模式R2的外鍵,那么R2的關(guān)系中,K的取值只

允許有兩種可能,或者為空值,或者等于R1關(guān)系中某個(gè)主鍵值。這條規(guī)則在使用時(shí)有三

點(diǎn)應(yīng)注意:1)外鍵和相應(yīng)的主鍵可以不同名,只要定義在相同值域上即可。2)R1和R2也

可以是同一個(gè)關(guān)系模式,表示了屬性之間的聯(lián)系。3)外鍵值是否允許空應(yīng)視具體問題而定。

(13)過程性語言:在編程時(shí)必須給出獲得結(jié)果的操作步驟,即“干什么”和“怎么干”。如Pascal

和C語言等。

(14)非過程性語言:編程時(shí)只須指出需要什么信息,不必給出具體的操作步驟。各種關(guān)系

查詢語言均屬于非過程性語言。

(15)無限關(guān)系:當(dāng)一個(gè)關(guān)系中存在無窮多個(gè)元組時(shí),此關(guān)系為無限關(guān)系。如元組表達(dá)式

R(t)}表示所有不在關(guān)系R中的元組的集合,這是一個(gè)無限關(guān)系。

(16)無窮驗(yàn)證:在驗(yàn)證公式時(shí)需對(duì)無窮多個(gè)元組進(jìn)行驗(yàn)證就是無窮驗(yàn)證。如驗(yàn)證公式(W

u)(P(u))的真假時(shí)需對(duì)所有的元組u進(jìn)行驗(yàn)證,這是一個(gè)無窮驗(yàn)證的問題。

2.2為什么關(guān)系中的元組沒有先后順序?

因?yàn)殛P(guān)系是一個(gè)元組的集合,而無組在集合中的順序無關(guān)緊要。因此不考慮元組間的順

序,即沒有行序。

2.3為什么關(guān)系中不允許有重復(fù)元組?

因?yàn)殛P(guān)系是一個(gè)元組的集合,而集合中的元素不允許重復(fù)出現(xiàn),因此在關(guān)系模型中對(duì)關(guān)

系作了限制,關(guān)系中的元組不能重復(fù),可以用鍵來標(biāo)識(shí)唯一的元組。

2.4關(guān)系與普通的表格、文件有什么區(qū)別?

關(guān)系是-一種規(guī)范化了的二維表格,在關(guān)系模型中,對(duì)關(guān)系作了下列規(guī)范性限制:

1)關(guān)系中每一個(gè)屬性值都是不可分解的。

2)關(guān)系中不允許出現(xiàn)相同的元組(沒有重復(fù)元組)。

3)由于關(guān)系是一個(gè)集合,因此不考慮元組間的順序,即沒有行序。

4)元組中,屬性在理論上也是無序的,但在使用時(shí)按習(xí)慣考慮列的順序。

2.5笛卡爾積、等值聯(lián)接、自然聯(lián)接三者之間有什么區(qū)別?

笛卡爾積對(duì)兩個(gè)關(guān)系R和S進(jìn)行乘操作,產(chǎn)生的關(guān)系中元組個(gè)數(shù)為兩個(gè)關(guān)系中元組個(gè)

數(shù)之積。

等值聯(lián)接則是在笛卡爾積的結(jié)果上再進(jìn)行選擇操作,從關(guān)系R和S的笛卡兒積中選擇

對(duì)應(yīng)屬性值相等的兀組;

自然連接則是在等值聯(lián)接(以所有公共屬性值相等為條件)的基礎(chǔ)上再行投影操作,并去

抻重復(fù)的公共屬性列。當(dāng)兩個(gè)關(guān)系沒有公共屬性時(shí),自然連接就轉(zhuǎn)化我笛卡爾積。

2.6設(shè)有關(guān)系R和S(如下:)

RABCS:ABC

745

723

3

3

計(jì)算:

RUS,R-S,RAS,RXS,冗3,2(S),B<C5'(R),RNS,RXS。

2<2

RUSR-SABC

ABCRASABC

36737

25727

723723

443443

345

J

RXSR.AR.BR.CS.AS.BS.C兀3,2(S)。B<5,?

3675—ABC

73CB

723

7554

73443

32

7235

723723

5RMSR.AR.BR.CS.AS.BS.C

4432<2

4433

723345

RMS.ABC

2.7設(shè)有關(guān)系R和S(如下:)

ABS:BC

ab1bc

cb1ea

debd

計(jì)算:

RXsABCRXsAR.BS.BC

B<C

acac

adad

cbccbc

cbdcbd

dea

°A=C(RXS)AR-BS.BC

abea

cbbc

d6bd

2.8如果R是二元關(guān)系,那么下列元組表達(dá)式的結(jié)果是什么?

{tl(3u)(R(t)AR(u)A(t[ltAi[l]Vt[21Ai[2]))}

這個(gè)表達(dá)式的意思是:從關(guān)系R中選擇元組,該元組滿足:第1分量值或第2分量值

至少有一個(gè)不等于其他某元組。由于R是二元關(guān)系,只有兩個(gè)分量,由于沒有重復(fù)元

組,上述條件顯然滿足。所以,這個(gè)表達(dá)式結(jié)果就是關(guān)系R。

2.9假設(shè)R和S分別是三元和二元關(guān)系,試把表達(dá)式兀1,5(6=4V3=4(RXS))轉(zhuǎn)換

成等價(jià)的:(1)漢語查詢句子;(2)元組表達(dá)式;(3)域表達(dá)式。

(1)漢語表達(dá)式:

從RxS關(guān)系中選擇滿足下列條件的元組:

第2分量(R中第2分量)與第4分量(S中第1分量)值相等,或第3分量(R中第3

分量)與第4分量(S中第1分量)值相等;并取第1列與第5列組成的新關(guān)系。

(2)元組表達(dá)式:{tl(3u)(3v)(R(u)AS(v)A(u[2]=v[l]Vu[3]=v[l])At[l]=u[l]At[2]=v[2])}

(3)域表達(dá)式:{xvl(3y)(3z)(3u)(R(xyz)AS(uv)A(y=uVz=u))}

2.10假設(shè)R和S都是二元關(guān)系,試把元組表達(dá)式{tlR(t)AUu)(S(u)A

仇1]#[2])}轉(zhuǎn)換成等價(jià)的:(1)漢語查詢句子;(2)域表達(dá)式:(3)關(guān)系代數(shù)表達(dá)

式。

(1)漢語表達(dá)式:選擇R關(guān)系中元組第2分量值不等于S關(guān)系中某元組第1分量值的元組。

(2)域表達(dá)式:{xy0u)(三v)(R(xy)AS(uv)A(u/y))}

(3)關(guān)系代數(shù)表達(dá)式:兀|,2(。及3(RXS))

2.11試把域表達(dá)式{ablR(ab)AR(ba)}轉(zhuǎn)換成等價(jià)的:

(1)漢語查詢句子;(2)關(guān)系代數(shù)表達(dá)式;(3)元組表達(dá)式。

(1)漢語查詢句子:選擇R中元組第1分量值與第2分量值互換后仍存在于R中的元組。

(2)關(guān)系代數(shù)表達(dá)式:2(5=4A2=3(RXR));

(3)元組表達(dá)式:{tl(3u)(R(t)AR(u)At[1]=u[2]At[2]=u[l])}

2.12設(shè)有兩個(gè)關(guān)系R(A,B,C)和S(D,E,F),試把下列關(guān)系代數(shù)表達(dá)式轉(zhuǎn)

換成等價(jià)的元組表達(dá)式:

(I)TTA(R);(2)OB='I7(R);(3)RXS;(4)冗A,F(6C=D(RXS))

⑴{H0u)(R(u)/\t[l]=u[l])}

(2){tlR(t)At[2]='17')}

(3){tl(3u)(3v)(R(u)AS(v)At[l]=u[l]At|2|=u[2]At|3]=u[3]At[4]=v[l]At[5hv[2]A

t[6]=v[3])}

(4){tl(3u)(3v)((R(u)AS(v)Au[3]=v[1]At[1]=u[1]At[2]=v[3])}

2.13設(shè)有三個(gè)關(guān)系:

S(S#,SNAME,AGE,SEX)

SC(S#,C#,GRADE)

C(C#,CNAME,TEACHER)

試用關(guān)系代數(shù)表達(dá)式表示下列查詢語句。(見下一題)

2.14試用元組表達(dá)式表示上題中各個(gè)查詢語句。

⑴檢索LIU老師所授課程的課程號(hào)、課程名。

R#.CNAME(0TEACHER='UU'(C))

{tl(3u)(C(u)AC[3]='LIU'At[l]=u[l]At[2]=u[2]))

⑵檢索年齡大于23歲的男學(xué)生的學(xué)號(hào)與姓名。

兀#S.SNAME(0AGE>'23'ASEX='!I!'(S))

{tl(3u)(S(u)Au[3]>,23'Aul4]='^'At[l]=u[l]At[2]=ul2])}

(3)檢索學(xué)號(hào)為S3學(xué)生所學(xué)課程的課程名與任課教師名。

RNAME.TEACHER(GS#='S3'(SCMC))

{tl(3U)(3v)(SC(u)AC(v)Au[1]='S3'Av[1J=u[2]At[1]=v[2JAt[2J=vl3J))

(4)檢索至少選修LIU老師所授課程中一門課程的女學(xué)生的姓名。

^SNAME(?SEX=,*,ATEACHER=,LlU,(SlX1SCtXlC))

{tl(3U)(3v)(3w)(s(u)ASC(v)AC(w)Au[4]=,女△v[l]=u[1]Av[2]=w[l]Aw⑶='LIU'A

t[l]=ul2])}

⑸檢索WANG同學(xué)不學(xué)的課程號(hào)。

WC#(C)-JIc#(0SNAME='WANG'(SXSC))

或者,

7rc#(SC)-nc#SsNAME=,wANG(SXSC))(全部課程號(hào)減去WANG同學(xué)所學(xué)的課程號(hào))

{tl(3u)(vv)(C(u)ASC(v)A(U[1]=V[2]=>(3W)(S(W)AW[1]=V[1]AW[2]?t'wang'))At[l]=u[1])}

(從C中選擇滿足條件的元組:SC中的所有元組,如果學(xué)號(hào)與C中所選元組相同的話,其在S

中對(duì)應(yīng)的姓名肯定不是‘wang'。)

Notice:"pl=>p2”的含義是:如果pl為真,則p2為真。

(6)檢索至少選修兩門課程的學(xué)生學(xué)號(hào)。

兀#S(01=4人舁5(SCxSC))

SC自乘之后,再選擇(同一個(gè)學(xué)號(hào)中兩個(gè)課程號(hào)不同的元組),投影。

{tl(3u)(3v)(SC(u)ASC(v)Au[l]=v[l]Au[2]^v[2])At[l]=u[l]}

⑺檢索全部學(xué)生都選修的課程的課程號(hào)與課程名。

R#,CNAME(CX(ns*,c#(SC)的(S)))(涉及到全部值時(shí),應(yīng)用除法,“除數(shù)"是"全部")

{tl(Vu)(3v)(3w)(S(u)ASC(v)AC(w)Au[l]=v[l]Av[2]=w[l]At[l]=v[l]At[2]=V[2]))

(8)檢索選修課程包含LIU老師所授課程的學(xué)生學(xué)號(hào)。

JtS#(OTEACHER=LlU,(SCMC))

{tl(3u)(3v)(SC(u)AC(v)Au[2J=v[l]Av[3]='LIU'At[l]=u[l])}

如果LIU老師有多門課程,則選修課程包含LIU老師所授全部課程的學(xué)生學(xué)號(hào)為:

兀#S,cKSC)+7tc#(GTEACHER='LIU'(C))

2.15在教學(xué)數(shù)據(jù)庫(kù)S、SC、C中,用戶有一查詢語句:檢索女同學(xué)選修課程

的課程名和任課教師名。(1)試寫出該查詢的關(guān)系代數(shù)表達(dá)式;(2)試寫出查詢

優(yōu)化的關(guān)系代數(shù)表達(dá)式。

(1)^CNAME.TEACHER(?SEX='*'(SlXlSCtXlC))

⑵優(yōu)化為:TtCNAME.TEACHERlCXTtcKTts/cKSCXjIsKGsEXn次⑸)))

(基本思路:盡量提前做選擇操作;在每個(gè)操作后,應(yīng)做個(gè)投影操作,去掉不用的屬性值。

2.16在2.15題中,

(1)畫出該查詢初始的關(guān)系代數(shù)表達(dá)式的語法樹。

(2)使用2.4.4節(jié)的優(yōu)化算法,對(duì)語法樹進(jìn)行優(yōu)化,并畫出優(yōu)化后的語法樹。

7T

CNAME,TEACHER

o

SEX='女'

S#,SNAMEJACE,SBX,C#J

CWAME,TEACHER,GRADE

該查詢初始的關(guān)系代數(shù)表達(dá)式的語法樹優(yōu)化后的語法樹

2.17為什么要對(duì)關(guān)系代數(shù)表達(dá)式進(jìn)行優(yōu)化?

在關(guān)系代數(shù)運(yùn)算中,各個(gè)運(yùn)算所費(fèi)時(shí)間和空間是不一樣的。如何安排若干關(guān)系的運(yùn)算操作步

驟,直接影響到整個(gè)操作所需要的時(shí)間和空間。對(duì)關(guān)系代數(shù)表達(dá)式進(jìn)行優(yōu)化,可以提高系統(tǒng)的

操作效率,達(dá)到執(zhí)行過程即省時(shí)間又省空間的目的。

數(shù)據(jù)庫(kù)原理之關(guān)系數(shù)據(jù)庫(kù)SQL語言課后習(xí)題及答案

3.1名詞解釋

(l)SQL模式:SQL模式是表和授權(quán)的靜態(tài)定義。一個(gè)SQL模式定義為基本表的集合。

個(gè)由模式名和模式擁有者的用戶名或賬號(hào)來確定,并包含模式中每一個(gè)元素(基本表、視圖、

索引等)的定義。

(2)SQL數(shù)據(jù)庫(kù):SQL(StmcturedQueryLanguage),即'結(jié)構(gòu)式查詢語言',采用英語單詞表示

和結(jié)構(gòu)式的語法規(guī)則。一個(gè)SQL數(shù)據(jù)庫(kù)是表的匯集,它用一個(gè)或多個(gè)SQL模式定義。

(3)基本表:在SQL中,把傳統(tǒng)的關(guān)系模型中的關(guān)系模式稱為基本表(BaseTable)?;颈?/p>

是實(shí)際存儲(chǔ)在數(shù)據(jù)庫(kù)中的表,對(duì)應(yīng)一個(gè)關(guān)系。

(4)存儲(chǔ)文件:在SQL中,把傳統(tǒng)的關(guān)系模型中的存儲(chǔ)模式稱為存儲(chǔ)文件(StoredFile)。每

個(gè)存儲(chǔ)文件與外部存儲(chǔ)器上一個(gè)物理文件對(duì)應(yīng)。

(5)視圖:在SQL中,把傳統(tǒng)的關(guān)系模型中的子模式稱為視圖(View),視圖是從若干基本表

和(或)其他視圖構(gòu)造出來的表。

(6)行:在SQL中,把傳統(tǒng)的關(guān)系模型中的元組稱為行(row)。

(7)列:在SQL中,把傳統(tǒng)的關(guān)系模型中的屬性稱為列(coloumn)。

(8)實(shí)表:基本表被稱為“實(shí)表”,它是實(shí)際存放在數(shù)據(jù)庫(kù)中的表。

(9)虛表:視圖被稱為“虛表”,創(chuàng)建個(gè)視圖時(shí),只把視圖的定義存儲(chǔ)在數(shù)據(jù)詞典中,而不

存儲(chǔ)視圖所對(duì)應(yīng)的數(shù)據(jù)。

(10)相關(guān)子查詢:在嵌套查詢中出現(xiàn)的符合以下特征的子查詢:子查詢中查詢條件依賴于外

層查詢中的某個(gè)值,所以子查詢的處理不只一次,要反復(fù)求值,以供外層查詢使用。

(11)聯(lián)接查詢:查詢時(shí)先對(duì)表進(jìn)行笛卡爾積操作,然后再做等值聯(lián)接、選擇、投影等操作。

聯(lián)接查詢的效率比嵌套查詢低。

(12)交互式SQL:在終端交互方式下使用的SQL語言稱為交互式SQL。

(13)嵌入式SQL:嵌入在高級(jí)語言的程序中使用的SQL語言稱為嵌入式SQL。

(14)共享變量:SQL和宿主語言的接口。共享變量有宿主語言程序定義,再用SQL的

DECLARE語句說明,SQL語句就可引用這些變量傳遞數(shù)據(jù)庫(kù)信息。

(15)游標(biāo):游標(biāo)是與某一查詢結(jié)果相聯(lián)系的符號(hào)名,用于把集合操作轉(zhuǎn)換成單記錄處理方式。

(16)卷游標(biāo):為了克服游標(biāo)在推進(jìn)時(shí)不能返回的不便,SQL2提供了卷游標(biāo)技術(shù)。卷游標(biāo)在

推進(jìn)時(shí)不但能沿查詢結(jié)果中元組順序從頭到尾一行行推進(jìn),也能一行行返回。

3.2對(duì)于教學(xué)數(shù)據(jù)庫(kù)的三個(gè)基本表

學(xué)生S(S#,SNAME,AGE,SEX)

學(xué)習(xí)SC(S#,C#,GRADE)

課程C(C#,CNAME,TEACHER)

試用SQL的查詢語句表達(dá)下列查詢:

(1)檢索LIU老師所授課程的課程號(hào)和課程名。

SELECTC#,CNAME

FROMC

WHERETEACHER=tLIU,

(2)檢索年齡大于23歲的男學(xué)生的學(xué)號(hào)和姓名。

SELECTS#,SNAME

FROMS

WHERE(AGE>23)AND(SEX='M,)

(3)檢索至少選修LIU老師所授課程中一門課程的女學(xué)生姓名。

SELECTSNAME

FROMS

WHERESEX=FANDS#IN

(SELECTS#

FROMSC

WHEREC#IN

(SELECTC#

FROMC

WHERETEACHER="LIU')

NOTICE:有多種寫法,比如聯(lián)接查詢寫法:

SELECTSNAME

FROMS,SC,C

WHERESEX=FANDSC.S#=S.S#

ANDSC.C#=C.C#

ANDTEACHER=,LIU'

但上一種寫法更好一些。

(4)檢索WANG同學(xué)不學(xué)的課程的課程號(hào)。

SELECTC#

FROMC

WHEREC#NOTIN

(SELECTC#

FROMSC

WHERES#IN

(SELECTS#

FROMS

WHERESNAME=,WANG,))

(5)檢索至少選修兩門課程的學(xué)生學(xué)號(hào)。

SELECTDISTINCTX.SNO

FROMSCX,SCY

WHEREX.SNO=Y.SNOANDX.CNOoY.CNO

Notice:對(duì)表SC進(jìn)行自連接,X,Y是SC的兩個(gè)別名。

(6)檢索全部學(xué)生都選修的課程的課程號(hào)與課程名。

SELECTC#,CNAME

FROMC

WHERENOTEXISTS

(SELECT*

FROMS

WHERES#NOTIN

(SELECT*

FROMSC

WHERESC.C#=C.C#))

要從語義上分解:(1)選擇課程的課程號(hào)與課程名,不存在不選這門課的同學(xué)。

其中,“不選這門課的同學(xué)”可以表示為:

或者SELECT*

SELECT*FROMS

FROMSWHERENOTEXISTS

WHERES#NOTIN(SELECT*

(SELECT*FROMSC

FROMSCWHERES.S#=C.S#

WHERESC.C#=C.C#)AND

SC.C#=C.C#)

(7)檢索選修課程包含LIU老師所授課的學(xué)生學(xué)號(hào)。

SELECTDISTINCTS#

FROMSC

WHEREC#IN

(SELECTC#

FROMC

WHERETEACHER='LIU'))

3.3設(shè)有兩個(gè)基本表R(A,B,C)和S(D,E,F),試用SQL查詢語句

表達(dá)下列關(guān)系代數(shù)表達(dá)式:

(1)兀A(R)(2)OB=17'(R)⑶RXS(4))兀A,F(W=D(RXS))

(l)SELECTAFROMR

(2)SELECT*FROMRWHEREB=f17'

(3)SELECTA,B,C,D,E,FFROMR,S

(4)SELECTA,FFROMR,SWHERER.C=S.D

3.43.4設(shè)有兩個(gè)基本表R(A,B,C)和S(A,B,C)試用SQL查詢語

句表達(dá)下列關(guān)系代數(shù)表達(dá)式:

(1)RUS(2)RAS(3)R-S(4)7CA,B(R)X兀B,C(S)

(l)SELECTA,B,C

FROMR

UNION

SELECTA,B,C

FROMS

(2)SELECTA.B,C

FROMR

INTERSECT

SELECTA,B,C

FROMS

(3)SELECTA,B,C

FROMR

WHERENOTEXISTS

(SELECTA,B,C

FROMS

WHERER.A=S.AANDR.B=S.BANDR.C=S.C)

(4)SELECTR.A,R.B,S.C

FROMR,S

WHERER.B=S.B

3.5試敘述SQL語言的關(guān)系代數(shù)特點(diǎn)和元組演算特點(diǎn)。

(P61-62)

3.6試用SQL查詢語句表達(dá)下列對(duì)教學(xué)數(shù)據(jù)庫(kù)中三個(gè)基本表S、SC、C的查

詢:

(1)統(tǒng)計(jì)有學(xué)生選修的課程門數(shù)。

SELECTCOUNT(DISTINCTC#)FROMSC

(2)求選修C4課程的學(xué)生的平均年齡。

SELECTAVG(AGE)

FROMS

WHERES#IN

(SELECTS#

FROMSC

WHEREC#=,C4,)

或者,

SELECTAVG(AGE)

FROMS,SC

WHERES.S#=SC.S#ANDC#=,004,

(3)求LIU老師所授課程的每門課程的學(xué)生平均成績(jī)。

SELECTCNAME,AVG(GRADE)

FROMSC,C

WHERESC.C#=C.C#ANDTEACHER=,LIU,

GROUPBYC#

(4)統(tǒng)計(jì)每門課程的學(xué)生選修人數(shù)(超過10人的課程才統(tǒng)計(jì))。要求輸出課程號(hào)和選

修人數(shù),查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,按課程號(hào)升序排列。

SELECTDISTINCTC#,COUNT(S#)

FROMSC

GROUPBYC#

HAVINGCOUNT(S#)>10

ORDERBY2DESC,C#ASC

(5)檢索學(xué)號(hào)比WANG同學(xué)大,而年齡比他小的學(xué)生姓名。

SELECTX.SNAME

FROMSASX,SASY

WHEREY.SNAME=,WANG,ANDX.S#>Y.S#ANDX.AGE<Y.AGE

(6)檢索姓名以WANG打頭的所有學(xué)生的姓名和年齡。

SELECTSNAME,AGE

FROMS

WHERESNAMELIKE'WANG%'

(7)在SC中檢索成績(jī)?yōu)榭罩档膶W(xué)生學(xué)號(hào)和課程號(hào)。

SELECTS#,C#

FROMSC

WHEREGRADEISNULL

(8)求年齡大于女同學(xué)平均年齡的男學(xué)生姓名和年齡。

SELECTSNAME,AGE

FROMSASX

WHEREX.SEX士男'ANDX.AGE>(SELECTAVG(AGE)FROMSASY

WHEREY.SEX;女)

(9)求年齡大于所有女同學(xué)年齡的男學(xué)生姓名和年齡。

SELECTSNAME,AGE

FROMSASX

WHEREX.SEX=,男'ANDX.AGE>ALL(SELECTAGEFROMSASYWHERE

Y.SEX=女)

3.7試用SQL更新語句表達(dá)對(duì)教學(xué)數(shù)據(jù)庫(kù)中三個(gè)基本表S、SC、C的各個(gè)更

新操作:

(1)往基本表S中插入一個(gè)學(xué)生元組(5夕,18)o

INSERTINTOS(S#,SNAME,AGE)VALUES('59?WU',18)

(2)在基本表S中檢索每一門課程成績(jī)都大于等于80分的學(xué)生學(xué)號(hào)、姓名和性別,并

把檢索到的值送往另一個(gè)已存在的基本表STUDENT(S#,SANME,SEX)。

INSERTINTOSTUDENT。#,SNAME,SEX)

SELECTS#,SNAME,SEX

FROMSWHERENOTEXISTS

(SELECT*FROMSCWHERE

GRADE<80ANDS.S#=SC.S#)

(3)在基本表SC中刪除尚無成績(jī)的選課元組。

DELETEFROMSC

WHEREGRADEISNULL

(4)把WANG同學(xué)的學(xué)習(xí)選課和成績(jī)?nèi)縿h去。

DELETEFROMSC

WHERES#IN

(SELECTS#

FROMS

WHERESNAME^WANG)

(5)把選修MATHS課不及格的成績(jī)?nèi)臑榭罩怠?/p>

UPDATESC

SETGRADE=NULL

WHEREGRADE<60ANDC#IN

(SELECTC#

FROMC

WHERECNAME=,MATHS,)

(6)把低于總平均成績(jī)的女同學(xué)成績(jī)提高5%。

UPDATESC

SETGRADE=GRADE*1.05

WHEREGRADE<(SELECTAVG(GRADE)FROMSC)ANDS#IN(SELECTS#

FROMSWHERESEX='F')

(7)在基本表SC中修改C4課程的成績(jī),若成績(jī)小于等于75分時(shí)提高5%,若成績(jī)大

于75分時(shí)提高4%(用兩個(gè)UPDATE語句實(shí)現(xiàn))。

UPDATESC

SETGRADE=GRADE*1.05

WHEREC#='C4,ANDGRADE<=75

UPDATESC

SETGRADE=GRADE*1.04

WHEREC#=,C4,ANDGRADE>75

3.8在第1章例1.4中提到“倉(cāng)庫(kù)管理”關(guān)系模型有五個(gè)關(guān)系模式:

零件PART(P#,PNAME,COLOR,WEIGHT)

項(xiàng)目PROJECT(J#,JNAME,DATE)

供應(yīng)商SUPPLIER(S#,SNAME,SADDR)

供應(yīng)P_P(J#,P#,TOTOAL)

采購(gòu)P_S(P#,S#,QUANTITY)

(1)試用SQLDDL語句定義上述五個(gè)基本表,并說明主鍵和外鍵。

CREATETABLEPART

(P#CHAR(4)NOTNULL,PNAMECHAR(12)NOTNULL,

COLORCHAR(10),WEIGHTREAL,

PRIMARYKEY(P#))

CREATETABLEPROJECT

(J#CHAR(4)NOTNULLJNAMECHAR(12)NOTNULL,

DATEDATE,

PRIMARYKEY(J#))

CREATETABLESUPLIER

(S#CHAR(4)NOTNULL,SNAMECHAR(12),SADDRVARCHAR(20),

PRIMARYKEY(S#))

CREATETABLEP_P

(J#CHAR(4),P#CHAR(4),TOTALINTEGER,

PRIMARYKEY(J#,P#),

FOREIGNKEY(J#)REFERENCEPROJECT(J#),

FOREIGNKEY(P#)REFERENCEPART(P#))

CREATETABLEP_S

(P#CHAR(4),S#CHAR(4),QUANTITYINTEGER,

PRIMARYKEY(P#,S#),

FOREIGNKEY(P#)REFERENCEPART(P#),

FOREIGNKEY(S#)REFERENCESUPL1ER(S#))

(2)試將PROGECT、P_P、PART三個(gè)基本表的自然聯(lián)接定義為?個(gè)視圖VIEW1,

PART、P_S、SUPPLIER三個(gè)基本表的自然聯(lián)接定義為一個(gè)視圖VIEW2。

CREATEVIEWVIEW1(J#,JNAME,DATE,P#,PNAME,COLOR,WEIGHT,TOTAL)

ASSELECT

PROJECT.!#,JNAME,DATE,PART.P#,PNAME,COLOR,WEIGHT,TOTAL

FROMPROJECT,PART,P_P

溫馨提示

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

評(píng)論

0/150

提交評(píng)論