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

下載本文檔

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

文檔簡介

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

數(shù)據(jù)庫原理之數(shù)據(jù)庫概論課后習題及答案...........................................2

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

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

數(shù)據(jù)庫原理之關系數(shù)據(jù)庫的模式設計課后習題及答案................................28

數(shù)據(jù)庫原理之數(shù)據(jù)庫設計課后習題及答案..........................................43

數(shù)據(jù)庫原理之數(shù)據(jù)庫保護課后習題及答案..........................................48

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

數(shù)據(jù)庫原理之數(shù)據(jù)庫概論課后習題及答案

1.1名詞解釋

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

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

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

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

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

面向?qū)ο笮虳BMS。

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

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

統(tǒng)。

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

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

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

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

系”,記為“1:N”。

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

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

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

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

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

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

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

涉及到計算機系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),所以稱為“結(jié)構(gòu)數(shù)據(jù)模型“。結(jié)構(gòu)數(shù)據(jù)模型應包含:

數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)完整性約束三部分。它主要有:層次、網(wǎng)狀、關系三種模型。

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

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

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

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

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

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

安全性等要求。

三級模式與二級映像

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

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

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

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

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

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

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

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

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

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

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

是對模式的修改盡量不影響概念模式。

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

那么外模式/模式映象也要進行相應的修改,使外模式盡可能保持不變。也就是對概念模式

的修改盡量不影響外模式和應用程序。

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

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

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

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

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

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

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

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

稱為交互型DML。

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

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

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

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

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

Notice:以上關于DML的各個概念單獨出現(xiàn)時,首先要解釋DML的含義。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

說明。

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

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

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

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

相應值域為字符、字符串、整數(shù)和字符串型。

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

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

年齡、性別等字段。

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

以定義為能完整地描述一個實體的字段集。如:一個學生記錄,由有序的字段集(學號、姓

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

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

聯(lián)系:

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

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

區(qū)別:

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

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

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

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

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

1.6為某百貨公司設計一個ER模型。

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

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

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

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

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

實體:商店(商店編號,店名,店址,店經(jīng)理)

商品(商品編號,商品名,單價,產(chǎn)地)

職工(職工編號,職工名,性別,工資)

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

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

ER圖:

關系模式集:商店模式(商店編號,店名,店址,店經(jīng)理)

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

職工模式(職工編號,職工名,性別,工資,商店編號,開始時間)

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

ER模型的主要特點:

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

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

層次模型的特點:

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

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

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

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

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

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

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

關系模型的特點:

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

問技術等細節(jié)。

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

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

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

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

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

制。

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

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

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

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

用戶對數(shù)據(jù)庫進行操作,DBMS把操作從應用程序帶到外部級、概念級、再導向內(nèi)部級,

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

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

1.11試述DBMS的主要功能。

DBMS的主要功能有:

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

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

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

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

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

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

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

DBMS對數(shù)據(jù)庫的保護主要通過四個方面實現(xiàn):

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

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

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

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

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

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

護的功能。

主要有四個實用程序:

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

(2)備份程序(backup)

(3)文件重組織程序

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

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

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

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

器,查詢運行核心程序

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

緩沖區(qū)管理器

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

1.15DBS由哪幾個部分組成?

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

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

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

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

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

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

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

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

DBA的主要職責有五點:

(1)概念模式定義

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

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

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

(5)完整性約束的說明

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

參照教材p24-25?

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

使用DBS的用戶有四類:

1)DBA

2)專業(yè)用戶

3)應用程序員

4)最終用戶

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

DBMS的查詢處理器可分成四個成分:

1)DML編譯器

2)嵌入型DML的預編譯器

3)DDL編譯器

4)查詢運行核心程序

(各成分功能參照P24)

1.20DBMS的存儲處理器有哪些功能?

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

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

2)事務管理器

3)文件管理器

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

(各成分功能參照P25)

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

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

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

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

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

數(shù)據(jù)庫原理之關系模型課后習題及答案

2.1名詞解釋

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

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

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

(3)關系實例:元組的集合稱為關系和實例,一個關系即一張二維表格。

(4)屬性:實體的一個特征。在關系模型中,字段稱為屬性。

(5)域:在關系中,每一個屬性都有一個取值范圍,稱為屬性的值域,簡稱域。

(6)元組:在關系中,記錄稱為元組。元組對應表中的行;表示一個實體。

(7)超鍵:在關系中能唯一標識元組的屬性集稱為關系模式的超鍵。

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

