歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

《數(shù)據(jù)庫原理》課后練習(xí)答案整理.doc

  • 資源ID:13123613       資源大?。?span id="zm7rzlc" class="font-tahoma">134.50KB        全文頁數(shù):22頁
  • 資源格式: DOC        下載積分:5積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要5積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

《數(shù)據(jù)庫原理》課后練習(xí)答案整理.doc

第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é)操心。還有,當應(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ū)別和聯(lián)系。答:文件系統(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)的聯(lián)系是:文件系統(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試述數(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),只需做很少的改動??梢匀≌w數(shù)據(jù)的各種子集用于不同的應(yīng)用系統(tǒ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ù):當計算機系統(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ù)庫為中心的新階段。5 數(shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?答:( l )數(shù)據(jù)庫定義功能; ( 2 )數(shù)據(jù)存取功能; ( 3 )數(shù)據(jù)庫運行管理; ( 4 )數(shù)據(jù)庫的建立和維護功能。6 試述數(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)這三個抽象層次的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫系統(tǒng)在這三級模式之間提供了兩層映像:外模式模式映像和模式內(nèi)模式映像。正是這兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。7定義并解釋以下術(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ù)進行查詢、插入、刪除和修改的語句。 8 什么叫數(shù)據(jù)與程序的物理獨立性?什么叫數(shù)據(jù)與程序的邏輯獨立性?為什么數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)與程序的獨立性?答:數(shù)據(jù)與程序的邏輯獨立性:當模式改變時(例如增加新的關(guān)系、新的屬性、改變屬性的數(shù)據(jù)類型等),由數(shù)據(jù)庫管理員對各個外模式模式的映像做相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨立性,簡稱數(shù)據(jù)的邏輯獨立性。數(shù)據(jù)與程序的物理獨立性:當數(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ù)能夠具有較高的邏輯獨立性和物理獨立性。9試述數(shù)據(jù)庫系統(tǒng)的組成。答:數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。10 . DBA 的職責(zé)是什么?答:負責(zé)全面地管理和控制數(shù)據(jù)庫系統(tǒng)。具體職責(zé)包括: 決定數(shù)據(jù)庫的信息內(nèi)容和結(jié)構(gòu); 決定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取策略; 定義數(shù)據(jù)的安全性要求和完整性約束條件; 監(jiān)督和控制數(shù)據(jù)庫的使用和運行; 改進和重組數(shù)據(jù)庫系統(tǒng)。 25 系統(tǒng)分析員、數(shù)據(jù)庫設(shè)計人員、應(yīng)用程序員的職責(zé)是什么?答系統(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)試和安裝。第2章 數(shù)據(jù)模型1 2- 3試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個要素。答:數(shù)據(jù)模型是數(shù)據(jù)庫中用來對現(xiàn)實世界進行抽象的工具,是數(shù)據(jù)庫中用于提供信息表示和操作手段的形式構(gòu)架。一般地講,數(shù)據(jù)模型是嚴格定義的概念的集合。這些概念精確描述了系統(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ù)及其聯(lián)系所具有的制約和依存規(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ù),一般需要有嚴格的形式化定義和一組嚴格定義了語法和語義的語言,并有一些規(guī)定和限制,便于在機器上實現(xiàn)。4 試述層次模型的概念,舉出三個層次模型的實例。答: ( l )教員學(xué)生層次數(shù)據(jù)庫模型( 2 )行政機構(gòu)層次數(shù)據(jù)庫模型( 3 )行政區(qū)域?qū)哟螖?shù)據(jù)庫模型5試述網(wǎng)狀模型的概念,舉出三個網(wǎng)狀模型的實例。答:滿足下面兩個條件的基本層次聯(lián)系集合為網(wǎng)狀模型。 ( l )允許一個以上的結(jié)點無雙親; ( 2 )一個結(jié)點可以有多于一個的雙親。實例 1 : 實例 2 : 實例 3 : 6試述網(wǎng)狀、層次數(shù)據(jù)庫的優(yōu)缺點。答:層次模型的優(yōu)點主要有: ( l )模型簡單,對具有一對多層次關(guān)系的部門描述非常自然、直觀,容易理解,這是層次數(shù)據(jù)庫的突出優(yōu)點; ( 2 )用層次模型的應(yīng)用系統(tǒng)性能好,特別是對于那些實體間聯(lián)系是固定的且預(yù)先定義好的應(yīng)用,采用層次模型來實現(xiàn),其性能優(yōu)于關(guān)系模型; ( 3 )層次數(shù)據(jù)模型提供了良好的完整性支持。層次模型的缺點主要有: ( l )現(xiàn)實世界中很多聯(lián)系是非層次性的,如多對多聯(lián)系、一個結(jié)點具有多個雙親等,層次模型不能自然地表示這類聯(lián)系,只能通過引入冗余數(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ù)雜,用戶不容易使用。由于記錄之間聯(lián)系是通過存取路徑實現(xiàn)的,應(yīng)用程序在訪問數(shù)據(jù)時必須選擇適當?shù)拇嫒÷窂?。因此,用戶必須了解系統(tǒng)結(jié)構(gòu)的細節(jié),加重了編寫應(yīng)用程序的負擔(dān)。7 試述關(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 ) 8 試述關(guān)系數(shù)據(jù)庫的特點。答:關(guān)系數(shù)據(jù)模型具有下列優(yōu)點: ( l )關(guān)系模型與非關(guān)系模型不同,它是建立在嚴格的數(shù)學(xué)概念的基礎(chǔ)上的。 ( 2 )關(guān)系模型的概念單一,無論實體還是實體之間的聯(lián)系都用關(guān)系表示,操作的對象和操作的結(jié)果都是關(guān)系,所以其數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用。 ( 3 )關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。當然,關(guān)系數(shù)據(jù)模型也有缺點,其中最主要的缺點是,由于存取路徑對用戶透明,查詢效率往往不如非關(guān)系數(shù)據(jù)模型。因此為了提高性能,必須對用戶的查詢請求進行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的難度。第3章 關(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ù)語言的共同特點是,語言具有完備的表達能力,是非過程化的集合操作語言,功能強,能夠嵌入高級語言中使用。4試述關(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本身不是主屬性,則可以取空值,否則不能取空值。5設(shè)有一個SPJ數(shù)據(jù)庫,包括S,P,J,SPJ四個關(guān)系模式:1)求供應(yīng)工程J1零件的供應(yīng)商號碼SNO:Sno(Sno=J1(SPJ))2)求供應(yīng)工程J1零件P1的供應(yīng)商號碼SNO:Sno(Sno=J1Pno=P1(SPJ)3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號碼SNO:Sno(Pno=P1 (COLOR=紅 (P)SPJ))4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號JNO:Jno(SPJ)- JNO(city=天津Color=紅 (SSPJP)5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO:Jno,Pno(SPJ) Pno(Sno=S1 (SPJ)6試述等值連接與自然連接的區(qū)別和聯(lián)系。答:連接運算符是“=”的連接運算稱為等值連接。它是從關(guān)系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。7關(guān)系代數(shù)的基本運算有哪些 ? 如何用這些基本運算來表示其他運算? 答:并、差、笛卡爾積、投影和選擇5種運算為基本的運算。其他3種運算,即交、連接和除,均可以用這5種基本運算來表達。第4章 關(guān)系數(shù)據(jù)庫標準語言SQL 1 試述 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 試述 sQL 的定義功能。 sQL 的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。 SQL 語言使用 cREATE TABLE 語句建立基本表, ALTER TABLE 語句修改基本表定義, DROP TABLE 語句刪除基本表;使用 CREATE INDEX 語句建立索引, DROP INDEX 語句刪除索引;使用 CREATE VIEW 語句建立視圖, DROP VIEW 語句刪除視圖。3 用 sQL 語句建立第二章習(xí)題 5 中的 4 個表。答:對于 S 表: S ( SNO , SNAME , STATUS , CITY ) ; 建 S 表: CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2),City C(4);對于 P 表: P ( PNO , PNAME , COLOR , WEIGHT );建 P 表 :CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT INT);對于 J 表: J ( JNO , JNAME , CITY) ; 建 J 表:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4)對于 sPJ 表: sPJ ( sNo , PNo , JNo , QTY) ; 建 SPJ 表:SPJ(SNO,PNO,JNO,QTY)CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY INT)4.針對上題中建立的 4 個表試用 sQL 語言完成第二章習(xí)題 5 中的查詢。 ( 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針對習(xí)題3中的四個表試用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ū)別和聯(lián)系是什么?基本表是本身獨立存在的表,在 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ù)據(jù)的虛表,因此對視圖的更新,最終要轉(zhuǎn)換為對基本表的更新。因為有些視圖的更新不能惟一有意義地轉(zhuǎn)換成對相應(yīng)基本表的更新,所以,并不是所有的視圖都是可更新的.9 哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明。答:基本表的行列子集視圖一般是可更新的。若視圖的屬性來自集函數(shù)、表達式,則該視圖肯定是不可以更新的。10 試述某個你熟悉的實際系統(tǒng)中對視圖更新的規(guī)定。答VFP11請為三建工程項目建立一個供應(yīng)情況的視圖,包括供應(yīng)商代碼(SNO)、零件代碼(PNO)、供應(yīng)數(shù)量(QTY)。CREATE VIEW VSP AS SELECT SNO,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這里是第7、8、9、11章課本的答案,里面有少部分沒有的,請大家自己對照一下原來郵箱里面的答案,有疏忽的地方,請原諒!另一部分等整理好就發(fā)上去第7章 數(shù)據(jù)庫恢復(fù)技術(shù)1試述事務(wù)的概念及事務(wù)的4 個特性。答:事務(wù)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。事務(wù)具有4 個特性:原子性(Atomicity )、一致性(consistency )、隔離性( Isolation )和持續(xù)性(Durability )。這4 個特性也簡稱為ACID 特性。原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。隔離性:一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾。持續(xù)性:持續(xù)性也稱永久性(Perfnanence ) ,指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。2 為什么事務(wù)非正常結(jié)束時會影響數(shù)據(jù)庫數(shù)據(jù)的正確性,請列舉一例說明之。答:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng)運行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對數(shù)據(jù)庫所做的修改有一部分已寫入物理數(shù)據(jù)庫,這時數(shù)據(jù)庫就處于一種不正確的狀態(tài),或者說是不一致的狀態(tài)。例如某工廠的庫存管理系統(tǒng)中,要把數(shù)量為Q 的某種零件從倉庫1 移到倉庫2 存放。則可以定義一個事務(wù)T , T 包括兩個操作;Ql = Ql 一Q , Q2= Q2 + Q。 如果T 非正常終止時只做了第一個操作,則數(shù)據(jù)庫就處于不一致性狀態(tài),庫存量無緣無故少了Q 。3 數(shù)據(jù)庫中為什么要有恢復(fù)子系統(tǒng)?它的功能是什么?答:因為計算機系統(tǒng)中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務(wù)非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分數(shù)據(jù)丟失,因此必須要有恢復(fù)子系統(tǒng)。恢復(fù)子系統(tǒng)的功能是:把數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))。4 數(shù)據(jù)庫運行中可能產(chǎn)生的故障有哪幾類?哪些故障影響事務(wù)的正常執(zhí)行?哪些故障破壞數(shù)據(jù)庫數(shù)據(jù)?答:數(shù)據(jù)庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類:(1)事務(wù)內(nèi)部的故障;(2)系統(tǒng)故障;(3)介質(zhì)故障;(4)計算機病毒。事務(wù)故障、系統(tǒng)故障和介質(zhì)故障影響事務(wù)的正常執(zhí)行;介質(zhì)故障和計算機病毒破壞數(shù)據(jù)庫數(shù)據(jù)。5 數(shù)據(jù)庫恢復(fù)的基本技術(shù)有哪些?答:數(shù)據(jù)轉(zhuǎn)儲和登錄日志文件是數(shù)據(jù)庫恢復(fù)的基本技術(shù)。當系統(tǒng)運行過程中發(fā)生故障,利用轉(zhuǎn)儲的數(shù)據(jù)庫后備副本和日志文件就可以將數(shù)據(jù)庫恢復(fù)到故障前的某個一致性狀態(tài)。6 數(shù)據(jù)庫轉(zhuǎn)儲的意義是什么?試比較各種數(shù)據(jù)轉(zhuǎn)儲方法。答:數(shù)據(jù)轉(zhuǎn)儲是數(shù)據(jù)庫恢復(fù)中采用的基本技術(shù)。所謂轉(zhuǎn)儲即DBA 定期地將數(shù)據(jù)庫復(fù)制到磁帶或另一個磁盤上保存起來的過程。當數(shù)據(jù)庫遭到破壞后可以將后備副本重新裝入,將數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時的狀態(tài)。靜態(tài)轉(zhuǎn)儲:在系統(tǒng)中無運行事務(wù)時進行的轉(zhuǎn)儲操作,如上圖所示。靜態(tài)轉(zhuǎn)儲簡單,但必須等待正運行的用戶事務(wù)結(jié)束才能進行。同樣,新的事務(wù)必須等待轉(zhuǎn)儲結(jié)束才能執(zhí)行。顯然,這會降低數(shù)據(jù)庫的可用性。動態(tài)轉(zhuǎn)儲:指轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進行存取或修改。動態(tài)轉(zhuǎn)儲可克服靜態(tài)轉(zhuǎn)儲的缺點,它不用等待正在運行的用戶事務(wù)結(jié)束,也不會影響新事務(wù)的運行。但是,轉(zhuǎn)儲結(jié)束時后援副本上的數(shù)據(jù)并不能保證正確有效。因為轉(zhuǎn)儲期間運行的事務(wù)可能修改了某些數(shù)據(jù),使得后援副本上的數(shù)據(jù)不是數(shù)據(jù)庫的一致版本。為此,必須把轉(zhuǎn)儲期間各事務(wù)對數(shù)據(jù)庫的修改活動登記下來,建立日志文件( 109 file )。這樣,后援副本加上日志文件就能得到數(shù)據(jù)庫某一時刻的正確狀態(tài)。轉(zhuǎn)儲還可以分為海量轉(zhuǎn)儲和增量轉(zhuǎn)儲兩種方式。海量轉(zhuǎn)儲是指每次轉(zhuǎn)儲全部數(shù)據(jù)庫。增量轉(zhuǎn)儲則指每次只轉(zhuǎn)儲上一次轉(zhuǎn)儲后更新過的數(shù)據(jù)。從恢復(fù)角度看,使用海量轉(zhuǎn)儲得到的后備副本進行恢復(fù)一般說來更簡單些。但如果數(shù)據(jù)庫很大,事務(wù)處理又十分頻繁,則增量轉(zhuǎn)儲方式更實用更有效。7 什么是日志文件?為什么要設(shè)立日志文件?答:(1)日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。(2)設(shè)立日志文件的目的是:進行事務(wù)故障恢復(fù);進行系統(tǒng)故障恢復(fù);協(xié)助后備副本進行介質(zhì)故障恢復(fù)。8 登記日志文件時為什么必須先寫日志文件,后寫數(shù)據(jù)庫?答:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中和把表示這個修改的日志記錄寫到日志文件中是兩個不同的操作。有可能在這兩個操作之間發(fā)生故障,即這兩個寫操作只完成了一個。如果先寫了數(shù)據(jù)庫修改,而在運行記錄中沒有登記這個修改,則以后就無法恢復(fù)這個修改了。如果先寫日志,但沒有修改數(shù)據(jù)庫,在恢復(fù)時只不過是多執(zhí)行一次UNDO 操作,并不會影響數(shù)據(jù)庫的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據(jù)庫的修改。9 針對不同的故障,試給出恢復(fù)的策略和方法。(即如何進行事務(wù)故障的恢復(fù)?系統(tǒng)故障的恢復(fù)?介質(zhì)故障恢復(fù)?) 答:事務(wù)故障的恢復(fù):事務(wù)故障的恢復(fù)是由DBMS DBMs 執(zhí)行恢復(fù)步驟是:自動完成的,對用戶是透明的。(1)反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作;(2)對該事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫;(3)繼續(xù)反向掃描日志文件,做同樣處理;(4)如此處理下去,直至讀到此事務(wù)的開始標記,該事務(wù)故障的恢復(fù)就完成了。系統(tǒng)故障的恢復(fù):系統(tǒng)故障可能會造成數(shù)據(jù)庫處于不一致狀態(tài):一是未完成事務(wù)對數(shù)據(jù)庫的更新可能已寫入數(shù)據(jù)庫;二是已提交事務(wù)對數(shù)據(jù)庫的更新可能還留在緩沖區(qū),沒來得及寫入數(shù)據(jù)庫。因此恢復(fù)操作就是要撤銷(UNDO )故障發(fā)生時未完成的事務(wù),重做(REDO )已完成的事務(wù)。系統(tǒng)的恢復(fù)步驟是:(1)正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務(wù)隊列(REDO 隊列)和未完成的事務(wù)隊列(uNDO 隊列)。(2)對撤銷隊列中的各個事務(wù)進行UNDO 處理。進行UNDO 處理的方法是,反向掃描日志文件,對每個UNDO 事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”Before Image )寫入數(shù)據(jù)庫。( 3 )對重做隊列中的各個事務(wù)進行REDO 處理。進行REDO 處理的方法是:正向掃描日志文件,對每個REDO 事務(wù)重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”Afte , Image )寫入數(shù)據(jù)庫。介質(zhì)故障的恢復(fù):介質(zhì)故障是最嚴重的一種故障?;謴?fù)方法是重裝數(shù)據(jù)庫,然后重做已完成的事務(wù)。具體過程是:( 1 ) DBA 裝入最新的數(shù)據(jù)庫后備副本(離故障發(fā)生時刻最近的轉(zhuǎn)儲副本), 使數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時的一致性狀態(tài);( 2 ) DBA 裝入轉(zhuǎn)儲結(jié)束時刻的日志文件副本;( 3 ) DBA 啟動系統(tǒng)恢復(fù)命令,由DBMS 完成恢復(fù)功能,即重做已完成的事務(wù)。10、11缺第8章 并發(fā)控制1 在數(shù)據(jù)庫中為什么要并發(fā)控制?答:數(shù)據(jù)庫是共享資源,通常有許多個事務(wù)同時在運行。當多個事務(wù)并發(fā)地存取數(shù)據(jù)庫時就會產(chǎn)生同時讀取和或修改同一數(shù)據(jù)的情況。若對并發(fā)操作不加控制就可能會存取和存儲不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機制。 2 并發(fā)操作可能會產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況?答:并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復(fù)讀和讀“臟夕數(shù)據(jù)。 ( l )丟失修改(lost update ) 兩個事務(wù) Tl 和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了) Tl 提交的結(jié)果,導(dǎo)致 Tl 的修改被丟失。 ( 2 )不可重復(fù)讀( Non 一 Repeatable Read ) 不可重復(fù)讀是指事務(wù) Tl 讀取數(shù)據(jù)后,事務(wù)幾執(zhí)行更新操作,使 Tl 無法再現(xiàn)前一次讀取結(jié)果。( 3 )讀“臟”數(shù)據(jù)( Dirty Read ) 讀“臟夕數(shù)據(jù)是指事務(wù) Tl 修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)幾讀取同一數(shù)據(jù)后, Tl 由于某種原因被撤銷,這時 Tl 已修改過的數(shù)據(jù)恢復(fù)原值,幾讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則幾讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。避免不一致性的方法和技術(shù)就是并發(fā)控制。最常用的技術(shù)是封鎖技術(shù)。也可以用其他技術(shù),例如在分布式數(shù)據(jù)庫系統(tǒng)中可以采用時間戳方法來進行并發(fā)控制。 3 什么是封鎖?答:封鎖就是事務(wù) T 在對某個數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù) T 就對該數(shù)據(jù)對象有了一定的控制,在事務(wù) T 釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對象。封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術(shù)。4、基本的封鎖類型有幾種?試述它們的含義。基本的封鎖類型有兩種:排它鎖( Exclusive Locks ,簡稱 x 鎖)和共享鎖 ( Share Locks,簡稱 S 鎖)。排它鎖又稱為寫鎖。若事務(wù) T 對數(shù)據(jù)對象 A 加上 X 鎖,則只允許 T 讀取和修改 A ,其他任何事務(wù)都不能再對 A 加任何類型的鎖,直到 T 釋放 A 上的鎖。這就保證了其他事務(wù)在 T 釋放 A 上的鎖之前不能再讀取和修改 A 。共享鎖又稱為讀鎖。若事務(wù) T 對數(shù)據(jù)對象 A 加上 S 鎖,則事務(wù) T 可以讀 A但不能修改 A ,其他事務(wù)只能再對 A 加 S 鎖,而不能加 X 鎖,直到 T 釋放 A 上的 S 鎖。這就保證了其他事務(wù)可以讀 A ,但在 T 釋放 A 上的 S 鎖之前不能對 A 做任何修改。5、如何用封鎖機制保證數(shù)據(jù)的一致性?答: DBMS 在對數(shù)據(jù)進行讀、寫操作之前首先對該數(shù)據(jù)執(zhí)行封鎖操作,例如下圖中事務(wù) Tl 在對 A 進行修改之前先對 A 執(zhí)行 xock ( A ) ,即對 A 加 x 鎖。這樣,當幾請求對 A 加 x 鎖時就被拒絕,幾只能等待 Tl 釋放 A 上的鎖后才能獲得對 A 的 x 鎖,這時它讀到的 A 是 Tl 更新后的值,再按此新的 A 值進行運算。這樣就不會丟失 Tl 的更新。DBMS 按照一定的封鎖協(xié)議,對并發(fā)操作進行控制,使得多個并發(fā)操作有序地執(zhí)行,就可以避免丟失修改、不可重復(fù)讀和讀“臟夕數(shù)據(jù)等數(shù)據(jù)不一致性。8什么是活鎖?什么是死鎖?答:如果事務(wù) Tl 封鎖了數(shù)據(jù) R ,事務(wù)幾又請求封鎖 R ,于是幾等待。幾也請求封鎖 R ,當 Tl 釋放了 R 上的封鎖之后系統(tǒng)首先批準了幾的請求,幾仍然等待。然后幾又請求封鎖 R ,當幾釋放了 R 上的封鎖之后系統(tǒng)又批準了幾的請求 幾有可能永遠等待,這就是活鎖的情形?;铈i的含義是該等待事務(wù)等待時間太長,似乎被鎖住了,實際上可能被激活。如果事務(wù) Tl 封鎖了數(shù)據(jù) Rl ,幾封鎖了數(shù)據(jù)凡,然后 Tl 又請求封鎖幾,因幾已封鎖了幾,于是 Tl 等待幾釋放幾上的鎖。接著幾又申請封鎖 Rl ,因 Tl 已封鎖了 Rl ,幾也只能等待 Tl 釋放 Rl 上的鎖。這樣就出現(xiàn)了 Tl 在等待幾,而幾又在等待 T 的局面, T 和幾兩個事務(wù)永遠不能結(jié)束,形成死鎖。9試述活鎖的產(chǎn)生原因和解決方法。答:活鎖產(chǎn)生的原因:當一系列封鎖不能按照其先后順序執(zhí)行時,就可能導(dǎo)致一些事務(wù)無限期等待某個封鎖,從而導(dǎo)致活鎖。避免活鎖的簡單方法是采用先來先服務(wù)的策略。當多個事務(wù)請求封鎖同一數(shù)據(jù)對象時,封鎖子系統(tǒng)按請求封鎖的先后次序?qū)κ聞?wù)排隊,數(shù)據(jù)對象上的鎖一旦釋放就批準申請隊列中第一個事務(wù)獲得鎖。11 請給出檢測死鎖發(fā)生的一種方法,當發(fā)生死鎖后如何解除死鎖?答:數(shù)據(jù)庫系統(tǒng)一般采用允許死鎖發(fā)生, DBMS 檢測到死鎖后加以解除的方法。 DBMS 中診斷死鎖的方法與操作系統(tǒng)類似,一般使用超時法或事務(wù)等待圖法。超時法是:如果一個事務(wù)的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖。超時法實現(xiàn)簡單,但有可能誤判死鎖,事務(wù)因其他原因長時間等待超過時限時,系統(tǒng)會誤認為發(fā)生了死鎖。若時限設(shè)置得太長,又不能及時發(fā)現(xiàn)死鎖發(fā)生。 DBMS 并發(fā)控制子系統(tǒng)檢測到死鎖后,就要設(shè)法解除。通常采用的方法是選擇一個處理死鎖代價最小的事務(wù),將其撤消,釋放此事務(wù)持有的所有鎖,使其他事務(wù)得以繼續(xù)運行下去。當然,對撤銷的事務(wù)所執(zhí)行的數(shù)據(jù)修改操作必須加以恢復(fù)。 12 什么樣的并發(fā)調(diào)度是正確的調(diào)度?答:可串行化( Serializable )的調(diào)度是正確的調(diào)度??纱谢恼{(diào)度的定義:多個事務(wù)的并發(fā)執(zhí)行是正確的,當且僅當其結(jié)果與按某一次序串行執(zhí)行它們時的結(jié)果相同,稱這種調(diào)度策略為可串行化的調(diào)度。 13 設(shè) Tl ,幾,幾是如下的 3 個事務(wù): Tl :A : = A + 2 ; T2:A : = A * 2 ; T3:A : = A *2 ; ( A <-A*A)設(shè) A 的初值為 0 。 ( l )若這 3 個事務(wù)允許并行執(zhí)行,則有多少可能的正確結(jié)果,請一一列舉出來。答 :A 的最終結(jié)果可能有 2 、 4 、 8 、 16 。因為串行執(zhí)行次序有 Tl T2T3、 Tl T3T2、T2T1T3、T2T3Tl 、T3T1T2、T3T2 Tl 。對應(yīng)的執(zhí)行結(jié)果是 16 、 8 4 2 4 2 。 ( 2 )請給出一個可串行化的調(diào)度,并給出執(zhí)行結(jié)果答: 最后結(jié)果 A 為 16 ,是可串行化的調(diào)度。 ( 3 )請給出一個非串行化的調(diào)度,并給出執(zhí)行結(jié)果。答: 最后結(jié)果 A 為 0 ,為非串行化的調(diào)度。 ( 4 )若這 3 個事務(wù)都遵守兩段鎖協(xié)議,請給出一個不產(chǎn)生死鎖的可串行化調(diào)度。答: ( 5 )若這 3 個事務(wù)都遵守兩段鎖協(xié)議,請給出一個產(chǎn)生死鎖的調(diào)度。答: 15試證明,若并發(fā)事務(wù)遵守兩段鎖協(xié)議,則對這些事務(wù)的并發(fā)調(diào)度是可串行化的。證明:首先以兩個并發(fā)事務(wù) Tl 和T2為例,存在多個并發(fā)事務(wù)的情形可以類推。根據(jù)可串行化定義可知,事務(wù)不可串行化只可能發(fā)生在下列兩種情況: ( l )事務(wù) Tl 寫某個數(shù)據(jù)對象 A ,T2讀或?qū)?A ; ( 2 )事務(wù) Tl 讀或?qū)懩硞€數(shù)據(jù)對象 A ,T2寫 A 。下面稱 A 為潛在沖突對象。設(shè) Tl 和T2訪問的潛在沖突的公共對象為A1,A2 , An 。不失一般性,假設(shè)這組潛在沖突對象中 X (A 1 , A2 , , Ai 均符合情況 1 。 Y A i + 1 , , An 符合所情況( 2 )。 VX x , Tl 需要 XlockX T2 需要 Slockx 或 Xlockx 1 )如果操作 先執(zhí)行,則 Tl 獲得鎖,T2等待由于遵守兩段鎖協(xié)議, Tl 在成功獲得 x 和 Y 中全部對象及非潛在沖突對象的鎖后,才會釋放鎖。這時如果存在 w x 或 Y ,T2已獲得 w 的鎖,則出現(xiàn)死鎖;否則, Tl 在對 x 、 Y 中對象全部處理完畢后,T2才能執(zhí)行。這相當于按 Tl 、T2的順序串行執(zhí)行,根據(jù)可串行化定義, Tl 和幾的調(diào)度是可串行化的。 2 )操作 先執(zhí)行的情況與( l )對稱因此,若并發(fā)事務(wù)遵守兩段鎖協(xié)議,在不發(fā)生死鎖的情況下,對這些事務(wù)的并發(fā)調(diào)度一定是可串行化的。證畢。 16 舉例說明,對并發(fā)事務(wù)的一個調(diào)度是可串行化的,而這些并發(fā)事務(wù)不一定遵守兩段鎖協(xié)議。答:其他的缺!第9章 數(shù)據(jù)庫設(shè)計概論1 試述數(shù)據(jù)庫設(shè)計的特點。答:數(shù)據(jù)庫設(shè)計既是一項涉及多學(xué)科的綜合性技術(shù)又是一項龐大的工程項目。其主要特點有: ( l )數(shù)據(jù)庫建設(shè)是硬件、軟件和干件(技術(shù)與管理的界面)的結(jié)合。 ( 2 )從軟件設(shè)計的技術(shù)角度看,數(shù)據(jù)庫設(shè)計應(yīng)該和應(yīng)用系統(tǒng)設(shè)計相結(jié)合,也就是說,整個設(shè)計過程中要把結(jié)構(gòu)(數(shù)據(jù))設(shè)計和行為(處理)設(shè)計密切結(jié)合起來。2.(缺)3試述數(shù)據(jù)庫設(shè)計過程。答:這里只概要列出數(shù)據(jù)庫設(shè)計過程的六個階段: ( l )需求分析; ( 2 )概念結(jié)構(gòu)設(shè)計; ( 3 )邏輯結(jié)構(gòu)設(shè)計; ( 4 )數(shù)據(jù)庫物理設(shè)計; ( 5 )數(shù)據(jù)庫實施; ( 6 )數(shù)據(jù)庫運行和維護。這是一個完整的實際數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的設(shè)計過程。不僅包括設(shè)計數(shù)據(jù)庫本身,還包括數(shù)據(jù)庫的實施、運行和維護。設(shè)計一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)往往是上述六個階段的不斷反復(fù)。4 試述數(shù)據(jù)庫設(shè)計過程中結(jié)構(gòu)設(shè)計部分形成的數(shù)據(jù)庫模式。答:數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的不同階段形成數(shù)據(jù)庫的各級模式,即: ( l )在概念設(shè)計階段形成獨立于機器特點,獨立于各個 DBMS 產(chǎn)品的概念模式,在本篇中就是 E 一 R 圖; ( 2 )在邏輯設(shè)計階段將 E 一 R 圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫邏輯模式,然后在基本表的基礎(chǔ)上再建立必要的視圖 ( Vi 娜),形成數(shù)據(jù)的外模式; ( 3 )在物理設(shè)計階段,根據(jù) DBMS 特點和處理的需要,進行物理存儲安排,建立索引,形成數(shù)據(jù)庫內(nèi)模式。第11章 關(guān)系數(shù)據(jù)庫設(shè)計理論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,記作XY。(即只要X上的屬性值相等,Y上的值一定相等。)術(shù)語和記號:XY,但Y不是X的子集,則稱XY是非平凡的函數(shù)依賴。若不特別聲明,總是討論非平凡的函數(shù)依賴。XY,但Y是X的子集,則稱XY是平凡的函數(shù)依賴。若XY,則X叫做決定因素(Determinant)。若XY,YX,則記作XY。若Y不函數(shù)依賴于X,則記作X Y。定義2:在R(U)中,如果 XY,并且對于X的任何一個真子集X,都有X Y,則稱Y對X完全函數(shù)依賴 若XY,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴定義3:若關(guān)系模式R的每一個分量是不可再分的數(shù)據(jù)項,則關(guān)系模式R屬于第一范式(1NF)。定義4:若關(guān)系模式R1NF,且每一個非主屬性完全函數(shù)依賴于碼,則關(guān)系模式R2NF 。(即1NF消除了非主屬性對碼的部分函數(shù)依賴則成為2NF)。定義5:關(guān)系模式R<U,F(xiàn)> 中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z不是Y的子集)使得XY,Y X,Y Z成立,則稱R<U,F(xiàn)>3NF。定義6:關(guān)系模式R<U,F(xiàn)>1NF 。若XY且Y不是X的子集時,X必含有碼,則R<U,F(xiàn)>BCNF。定義7:關(guān)系模式R<U,F(xiàn)>1NF,如果對于R的每個非平凡多值依賴XY(Y不是X的子集,Z=U-X-Y不為空),X都含有碼,則稱R<U,F(xiàn)>4NF。2建立一個關(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é)會有一個入會年份。

注意事項

本文(《數(shù)據(jù)庫原理》課后練習(xí)答案整理.doc)為本站會員(s****u)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!