數(shù)據(jù)庫系統(tǒng)概論第五版課后習(xí)題答案王珊

真誠為您提供優(yōu)質(zhì)參考資料,若有不當(dāng)之處,請指正第1章 緒論1 .試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)的概念答: ( l )數(shù)據(jù)( Data ) :描述事物的符號記錄稱為數(shù)據(jù)數(shù)據(jù)的種類有數(shù)字、文字、圖形、圖像、聲音、正文等數(shù)據(jù)與其語義是不可分的解析在現(xiàn)代計算機系統(tǒng)中數(shù)據(jù)的概念是廣義的早期的計算機系統(tǒng)主要用于科學(xué)計算,處理的數(shù)據(jù)是整數(shù)、實數(shù)、浮點數(shù)等傳統(tǒng)數(shù)學(xué)中的數(shù)據(jù)現(xiàn)代計算機能存儲和處理的對象十分廣泛,表示這些對象的數(shù)據(jù)也越來越復(fù)雜數(shù)據(jù)與其語義是不可分的 500 這個數(shù)字可以表示一件物品的價格是 500 元,也可以表示一個學(xué)術(shù)會議參加的人數(shù)有 500 人,還可以表示一袋奶粉重 500 克 ( 2 )數(shù)據(jù)庫( DataBase ,簡稱 DB ) :數(shù)據(jù)庫是長期儲存在計算機內(nèi)的、有組織的、可共享的數(shù)據(jù)集合數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享 3 )數(shù)據(jù)庫系統(tǒng)( DataBas Sytem ,簡稱 DBS ) :數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員構(gòu)成。
解析數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫是兩個概念數(shù)據(jù)庫系統(tǒng)是一個人一機系統(tǒng),數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的一個組成部分但是在日常工作中人們常常把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫希望讀者能夠從人們講話或文章的上下文中區(qū)分“數(shù)據(jù)庫系統(tǒng)”和“數(shù)據(jù)庫”,不要引起混淆 ( 4 )數(shù)據(jù)庫管理系統(tǒng)( DataBase Management sytem ,簡稱 DBMs ) :數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,用于科學(xué)地組織和存儲數(shù)據(jù)、高效地獲取和維護數(shù)據(jù) DBMS 的主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫的運行管理功能、數(shù)據(jù)庫的建立和維護功能解析 DBMS 是一個大型的復(fù)雜的軟件系統(tǒng),是計算機中的基礎(chǔ)軟件目前,專門研制 DBMS 的廠商及其研制的 DBMS 產(chǎn)品很多著名的有美國 IBM 公司的 DBZ 關(guān)系數(shù)據(jù)庫管理系統(tǒng)和 IMS 層次數(shù)據(jù)庫管理系統(tǒng)、美國 Oracle 公司的 orade 關(guān)系數(shù)據(jù)庫管理系統(tǒng)、 s 油 ase 公司的 s 油 ase 關(guān)系數(shù)據(jù)庫管理系統(tǒng)、美國微軟公司的 SQL Serve ,關(guān)系數(shù)據(jù)庫管理系統(tǒng)等 2 .使用數(shù)據(jù)庫系統(tǒng)有什么好處?答:使用數(shù)據(jù)庫系統(tǒng)的好處是由數(shù)據(jù)庫管理系統(tǒng)的特點或優(yōu)點決定的。
使用數(shù)據(jù)庫系統(tǒng)的好處很多,例如,可以大大提高應(yīng)用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫系統(tǒng)管理人員維護的負擔(dān),等等使用數(shù)據(jù)庫系統(tǒng)可以大大提高應(yīng)用開發(fā)的效率因為在數(shù)據(jù)庫系統(tǒng)中應(yīng)用程序不必考慮數(shù)據(jù)的定義、存儲和數(shù)據(jù)存取的具體路徑,這些工作都由 DBMS 來完成用一個通俗的比喻,使用了 DBMS 就如有了一個好參謀、好助手,許多具體的技術(shù)工作都由這個助手來完成開發(fā)人員就可以專注于應(yīng)用邏輯的設(shè)計,而不必為數(shù)據(jù)管理的許許多多復(fù)雜的細節(jié)操心還有,當(dāng)應(yīng)用邏輯改變,數(shù)據(jù)的邏輯結(jié)構(gòu)也需要改變時,由于數(shù)據(jù)庫系統(tǒng)提供了數(shù)據(jù)與程序之間的獨立性,數(shù)據(jù)邏輯結(jié)構(gòu)的改變是 DBA 的責(zé)任,開發(fā)人員不必修改應(yīng)用程序,或者只需要修改很少的應(yīng)用程序,從而既簡化了應(yīng)用程序的編制,又大大減少了應(yīng)用程序的維護和修改使用數(shù)據(jù)庫系統(tǒng)可以減輕數(shù)據(jù)庫系統(tǒng)管理人員維護系統(tǒng)的負擔(dān)因為 DBMS 在數(shù)據(jù)庫建立、運用和維護時對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,包括數(shù)據(jù)的完整性、安全性、多用戶并發(fā)控制、故障恢復(fù)等,都由 DBMS 執(zhí)行總之,使用數(shù)據(jù)庫系統(tǒng)的優(yōu)點是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,提高數(shù)據(jù)的利用率和一致性,又有利于應(yīng)用程序的開發(fā)和維護。
讀者可以在自己今后的工作中結(jié)合具體應(yīng)用,認真加以體會和總結(jié) 3 .試述文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別和XXX答:文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別是:文件系統(tǒng)面向某一應(yīng)用程序,共享性差,冗余度大,數(shù)據(jù)獨立性差,記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu),由應(yīng)用程序自己控制數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實世界,共享性高,冗余度小,具有較高的物理獨立性和一定的邏輯獨立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)的安全性、完整性、并發(fā)控制和恢復(fù)能力文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的XXX是:文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)都是計算機系統(tǒng)中管理數(shù)據(jù)的軟件解析文件系統(tǒng)是操作系統(tǒng)的重要組成部分;而 DBMS 是獨立于操作系統(tǒng)的軟件但是 DBMS 是在操作系統(tǒng)的基礎(chǔ)上實現(xiàn)的;數(shù)據(jù)庫中數(shù)據(jù)的組織和存儲是通過操作系統(tǒng)中的文件系統(tǒng)來實現(xiàn)的4 .舉出適合用文件系統(tǒng)而不是數(shù)據(jù)庫系統(tǒng)的例子;再舉出適合用數(shù)據(jù)庫系統(tǒng)的應(yīng)用例子答 :( l )適用于文件系統(tǒng)而不是數(shù)據(jù)庫系統(tǒng)的應(yīng)用例子數(shù)據(jù)的備份、軟件或應(yīng)用程序使用過程中的臨時數(shù)據(jù)存儲一般使用文件比較合適早期功能比較簡單、比較固定的應(yīng)用系統(tǒng)也適合用文件系統(tǒng) ( 2 )適用于數(shù)據(jù)庫系統(tǒng)而非文件系統(tǒng)的應(yīng)用例子目前,幾乎所有企業(yè)或部門的信息系統(tǒng)都以數(shù)據(jù)庫系統(tǒng)為基礎(chǔ),都使用數(shù)據(jù)庫。
例如,一個工廠的管理信息系統(tǒng)(其中會包括許多子系統(tǒng),如庫存管理系統(tǒng)、物資采購系統(tǒng)、作業(yè)調(diào)度系統(tǒng)、設(shè)備管理系統(tǒng)、人事管理系統(tǒng)等),學(xué)校的學(xué)生管理系統(tǒng),人事管理系統(tǒng),圖書館的圖書管理系統(tǒng),等等,都適合用數(shù)據(jù)庫系統(tǒng)希望讀者能舉出自己了解的應(yīng)用例子5 .試述數(shù)據(jù)庫系統(tǒng)的特點答:數(shù)據(jù)庫系統(tǒng)的主要特點有: ( l )數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別解析注意這里的“整體’夕兩個字在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)不再針對某一個應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化不僅數(shù)據(jù)是結(jié)構(gòu)化的,而且數(shù)據(jù)的存取單位即一次可以存取數(shù)據(jù)的大小也很靈活,可以小到某一個數(shù)據(jù)項(如一個學(xué)生的姓名),大到一組記錄(成千上萬個學(xué)生記錄)而在文件系統(tǒng)中,數(shù)據(jù)的存取單位只有一個:記錄,如一個學(xué)生的完整記錄 ( 2 )數(shù)據(jù)的共享性高,冗余度低,易擴充數(shù)據(jù)庫的數(shù)據(jù)不再面向某個應(yīng)用而是面向整個系統(tǒng),因此可以被多個用戶、多個應(yīng)用以多種不同的語言共享使用由于數(shù)據(jù)面向整個系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)庫系統(tǒng)彈性大,易于擴充解析數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲空間,同時還能夠避免數(shù)據(jù)之間的不相容性與不一致性。
所謂“數(shù)據(jù)面向某個應(yīng)用”是指數(shù)據(jù)結(jié)構(gòu)是針對某個應(yīng)用設(shè)計的,只被這個應(yīng)用程序或應(yīng)用系統(tǒng)使用,可以說數(shù)據(jù)是某個應(yīng)用的“私有資源”所謂“彈性大”是指系統(tǒng)容易擴充也容易收縮,即應(yīng)用增加或減少時不必修改整個數(shù)據(jù)庫的結(jié)構(gòu),只需做很少的改動可以取整體數(shù)據(jù)的各種子集用于不同的應(yīng)用系統(tǒng),當(dāng)應(yīng)用需求改變或增加時,只要重新選取不同的子集或加上一部分數(shù)據(jù),便可以滿足新的需求 ( 3 )數(shù)據(jù)獨立性高數(shù)據(jù)獨立性包括數(shù)據(jù)的物理獨立性和數(shù)據(jù)的邏輯獨立性數(shù)據(jù)庫管理系統(tǒng)的模式結(jié)構(gòu)和二級映像功能保證了數(shù)據(jù)庫中的數(shù)據(jù)具有很高的物理獨立性和邏輯獨立性 4 )數(shù)據(jù)由 DBMS 統(tǒng)一管理和控制數(shù)據(jù)庫的共享是并發(fā)的共享,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時存取數(shù)據(jù)庫中同一個數(shù)據(jù)為此, DBMS 必須提供統(tǒng)一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性保護、數(shù)據(jù)的完整性檢查、并發(fā)控制和數(shù)據(jù)庫恢復(fù)解析 DBMS 數(shù)據(jù)控制功能包括四個方面:數(shù)據(jù)的安全性保護:保護數(shù)據(jù)以防止不合法的使用造成的數(shù)據(jù)的泄密和破壞;數(shù)據(jù)的完整性檢查:將數(shù)據(jù)控制在有效的范圍內(nèi),或保證數(shù)據(jù)之間滿足一定的關(guān)系;并發(fā)控制:對多用戶的并發(fā)操作加以控制和協(xié)調(diào),保證并發(fā)操作的正確性;數(shù)據(jù)庫恢復(fù):當(dāng)計算機系統(tǒng)發(fā)生硬件故障、軟件故障,或者由于操作員的失誤以及故意的破壞影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫部分或全部數(shù)據(jù)的丟失時,能將數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為完整狀態(tài)或一致狀態(tài))。
下面可以得到“什么是數(shù)據(jù)庫”的一個定義:數(shù)據(jù)庫是長期存儲在計算機內(nèi)有組織的大量的共享的數(shù)據(jù)集合,它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨立性 DBMS 在數(shù)據(jù)庫建立、運用和維護時對數(shù)據(jù)庫進行統(tǒng)一控制,以保證數(shù)據(jù)的完整性、安全性,并在多用戶同時使用數(shù)據(jù)庫時進行并發(fā)控制,在發(fā)生故障后對系統(tǒng)進行恢復(fù)數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序為中心轉(zhuǎn)向圍繞共享的數(shù)據(jù)庫為中心的新階段 6 .?dāng)?shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?答:( l )數(shù)據(jù)庫定義功能; ( 2 )數(shù)據(jù)存取功能; ( 3 )數(shù)據(jù)庫運行管理; ( 4 )數(shù)據(jù)庫的建立和維護功能7 .什么是概念模型?試述概念模型的作用答:概念模型,也稱信息模型,是按用戶的觀點來對數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫設(shè)計概念模型實際上是現(xiàn)實世界到機器世界的一個中間層次概念模型用于信息世界的建模,是現(xiàn)實世界到信息世界的第一層抽象,是數(shù)據(jù)庫設(shè)計人員進行數(shù)據(jù)庫設(shè)計的有力工具,也是數(shù)據(jù)庫設(shè)計人員和用戶之間進行交流的語言8.定義并解釋概念模型中以下術(shù)語:實體,實體型,實體集,實體之間的XXX答:實體:客觀存在并可以相互區(qū)分的事物叫實體實體型:具有相同屬性的實體具有相同的特征和性質(zhì),用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。
實體集:同型實體的集合稱為實體集;實體之間的XXX:通常是指不同實體型的實體集之間的XXX,實體之間的XXX有一對一,一對多和多對多等多種類型 9 .試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個要素答:數(shù)據(jù)模型是數(shù)據(jù)庫中用來對現(xiàn)實世界進行抽象的工具,是數(shù)據(jù)庫中用于提供信息表示和操作手段的形式構(gòu)架一般地講,數(shù)據(jù)模型是嚴(yán)格定義的概念的集合這些概念精確描述了系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件因此數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成 ( l )數(shù)據(jù)結(jié)構(gòu):是所研究的對象類型的集合,是對系統(tǒng)靜態(tài)特性的描述 ( 2 )數(shù)據(jù)操作:是指對數(shù)據(jù)庫中各種對象(型)的實例(值)允許進行的操作的集合,包括操作及有關(guān)的操作規(guī)則,是對系統(tǒng)動態(tài)特性的描述 ( 3 )數(shù)據(jù)的約束條件:是一組完整性規(guī)則的集合完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其XXX所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容解析數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)中最重要的概念之一必須通過 《 概論 》 的學(xué)習(xí)真正掌握數(shù)據(jù)模型的概念和作用數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)任何一個 DBMS 都以某一個數(shù)據(jù)模型為基礎(chǔ),或者說支持某一個數(shù)據(jù)模型。
數(shù)據(jù)庫系統(tǒng)中,模型有不同的層次根據(jù)模型應(yīng)用的不同目的,可以將模型分成兩類或者說兩個層次:一類是概念模型,是按用戶的觀點來對數(shù)據(jù)和信息建模,用于信息世界的建模,強調(diào)語義表達能力,概念簡單清晰;另一類是數(shù)據(jù)模型,是按計算機系統(tǒng)的觀點對數(shù)據(jù)建模,用于機器世界,人們可以用它定義、操縱數(shù)據(jù)庫中的數(shù)據(jù),一般需要有嚴(yán)格的形式化定義和一組嚴(yán)格定義了語法和語義的語言,并有一些規(guī)定和限制,便于在機器上實現(xiàn)10.試述層次模型的概念,舉出三個層次模型的實例答: ( l )教員學(xué)生層次數(shù)據(jù)庫模型( 2 )行政機構(gòu)層次數(shù)據(jù)庫模型( 3 )行政區(qū)域?qū)哟螖?shù)據(jù)庫模型11.試述網(wǎng)狀模型的概念,舉出三個網(wǎng)狀模型的實例答:滿足下面兩個條件的基本層次XXX集合為網(wǎng)狀模型 ( l )允許一個以上的結(jié)點無雙親; ( 2 )一個結(jié)點可以有多于一個的雙親實例 1 : 實例 2 : 實例 3 : 12 .試述網(wǎng)狀、層次數(shù)據(jù)庫的優(yōu)缺點答:層次模型的優(yōu)點主要有: ( l )模型簡單,對具有一對多層次關(guān)系的部門描述非常自然、直觀,容易理解,這是層次數(shù)據(jù)庫的突出優(yōu)點; ( 2 )用層次模型的應(yīng)用系統(tǒng)性能好,特別是對于那些實體間XXX是固定的且預(yù)先定義好的應(yīng)用,采用層次模型來實現(xiàn),其性能優(yōu)于關(guān)系模型; ( 3 )層次數(shù)據(jù)模型提供了良好的完整性支持。
層次模型的缺點主要有: ( l )現(xiàn)實世界中很多XXX是非層次性的,如多對多XXX、一個結(jié)點具有多個雙親等,層次模型不能自然地表示這類XXX,只能通過引入冗余數(shù)據(jù)或引入虛擬結(jié)點來解決; ( 2 )對插入和刪除操作的限制比較多; ( 3 )查詢子女結(jié)點必須通過雙親結(jié)點網(wǎng)狀數(shù)據(jù)模型的優(yōu)點主要有: ( l )能夠更為直接地描述現(xiàn)實世界,如一個結(jié)點可以有多個雙親; ( 2 )具有良好的性能,存取效率較高網(wǎng)狀數(shù)據(jù)模型的缺點主要有: ( l )結(jié)構(gòu)比較復(fù)雜,而且隨著應(yīng)用環(huán)境的擴大,數(shù)據(jù)庫的結(jié)構(gòu)就變得越來越復(fù)雜,不利于最終用戶掌握; ( 2 )其 DDL 、 DML 語言復(fù)雜,用戶不容易使用由于記錄之間XXX是通過存取路徑實現(xiàn)的,應(yīng)用程序在訪問數(shù)據(jù)時必須選擇適當(dāng)?shù)拇嫒÷窂揭虼?,用戶必須了解系統(tǒng)結(jié)構(gòu)的細節(jié),加重了編寫應(yīng)用程序的負擔(dān)13.試述關(guān)系模型的概念,定義并解釋以下術(shù)語: ( l )關(guān)系( 2 )屬性( 3 )域( 4 )元組 ( 5 )主碼( 6 )分量( 7 )關(guān)系模式答:關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成在用戶觀點下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。
( l )關(guān)系:一個關(guān)系對應(yīng)通常說的一張表; ( 2 )屬性:表中的一列即為一個屬性; ( 3 )域:屬性的取值范圍; ( 4 )元組:表中的一行即為一個元組; ( 5 )主碼:表中的某個屬性組,它可以惟一確定一個元組; ( 6 )分量:元組中的一個屬性值; ( 7 )關(guān)系模式:對關(guān)系的描述,一般表示為關(guān)系名(屬性 1 ,屬性 2 , … ,屬性 n ) 14 .試述關(guān)系數(shù)據(jù)庫的特點答:關(guān)系數(shù)據(jù)模型具有下列優(yōu)點: ( l )關(guān)系模型與非關(guān)系模型不同,它是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的 ( 2 )關(guān)系模型的概念單一,無論實體還是實體之間的XXX都用關(guān)系表示,操作的對象和操作的結(jié)果都是關(guān)系,所以其數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用 ( 3 )關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作當(dāng)然,關(guān)系數(shù)據(jù)模型也有缺點,其中最主要的缺點是,由于存取路徑對用戶透明,查詢效率往往不如非關(guān)系數(shù)據(jù)模型因此為了提高性能,必須對用戶的查詢請求進行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的難度 15.試述數(shù)據(jù)庫系統(tǒng)三級模式結(jié)構(gòu),這種結(jié)構(gòu)的優(yōu)點是什么?答:數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。
參見書上圖 1 . 29 ) 外模式,亦稱子模式或用戶模式,是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示模式,亦稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu)外模式涉及的是數(shù)據(jù)的局部邏輯結(jié)構(gòu),通常是模式的子集內(nèi)模式,亦稱存儲模式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)部的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存儲方式的描述數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個抽象級別,它把數(shù)據(jù)的具體組織留給 DBMs 管理,使用戶能邏輯抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機中的表示和存儲為了能夠在內(nèi)部實現(xiàn)這三個抽象層次的XXX和轉(zhuǎn)換,數(shù)據(jù)庫系統(tǒng)在這三級模式之間提供了兩層映像:外模式/模式映像和模式/內(nèi)模式映像正是這兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性16 .定義并解釋以下術(shù)語:模式、外模式、內(nèi)模式、 DDL 、 DML 模式、外模式、內(nèi)模式,亦稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu)。
外模式涉及的是數(shù)據(jù)的局部邏輯結(jié)構(gòu),通常是模式的子集內(nèi)模式,亦稱存儲模式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)部的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存儲方式的描述 DDL :數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫模式、外模式、內(nèi)模式的語言 DML :數(shù)據(jù)操縱語言,用來對數(shù)據(jù)庫中的數(shù)據(jù)進行查詢、插入、刪除和修改的語句 17.什么叫數(shù)據(jù)與程序的物理獨立性?什么叫數(shù)據(jù)與程序的邏輯獨立性?為什么數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)與程序的獨立性?答:數(shù)據(jù)與程序的邏輯獨立性:當(dāng)模式改變時(例如增加新的關(guān)系、新的屬性、改變屬性的數(shù)據(jù)類型等),由數(shù)據(jù)庫管理員對各個外模式/模式的映像做相應(yīng)改變,可以使外模式保持不變應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨立性,簡稱數(shù)據(jù)的邏輯獨立性數(shù)據(jù)與程序的物理獨立性:當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了,由數(shù)據(jù)庫管理員對模式/內(nèi)模式映像做相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨立性,簡稱數(shù)據(jù)的物理獨立性數(shù)據(jù)庫管理系統(tǒng)在三級模式之間提供的兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性 18 .試述數(shù)據(jù)庫系統(tǒng)的組成答:數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。
19 .?dāng)?shù)據(jù)庫管理員、系統(tǒng)分析員、數(shù)據(jù)庫設(shè)計人員、應(yīng)用程序員的職責(zé)是什么?答:數(shù)據(jù)庫管理員的職責(zé):(1)決定數(shù)據(jù)庫中的信息內(nèi)容和結(jié)構(gòu);(2)決定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取策略;(3)定義數(shù)據(jù)的安全性要求和完整性約束條件;(4)監(jiān)控數(shù)據(jù)庫的使用和運行;(5)數(shù)據(jù)庫的改進和重組、重構(gòu)系統(tǒng)分析員負責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,系統(tǒng)分析員要和用戶及 DBA 相結(jié)合,確定系統(tǒng)的硬件、軟件配置,并參與數(shù)據(jù)庫系統(tǒng)的概要設(shè)計數(shù)據(jù)庫設(shè)計人員負責(zé)數(shù)據(jù)庫中數(shù)據(jù)的確定、數(shù)據(jù)庫各級模式的設(shè)計數(shù)據(jù)庫設(shè)計人員必須參加用戶需求調(diào)查和系統(tǒng)分析,然后進行數(shù)據(jù)庫設(shè)計在很多情況下,數(shù)據(jù)庫設(shè)計人員就由數(shù)據(jù)庫管理員擔(dān)任應(yīng)用程序員負責(zé)設(shè)計和編寫應(yīng)用系統(tǒng)的程序模塊,并進行調(diào)試和安裝第二章 關(guān)系數(shù)據(jù)庫1 .試述關(guān)系模型的三個組成部分答:關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成2 .試述關(guān)系數(shù)據(jù)語言的特點和分類答:關(guān)系數(shù)據(jù)語言可以分為三類:關(guān)系代數(shù)語言關(guān)系演算語言:元組關(guān)系演算語言和域關(guān)系演算語言SQL:具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言這些關(guān)系數(shù)據(jù)語言的共同特點是,語言具有完備的表達能力,是非過程化的集合操作語言,功能強,能夠嵌入高級語言中使用。
3 (略)4 .5 . 述關(guān)系模型的完整性規(guī)則在參照完整性中,為什么外部碼屬性的值也可以為空?什么情況下才可以為空?答:實體完整性規(guī)則是指若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值即屬性F本身不是主屬性,則可以取空值,否則不能取空值6.設(shè)有一個SPJ數(shù)據(jù)庫,包括S,P,J,SPJ四個關(guān)系模式:1)求供應(yīng)工程J1零件的供應(yīng)商號碼SNO:πSno(σJno=‘J1’(SPJ))2)求供應(yīng)工程J1零件P1的供應(yīng)商號碼SNO:πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號碼SNO:πSno(πSno,,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR=’紅‘ (P)))4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號JNO:πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘紅‘ (S∞SPJ∞P)5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO:πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))7. 試述等值連接與自然連接的區(qū)別和XXX。
答:連接運算符是“=”的連接運算稱為等值連接它是從關(guān)系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉8.關(guān)系代數(shù)的基本運算有哪些 ? 如何用這些基本運算來表示其他運算? 答:并、差、笛卡爾積、投影和選擇5種運算為基本的運算其他3種運算,即交、連接和除,均可以用這5種基本運算來表達第三章 關(guān)系數(shù)據(jù)庫語言SQL1 .試述 sQL 語言的特點答:(l)綜合統(tǒng)一 sQL 語言集數(shù)據(jù)定義語言 DDL 、數(shù)據(jù)操縱語言 DML 、數(shù)據(jù)控制語言 DCL 的功能于一體2)高度非過程化用 sQL 語言進行數(shù)據(jù)操作,只要提出“做什么”,而無需指明“怎么做”,因此無需了解存取路徑,存取路徑的選擇以及 sQL 語句的操作過程由系統(tǒng)自動完成 (3)面向集合的操作方式 sQL 語言采用集合操作方式,不僅操作對象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合4)以同一種語法結(jié)構(gòu)提供兩種使用方式 sQL 語言既是自含式語言,又是嵌入式語言作為自含式語言,它能夠獨立地用于聯(lián)機交互的使用方式;作為嵌入式語言,它能夠嵌入到高級語言程序中,供程序員設(shè)計程序時使用。
5)語言簡捷,易學(xué)易用2. 3 (1) select * from S where A='10'; (2) select A,B from S; (3) select A,B,S.C,S.D,E,F from S ,T where S.C=T.C and S.D=T.D; (4) select * from S ,T where S.C=T.C; (5) select * from S ,T where S.A ( l )求供應(yīng)工程 Jl 零件的供應(yīng)商號碼 SNO ;SELECT DIST SNO FROM SPJ WHERE JNO=’J1’ ( 2 )求供應(yīng)工程 Jl 零件 Pl 的供應(yīng)商號碼 SNO ; SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'( 3 )求供應(yīng)工程 Jl 零件為紅色的供應(yīng)商號碼 SNO ; SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='紅'( 4 )求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號 JNO ;SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='紅' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO) 5 )求至少用了供應(yīng)商 Sl 所供應(yīng)的全部零件的工程號 JNO ;由于VFP不允許子查詢嵌套太深,將查詢分為兩步A、查詢S1供應(yīng)商供應(yīng)的零件號SELECT DIST PNO FROM SPJ WHERE SNO='S1'結(jié)果是(P1,P2)B、查詢哪一個工程既使用P1零件又使用P2零件。 SELECT JNO FROM SPJ WHERE PNO='P1' AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2')5.針對上題中的四個表試用SQL語言完成以下各項操作:(1)找出所有供應(yīng)商的姓名和所在城市 SELECT SNAME,CITY FROM S(2)找出所有零件的名稱、顏色、重量SELECT PNAME,COLOR,WEIGHT FROM P(3)找出使用供應(yīng)商S1所供應(yīng)零件的工程號碼 SELECT DIST JNO FROM SPJ WHERE SNO='S1'(4)找出工程項目J2使用的各種零件的名稱及其數(shù)量SELECT PNAME,QTY FROM SPJ,P WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'(5)找出上海廠商供應(yīng)的所有零件號碼SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY='上海'(6)出使用上海產(chǎn)的零件的工程名稱SELECT JNAME FROM SPJ,S,JWHERE S.SNO=SPJ.SNO AND S.CITY='上海' AND J.JNO=SPJ.JNO(7)找出沒有使用天津產(chǎn)的零件的工程號碼。 注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY='天津') 適用于JNO是唯一或不唯一的情況. 注意: SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY<>'天津'適用于JNO是唯一的情況(8)把全部紅色零件的顏色改成藍色UPDATE P SET COLOR='藍' WHERE COLOR='紅'(9)由S5供給J4的零件P6改為由S3供應(yīng) UPDATE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6'(10)從供應(yīng)商關(guān)系中刪除供應(yīng)商號是S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄 A、DELETE FROM S WHERE SNO=’S2’ B、DELETE FROM SPJ WHERE SNO=‘S2’(11)請將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系。 INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200)6 .什么是基本表?什么是視圖?兩者的區(qū)別和XXX是什么?答:基本表是本身獨立存在的表,在 sQL 中一個關(guān)系就對應(yīng)一個表視圖是從一個或幾個基本表導(dǎo)出的表視圖本身不獨立存儲在數(shù)據(jù)庫中,是一個虛表即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖 7 .試述視圖的優(yōu)點答 ( l )視圖能夠簡化用戶的操作; ( 2 )視圖使用戶能以多種角度看待同一數(shù)據(jù); ( 3 )視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨立性; ( 4 )視圖能夠?qū)C密數(shù)據(jù)提供安全保護8 .哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明答:基本表的行列子集視圖一般是可更新的若視圖的屬性來自集合函數(shù)、表達式,則該視圖肯定是不可以更新的所有的視圖是否都可以更新?為什么?答:不是視圖是不實際存儲數(shù)據(jù)的虛表,因此對視圖的更新,最終要轉(zhuǎn)換為對基本表的更新因為有些視圖的更新不能惟一有意義地轉(zhuǎn)換成對相應(yīng)基本表的更新,所以,并不是所有的視圖都是可更新的.9 .請為三建工程項目建立一個供應(yīng)情況的視圖,包括供應(yīng)商代碼(SNO)、零件代碼(PNO)、供應(yīng)數(shù)量(QTY)。 CREATE VIEW VSP AS SELECT SNO,SPJ.PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME='三建'針對該視圖VSP完成下列查詢:(1)找出三建工程項目使用的各種零件代碼及其數(shù)量SELECT DIST PNO,QTY FROM VSP(2)找出供應(yīng)商S1的供應(yīng)情況SELECT DIST * FROM VSP WHERE SNO='S1'第4章 數(shù)據(jù)庫安全性1 .什么是數(shù)據(jù)庫的安全性?答:數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞2 .?dāng)?shù)據(jù)庫安全性和計算機系統(tǒng)的安全性有什么關(guān)系?答:安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨有的,所有計算機系統(tǒng)都有這個問題只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出系統(tǒng)安全保護措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標(biāo)之一數(shù)據(jù)庫的安全性和計算機系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)的安全性是緊密XXX、相互支持的,4 .試述實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)答:實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)有:( l )用戶標(biāo)識和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識自己的名字或身份。 每次用戶要求進入系統(tǒng)時,由系統(tǒng)進行核對,通過鑒定后才提供系統(tǒng)的使用權(quán) 2 )存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)例如CZ 級中的自主存取控制( DAC ) , Bl 級中的強制存取控制(MAC ) 3 )視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護 4 )審計:建立審計日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中,DBA 可以利用審計跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等 5 )數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容5.什么是數(shù)據(jù)庫中的自主存取控制方法和強制存取控制方法? 答:自主存取控制方法:定義各個用戶對不同數(shù)據(jù)對象的存取權(quán)限當(dāng)用戶對數(shù)據(jù)庫訪問時首先檢查用戶的存取權(quán)限防止不合法用戶對數(shù)據(jù)庫的存取強制存取控制方法:每一個數(shù)據(jù)對象被(強制地)標(biāo)以一定的密級,每一個用戶也被(強制地)授予某一個級別的許可證系統(tǒng)規(guī)定只有具有某一許可證級別的用戶才能存取某一個密級的數(shù)據(jù)對象。 6. (1) GRANT ALL PRIVILEGES ON Student,Class TO U1WITH GRANT OPTION ; (2)GRANT SELECT,UPDATE(家庭住址),DELETE ON Student TO U2; (3)GRANT SELECT ON Class TO PUBLIC; (4)GRANT SELECT,UPDATE ON Student TO R1; (5)GRANT R1 TO U1 WITH ADMIN OPTION ; 7 .SQL 語言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語句?請試舉幾例說明它們的使用方法答:SQL 中的自主存取控制是通過GRANT語句和REVOKE語句來實現(xiàn)的如:GRANT SELECT , INSERT ON Student TO 王平WITH GRANT OPTION ; 就將Student 表的SELECT 和INSERT 權(quán)限授予了用戶王平,后面的“WITH GRANT OPTION ”子句表示用戶王平同時也獲得了“授權(quán)”的權(quán)限,即可以把得到的權(quán)限繼續(xù)授予其他用戶REVOKE INSERT ON Student FROM 王平CASCADE ; 就將Student 表的INSERT 權(quán)限從用戶王平處收回,選項CASCADE 表示,如果用戶王平將Student 的INSERT 權(quán)限又轉(zhuǎn)授給了其他用戶,那么這些權(quán)限也將從其他用戶處收回。 7.請用SQL的GRANT 和REVOKE語句(加上視圖機制)完成以下授權(quán)定義或存取控制功能:( a )用戶王明對兩個表有SELECT 權(quán)力 GRANT SELECT ON 職工,部門 TO 王明( b )用戶李勇對兩個表有INSERT 和DELETE 權(quán)力 GRANT INSERT,DELETE ON 職工,部門 TO 李勇( c ) 每個職工只對自己的記錄有SELECT 權(quán)力 GRANT SELECT ON 職工 WHEN USER()=NAME TO ALL;( d )用戶劉星對職工表有SELECT 權(quán)力,對工資字段具有更新權(quán)力 GRANT SELECT,UPDATE(工資) ON 職工 TO 劉星 ( e )用戶張新具有修改這兩個表的結(jié)構(gòu)的權(quán)力 GRANT ALTER TABLE ON 職工,部門 TO 張新; ( f )用戶周平具有對兩個表所有權(quán)力(讀,插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)力 GRANT ALL PRIVILIGES ON 職工,部門 TO 周平 WITH GRANT OPTION;( g )用戶楊蘭具有從每個部門職工中SELECT 最高工資、最低工資、平均工資的權(quán)力,他不能查看每個人的工資。 CREATE VIEW 部門工資 AS SELECT 部門.名稱,MAX(工資),MIN(工資),AVG(工資) FROM 職工,部門 WHERE 職工.部門號=部門.部門號 GROUP BY 職工.部門號 GRANT SELECT ON 部門工資 TO 楊蘭;8 .把習(xí)題8 中(1)---(7)的每一種情況,撤銷各用戶所授予的權(quán)力(1) REVOKE SELECT ON 職工,部門 FROM 王明;(2) REVOKE INSERT , DELETE ON 職工,部門 FROM 李勇;(3) REOVKE SELECT ON 職工WHEN USER ( ) =NAMEFROM ALI ;(4) REVOKE SELECT , UPDATE ON 職工FROM 劉星;(5) REVOKE ALTER TABLE ON 職工,部門FROM 張新;(6) REVOKE ALL PRIVILIGES ON 職工,部門FROM 周平;(7) REVOKE SELECT ON 部門工資FROM 楊蘭;DROP VIEW 部門工資;9.理解并解釋MAC 機制中主體、客體、敏感度標(biāo)記的含義。 答:主體是系統(tǒng)中的活動實體,既包括DBMS 所管理的實際用戶,也包括代表用戶的各進程客體是系統(tǒng)中的被動實體,是受主體操縱的,包括文件、基表、索引、視圖等對于主體和 客體,DBMS 為它們每個實例(值)指派一個敏感度標(biāo)記(Label )敏感度標(biāo)記被分成若干級別,例如絕密(Top Secret )、機密(Secret )· 可信( Confidential )、公開(PubliC )等主體的敏感度標(biāo)記稱為許可證級別(ClearanCe 玫vel ) ,客體的敏感度標(biāo)記稱為密級(Classification Level )11 .什么是數(shù)據(jù)庫的審計功能,為什么要提供審計功能?答:審計功能是指DBMS 的審計模塊在用戶對數(shù)據(jù)庫執(zhí)行操作的同時把所有操作自動記錄到系統(tǒng)的審計日志中因為任何系統(tǒng)的安全保護措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在利用數(shù)據(jù)庫的審計功能,DBA 可以根據(jù)審計跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等第5章 數(shù)據(jù)庫完整性1什么是數(shù)據(jù)庫的完整性?答:數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性2 .?dāng)?shù)據(jù)庫的完整性概念與數(shù)據(jù)庫的安全性概念有什么區(qū)別和XXX?答:數(shù)據(jù)的完整性和安全性是兩個不同的概念,但是有一定的XXX。 前者是為了防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯誤信息的輸入和輸出,即所謂垃圾進垃圾出( Garba : e In Garba : e out )所造成的無效操作和錯誤結(jié)果后者是保護數(shù)據(jù)庫防止惡意的破壞和非法的存取也就是說,安全性措施的防范對象是非法用戶和非法操作,完整性措施的防范對象是不合語義的數(shù)據(jù)3 .什么是數(shù)據(jù)庫的完整性約束條件?可分為哪幾類?答完整性約束條件是指數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)該滿足的語義約束條件一般可以分為六類:靜態(tài)列級約束、靜態(tài)元組約束、靜態(tài)關(guān)系約束、動態(tài)列級約束、動態(tài)元組約束、動態(tài)關(guān)系約束靜態(tài)列級約束是對一個列的取值域的說明,包括以下幾個方面: ( l )對數(shù)據(jù)類型的約束,包括數(shù)據(jù)的類型、長度、單位、精度等; ( 2 )對數(shù)據(jù)格式的約束; ( 3 )對取值范圍或取值集合的約束; ( 4 )對空值的約束; ( 5 )其他約束靜態(tài)元組約束就是規(guī)定組成一個元組的各個列之間的約束關(guān)系,靜態(tài)元組約束只局限在單個元組上靜態(tài)關(guān)系約束是在一個關(guān)系的各個元組之間或者若干關(guān)系之間常常存在各種XXX或約束常見的靜態(tài)關(guān)系約束有: ( l )實體完整性約束; ( 2 )參照完整性約束; ( 3 )函數(shù)依賴約束。 動態(tài)列級約束是修改列定義或列值時應(yīng)滿足的約束條件,包括下面兩方面: ( l )修改列定義時的約束; ( 2 )修改列值時的約束動態(tài)元組約束是指修改某個元組的值時需要參照其舊值,并且新舊值之間需要滿足某種約束條件動態(tài)關(guān)系約束是加在關(guān)系變化前后狀態(tài)上的限制條件,例如事務(wù)一致性、原子性等約束條件4 . DBMS 的完整性控制機制應(yīng)具有哪些功能?答:DBMS 的完整性控制機制應(yīng)具有三個方面的功能: ( l )定義功能,即提供定義完整性約束條件的機制; ( 2 )檢查功能,即檢查用戶發(fā)出的操作請求是否違背了完整性約束條件;( 3 )違約反應(yīng):如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動作來保證數(shù)據(jù)的完整性 5 . RDBMS 在實現(xiàn)參照完整性時需要考慮哪些方面?答 RDBMs 在實現(xiàn)參照完整性時需要考慮以下幾個方面: ( l )外碼是否可以接受空值 2 )冊 l 除被參照關(guān)系的元組時的考慮,這時系統(tǒng)可能采取的作法有三種: l )級聯(lián)刪除( CASCADES ) ; 2 )受限刪除( RESTRICTED ) ; 3 )置空值刪除( NULLIFIES ) ( 3 )在參照關(guān)系中插入元組時的問題,這時系統(tǒng)可能采取的作法有: l )受限插入; 2 )遞歸插入。 ( 4 )修改關(guān)系中主碼的問題一般是不能用 UPDATE 語句修改關(guān)系主碼的如果需要修改主碼值,只能先刪除該元組,然后再把具有新主碼值的元組插入到關(guān)系中如果允許修改主碼,首先要保證主碼的惟一性和非空,否則拒絕修改然后要區(qū)分是參照關(guān)系還是被參照關(guān)系6 .假設(shè)有下面兩個關(guān)系模式:職工(職工號,姓名,年齡,職務(wù),工資,部門號),其中職工號為主碼;部門(部門號,名稱,經(jīng)理名,電話),其中部門號為主碼用 sQL 語言定義這兩個關(guān)系模式,要求在模式中完成以下完整性約束條件的定義:定義每個模式的主碼;定義參照完整性;定義職工年齡不得超過 60 歲答CREATE TABLE DEPT (Deptno NUMBER(2), Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12) CONSTRAINT PK_SC RIMARY KEY(Deptno));CREATE TABLE EMP (Empno NUMBER(4), Ename VARCHAR(10), Age NUMBER(2), CONSTRAINT C1 CHECK ( Aage<=60), Job VARCHAR(9), Sal NUMBER(7,2), Deptno NUMBER(2), CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno) REFFERENCES DEPT(Deptno));7 .關(guān)系系統(tǒng)中,當(dāng)操作違反實體完整性、參照完整性和用戶定義的完整性約束條件時,一般是如何分別進行處理的?答:對于違反實體完整性和用戶定義的完整性的操作一般都采用拒絕執(zhí)行的方式進行處理。 而對于違反參照完整性的操作,并不都是簡單地拒絕執(zhí)行,有時要根據(jù)應(yīng)用語義執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫的正確性第6章 關(guān)系數(shù)據(jù)庫理論1 .理解并給出下列術(shù)語的定義:函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞依賴、候選碼、主碼、外碼、全碼(All 一key )、1 NF 、ZNF 、3NF 、BcNF 、多值依賴、4NF 定義1:設(shè)R(U)是屬性集U上的關(guān)系模式X,Y是屬性集U的子集若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作XàY即只要X上的屬性值相等,Y上的值一定相等術(shù)語和記號:XàY,但Y不是X的子集,則稱XàY是非平凡的函數(shù)依賴若不特別聲明,總是討論非平凡的函數(shù)依賴XàY,但Y是X的子集,則稱XàY是平凡的函數(shù)依賴若XàY,則X叫做決定因素(Determinant)若XàY,YàX,則記作X?àY若Y不函數(shù)依賴于X,則記作X à Y定義2:在R(U)中,如果 XàY,并且對于X的任何一個真子集X’,都有X’ à Y,則稱Y對X完全函數(shù)依賴 若XàY,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴定義3:若關(guān)系模式R的每一個分量是不可再分的數(shù)據(jù)項,則關(guān)系模式R屬于第一范式(1NF)。 定義4:若關(guān)系模式R∈1NF,且每一個非主屬性完全函數(shù)依賴于碼,則關(guān)系模式R∈2NF 即1NF消除了非主屬性對碼的部分函數(shù)依賴則成為2NF)定義5:關(guān)系模式R 中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z不是Y的子集)使得XàY,Y à X,Y à Z成立,則稱R∈3NF定義6:關(guān)系模式R∈1NF 若XàY且Y不是X的子集時,X必含有碼,則R∈BCNF定義7:關(guān)系模式R∈1NF,如果對于R的每個非平凡多值依賴XààY(Y不是X的子集,Z=U-X-Y不為空),X都含有碼,則稱R∈4NF2.建立一個關(guān)于系、學(xué)生、班級、學(xué)會等諸信息的關(guān)系數(shù)據(jù)庫學(xué)生:學(xué)號、姓名、出生年月、系名、班號、宿舍區(qū)班級:班號、專業(yè)名、系名、人數(shù)、入校年份系:系名、系號、系辦公地點、人數(shù)學(xué)會:學(xué)會名、成立年份、辦公地點、人數(shù) 語義如下:一個系有若干專業(yè),每個專業(yè)每年只招一個班,每個班有若干學(xué)生一個系的學(xué)生住在同一宿舍區(qū)每個學(xué)生可參加若干學(xué)會,每個學(xué)會有若干學(xué)生學(xué)生參加某學(xué)會有一個入會年份請給出關(guān)系模式,寫出每個關(guān)系模式的極小函數(shù)依賴集,指出是否存在傳遞函數(shù)依賴,對于函數(shù)依賴左部是多屬性的情況討論函數(shù)依賴是完全函數(shù)依賴,還是部分函數(shù)依賴。 指出各關(guān)系模式的候選碼、外部碼,有沒有全碼存在?解:(1)關(guān)系模式如下: 學(xué)生:S(Sno,Sname,Sbirth,Dept,Class,Rno) 班級:C(Class,Pname,Dept,Cnum,Cyear) 系:D(Dept,Dno,Office,Dnum) 學(xué)會:M(Mname,Myear,Maddr,Mnum) (2)每個關(guān)系模式的最小函數(shù)依賴集如下: A、學(xué)生S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函數(shù)依賴集如下:SnoàSname,SnoàSbirth,SnoàClass,ClassàDept,DEPTàRno 傳遞依賴如下:由于SnoàDept,而DeptàSno ,DeptàRno(宿舍區(qū))所以Sno與Rno之間存在著傳遞函數(shù)依賴 由于ClassàDept,Dept à Class,DeptàRno 所以Class與Rno之間存在著傳遞函數(shù)依賴 由于SnoàClass,ClassàSno,ClassàDept 所以Sno與Dept之間存在著傳遞函數(shù)依賴 B、班級C(Class,Pname,Dept,Cnum,Cyear)的最小函數(shù)依賴集如下: ClassàPname,ClassàCnum,ClassàCyear,PnameàDept. 由于ClassàPname,PnameàClass,PnameàDept 所以C1ass與Dept之間存在著傳遞函數(shù)依賴。 C、系D(Dept,Dno,Office,Dnum)的最小函數(shù)依賴集如下: DeptàDno,DnoàDept,DnoàOffice,DnoàDnum 根據(jù)上述函數(shù)依賴可知,Dept與Office,Dept與Dnum之間不存在傳遞依賴 D、學(xué)會M(Mname,Myear,Maddr,Mnum)的最小函數(shù)依賴集如下: MnameàMyear,MnameàMaddr,MnameàMnum 該模式不存在傳遞依賴 (3)各關(guān)系模式的候選碼、外部碼,全碼如下: A、學(xué)生S候選碼:Sno;外部碼:Dept、Class;無全碼 B、班級C候選碼:Class;外部碼:Dept;無全碼 C、系D候選碼:Dept或Dno;無外部碼;無全碼 D、學(xué)會M候選碼:Mname;無外部碼;無全碼7.下面的結(jié)論哪些是正確的? 哪些是錯誤的? 對于錯誤的請給一個反例說明之1)任何一個二目關(guān)系是屬于3NF答:正確因為關(guān)系模式中只有兩個屬性,所以無傳遞2)任何一個二目關(guān)系是屬于BCNF.答:正確按BCNF的定義,若XàY,且Y不是X的子集時,每個決定。