《數(shù)據庫原理》課后練習答案整理.doc
《《數(shù)據庫原理》課后練習答案整理.doc》由會員分享,可在線閱讀,更多相關《《數(shù)據庫原理》課后練習答案整理.doc(22頁珍藏版)》請在裝配圖網上搜索。
第1章 緒論 1 .試述數(shù)據、數(shù)據庫、數(shù)據庫系統(tǒng)、數(shù)據庫管理系統(tǒng)的概念。 答: ( l )數(shù)據( Data ) :描述事物的符號記錄稱為數(shù)據。數(shù)據的種類有數(shù)字、文字、圖形、圖像、聲音、正文等。數(shù)據與其語義是不可分的。解析在現(xiàn)代計算機系統(tǒng)中數(shù)據的概念是廣義的。早期的計算機系統(tǒng)主要用于科學計算,處理的數(shù)據是整數(shù)、實數(shù)、浮點數(shù)等傳統(tǒng)數(shù)學中的數(shù)據?,F(xiàn)代計算機能存儲和處理的對象十分廣泛,表示這些對象的數(shù)據也越來越復雜。數(shù)據與其語義是不可分的。 500 這個數(shù)字可以表示一件物品的價格是 500 元,也可以表示一個學術會議參加的人數(shù)有 500 人,還可以表示一袋奶粉重 500 克。 ( 2 )數(shù)據庫( DataBase ,簡稱 DB ) :數(shù)據庫是長期儲存在計算機內的、有組織的、可共享的數(shù)據集合。數(shù)據庫中的數(shù)據按一定的數(shù)據模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據獨立性和易擴展性,并可為各種用戶共享。 ( 3 )數(shù)據庫系統(tǒng)( DataBas 。 Sytem ,簡稱 DBS ) :數(shù)據庫系統(tǒng)是指在計算機系統(tǒng)中引入數(shù)據庫后的系統(tǒng)構成,一般由數(shù)據庫、數(shù)據庫管理系統(tǒng)(及其開發(fā)工具)、應用系統(tǒng)、數(shù)據庫管理員構成。解析數(shù)據庫系統(tǒng)和數(shù)據庫是兩個概念。數(shù)據庫系統(tǒng)是一個人一機系統(tǒng),數(shù)據庫是數(shù)據庫系統(tǒng)的一個組成部分。但是在日常工作中人們常常把數(shù)據庫系統(tǒng)簡稱為數(shù)據庫。希望讀者能夠從人們講話或文章的上下文中區(qū)分“數(shù)據庫系統(tǒng)”和“數(shù)據庫”,不要引起混淆。 ( 4 )數(shù)據庫管理系統(tǒng)( DataBase Management sytem ,簡稱 DBMs ) :數(shù)據庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據管理軟件,用于科學地組織和存儲數(shù)據、高效地獲取和維護數(shù)據。 DBMS 的主要功能包括數(shù)據定義功能、數(shù)據操縱功能、數(shù)據庫的運行管理功能、數(shù)據庫的建立和維護功能。解析 DBMS 是一個大型的復雜的軟件系統(tǒng),是計算機中的基礎軟件。目前,專門研制 DBMS 的廠商及其研制的 DBMS 產品很多。著名的有美國 IBM 公司的 DBZ 關系數(shù)據庫管理系統(tǒng)和 IMS 層次數(shù)據庫管理系統(tǒng)、美國 Oracle 公司的 orade 關系數(shù)據庫管理系統(tǒng)、 s 油 ase 公司的 s 油 ase 關系數(shù)據庫管理系統(tǒng)、美國微軟公司的 SQL Serve ,關系數(shù)據庫管理系統(tǒng)等。 2 .使用數(shù)據庫系統(tǒng)有什么好處? 答: 使用數(shù)據庫系統(tǒng)的好處是由數(shù)據庫管理系統(tǒng)的特點或優(yōu)點決定的。使用數(shù)據庫系統(tǒng)的好處很多,例如,可以大大提高應用開發(fā)的效率,方便用戶的使用,減輕數(shù)據庫系統(tǒng)管理人員維護的負擔,等等。使用數(shù)據庫系統(tǒng)可以大大提高應用開發(fā)的效率。因為在數(shù)據庫系統(tǒng)中應用程序不必考慮數(shù)據的定義、存儲和數(shù)據存取的具體路徑,這些工作都由 DBMS 來完成。用一個通俗的比喻,使用了 DBMS 就如有了一個好參謀、好助手,許多具體的技術工作都由這個助手來完成。開發(fā)人員就可以專注于應用邏輯的設計,而不必為數(shù)據管理的許許多多復雜的細節(jié)操心。還有,當應用邏輯改變,數(shù)據的邏輯結構也需要改變時,由于數(shù)據庫系統(tǒng)提供了數(shù)據與程序之間的獨立性,數(shù)據邏輯結構的改變是 DBA 的責任,開發(fā)人員不必修改應用程序,或者只需要修改很少的應用程序,從而既簡化了應用程序的編制,又大大減少了應用程序的維護和修改。使用數(shù)據庫系統(tǒng)可以減輕數(shù)據庫系統(tǒng)管理人員維護系統(tǒng)的負擔。因為 DBMS 在數(shù)據庫建立、運用和維護時對數(shù)據庫進行統(tǒng)一的管理和控制,包括數(shù)據的完整性、安全性、多用戶并發(fā)控制、故障恢復等,都由 DBMS 執(zhí)行??傊褂脭?shù)據庫系統(tǒng)的優(yōu)點是很多的,既便于數(shù)據的集中管理,控制數(shù)據冗余,提高數(shù)據的利用率和一致性,又有利于應用程序的開發(fā)和維護。讀者可以在自己今后的工作中結合具體應用,認真加以體會和總結。 3 .試述文件系統(tǒng)與數(shù)據庫系統(tǒng)的區(qū)別和聯(lián)系。 答: 文件系統(tǒng)與數(shù)據庫系統(tǒng)的區(qū)別是:文件系統(tǒng)面向某一應用程序,共享性差,冗余度大,數(shù)據獨立性差,記錄內有結構,整體無結構,由應用程序自己控制。數(shù)據庫系統(tǒng)面向現(xiàn)實世界,共享性高,冗余度小,具有較高的物理獨立性和一定的邏輯獨立性,整體結構化,用數(shù)據模型描述,由數(shù)據庫管理系統(tǒng)提供數(shù)據的安全性、完整性、并發(fā)控制和恢復能力。 文件系統(tǒng)與數(shù)據庫系統(tǒng)的聯(lián)系是:文件系統(tǒng)與數(shù)據庫系統(tǒng)都是計算機系統(tǒng)中管理數(shù)據的軟件。解析文件系統(tǒng)是操作系統(tǒng)的重要組成部分;而 DBMS 是獨立于操作系統(tǒng)的軟件。但是 DBMS 是在操作系統(tǒng)的基礎上實現(xiàn)的;數(shù)據庫中數(shù)據的組織和存儲是通過操作系統(tǒng)中的文件系統(tǒng)來實現(xiàn)的。 4.試述數(shù)據庫系統(tǒng)的特點。 答: 數(shù)據庫系統(tǒng)的主要特點有: ( l )數(shù)據結構化數(shù)據庫系統(tǒng)實現(xiàn)整體數(shù)據的結構化,這是數(shù)據庫的主要特征之一,也是數(shù)據庫系統(tǒng)與文件系統(tǒng)的本質區(qū)別。解析注意這里的“整體’夕兩個字。在數(shù)據庫系統(tǒng)中,數(shù)據不再針對某一個應用,而是面向全組織,具有整體的結構化。不僅數(shù)據是結構化的,而且數(shù)據的存取單位即一次可以存取數(shù)據的大小也很靈活,可以小到某一個數(shù)據項(如一個學生的姓名),大到一組記錄(成千上萬個學生記錄)。而在文件系統(tǒng)中,數(shù)據的存取單位只有一個:記錄,如一個學生的完整記錄。 ( 2 )數(shù)據的共享性高,冗余度低,易擴充數(shù)據庫的數(shù)據不再面向某個應用而是面向整個系統(tǒng),因此可以被多個用戶、多個應用以多種不同的語言共享使用。由于數(shù)據面向整個系統(tǒng),是有結構的數(shù)據,不僅可以被多個應用共享使用,而且容易增加新的應用,這就使得數(shù)據庫系統(tǒng)彈性大,易于擴充。解析數(shù)據共享可以大大減少數(shù)據冗余,節(jié)約存儲空間,同時還能夠避免數(shù)據之間的不相容性與不一致性。所謂“數(shù)據面向某個應用”是指數(shù)據結構是針對某個應用設計的,只被這個應用程序或應用系統(tǒng)使用,可以說數(shù)據是某個應用的“私有資源”。所謂“彈性大”是指系統(tǒng)容易擴充也容易收縮,即應用增加或減少時不必修改整個數(shù)據庫的結構,只需做很少的改動??梢匀≌w數(shù)據的各種子集用于不同的應用系統(tǒng),當應用需求改變或增加時,只要重新選取不同的子集或加上一部分數(shù)據,便可以滿足新的需求。 ( 3 )數(shù)據獨立性高數(shù)據獨立性包括數(shù)據的物理獨立性和數(shù)據的邏輯獨立性。數(shù)據庫管理系統(tǒng)的模式結構和二級映像功能保證了數(shù)據庫中的數(shù)據具有很高的物理獨立性和邏輯獨立性。 ( 4 )數(shù)據由 DBMS 統(tǒng)一管理和控制數(shù)據庫的共享是并發(fā)的共享,即多個用戶可以同時存取數(shù)據庫中的數(shù)據甚至可以同時存取數(shù)據庫中同一個數(shù)據。為此, DBMS 必須提供統(tǒng)一的數(shù)據控制功能,包括數(shù)據的安全性保護、數(shù)據的完整性檢查、并發(fā)控制和數(shù)據庫恢復。解析 DBMS 數(shù)據控制功能包括四個方面:數(shù)據的安全性保護:保護數(shù)據以防止不合法的使用造成的數(shù)據的泄密和破壞;數(shù)據的完整性檢查:將數(shù)據控制在有效的范圍內,或保證數(shù)據之間滿足一定的關系;并發(fā)控制:對多用戶的并發(fā)操作加以控制和協(xié)調,保證并發(fā)操作的正確性;數(shù)據庫恢復:當計算機系統(tǒng)發(fā)生硬件故障、軟件故障,或者由于操作員的失誤以及故意的破壞影響數(shù)據庫中數(shù)據的正確性,甚至造成數(shù)據庫部分或全部數(shù)據的丟失時,能將數(shù)據庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)(亦稱為完整狀態(tài)或一致狀態(tài))。下面可以得到“什么是數(shù)據庫”的一個定義:數(shù)據庫是長期存儲在計算機內有組織的大量的共享的數(shù)據集合,它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據獨立性。 DBMS 在數(shù)據庫建立、運用和維護時對數(shù)據庫進行統(tǒng)一控制,以保證數(shù)據的完整性、安全性,并在多用戶同時使用數(shù)據庫時進行并發(fā)控制,在發(fā)生故障后對系統(tǒng)進行恢復。數(shù)據庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據的程序為中心轉向圍繞共享的數(shù)據庫為中心的新階段。 5 .數(shù)據庫管理系統(tǒng)的主要功能有哪些? 答: ( l )數(shù)據庫定義功能; ( 2 )數(shù)據存取功能; ( 3 )數(shù)據庫運行管理; ( 4 )數(shù)據庫的建立和維護功能。 6 .試述數(shù)據庫系統(tǒng)三級模式結構,這種結構的優(yōu)點是什么? 答: 數(shù)據庫系統(tǒng)的三級模式結構由外模式、模式和內模式組成。(參見書上圖 1 . 29 ) 外模式,亦稱子模式或用戶模式,是數(shù)據庫用戶(包括應用程序員和最終用戶)能夠看見和使用的局部數(shù)據的邏輯結構和特征的描述,是數(shù)據庫用戶的數(shù)據視圖,是與某一應用有關的數(shù)據的邏輯表示。模式,亦稱邏輯模式,是數(shù)據庫中全體數(shù)據的邏輯結構和特征的描述,是所有用戶的公共數(shù)據視圖。模式描述的是數(shù)據的全局邏輯結構。外模式涉及的是數(shù)據的局部邏輯結構,通常是模式的子集。內模式,亦稱存儲模式,是數(shù)據在數(shù)據庫系統(tǒng)內部的表示,即對數(shù)據的物理結構和存儲方式的描述。數(shù)據庫系統(tǒng)的三級模式是對數(shù)據的三個抽象級別,它把數(shù)據的具體組織留給 DBMs 管理,使用戶能邏輯抽象地處理數(shù)據,而不必關心數(shù)據在計算機中的表示和存儲。為了能夠在內部實現(xiàn)這三個抽象層次的聯(lián)系和轉換,數(shù)據庫系統(tǒng)在這三級模式之間提供了兩層映像:外模式/模式映像和模式/內模式映像。正是這兩層映像保證了數(shù)據庫系統(tǒng)中的數(shù)據能夠具有較高的邏輯獨立性和物理獨立性。 7.定義并解釋以下術語:模式、外模式、內模式、 DDL 、 DML 模式、外模式、內模式,亦稱邏輯模式,是數(shù)據庫中全體數(shù)據的邏輯結構和特征的描述,是所有用戶的公共數(shù)據視圖。模式描述的是數(shù)據的全局邏輯結構。外模式涉及的是數(shù)據的局部邏輯結構,通常是模式的子集。內模式,亦稱存儲模式,是數(shù)據在數(shù)據庫系統(tǒng)內部的表示,即對數(shù)據的物理結構和存儲方式的描述。 DDL :數(shù)據定義語言,用來定義數(shù)據庫模式、外模式、內模式的語言。 DML :數(shù)據操縱語言,用來對數(shù)據庫中的數(shù)據進行查詢、插入、刪除和修改的語句。 8 .什么叫數(shù)據與程序的物理獨立性?什么叫數(shù)據與程序的邏輯獨立性?為什么數(shù)據庫系統(tǒng)具有數(shù)據與程序的獨立性? 答: 數(shù)據與程序的邏輯獨立性:當模式改變時(例如增加新的關系、新的屬性、改變屬性的數(shù)據類型等),由數(shù)據庫管理員對各個外模式/模式的映像做相應改變,可以使外模式保持不變。應用程序是依據數(shù)據的外模式編寫的,從而應用程序不必修改,保證了數(shù)據與程序的邏輯獨立性,簡稱數(shù)據的邏輯獨立性。數(shù)據與程序的物理獨立性:當數(shù)據庫的存儲結構改變了,由數(shù)據庫管理員對模式/內模式映像做相應改變,可以使模式保持不變,從而應用程序也不必改變,保證了數(shù)據與程序的物理獨立性,簡稱數(shù)據的物理獨立性。數(shù)據庫管理系統(tǒng)在三級模式之間提供的兩層映像保證了數(shù)據庫系統(tǒng)中的數(shù)據能夠具有較高的邏輯獨立性和物理獨立性。 9.試述數(shù)據庫系統(tǒng)的組成。 答: 數(shù)據庫系統(tǒng)一般由數(shù)據庫、數(shù)據庫管理系統(tǒng)(及其開發(fā)工具)、應用系統(tǒng)、數(shù)據庫管理員和用戶構成。 10 . DBA 的職責是什么? 答: 負責全面地管理和控制數(shù)據庫系統(tǒng)。具體職責包括: ① 決定數(shù)據庫的信息內容和結構; ② 決定數(shù)據庫的存儲結構和存取策略; ③ 定義數(shù)據的安全性要求和完整性約束條件; ④ 監(jiān)督和控制數(shù)據庫的使用和運行; ⑤ 改進和重組數(shù)據庫系統(tǒng)。 25 .系統(tǒng)分析員、數(shù)據庫設計人員、應用程序員的職責是什么?答系統(tǒng)分析員負責應用系統(tǒng)的需求分析和規(guī)范說明,系統(tǒng)分析員要和用戶及 DBA 相結合,確定系統(tǒng)的硬件、軟件配置,并參與數(shù)據庫系統(tǒng)的概要設計。數(shù)據庫設計人員負責數(shù)據庫中數(shù)據的確定、數(shù)據庫各級模式的設計。數(shù)據庫設計人員必須參加用戶需求調查和系統(tǒng)分析,然后進行數(shù)據庫設計。在很多情況下,數(shù)據庫設計人員就由數(shù)據庫管理員擔任。應用程序員負責設計和編寫應用系統(tǒng)的程序模塊,并進行調試和安裝。 第2章 數(shù)據模型 1 – 2-- 3.試述數(shù)據模型的概念、數(shù)據模型的作用和數(shù)據模型的三個要素。 答: 數(shù)據模型是數(shù)據庫中用來對現(xiàn)實世界進行抽象的工具,是數(shù)據庫中用于提供信息表示和操作手段的形式構架。一般地講,數(shù)據模型是嚴格定義的概念的集合。這些概念精確描述了系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件。因此數(shù)據模型通常由數(shù)據結構、數(shù)據操作和完整性約束三部分組成。 ( l )數(shù)據結構:是所研究的對象類型的集合,是對系統(tǒng)靜態(tài)特性的描述。 ( 2 )數(shù)據操作:是指對數(shù)據庫中各種對象(型)的實例(值)允許進行的操作的集合,包括操作及有關的操作規(guī)則,是對系統(tǒng)動態(tài)特性的描述。 ( 3 )數(shù)據的約束條件:是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據模型中數(shù)據及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據模型的數(shù)據庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據的正確、有效、相容。解析數(shù)據模型是數(shù)據庫系統(tǒng)中最重要的概念之一。必須通過 《 概論 》 的學習真正掌握數(shù)據模型的概念和作用。數(shù)據模型是數(shù)據庫系統(tǒng)的基礎。任何一個 DBMS 都以某一個數(shù)據模型為基礎,或者說支持某一個數(shù)據模型。數(shù)據庫系統(tǒng)中,模型有不同的層次。根據模型應用的不同目的,可以將模型分成兩類或者說兩個層次:一類是概念模型,是按用戶的觀點來對數(shù)據和信息建模,用于信息世界的建模,強調語義表達能力,概念簡單清晰;另一類是數(shù)據模型,是按計算機系統(tǒng)的觀點對數(shù)據建模,用于機器世界,人們可以用它定義、操縱數(shù)據庫中的數(shù)據,一般需要有嚴格的形式化定義和一組嚴格定義了語法和語義的語言,并有一些規(guī)定和限制,便于在機器上實現(xiàn)。 4 .試述層次模型的概念,舉出三個層次模型的實例。 答: ( l )教員學生層次數(shù)據庫模型 ( 2 )行政機構層次數(shù)據庫模型 ( 3 )行政區(qū)域層次數(shù)據庫模型 5.試述網狀模型的概念,舉出三個網狀模型的實例。 答: 滿足下面兩個條件的基本層次聯(lián)系集合為網狀模型。 ( l )允許一個以上的結點無雙親; ( 2 )一個結點可以有多于一個的雙親。 實例 1 : 實例 2 : 實例 3 : 6.試述網狀、層次數(shù)據庫的優(yōu)缺點。 答: 層次模型的優(yōu)點主要有: ( l )模型簡單,對具有一對多層次關系的部門描述非常自然、直觀,容易理解,這是層次數(shù)據庫的突出優(yōu)點; ( 2 )用層次模型的應用系統(tǒng)性能好,特別是對于那些實體間聯(lián)系是固定的且預先定義好的應用,采用層次模型來實現(xiàn),其性能優(yōu)于關系模型; ( 3 )層次數(shù)據模型提供了良好的完整性支持。 層次模型的缺點主要有: ( l )現(xiàn)實世界中很多聯(lián)系是非層次性的,如多對多聯(lián)系、一個結點具有多個雙親等,層次模型不能自然地表示這類聯(lián)系,只能通過引入冗余數(shù)據或引入虛擬結點來解決; ( 2 )對插入和刪除操作的限制比較多; ( 3 )查詢子女結點必須通過雙親結點。 網狀數(shù)據模型的優(yōu)點主要有: ( l )能夠更為直接地描述現(xiàn)實世界,如一個結點可以有多個雙親; ( 2 )具有良好的性能,存取效率較高。 網狀數(shù)據模型的缺點主要有: ( l )結構比較復雜,而且隨著應用環(huán)境的擴大,數(shù)據庫的結構就變得越來越復雜,不利于最終用戶掌握; ( 2 )其 DDL 、 DML 語言復雜,用戶不容易使用。由于記錄之間聯(lián)系是通過存取路徑實現(xiàn)的,應用程序在訪問數(shù)據時必須選擇適當?shù)拇嫒÷窂?。因此,用戶必須了解系統(tǒng)結構的細節(jié),加重了編寫應用程序的負擔。 7 .試述關系模型的概念,定義并解釋以下術語: ( l )關系( 2 )屬性( 3 )域( 4 )元組 ( 5 )主碼( 6 )分量( 7 )關系模式 答: 關系模型由關系數(shù)據結構、關系操作集合和關系完整性約束三部分組成。在用戶觀點下,關系模型中數(shù)據的邏輯結構是一張二維表,它由行和列組成。 ( l )關系:一個關系對應通常說的一張表; ( 2 )屬性:表中的一列即為一個屬性; ( 3 )域:屬性的取值范圍; ( 4 )元組:表中的一行即為一個元組; ( 5 )主碼:表中的某個屬性組,它可以惟一確定一個元組; ( 6 )分量:元組中的一個屬性值; ( 7 )關系模式:對關系的描述,一般表示為關系名(屬性 1 ,屬性 2 , … ,屬性 n ) 8 .試述關系數(shù)據庫的特點。 答: 關系數(shù)據模型具有下列優(yōu)點: ( l )關系模型與非關系模型不同,它是建立在嚴格的數(shù)學概念的基礎上的。 ( 2 )關系模型的概念單一,無論實體還是實體之間的聯(lián)系都用關系表示,操作的對象和操作的結果都是關系,所以其數(shù)據結構簡單、清晰,用戶易懂易用。 ( 3 )關系模型的存取路徑對用戶透明,從而具有更高的數(shù)據獨立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據庫開發(fā)建立的工作。當然,關系數(shù)據模型也有缺點,其中最主要的缺點是,由于存取路徑對用戶透明,查詢效率往往不如非關系數(shù)據模型。因此為了提高性能,必須對用戶的查詢請求進行優(yōu)化,增加了開發(fā)數(shù)據庫管理系統(tǒng)的難度。 第3章 關系數(shù)據庫 1 .試述關系模型的三個組成部分。 答:關系模型由關系數(shù)據結構、關系操作集合和關系完整性約束三部分組成。 2 .試述關系數(shù)據語言的特點和分類。 答:關系數(shù)據語言可以分為三類: 關系代數(shù)語言。 關系演算語言:元組關系演算語言和域關系演算語言。 SQL:具有關系代數(shù)和關系演算雙重特點的語言。 這些關系數(shù)據語言的共同特點是,語言具有完備的表達能力,是非過程化的集合操作語言,功能強,能夠嵌入高級語言中使用。 4.試述關系模型的完整性規(guī)則。在參照完整性中,為什么外部碼屬性的值也可以為空?什么情況下才可以為空? 答:實體完整性規(guī)則是指若屬性A是基本關系R的主屬性,則屬性A不能取空值。 若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值。即屬性F本身不是主屬性,則可以取空值,否則不能取空值。 5.設有一個SPJ數(shù)據庫,包括S,P,J,SPJ四個關系模式: 1)求供應工程J1零件的供應商號碼SNO: πSno(σSno=‘J1’(SPJ)) 2)求供應工程J1零件P1的供應商號碼SNO: πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ)) 3)求供應工程J1零件為紅色的供應商號碼SNO: πSno(σPno=‘P1‘ (σCOLOR=’紅‘ (P)∞SPJ)) 4)求沒有使用天津供應商生產的紅色零件的工程號JNO: πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘紅‘ (S∞SPJ∞P) 5)求至少用了供應商S1所供應的全部零件的工程號JNO: πJno,Pno(SPJ) πPno(σSno=‘S1‘ (SPJ)) 6.試述等值連接與自然連接的區(qū)別和聯(lián)系。 答:連接運算符是“=”的連接運算稱為等值連接。它是從關系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組 自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉。 7.關系代數(shù)的基本運算有哪些 ? 如何用這些基本運算來表示其他運算? 答:并、差、笛卡爾積、投影和選擇5種運算為基本的運算。其他3種運算,即交、連接和除,均可以用這5種基本運算來表達。 第4章 關系數(shù)據庫標準語言SQL 1 .試述 sQL 語言的特點。 答: (l)綜合統(tǒng)一。 sQL 語言集數(shù)據定義語言 DDL 、數(shù)據操縱語言 DML 、數(shù)據控制語言 DCL 的功能于一體。 (2)高度非過程化。用 sQL 語言進行數(shù)據操作,只要提出“做什么”,而無需指明“怎么做”,因此無需了解存取路徑,存取路徑的選擇以及 sQL 語句的操作過程由系統(tǒng)自動完成。 (3)面向集合的操作方式。 sQL 語言采用集合操作方式,不僅操作對象、查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。 (4)以同一種語法結構提供兩種使用方式。 sQL 語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨立地用于聯(lián)機交互的使用方式;作為嵌入式語言,它能夠嵌入到高級語言程序中,供程序員設計程序時使用。 (5)語言簡捷,易學易用。 2 .試述 sQL 的定義功能。 sQL 的數(shù)據定義功能包括定義表、定義視圖和定義索引。 SQL 語言使用 cREATE TABLE 語句建立基本表, ALTER TABLE 語句修改基本表定義, DROP TABLE 語句刪除基本表;使用 CREATE INDEX 語句建立索引, DROP INDEX 語句刪除索引;使用 CREATE VIEW 語句建立視圖, DROP VIEW 語句刪除視圖。 3 .用 sQL 語句建立第二章習題 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 語言完成第二章習題 5 中的查詢。 ( l )求供應工程 Jl 零件的供應商號碼 SNO ; SELECT DIST SNO FROM SPJ WHERE JNO=’J1’ ( 2 )求供應工程 Jl 零件 Pl 的供應商號碼 SNO ; SELECT DIST SNO FROM SPJ WHERE JNO=J1 AND PNO=P1 ( 3 )求供應工程 Jl 零件為紅色的供應商號碼 SNO ; SELECT SNO FROM SPJ,P WHERE JNO=J1 AND SPJ.PNO=P.PNO AND COLOR=紅 ( 4 )求沒有使用天津供應商生產的紅色零件的工程號 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 )求至少用了供應商 Sl 所供應的全部零件的工程號 JNO ; 由于VFP不允許子查詢嵌套太深,將查詢分為兩步 A、查詢S1供應商供應的零件號 SELECT DIST PNO FROM SPJ WHERE SNO=S1結果是(P1,P2) B、查詢哪一個工程既使用P1零件又使用P2零件。 SELECT JNO FROM SPJ WHERE PNO=P1 AND JNO IN (SELECT JNO FROM SPJ WHERE PNO=P2) 5.針對習題3中的四個表試用SQL語言完成以下各項操作: (1)找出所有供應商的姓名和所在城市。 SELECT SNAME,CITY FROM S (2)找出所有零件的名稱、顏色、重量。 SELECT PNAME,COLOR,WEIGHT FROM P (3)找出使用供應商S1所供應零件的工程號碼。 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)找出上海廠商供應的所有零件號碼。 SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY=上海 (6)出使用上海產的零件的工程名稱。 SELECT JNAME FROM SPJ,S,J WHERE S.SNO=SPJ.SNO AND S.CITY=上海 AND J.JNO=SPJ.JNO (7)找出沒有使用天津產的零件的工程號碼。 注意: 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供應。 UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6 (10)從供應商關系中刪除供應商號是S2的記錄,并從供應情況關系中刪除相應的記錄。 A、DELETE FROM S WHERE SNO=’S2’ B、DELETE FROM SPJ WHERE SNO=‘S2’ (11)請將(S2,J6,P4,200)插入供應情況關系。 INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200) 6 .什么是基本表?什么是視圖? 答 兩者的區(qū)別和聯(lián)系是什么?基本表是本身獨立存在的表,在 sQL 中一個關系就對應一個表。視圖是從一個或幾個基本表導出的表。視圖本身不獨立存儲在數(shù)據庫中,是一個虛表。即數(shù)據庫中只存放視圖的定義而不存放視圖對應的數(shù)據,這些數(shù)據仍存放在導出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。 7 .試述視圖的優(yōu)點。 答 ( l )視圖能夠簡化用戶的操作; ( 2 )視圖使用戶能以多種角度看待同一數(shù)據; ( 3 )視圖對重構數(shù)據庫提供了一定程度的邏輯獨立性; ( 4 )視圖能夠對機密數(shù)據提供安全保護。 8 .所有的視圖是否都可以更新?為什么? 答: 不是。視圖是不實際存儲數(shù)據的虛表,因此對視圖的更新,最終要轉換為對基本表的更新。因為有些視圖的更新不能惟一有意義地轉換成對相應基本表的更新,所以,并不是所有的視圖都是可更新的. 9 .哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明。 答:基本表的行列子集視圖一般是可更新的。若視圖的屬性來自集函數(shù)、表達式,則該視圖肯定是不可以更新的。 10 .試述某個你熟悉的實際系統(tǒng)中對視圖更新的規(guī)定。 答 VFP 11.請為三建工程項目建立一個供應情況的視圖,包括供應商代碼(SNO)、零件代碼(PNO)、供應數(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)找出供應商S1的供應情況。 SELECT DIST * FROM VSP WHERE SNO=S1 這里是第7、8、9、11章課本的答案,里面有少部分沒有的,請大家自己對照一下原來郵箱里面的答案,有疏忽的地方,請原諒! 另一部分等整理好就發(fā)上去…… 第7章 數(shù)據庫恢復技術 1.試述事務的概念及事務的4 個特性。 答: 事務是用戶定義的一個數(shù)據庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。 事務具有4 個特性:原子性(Atomicity )、一致性(consistency )、隔離性( Isolation )和持續(xù)性(Durability )。這4 個特性也簡稱為ACID 特性。 原子性:事務是數(shù)據庫的邏輯工作單位,事務中包括的諸操作要么都做,要么都不做。 一致性:事務執(zhí)行的結果必須是使數(shù)據庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。 隔離性:一個事務的執(zhí)行不能被其他事務干擾。即一個事務內部的操作及使用的數(shù)據對其他并發(fā)事務是隔離的,并發(fā)執(zhí)行的各個事務之間不能互相干擾。持續(xù)性:持續(xù)性也稱永久性(Perfnanence ) ,指一個事務一旦提交,它對數(shù)據庫中數(shù)據的改變就應該是永久性的。接下來的其他操作或故障不應該對其執(zhí)行結果有任何影響。 2 .為什么事務非正常結束時會影響數(shù)據庫數(shù)據的正確性,請列舉一例說明之。 答: 事務執(zhí)行的結果必須是使數(shù)據庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。如果數(shù)據庫系統(tǒng)運行中發(fā)生故障,有些事務尚未完成就被迫中斷,這些未完成事務對數(shù)據庫所做的修改有一部分已寫入物理數(shù)據庫,這時數(shù)據庫就處于一種不正確的狀態(tài),或者說是不一致的狀態(tài)。 例如某工廠的庫存管理系統(tǒng)中,要把數(shù)量為Q 的某種零件從倉庫1 移到倉庫2 存放。 則可以定義一個事務T , T 包括兩個操作;Ql = Ql 一Q , Q2= Q2 + Q。 如果T 非正常終止時只做了第一個操作,則數(shù)據庫就處于不一致性狀態(tài),庫存量無緣無故少了Q 。 3 .數(shù)據庫中為什么要有恢復子系統(tǒng)?它的功能是什么? 答: 因為計算機系統(tǒng)中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務非正常中斷,影響數(shù)據庫中數(shù)據的正確性,重則破壞數(shù)據庫,使數(shù)據庫中全部或部分數(shù)據丟失,因此必須要有恢復子系統(tǒng)。 恢復子系統(tǒng)的功能是:把數(shù)據庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))。 4 .數(shù)據庫運行中可能產生的故障有哪幾類?哪些故障影響事務的正常執(zhí)行?哪些故障破壞數(shù)據庫數(shù)據? 答: 數(shù)據庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類: (1)事務內部的故障; (2)系統(tǒng)故障; (3)介質故障; (4)計算機病毒。 事務故障、系統(tǒng)故障和介質故障影響事務的正常執(zhí)行;介質故障和計算機病毒破壞數(shù)據庫數(shù)據。 5 .數(shù)據庫恢復的基本技術有哪些? 答: 數(shù)據轉儲和登錄日志文件是數(shù)據庫恢復的基本技術。 當系統(tǒng)運行過程中發(fā)生故障,利用轉儲的數(shù)據庫后備副本和日志文件就可以將數(shù)據庫恢復到故障前的某個一致性狀態(tài)。 6 .數(shù)據庫轉儲的意義是什么?試比較各種數(shù)據轉儲方法。 答: 數(shù)據轉儲是數(shù)據庫恢復中采用的基本技術。所謂轉儲即DBA 定期地將數(shù)據庫復制到磁帶或另一個磁盤上保存起來的過程。當數(shù)據庫遭到破壞后可以將后備副本重新裝入,將數(shù)據庫恢復到轉儲時的狀態(tài)。 靜態(tài)轉儲:在系統(tǒng)中無運行事務時進行的轉儲操作,如上圖所示。靜態(tài)轉儲簡單,但必須等待正運行的用戶事務結束才能進行。同樣,新的事務必須等待轉儲結束才能執(zhí)行。顯然,這會降低數(shù)據庫的可用性。 動態(tài)轉儲:指轉儲期間允許對數(shù)據庫進行存取或修改。動態(tài)轉儲可克服靜態(tài)轉儲的缺點,它不用等待正在運行的用戶事務結束,也不會影響新事務的運行。但是,轉儲結束時后援副本上的數(shù)據并不能保證正確有效。因為轉儲期間運行的事務可能修改了某些數(shù)據,使得后援副本上的數(shù)據不是數(shù)據庫的一致版本。為此,必須把轉儲期間各事務對數(shù)據庫的修改活動登記下來,建立日志文件( 109 file )。這樣,后援副本加上日志文件就能得到數(shù)據庫某一時刻的正確狀態(tài)。轉儲還可以分為海量轉儲和增量轉儲兩種方式。 海量轉儲是指每次轉儲全部數(shù)據庫。增量轉儲則指每次只轉儲上一次轉儲后更新過的數(shù)據。從恢復角度看,使用海量轉儲得到的后備副本進行恢復一般說來更簡單些。但如果數(shù)據庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。 7 .什么是日志文件?為什么要設立日志文件? 答: (1)日志文件是用來記錄事務對數(shù)據庫的更新操作的文件。 (2)設立日志文件的目的是:進行事務故障恢復;進行系統(tǒng)故障恢復;協(xié)助后備副本進行介質故障恢復。 8 .登記日志文件時為什么必須先寫日志文件,后寫數(shù)據庫? 答: 把對數(shù)據的修改寫到數(shù)據庫中和把表示這個修改的日志記錄寫到日志文件中是兩個不同的操作。有可能在這兩個操作之間發(fā)生故障,即這兩個寫操作只完成了一個。 如果先寫了數(shù)據庫修改,而在運行記錄中沒有登記這個修改,則以后就無法恢復這個修改了。如果先寫日志,但沒有修改數(shù)據庫,在恢復時只不過是多執(zhí)行一次UNDO 操作,并不會影響數(shù)據庫的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據庫的修改。 9 .針對不同的故障,試給出恢復的策略和方法。(即如何進行事務故障的恢復?系統(tǒng)故障的恢復?介質故障恢復?) 答: 事務故障的恢復: 事務故障的恢復是由DBMS DBMs 執(zhí)行恢復步驟是: 自動完成的,對用戶是透明的。 (1)反向掃描文件日志(即從最后向前掃描日志文件),查找該事務的更新操作; (2)對該事務的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據庫; (3)繼續(xù)反向掃描日志文件,做同樣處理; (4)如此處理下去,直至讀到此事務的開始標記,該事務故障的恢復就完成了。 系統(tǒng)故障的恢復: 系統(tǒng)故障可能會造成數(shù)據庫處于不一致狀態(tài):一是未完成事務對數(shù)據庫的更新可能已寫入數(shù)據庫;二是已提交事務對數(shù)據庫的更新可能還留在緩沖區(qū),沒來得及寫入數(shù)據庫。因此恢復操作就是要撤銷(UNDO )故障發(fā)生時未完成的事務,重做(REDO )已完成的事務。 系統(tǒng)的恢復步驟是: (1)正向掃描日志文件,找出在故障發(fā)生前已經提交的事務隊列(REDO 隊列)和未完成的事務隊列(uNDO 隊列)。 (2)對撤銷隊列中的各個事務進行UNDO 處理。 進行UNDO 處理的方法是,反向掃描日志文件,對每個UNDO 事務的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”Before Image )寫入數(shù)據庫。( 3 )對重做隊列中的各個事務進行REDO 處理。 進行REDO 處理的方法是:正向掃描日志文件,對每個REDO 事務重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”Afte , Image )寫入數(shù)據庫。 介質故障的恢復: 介質故障是最嚴重的一種故障。 恢復方法是重裝數(shù)據庫,然后重做已完成的事務。具體過程是: ( 1 ) DBA 裝入最新的數(shù)據庫后備副本(離故障發(fā)生時刻最近的轉儲副本), 使數(shù)據庫恢復到轉儲時的一致性狀態(tài); ( 2 ) DBA 裝入轉儲結束時刻的日志文件副本; ( 3 ) DBA 啟動系統(tǒng)恢復命令,由DBMS 完成恢復功能,即重做已完成的事務。 10、11缺 第8章 并發(fā)控制 1. 在數(shù)據庫中為什么要并發(fā)控制? 答:數(shù)據庫是共享資源,通常有許多個事務同時在運行。當多個事務并發(fā)地存取數(shù)據庫時就會產生同時讀取和/或修改同一數(shù)據的情況。若對并發(fā)操作不加控制就可能會存取和存儲不正確的數(shù)據,破壞數(shù)據庫的一致性。所以數(shù)據庫管理系統(tǒng)必須提供并發(fā)控制機制。 2 .并發(fā)操作可能會產生哪幾類數(shù)據不一致?用什么方法能避免各種不一致的情況? 答:并發(fā)操作帶來的數(shù)據不一致性包括三類:丟失修改、不可重復讀和讀“臟’夕數(shù)據。 ( l )丟失修改(lost update ) 兩個事務 Tl 和T2讀入同一數(shù)據并修改,T2提交的結果破壞了(覆蓋了) Tl 提交的結果,導致 Tl 的修改被丟失。 ( 2 )不可重復讀( Non 一 Repeatable Read ) 不可重復讀是指事務 Tl 讀取數(shù)據后,事務幾執(zhí)行更新操作,使 Tl 無法再現(xiàn)前一次讀取結果。( 3 )讀“臟”數(shù)據( Dirty Read ) 讀“臟’夕數(shù)據是指事務 Tl 修改某一數(shù)據,并將其寫回磁盤,事務幾讀取同一數(shù)據后, Tl 由于某種原因被撤銷,這時 Tl 已修改過的數(shù)據恢復原值,幾讀到的數(shù)據就與數(shù)據庫中的數(shù)據不一致,則幾讀到的數(shù)據就為“臟”數(shù)據,即不正確的數(shù)據。避免不一致性的方法和技術就是并發(fā)控制。最常用的技術是封鎖技術。也可以用其他技術,例如在分布式數(shù)據庫系統(tǒng)中可以采用時間戳方法來進行并發(fā)控制。 3 .什么是封鎖? 答:封鎖就是事務 T 在對某個數(shù)據對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務 T 就對該數(shù)據對象有了一定的控制,在事務 T 釋放它的鎖之前,其他的事務不能更新此數(shù)據對象。封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術。 4、基本的封鎖類型有幾種?試述它們的含義。 基本的封鎖類型有兩種:排它鎖( Exclusive Locks ,簡稱 x 鎖)和共享鎖 ( Share Locks,簡稱 S 鎖)。排它鎖又稱為寫鎖。若事務 T 對數(shù)據對象 A 加上 X 鎖,則只允許 T 讀取和修改 A ,其他任何事務都不能再對 A 加任何類型的鎖,直到 T 釋放 A 上的鎖。這就保證了其他事務在 T 釋放 A 上的鎖之前不能再讀取和修改 A 。共享鎖又稱為讀鎖。若事務 T 對數(shù)據對象 A 加上 S 鎖,則事務 T 可以讀 A但不能修改 A ,其他事務只能再對 A 加 S 鎖,而不能加 X 鎖,直到 T 釋放 A 上的 S 鎖。這就保證了其他事務可以讀 A ,但在 T 釋放 A 上的 S 鎖之前不能對 A 做任何修改。 5、如何用封鎖機制保證數(shù)據的一致性? 答: DBMS 在對數(shù)據進行讀、寫操作之前首先對該數(shù)據執(zhí)行封鎖操作,例如下圖中事務 Tl 在對 A 進行修改之前先對 A 執(zhí)行 xock ( A ) ,即對 A 加 x 鎖。這樣,當幾請求對 A 加 x 鎖時就被拒絕,幾只能等待 Tl 釋放 A 上的鎖后才能獲得對 A 的 x 鎖,這時它讀到的 A 是 Tl 更新后的值,再按此新的 A 值進行運算。這樣就不會丟失 Tl 的更新。 DBMS 按照一定的封鎖協(xié)議,對并發(fā)操作進行控制,使得多個并發(fā)操作有序地執(zhí)行,就可以避免丟失修改、不可重復讀和讀“臟’夕數(shù)據等數(shù)據不一致性。 8.什么是活鎖?什么是死鎖? 答: 如果事務 Tl 封鎖了數(shù)據 R ,事務幾又請求封鎖 R ,于是幾等待。幾也請求封鎖 R ,當 Tl 釋放了 R 上的封鎖之后系統(tǒng)首先批準了幾的請求,幾仍然等待。然后幾又請求封鎖 R ,當幾釋放了 R 上的封鎖之后系統(tǒng)又批準了幾的請求 … … 幾有可能永遠等待,這就是活鎖的情形?;铈i的含義是該等待事務等待時間太長,似乎被鎖住了,實際上可能被激活。如果事務 Tl 封鎖了數(shù)據 Rl ,幾封鎖了數(shù)據凡,然后 Tl 又請求封鎖幾,因幾已封鎖了幾,于是 Tl 等待幾釋放幾上的鎖。接著幾又申請封鎖 Rl ,因 Tl 已封鎖了 Rl ,幾也只能等待 Tl 釋放 Rl 上的鎖。這樣就出現(xiàn)了 Tl 在等待幾,而幾又在等待 T }的局面, T }和幾兩個事務永遠不能結束,形成死鎖。 9.試述活鎖的產生原因和解決方法。 答:活鎖產生的原因:當一系列封鎖不能按照其先后順序執(zhí)行時,就可能導致一些事務無限期等待某個封鎖,從而導致活鎖。避免活鎖的簡單方法是采用先來先服務的策略。當多個事務請求封鎖同一數(shù)據對象時,封鎖子系統(tǒng)按請求封鎖的先后次序對事務排隊,數(shù)據對象上的鎖一旦釋放就批準申請隊列中第一個事務獲得鎖。 11 .請給出檢測死鎖發(fā)生的一種方法,當發(fā)生死鎖后如何解除死鎖? 答:數(shù)據庫系統(tǒng)一般采用允許死鎖發(fā)生, DBMS 檢測到死鎖后加以解除的方法。 DBMS 中診斷死鎖的方法與操作系統(tǒng)類似,一般使用超時法或事務等待圖法。超時法是:如果一個事務的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖。超時法實現(xiàn)簡單,但有可能誤判死鎖,事務因其他原因長時間等待超過時限時,系統(tǒng)會誤認為發(fā)生了死鎖。若時限設置得太長,又不能及時發(fā)現(xiàn)死鎖發(fā)生。 DBMS 并發(fā)控制子系統(tǒng)檢測到死鎖后,就要設法解除。通常采用的方法是選擇一個處理死鎖代價最小的事務,將其撤消,釋放此事務持有的所有鎖,使其他事務得以繼續(xù)運行下去。當然,對撤銷的事務所執(zhí)行的數(shù)據修改操作必須加以恢復。 12 .什么樣的并發(fā)調度是正確的調度? 答:可串行化( Serializable )的調度是正確的調度??纱谢恼{度的定義:多個事務的并發(fā)執(zhí)行是正確的,當且僅當其結果與按某一次序串行執(zhí)行它們時的結果相同,稱這種調度策略為可串行化的調度。 13 .設 Tl ,幾,幾是如下的 3 個事務: Tl :A : = A + 2 ; T2:A : = A * 2 ; T3:A : = A **2 ; ( A <-A*A) 設 A 的初值為 0 。 ( l )若這 3 個事務允許并行執(zhí)行,則有多少可能的正確結果,請一一列舉出來。 答 :A 的最終結果可能有 2 、 4 、 8 、 16 。因為串行執(zhí)行次序有 Tl T2T3、 Tl T3T2、T2T1T3、T2T3Tl 、T3T1T2、T3T2 Tl 。對應的執(zhí)行結果是 16 、 8 4 2 4 2 。 ( 2 )請給出一個可串行化的調度,并給出執(zhí)行結果 答: 最后結果 A 為 16 ,是可串行化的調度。 ( 3 )請給出一個非串行化的調度,并給出執(zhí)行結果。 答: 最后結果 A 為 0 ,為非串行化的調度。 ( 4 )若這 3 個事務都遵守兩段鎖協(xié)議,請給出一個不產生死鎖的可串行化調度。 答: ( 5 )若這 3 個事務都遵守兩段鎖協(xié)議,請給出一個產生死鎖的調度。 答: 15.試證明,若并發(fā)事務遵守兩段鎖協(xié)議,則對這些事務的并發(fā)調度是可串行化的。 證明:首先以兩個并發(fā)事務 Tl 和T2為例,存在多個并發(fā)事務的情形可以類推。根據可串行化定義可知,事務不可串行化只可能發(fā)生在下列兩種情況: ( l )事務 Tl 寫某個數(shù)據對象 A ,T2讀或寫 A ; ( 2 )事務 Tl 讀或寫某個數(shù)據對象 A ,T2寫 A 。 下面稱 A 為潛在沖突對象。 設 Tl 和T2訪問的潛在沖突的公共對象為{A1,A2 … , An }。不失一般性,假設這組潛在沖突對象中 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í)行,根據可串行化定義, Tl 和幾的調度是可串行化的。 2 )操作 ② 先執(zhí)行的情況與( l )對稱因此,若并發(fā)事務遵守兩段鎖協(xié)議,在不發(fā)生死鎖的情況下,對這些事務的并發(fā)調度一定是可串行化的。證畢。 16 .舉例說明,對并發(fā)事務的一個調度是可串行化的,而這些并發(fā)事務不一定遵守兩段鎖協(xié)議。 答: 其他的缺! 第9章 數(shù)據庫設計概論 1 .試述數(shù)據庫設計的特點。 答:數(shù)據庫設計既是一項涉及多學科的綜合性技術又是一項龐大的工程項目。其主要特點有: ( l )數(shù)據庫建設是硬件、軟件和干件(技術與管理的界面)的結合。 ( 2 )從軟件設計的技術角度看,數(shù)據庫設計應該和應用系統(tǒng)設計相結合,也就是說,整個設計過程中要把結構(數(shù)據)設計和行為(處理)設計密切結合起來。 2.(缺) 3.試述數(shù)據庫設計過程。 答:這里只概要列出數(shù)據庫設計過程的六個階段: ( l )需求分析; ( 2 )概念結構設計; ( 3 )邏輯結構設計; ( 4 )數(shù)據庫物理設計; ( 5 )數(shù)據庫實施; ( 6 )數(shù)據庫運行和維護。這是一個完整的實際數(shù)據庫及其應用系統(tǒng)的設計過程。不僅包括設計數(shù)據庫本身,還包括數(shù)據庫的實施、運行和維護。設計一個完善的數(shù)據庫應用系統(tǒng)往往是上述六個階段的不斷反復。 4 .試述數(shù)據庫設計過程中結構設計部分形成的數(shù)據庫模式。 答:數(shù)據庫結構設計的不同階段形成數(shù)據庫的各級模式,即: ( l )在概念設計階段形成獨立于機器特點,獨立于各個 DBMS 產品的概念模式,在本篇中就是 E 一 R 圖; ( 2 )在邏輯設計階段將 E 一 R 圖轉換成具體的數(shù)據庫產品支持的數(shù)據模型,如關系模型,形成數(shù)據庫邏輯模式,然后在基本表的基礎上再建立必要的視圖 ( Vi 娜),形成數(shù)據的外模式; ( 3 )在物理設計階段,根據 DBMS 特點和處理的需要,進行物理存儲安排,建立索引,形成數(shù)據庫內模式。 第11章 關系數(shù)據庫設計理論 1 .理解并給出下列術語的定義: 函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞依賴、候選碼、主碼、外碼、全碼(All 一key )、1 NF 、ZNF 、3NF 、BcNF 、多值依賴、4NF 。 定義1:設R(U)是屬性集U上的關系模式。X,Y是屬性集U的子集。若對于R(U)的任意一個可能的關系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作XY。(即只要X上的屬性值相等,Y上的值一定相等。) 術語和記號: 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:若關系模式R的每一個分量是不可再分的數(shù)據項,則關系模式R屬于第一范式(1NF)。 定義4:若關系模式R∈1NF,且每一個非主屬性完全函數(shù)依賴于碼,則關系模式R∈2NF 。(即1NF消除了非主屬性對碼的部分函數(shù)依賴則成為2NF)。 定義5:關系模式R 中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z不是Y的子集)使得XY,Y X,Y Z成立,則稱R∈3NF。 定義6:關系模式R∈1NF 。若XY且Y不是X的子集時,X必含有碼,則R∈BCNF。 定義7:關系模式R∈1NF,如果對于R的每個非平凡多值依賴XY(Y不是X的子集,Z=U-X-Y不為空),X都含有碼,則稱R∈4NF。 2.建立一個關于系、學生、班級、學會等諸信息的關系數(shù)據庫。 學生:學號、姓名、出生年月、系名、班號、宿舍區(qū)。 班級:班號、專業(yè)名、系名、人數(shù)、入校年份。 系:系名、系號、系辦公地點、人數(shù)。 學會:學會名、成立年份、辦公地點、人數(shù)。 語義如下:一個系有若干專業(yè),每個專業(yè)每年只招一個班,每個班有若干學生。一個系的學生住在同一宿舍區(qū)。每個學生可參加若干學會,每個學會有若干學生。學生參加某學會有一個入會年份。- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 數(shù)據庫原理 數(shù)據庫 原理 課后 練習 答案 整理
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.3dchina-expo.com/p-13123613.html