(9)主鍵:用戶選作元組標識的一個候選鍵為主鍵。(單獨出現(xiàn),要先解釋“候選鍵”)

(10)外鍵:某個關系的主鍵相應的屬性在另一關系中出現(xiàn),此時該主鍵在就是另一關系的外

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

此時S#就是關系SC的外鍵。

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

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

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

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

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

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

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

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

和C語言等。

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

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

(15)無限關系:當一個關系中存在無窮多個元組時,此關系為無限關系。如元組表達式

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

(16)無窮驗證:在驗證公式時需對無窮多個元組進行驗證就是無窮驗證。如驗證公式(W

u)(P(u))的真假時需對所有的元組u進行驗證,這是一個無窮驗證的問題。

2.2為什么關系中的元組沒有先后順序?

因為關系是一個元組的集合,而無組在集合中的順序無關緊要。因此不考慮元組間的順

序,即沒有行序。

2.3為什么關系中不允許有重復元組?

因為關系是一個元組的集合,而集合中的元素不允許重復出現(xiàn),因此在關系模型中對關

系作了限制,關系中的元組不能重復,可以用鍵來標識唯一的元組。

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

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

1)關系中每一個屬性值都是不可分解的。

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

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

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

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

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

數(shù)之積。

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

對應屬性值相等的兀組;

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

抻重復的公共屬性列。當兩個關系沒有公共屬性時,自然連接就轉(zhuǎn)化我笛卡爾積。

2.6設有關系R和S(如下:)

RABCS:ABC

745

723

3

3

計算:

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設有關系R和S(如下:)

ABS:BC

ab1bc

cb1ea

debd

計算:

RXsABCRXsAR.BS.BC

B<C

acac

adad

cbccbc

cbdcbd

dea

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

abea

cbbc

d6bd

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

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

這個表達式的意思是:從關系R中選擇元組,該元組滿足:第1分量值或第2分量值

至少有一個不等于其他某元組。由于R是二元關系,只有兩個分量,由于沒有重復元

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

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

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

(1)漢語表達式:

從RxS關系中選擇滿足下列條件的元組:

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

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

(2)元組表達式:{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)域表達式:{xvl(3y)(3z)(3u)(R(xyz)AS(uv)A(y=uVz=u))}

