版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人獨(dú)資企業(yè)解散協(xié)議書(2024版)3篇
- 2024飲料行業(yè)液體運(yùn)輸協(xié)議
- 2025年度綠色有機(jī)大米直銷合作合同3篇
- 專屬保安服務(wù)供應(yīng)協(xié)議(2024年度)版B版
- 2025年度出租車駕駛員權(quán)益保障承包合同3篇
- 二零二五年度綠城物業(yè)設(shè)施設(shè)備檢修維護(hù)服務(wù)合同4篇
- 標(biāo)準(zhǔn)化的辦公室實(shí)驗(yàn)室規(guī)劃與設(shè)計(jì)建議
- 科技人才選拔中的成績(jī)?cè)u(píng)估方法研究
- 2025版園林綠化工程后期養(yǎng)護(hù)與維護(hù)合同4篇
- 2025年度美術(shù)館東館館舍租賃藝術(shù)展覽合作合同4篇
- 2025水利云播五大員考試題庫(kù)(含答案)
- 中藥飲片驗(yàn)收培訓(xùn)
- DB34T 1831-2013 油菜收獲與秸稈粉碎機(jī)械化聯(lián)合作業(yè)技術(shù)規(guī)范
- 創(chuàng)傷處理理論知識(shí)考核試題及答案
- 稅前工資反算表模板
- 2019級(jí)水電站動(dòng)力設(shè)備專業(yè)三年制人才培養(yǎng)方案
- 肝素誘導(dǎo)的血小板減少癥培訓(xùn)課件
- 抖音認(rèn)證承諾函
- 高等數(shù)學(xué)(第二版)
- 四合一體系基礎(chǔ)知識(shí)培訓(xùn)課件
- ICD-9-CM-3手術(shù)與操作國(guó)家臨床版亞目表
評(píng)論
0/150
提交評(píng)論