2.10假設R和S都是二元關系,試把元組表達式{tlR(t)AUu)(S(u)A

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

式。

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

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

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

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

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

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

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

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

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

換成等價的元組表達式:

(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設有三個關系:

S(S#,SNAME,AGE,SEX)

SC(S#,C#,GRADE)

C(C#,CNAME,TEACHER)

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

2.14試用元組表達式表示上題中各個查詢語句。

⑴檢索LIU老師所授課程的課程號、課程名。

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

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

⑵檢索年齡大于23歲的男學生的學號與姓名。

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

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

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

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老師所授課程中一門課程的女學生的姓名。

^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同學不學的課程號。

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

或者,

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

{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中的所有元組,如果學號與C中所選元組相同的話,其在S

中對應的姓名肯定不是‘wang'。)

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

(6)檢索至少選修兩門課程的學生學號。

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

SC自乘之后,再選擇(同一個學號中兩個課程號不同的元組),投影。

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

⑺檢索全部學生都選修的課程的課程號與課程名。

R#,CNAME(CX(ns*,c#(SC)的(S)))(涉及到全部值時,應用除法,“除數(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老師所授課程的學生學號。

JtS#(OTEACHER=LlU,(SCMC))

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

如果LIU老師有多門課程,則選修課程包含LIU老師所授全部課程的學生學號為:

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

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

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

優(yōu)化的關系代數(shù)表達式。

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

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

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

2.16在2.15題中,

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

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

7T

CNAME,TEACHER

o

SEX='女'

S#,SNAMEJACE,SBX,C#J

CWAME,TEACHER,GRADE

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

2.17為什么要對關系代數(shù)表達式進行優(yōu)化?

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

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

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

數(shù)據(jù)庫原理之關系數(shù)據(jù)庫SQL語言課后習題及答案

3.1名詞解釋

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

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

索引等)的定義。

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

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

(3)基本表:在SQL中,把傳統(tǒng)的關系模型中的關系模式稱為基本表(BaseTable)。基本表

是實際存儲在數(shù)據(jù)庫中的表,對應一個關系。

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

個存儲文件與外部存儲器上一個物理文件對應。

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

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

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

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

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

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

存儲視圖所對應的數(shù)據(jù)。

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

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

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

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

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

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

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

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

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

(16)卷游標:為了克服游標在推進時不能返回的不便,SQL2提供了卷游標技術。卷游標在

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

3.2對于教學數(shù)據(jù)庫的三個基本表

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

學習SC(S#,C#,GRADE)

課程C(C#,CNAME,TEACHER)

試用SQL的查詢語句表達下列查詢:

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

SELECTC#,CNAME

FROMC

WHERETEACHER=tLIU,

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

SELECTS#,SNAME

FROMS

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

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

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同學不學的課程的課程號。

SELECTC#

FROMC

WHEREC#NOTIN

(SELECTC#

FROMSC

WHERES#IN

(SELECTS#

FROMS

WHERESNAME=,WANG,))

(5)檢索至少選修兩門課程的學生學號。

SELECTDISTINCTX.SNO

FROMSCX,SCY

WHEREX.SNO=Y.SNOANDX.CNOoY.CNO

Notice:對表SC進行自連接,X,Y是SC的兩個別名。

(6)檢索全部學生都選修的課程的課程號與課程名。

SELECTC#,CNAME

FROMC

WHERENOTEXISTS

(SELECT*

FROMS

WHERES#NOTIN

(SELECT*

FROMSC

WHERESC.C#=C.C#))

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

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

或者SELECT*

SELECT*FROMS

FROMSWHERENOTEXISTS

WHERES#NOTIN(SELECT*

(SELECT*FROMSC

FROMSCWHERES.S#=C.S#

WHERESC.C#=C.C#)AND

SC.C#=C.C#)

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

SELECTDISTINCTS#

FROMSC

WHEREC#IN

(SELECTC#

FROMC

WHERETEACHER='LIU'))

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

表達下列關系代數(shù)表達式:

(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設有兩個基本表R(A,B,C)和S(A,B,C)試用SQL查詢語

句表達下列關系代數(shù)表達式:

(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語言的關系代數(shù)特點和元組演算特點。

(P61-62)

3.6試用SQL查詢語句表達下列對教學數(shù)據(jù)庫中三個基本表S、SC、C的查

詢:

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

SELECTCOUNT(DISTINCTC#)FROMSC

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

SELECTAVG(AGE)

FROMS

WHERES#IN

(SELECTS#

FROMSC

WHEREC#=,C4,)

或者,

SELECTAVG(AGE)

FROMS,SC

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

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

SELECTCNAME,AVG(GRADE)

FROMSC,C

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

GROUPBYC#

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

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

SELECTDISTINCTC#,COUNT(S#)

FROMSC

GROUPBYC#

HAVINGCOUNT(S#)>10

ORDERBY2DESC,C#ASC

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

SELECTX.SNAME

FROMSASX,SASY

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

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

SELECTSNAME,AGE

FROMS

WHERESNAMELIKE'WANG%'

(7)在SC中檢索成績?yōu)榭罩档膶W生學號和課程號。

SELECTS#,C#

FROMSC

WHEREGRADEISNULL

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

SELECTSNAME,AGE

FROMSASX

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

WHEREY.SEX;女)

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

SELECTSNAME,AGE

FROMSASX

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

Y.SEX=女)

3.7試用SQL更新語句表達對教學數(shù)據(jù)庫中三個基本表S、SC、C的各個更

新操作:

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

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

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

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

INSERTINTOSTUDENT。#,SNAME,SEX)

SELECTS#,SNAME,SEX

FROMSWHERENOTEXISTS

(SELECT*FROMSCWHERE

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

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

DELETEFROMSC

WHEREGRADEISNULL

(4)把WANG同學的學習選課和成績?nèi)縿h去。

DELETEFROMSC

WHERES#IN

(SELECTS#

FROMS

WHERESNAME^WANG)

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

UPDATESC

SETGRADE=NULL

WHEREGRADE<60ANDC#IN

(SELECTC#

FROMC

WHERECNAME=,MATHS,)

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

UPDATESC

SETGRADE=GRADE*1.05

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

FROMSWHERESEX='F')

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

于75分時提高4%(用兩個UPDATE語句實現(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中提到“倉庫管理”關系模型有五個關系模式:

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

項目PROJECT(J#,JNAME,DATE)

供應商SUPPLIER(S#,SNAME,SADDR)

供應P_P(J#,P#,TOTOAL)

采購P_S(P#,S#,QUANTITY)

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

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三個基本表的自然聯(lián)接定義為?個視圖VIEW1,

PART、P_S、SUPPLIER三個基本表的自然聯(lián)接定義為一個視圖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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論