天天看點

資料庫全冊簡答題

第一章 緒論

1.試述資料、資料庫、資料庫系統、資料庫管理系統的概念。

正确答案: 資料: 描述事物的符号記錄稱為資料。資料的種類有文字、圖形、圖象、聲音、正文等等。資料與其語義是不可分的。 *解析: 在現代計算機系統中資料的概念是廣義的。早期的計算機系統主要用于科學計算,處理的資料是整數、實數、浮點數等傳統數學中的資料等。現在計算機能存儲和處理的對象十分廣泛,表示這些對象的 資料也越來越複雜。 資料與其語義是不可分的。500這個數字可以表示一件物品的價格是500元,也可以表示一個學術會議參加的人數有500人。還可以表示一袋奶粉重500克。 資料庫: 資料庫是長期儲存在計算機内、有組織的、可共享的資料集合。資料庫中的資料按一定的資料模型組織、描述和儲存,具有較小的備援度、較高的資料獨立性和易擴充性,并可為各種使用者共享。 *解析: 簡單地講,資料資料庫資料具有永久儲存、有組織和可共享三個特點。 資料模型是資料庫的核心概念。每個資料庫中資料的都是按照某一種資料模型來組織的。 資料庫系統: 資料庫系統(DBS)是指在計算機系統中引入資料庫後的系統構成。資料庫系統由資料庫、資料庫管理系統(及其開發工具)、應用系統、資料庫管理者構成。 *解析: 資料庫系統和資料庫是兩個概念。資料庫系統是一個人-機系統,資料庫是資料庫系統的一個組成部分。但是在日常工作中人們常常把把資料庫系統簡稱為資料庫。希望讀者能夠從人們講話或文章的上下文中區分“資料庫系統”和“資料庫”。 不要引起混淆。 資料庫管理系統: 資料庫管理系統(DBMS)是位于使用者與作業系統之間的一層資料管理軟體。用于科學地組織和存儲資料、高效地擷取和維護資料。DBMS主要功能包括資料定義功能、資料操縱功能、資料庫的運作管理功能、資料庫的建立和維護功能。 *解析: DBMS是一個大型複雜的軟體系統。是計算機中的基礎軟體。目前,專門研制DBMS的廠商及其研制的DBMS産品很多。著名的有美國IBM公司的DB2關系資料庫管理系統、IMS層次資料庫管理系統;美國ORACLE公司的ORACLE關系資料庫管理系統;SYBASE公司的SYBASE關系資料庫管理系統;美國微軟公司的SQL SERVER關系資料庫管理系統等等。

2.使用資料庫系統有什麼好處?

正确答案: 使用資料庫系統的好處是由資料庫管理系統的特點或優點決定的。 使用資料庫系統的好處很多,例如可以大大提高應用開發的效率,友善使用者的使用,減輕資料庫系統管理人員維護的負擔等。 為什麼有這些好處,可以結合第5題來回答。 使用資料庫系統可以大大提高應用開發的效率。因為在資料庫系統中應用程式不必考慮資料的定義、存儲和資料存取的具體路徑,這些工作都由DBMS來完成。用一個通俗的比喻,使用了DBMS就如有了一個好參謀好助手,許多具體的技術工作都由這個助手來完成。開發人員就可以專注于應用邏輯的設計而不必為管理資料的許許多多複雜的細節操心。 還有,當應用邏輯改變,資料的邏輯結構需要改變時,由于資料庫系統提供了資料與程式之間的獨立性。資料邏輯結構的改變是DBA的責任,開發人員不必修改應用程式,或者隻需要修改很少的應用程式。進而既簡化了應用程式的編制,又大大減少了應用程式的維護和修改。 使用資料庫系統可以減輕資料庫系統管理人員維護系統的負擔。因為DBMS在資料庫建立、運用和維護時對資料庫進行統一的管理和控制,包括資料的完整性、安全性,多使用者并發控制,故障恢複等等都由DBMS執行。 總之,使用資料庫系統的優點是很多的,既便于資料的集中管理,控制資料備援,可以提高資料的使用率和一緻性,又有利于應用程式的開發和維護。讀者可以在自己今後的工作中結合具體應用,認真加以體會和總結。

3.試述檔案系統與資料庫系統的差別和聯系。

正确答案: 檔案系統與資料庫系統的差別: 檔案系統面向某一應用程式,共享性差、備援度大,獨立性差,紀錄内有結構、整體無結構,應用程式自己控制。 資料庫系統面向現實世界,共享性高、備援度小,具有高度的實體獨立性和一定的邏輯獨立性,整體結構化,用資料模型描述,由資料庫管理系統提供資料安全性、完整性、并發控制和恢複能力。 讀者可以參考《概論》書中表1.1 中的有關内容。 檔案系統與資料庫系統的聯系是: 檔案系統與資料庫系統都是計算機系統中管理資料的軟體。 *解析: 檔案系統是作業系統的重要組成部分,而DBMS是獨立于作業系統的軟體。但是DBMS是在作業系統的基礎上實作的。資料庫中資料的組織和存儲是通過作業系統中檔案系統來實作的。 讀者可以參考書中第十一章《資料庫管理系統》。或者說,讀者進一步學習資料庫管理系統實作的有關課程(第十一章隻是DBMS實作技術的概述)後可以對本題有深入的了解和全面的解答。因為DBMS的實作與作業系統中的檔案系統是緊密相關的。例如,資料庫實作的基礎是檔案,對資料庫的任何操作最終要轉化為對檔案的操作。是以在DBMS實作中資料庫實體組織的基本問題是如何利用或如何選擇作業系統提供的基本的檔案組織方法。這裡我們就不具體展開了。

4.舉出适合用檔案系統而不是資料庫系統的例子;再舉出适合用資料庫系統的應用例子。

正确答案: •适用于檔案系統而不是資料庫系統的應用例子 資料的備份,軟體或應用程式使用過程中的臨時資料存儲一般使用檔案比較合适。 早期功能比較簡單、比較固定的應用系統也适合用檔案系統。 •适用于資料庫系統而非檔案系統的應用例子 目前,幾乎所有企業或部門的資訊系統都以資料庫系統為基礎,都使用資料庫。如一個工廠的管理資訊系統(其中會包括許多子系統,如庫存管理系統、物資采購系統、作業排程系統、裝置管理系統、人事管理系統等等),還比如學校的學生管理系統,人事管理系統,圖書館的圖書管理系統等等都适合用資料庫系統。

5.試述資料庫系統的特點。

正确答案: 資料庫系統的主要特點有: 一、資料結構化 資料庫系統實作整體資料的結構化,這是資料庫的主要特征之一,也是資料庫系統與檔案系統的本質差別。 *解析:注意這裡“整體”兩個字。在資料庫系統中,資料不再針對某一個應用,而是面向全組織,具有整體的結構化。不僅資料是結構化的,而且資料的存取機關即一次可以存取資料的大小也很靈活。可以小到某一個資料項(如一個學生的姓名),大到一組記錄(成千上萬個學生記錄)。而在檔案系統中,資料的存取機關隻有一個:記錄。如一個學生的完整記錄。 二、資料的共享性高,備援度低,易擴充 資料庫的資料不再面向某個應用而是面向整個系統,是以可以被多個使用者、多個應用、用多種不同的語言共享使用。由于資料面向整個系統,是有結構的資料,不僅可以被多個應用共享使用,而且容易增加新的應用,這就使得資料庫系統彈性大,易于擴充。 *解析: 資料共享可以大大減少資料備援,節約存儲空間,同時還能夠避免資料之間的不相容性與不一緻性。 所謂“資料面向某個應用”是指資料結構是針對某個應用設計的,隻被這個應用程式或應用系統使用。可以說資料是某個應用的“私有資源”。 所謂“彈性大”是指系統容易擴充也容易收縮,即應用增加或減少時不必修改整個資料庫的結構,或者隻要做很少的修改。 我們可以取整體資料的各種子集用于不同的應用系統,當應用需求改變或增加時,隻要重新選取不同的子集或加上一部分資料便可以滿足新的需求。 三、資料獨立性高 資料獨立性包括資料的實體獨立性和資料的邏輯獨立性。 資料庫管理系統的模式結構和二級映象功能保證了資料庫中的資料具有很高的實體獨立性和邏輯獨立性。 *解析: 所謂“獨立性”即互相不依賴。資料獨立性是指資料和程式互相不依賴。即資料的邏輯結構或實體結構改變了,程式不會跟着改變。資料與程式的獨立,把資料的定義從程式中分離出去,加上資料的存取又由DBMS負責,簡化了應用程式的編制,大大減少了應用程式的維護和修改。 四、資料由DBMS統一管理和控制 資料庫的共享是并發的共享,即多個使用者可以同時存取資料庫中的資料甚至可以同時存取資料庫中同一個資料。為此,DBMS必須提供統一的資料控制功能,包括資料的安全性保護,資料的完整性檢查,并發控制和資料庫恢複。 *解析: DBMS資料控制功能包括四個方面: 資料的安全性保護:保護資料以防止不合法的使用造成的資料的洩密和破壞; 資料的完整性檢查:将資料控制在有效的範圍内或保證資料之間滿足一定的關系; 并發控制:對多使用者的并發操作加以控制和協調,保證并發操作的正确性; 資料庫恢複:當計算機系統發生硬體故障、軟體故障,或者由于操作員的失誤以及故意的破壞影響資料庫中資料的正确性,甚至造成資料庫部分或全部資料的丢失時,能将資料庫從錯誤狀态恢複到某一已知的正确狀态(亦稱為完整狀态或一緻狀态)。 下面我們可以得到“什麼是資料庫”的一個定義: 資料庫是長期存儲在計算機内有組織的大量的共享的資料集合。它可以供各種使用者共享,具有最小備援度和較高的資料獨立性。DBMS在資料庫建立、運用和維護時對資料庫進行統一控制,以保證資料的完整性、安全性,并在多使用者同時使用資料庫時進行并發控制,在發生故障後對系統進行恢複。 資料庫系統的出現使資訊系統從以加工資料的程式為中心轉向圍繞共享的資料庫為中心的新階段。

6.資料庫管理系統的主要功能有哪些?

正确答案: ① 資料庫定義功能; ② 資料存取功能; ③ 資料庫運作管理; ④ 資料庫的建立和維護功能。

7.定義并解釋以下術語:DDL、DML

正确答案: DDL:資料定義語言。用來定義資料庫模式、外模式、内模式的語言。 DML:資料操縱語言。用來對資料庫中的資料進行查詢、插入、删除和修改的語句。

8.什麼叫資料與程式的實體獨立性?什麼叫資料與程式的邏輯獨立性? 為什麼資料庫系統具有資料與程式的獨立性?

正确答案: 資料與程式的邏輯獨立性:當模式改變時(例如增加新的關系、新的屬性、改變屬性的資料類型等),由資料庫管理者對各個外模式/模式的映象作相應改變,可以使外模式保持不變。應用程式是依據資料的外模式編寫的,進而應用程式不必修改,保證了資料與程式的邏輯獨立性,簡稱資料的邏輯獨立性。 資料與程式的實體獨立性:當資料庫的存儲結構改變了,由資料庫管理者對模式/内模式映象作相應改變,可以使模式保持不變,進而應用程式也不必改變。保證了資料與程式的實體獨立性,簡稱資料的實體獨立性。 資料庫管理系統在三級模式之間提供的兩層映象保證了資料庫系統中的資料能夠具有較高的邏輯獨立性和實體獨立性。

9.試述資料庫系統的組成。

正确答案: 資料庫系統一般由資料庫、資料庫管理系統(及其開發工具)、應用系統、資料庫管理者和使用者構成。

10.試述資料模型的概念、資料模型的作用和資料模型的三個要素。

正确答案: 資料模型是資料庫中用來對現實世界進行抽象的工具,是資料庫中用于提供資訊表示和操作手段的形式構架。 一般地講,資料模型是嚴格定義的概念的集合。這些概念精确地描述系統的靜态特性、動态特性和完整性限制條件。是以資料模型通常由資料結構、資料操作和完整性限制三部分組成。 ① 資料結構:是所研究的對象類型的集合,是對系統的靜态特性的描述。 ② 資料操作:是指對資料庫中各種對象(型)的執行個體(值)允許進行的操作的集合,包括操作及有關的操作規則,是對系統動态特性的描述。 ③ 資料的限制條件:是完整性規則的集合,完整性規則是給定的資料模型中資料及其聯系所具有的制約和依存規則,用以限定符合資料模型的資料庫狀态以及狀态的變化,以保證資料的正确、有效、相容。 *解析: 資料模型是資料庫系統中最重要的概念之一。同學們必須通過《概論》的學習真正掌握 資料模型的概念和作用。 資料模型是資料庫系統的基礎。任何一個DBMS都以某一個資料模型為基礎,或者說支援某一個資料模型。 資料庫系統中模型有不同的層次。根據模型應用的不同目的,可以将模型分成兩類或說兩個層次:一是概念模型,是按使用者的觀點來對資料和資訊模組化,用于資訊世界的模組化,強調語義表達能力,概念簡單清晰;另一是資料模型,是按計算機系統的觀點對資料模組化,用于機器世界,人們可以用它定義、操縱資料庫中的資料。一般需要有嚴格的形式化定義和一組嚴格定義了文法和語義的語言,并有一些規定和限制,便于在機器上實作。

11.試述概念模型的作用。

正确答案: 概念模型實際上是現實世界到機器世界的一個中間層次。概念模型用于資訊世界的模組化,是現實世界到資訊世界的第一層抽象,是資料庫設計人員進行資料庫設計的有力工具,也是資料庫設計人員和使用者之間進行交流的語言。

12.定義并解釋概念模型中以下術語: 實體,實體型,實體集,屬性,碼,實體聯系圖(E-R圖)

正确答案: 實體:客觀存在并可以互相區分的事物叫實體。 實體型:具有相同屬性的實體具有相同的特征和性質,用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型。 實體集:同型實體的集合稱為實體集。 屬性:實體所具有的某一特性,一個實體可由若幹個屬性來刻畫。 碼:唯一辨別實體的屬性集稱為碼。 實體聯系圖:E-R圖提供了表示實體型、屬性和聯系的方法: • 實體型:用矩形表示,矩形框内寫明實體名。 • 屬性:用橢圓形表示,并用無向邊将其與相應的實體連接配接起來。 •聯系:用菱形表示,菱形框内寫明聯系名,并用無向邊分别與有關實體連接配接起來,同時在無向邊旁标上聯系的類型(1 : 1,1 : n或m : n)。

13.試述網狀、層次資料庫的優缺點。

正确答案: 層次模型的優點主要有: 1)模型簡單,對具有一對多的層次關系的部門描述非常自然、直覺,容易了解,這是層次資料庫的突出優點; 2) 用層次模型的應用系統性能好,特别是對于那些實體間聯系是固定的預先定義好的應用,采用層次模型來實作,其性能優于關系模型; 3) 次資料模型提供了良好的完整性支援。 層次模型的缺點主要有: 1) 現實世界中很多聯系是非層次性的,如多對多聯系、一個結點具有多個雙親等,層次模型不能自然地表示這類聯系。隻能通過引入備援資料或引入虛拟結點來解決。 2 )對插入和删除操作的限制比較多。 3)查詢子女結點必須通過雙親結點。 網狀模型: 網狀資料模型的優點主要有: 1) 能夠更為直接地描述現實世界,如一個結點可以有多個雙親。 2)具有良好的性能,存取效率較高。 網狀資料模型的缺點主要有: 1) 結構比較複雜,而且随着應用環境的擴大,資料庫的結構就變得越來越複雜,不利于最終使用者掌握。 2)其DDL,DML語言複雜,使用者不容易使用。 由于記錄之間聯系是通過存取路徑實作的,應用程式在通路資料時必須選擇适當的存取路徑。是以,使用者必須了解系統結構的細節,加重了編寫應用程式的負擔。

14.試述關系模型的概念,定義并解釋以下術語: (1)關系 (2)屬性 (3)域 (4)元組 (5)主碼 (6)分量 (7)關系模式

正确答案: 關系模型由關系資料結構、關系操作集合和關系完整性限制三部分組成。在使用者觀點下,關系模型中資料的邏輯結構是一張二維表,它由行和列組成。 (1) 關系:一個關系對應通常說的一張表。 (2) 屬性:表中的一列即為一個屬性; (3) 域:屬性的取值範圍; (4) 元組:表中的一行即為一個元組; (5) 碼:表中的某個屬性組,它可以唯一确定一個元組; (6) 分量:元組中的一個屬性值; (7) 關系模式:對關系的描述,一般表示為         關系名(屬性1,屬性2,•••,屬性n)。

15.試述關系資料庫的特點。

正确答案: 關系資料模型具有下列優點: • 關系模型與非關系模型不同,它是建立在嚴格的數學概念的基礎上的。 • 關系模型的概念單一。無論實體還是實體之間的聯系都用關系表示。操作的對象和操作的結果都是關系。是以其資料結構簡單、清晰,使用者易懂易用。 • 關系模型的存取路徑對使用者透明,進而具有更高的資料獨立性、更好的安全保密性,也簡化了程式員的工作和資料庫開發建立的工作。 當然,關系資料模型也有缺點,其中最主要的缺點是,由于存取路徑對使用者透明,查詢效率往往不如非關系資料模型。是以為了提高性能,必須對使用者的查詢請求進行優化,增加了開發資料庫管理系統軟體的難度。

16.試述資料庫系統三級模式結構,這種結構的優點是什麼?

正确答案: 資料庫系統的三級模式結構由外模式、模式和内模式組成。(參見書上圖1.29) 外模式,亦稱子模式或使用者模式,是資料庫使用者(包括應用程式員和最終使用者)能夠看見和使用的局部資料的邏輯結構和特征的描述,是資料庫使用者的資料視圖,是與某一應用有關的資料的邏輯表示。 模式,亦稱邏輯模式,是資料庫中全體資料的邏輯結構和特性的描述,是所有使用者的 公共資料視圖。模式描述的是資料的全局邏輯結構。外模式涉及的是資料的局部的邏輯結構,通常是模式的子集。 内模式,亦稱存儲模式,是資料在資料庫系統内部的表示,即對資料的實體結構和存 儲方式的描述。 資料庫系統的三級模式是對資料的三個抽象級别,它把資料的具體組織留給DBMS管理,使使用者能邏輯抽象地處理資料,而不必關心資料在計算機中的表示和存儲。 為了能夠在内部實作這三個抽象層次的聯系和轉換,資料庫系統在這三級模式之間提供了兩層映象:外模式/模式映象和模式/内模式映象。正是這兩層映象保證了資料庫系統中的資料能夠具有較高的邏輯獨立性和實體獨立性。

17.DBA的職責是什麼?

正确答案: 負責全面地管理和控制資料庫系統。具體職責包括: ① 決定資料庫的資訊内容和結構; ② 決定資料庫的存儲結構和存取政策; ③ 定義資料的安全性要求和完整性限制條件; ④ 監督和控制資料庫的試用和運作; ⑤ 資料庫系統的改進和重組。

18.系統分析員、資料庫設計人員、應用程式員的職責是什麼?

正确答案: 系統分析員負責應用系統的需求分析和規範說明,系統分析員要和使用者及DBA相結合,确定系統的硬體軟體配置,并參與資料庫系統的概要設計。 資料庫設計人員負責資料庫中資料的确定、資料庫各級模式的設計。資料庫設計人員必須參加使用者需求調查和系統分析,然後進行資料庫設計。在很多情況下,資料庫設計人員就由資料庫管理者擔任。 應用程式員負責設計和編寫應用系統的程式子產品,并進行調試和安裝。

19.資料庫資料具有__________、__________和__________三個基本特點。

正确答案: 永久存儲 有組織 可共享

20.資料庫管理系統是資料庫系統的一個重要組成部分,它的功能包括__________ 、、、_________。

正确答案: 資料定義功能 資料操縱功能 資料庫的運作管理 資料庫的建立和維護功能

21.資料庫系統是指在計算機系統中引入資料庫後的系統,一般由__________、__________、__________和__________構成。

正确答案: 資料庫 資料庫管理系統(及其開發工具) 應用系統 資料庫管理者

22.資料庫管理技術的發展是與計算機技術及其應用的發展聯系在一起的,它經曆了三個階段:__________階段,__________階段和__________階段。

正确答案: 人工管理 檔案系統 資料庫系統

23.資料庫具有資料結構化、最小的__________、較高的__________等特點 。

正确答案: 備援度 資料獨立性

24.DBMS還必須提供__________保護__________檢查、__________、__________等資料控制功能。

正确答案: 資料的安全性 資料的完整性 并發控制 資料庫恢複

25.模式(Schema)是資料庫中全體資料的__________和__________的描述,它僅僅涉及到__________的描述,不涉及到具體的值。

正确答案: 邏輯結構 特征 型

26.三級模式之間的兩層映象保證了資料庫系統中的資料能夠具有較高的__________和__________。

正确答案: 邏輯獨立性 實體獨立性

27.根據模型應用的不同目的,可以将這些模型劃分為兩類,它們分别屬于兩個不同的層次。第一類是__________,第二類是__________。

正确答案: 概念模型 資料模型

28.資料模型的三要素是指__________,,。實際資料庫系統中所支援的主要資料模型是__________,,。

正确答案: 資料結構 資料操作 完整性限制 關系模型 層次模型 網狀模型

29.資料模型中的__________是對資料系統的靜态特征描述,包括資料結構和資料間聯系的描述,__________是對資料庫系統的動态特征描述,是一組定義在資料上的操作,包括操作的涵義、操作符、運算規則及其語言等。

正确答案: 資料結構 資料操作

30.用樹型結構表示實體類型及實體間聯系的資料模型稱為__________模型,上一層的父結點和下一層的子結點之間的聯系是 的聯系。

正确答案: 層次 一對多

31.用有向圖結構表示實體類型及實體間聯系的資料模型稱為__________模型,資料之間的聯系通常通過__________實作。

正确答案: 網狀 指針

32.是目前最常用也是最重要的一種資料模型。采用該模型作為資料的組織方式的資料庫系統稱為。

正确答案: 關系模型 關系資料庫系統

33.關系的完整性限制條件包括三大類:__________、和。

正确答案: 實體完整性 參照完整性 使用者定義的完整性

第二章 關系資料庫

1.關系資料模型中,二維表的列稱為________,二維表的行稱為________。

正确答案: 屬性 記錄或元組

2.使用者選作元組辨別的一個候選碼為________,其屬性不能取________。

正确答案: 主碼 空值

3.關系代數運算中,傳統的集合運算有_____,,,_____。

正确答案: 笛卡爾積 并 交 差

4.關系代數運算中,基本的運算是________,,,,。

正确答案: 并 差 笛卡爾積 選擇 投影

5.關系代數運算中,專門的關系運算有________,,。

正确答案: 選擇 投影 連接配接

6.關系資料庫中基于數學上的兩類運算是________和________。

正确答案: 關系代數 關系演算

7.關系代數中,從兩個關系中找出相同元組的運算稱為________運算。

正确答案: 交

8.R S表示R與S的________。

正确答案: 自然連接配接

9.設有學生關系:S(XH,XM,XB,NL,DP)。在這個關系中,XH表示學号,XM表示姓名,XB表示性别,NL表示年齡,DP表示系部。查詢學生姓名和所在系的投影操作的關系運算式是________________。

正确答案: π2,5(S) 或 πXM,DP(S)

10.在“學生-選課-課程”資料庫中的3個關系如下:S(S#,SNAME,SEX,AGE);SC(S#,C#,GRADE); C(C#,CNAME,TEACHER),查找選修“資料庫技術”這門課程學生的學生名和成績,若用關系代數表達式來表示為________________。

正确答案: πSNAME,GRADE(S(SC(σCNAME=’資料庫技術’©)))

11.已知系(系編号,系名稱,系主任,電話,地點)和學生(學号,姓名,性别,入學日期,專業,系編号)兩個關系,系關系的主碼是________,系關系的外碼是________,學生關系的主碼是________,學生關系的外碼是________。

正确答案: 系編号 沒有 學号 系編号

  1. 試述關系模型的三個組成部分。

正确答案: 關系模型由關系資料結構、關系操作集合和關系完整性限制三部分組成。

  1. 試述關系資料語言的特點和分類。

正确答案: 關系資料語言可以分為三類: 關系代數語言,例如ISBL 關系演算語言,包括:元組關系演算語言,例如APLHA,QUEL 域關系演算語言,例如QBE 具有關系代數和關系演算雙重特點的語言 例如SQL 這些關系資料語言的共同特點是,具有完備的表達能力,是非過程化的集合操作語言,功能強,能夠嵌入進階語言中使用。

14.定義并了解下列術語,說明它們之間的聯系與差別: (1) 域,笛卡爾積,關系,元組,屬性 (2)主碼,候選碼,外部碼 (3)關系模式,關系,關系資料庫

正确答案: 域:域是一組具有相同資料類型的值的集合。 笛卡爾積: 給定一組域D1,D2,…,Dn,這些域中可以有相同的。這組域的笛卡爾積為: D1×D2×…×Dn={ (d1,d2,…,dn)|diDi,i=1,2,…,n } 其中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組(Tuple)。 元素中的每一個值di叫作一個分量(Component)。 關系:在域D1,D2,…,Dn上笛卡爾積D1×D2×…×Dn的子集稱為關系,表示為 R(D1,D2,…,Dn) 元組:關系中的每個元素是關系中的元組。 屬性:關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。由于域可 以相同,為了加以區分,必須對每列起一個名字,稱為屬性(Attribute)。 候選碼:若關系中的某一屬性組的值能唯一地辨別一個元組,則稱該屬性組為候選碼(Candidate key)。 主碼:若一個關系有多個候選碼,則標明其中一個為主碼(Primary key)。 外部碼:設F是基本關系R的一個或一組屬性,但不是關系R的碼,如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外部碼(Foreign key),簡稱外碼。 基本關系R稱為參照關系(Referencing relation),基本關系S稱為被參照關系(Referenced relation)或目标關系(Target relation)。關系R和S可以是相同的關系。 關系模式:關系的描述稱為關系模式(Relation Schema)。它可以形式化地表示為: R(U,D,dom,F) 其中R為關系名,U為組成該關系的屬性名集合,D為屬性組U中屬性所來自的域,dom為屬性向域的映象集合,F為屬性間資料的依賴關系集合。 關系:在域D1,D2,…,Dn上笛卡爾積D1×D2×…×Dn的子集稱為關系,表示為 R(D1,D2,…,Dn) 關系是關系模式在某一時刻的狀态或内容。關系模式是靜态的、穩定的,而關系是動态的、随時間不斷變化的,因為關系操作在不斷地更新着資料庫中的資料。 關系資料庫:關系資料庫也有型和值之分。關系資料庫的型也稱為關系資料庫模式,是對關系資料庫的描述,它包括若幹域的定義以及在這些域上定義的若幹關系模式。關系資料庫的值是這些關系模式在某一時刻對應的關系的集合,通常就稱為關系資料庫。

15.試述關系模型的完整性規則。在參照完整性中,為什麼外部碼屬性的值也可以為空?什麼情況下才可以為空?

正确答案: 關系模型的完整性規則是對關系的某種限制條件。關系模型中可以有三類完整性限制:實體完整性、參照完整性和使用者定義的完整性。 其中實體完整性和參照完整性是關系模型必須滿足的完整性限制條件,被稱作是關系的兩個不變性,應該由關系系統自動支援。 1) 實體完整性規則:若屬性A是基本關系R的主屬性,則屬性A不能取空值。 2) 參照完整性規則:若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必 須為: • 或者取空值(F的每個屬性值均為空值); • 或者等于S中某個元組的主碼值。 3) 使用者定義的完整性是針對某一具體關系資料庫的限制條件。它反映某一具體應用所涉及的資料必須滿足的語義要求。    在參照完整性中,外部碼屬性的值可以為空,它表示該屬性的值尚未确定。但前提條件是該外部碼屬性不是其所在關系的主屬性。 例如,在下面的“學生”表中,“專業号”是一個外部碼,不是學生表的主屬性,可以為空。其語義是,該學生的專業尚未确定。 學生(學号,姓名,性别,專業号,年齡) 專業(專業号,專業名) 而在下面的“選修”表中的“課程号”雖然也是一個外部碼屬性,但它又是“選修”表的主屬性,是以不能為空。因為關系模型必須滿足實體完整性。 課程(課程号,課程名,學分) 選修(學号,課程号,成績)

  1. 等值連接配接與自然連接配接的差別是什麼?

正确答案: 連接配接運算中有兩種最為重要也最為常用的連接配接,一種是等值連接配接(equi-join),另一種是自然連接配接(Natural join)。 Θ為“=”的連接配接運算稱為等值連接配接。 它是從關系R與S的笛卡爾積中選取A、B屬性值相等的那些元組。即等值連接配接為: R A=B S = { tr ts| tr∈R ∧ ts∈S ∧ tr[A] = ts[B] }   自然連接配接(Natural join)是一種特殊的等值連接配接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且要在結果中把重複的屬性去掉。即若R和S具有相同的屬性組B,則自然連接配接可記作: R S = { tr ts| tr∈R ∧ ts∈S ∧ tr[B] = ts[B] }

  1. 代數的基本運算有哪些?如何用這些基本運算來表示其他的關系基本運算?

正确答案: 在八種關系代數運算中,并、差、笛卡爾積、投影和選擇五種運算為基本的運算。其他三種運算,即交、連接配接和除,均可以用五種基本運算來表達。 交運算: R  S = R-(R-S) 連接配接運算 R S = AB(RS) AB 除運算:R(X,Y) S(Y,Z) = X® - X ( X®  Y(S) R ) X、Y、Z 為屬性組,R中的Y和S中的Y可以有不同的屬性名,但必須出自相同的域集。

第三章 關系資料庫标準語言SQL

1.SQL的中文全稱是________________。

正确答案: 結構化查詢語言

2.SQL語言除了具有資料查詢和資料操縱功能之外,還具有________和________的功能,它是一個綜合性的功能強大的語言。

正确答案: 資料定義 資料控制

3.在關系資料庫标準語言SQL中,實作資料檢索的語句指令是________。

正确答案: SELECT

4.在SQL語言的結構中,________有對應的實體存儲,而________沒有對應的實體存儲。

正确答案: 基本表 視圖

5.關系R(A,B,C)和S(A,D,E,F),R和S有相同屬性A,若将關系代數表達式:πR.A,R.B,S.D,S.F(R∞ S)用SQL語言的查詢語句表示,則為: SELECT R.A,R.B,S.D,S.F FROM R,S WHERE________________。

正确答案: R.A=S.A

6.視圖是從________中導出的表,資料庫中實際存放的是視圖的________。

正确答案: 基本表或視圖 定義

7.關系資料操作語言(DML)的特點是:操作對象與結果均為關系、操作的________、語言一體化并且是建立在數學理論基礎之上。

正确答案: 非過程性強

8.設有如下關系表R、S、T: R(BH,XM,XB,DWH) S(DWH,DWM) T(BH,XM,XB,DWH) (1) 實作R∪T的SQL語句是__。 (2) 實作σ DWH=’100’ ® 的SQL語句是__。 (3) 實作πXM,XB ® 的SQL語句是__。 (4) 實作πXM,DWH (σ XB=’女’ ®) 的SQL語句是__。 (5) 實作R∞S的SQL語句是__。 (6) 實作πXM,XB,DWH (σ XB=’男’ (R∞S)) 的SQL語句是__。

正确答案: (1) SELECT * FROM R UNION SELECT * FROM T (2) SELECT * FROM R WHERE DWH=’100’ (3) SELECT XM , XB FROM R (4) SELECT XM,DWH FROM R WHERE XB=’女’ (5) SELECT R.BH , R.XM , R.XB , R.DWH , S.DWM FROM R , S WHERE R.DWH=S.DWH (6) SELECT R.XM , R.XB , S.DWH FROM R , S WHERE R.DWH=S.DWH AND R.XB=’男’

9.設有如下關系表R:R(NO,NAME,SEX,AGE,CLASS),主碼是NO (1) 插入一個記錄(25,“李明”,“男”,21,“95031”);。 (2) 插入“95031”班學号為30,姓名為“鄭和”的學生記錄;。 (3) 将學号為10的學生姓名改為“王華”;。 (4) 将所有“95101”班号改為“95091”;。 (5) 删除學号為20的學生記錄;。 (6) 删除姓“王”的學生記錄;。

正确答案: (1) INSERT INTO R VALUES(25,“李明”,“男”,21,“95031”) (2) INSERT INTO R(NO,NAME,CLASS) VALUES(30,“鄭和”,“95031”) (3) UPDATE R SET NAME=“王華” WHERE NO=10 (4) UPDATE R SET CLASS=“95091” WHERE CLASS=“95101” (5) DELETE FROM R WHERE NO=20 (6) DELETE FROM R WHERE NAME LIKE “王%

10.試述SQL語言的特點。

正确答案: (1)綜合統一。 SQL語言集資料定義語言DDL、資料操縱語言DML、資料控制語言DCL的功能于一體。 (2)高度非過程化。用SQL語言進行資料操作,隻要提出“做什麼”,而無須指明“怎麼做”,是以無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統自動完成。 (3)面向集合的操作方式。SQL語言采用集合操作方式,不僅操作對象、查找結果可以是元組的集合,而且一次插入、删除、更新操作的對象也可以是元組的集合。 (4)以同一種文法結構提供兩種使用方式。SQL語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨立地用于聯機互動的使用方式,也能夠嵌入到進階語言程式中,供程式員設計程式時使用。 (5)語言簡捷,易學易用。

11.試述SQL的定義功能。

正确答案: SQL的資料定義功能包括定義表、定義視圖和定義索引。 SQL語言使用CREATE TABLE語句建立基本表,ALTER TABLE語句修改基本表定義,DROP TABLE語句删除基本表; 使用CREATE INDEX語句建立索引, DROP INDEX語句删除索引; 使用CREATE VIEW指令建立視圖,DROP VIEW語句删除視圖。

12.用SQL語句建立第2章習題5中的四個表。

正确答案: 對于S表:S( SNO,SNAME,STATUS,CITY); 建S表 CREATE TABLE S (SNO CHAR(3), SNAME CHAR(10), STATUS CHAR(2), CITY CHAR(10)); P(PNO,PNAME,COLOR,WEIGHT); 建P表 CREATE TABLE P (PNO CHAR(3), PNAME CHAR(10), COLOR CHAR(4), WEIGHT INT); J(JNO,JNAME,CITY); 建J表 CREATE TABLE J (JNO CHAR(3), JNAME CHAR(10), CITY CHAR(10)); SPJ(SNO,PNO,JNO,QTY); 建SPJ表 CREATE TABLE SPJ (SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT);

13.針對上題中建立的四個表試用SQL語言完成第2章習題5中的查詢。

正确答案: (1) 求供應工程J1零件的供應商号碼SNO; SELECT SNO FROM SPJ WHERE JNO=‘J1’; (2) 求供應工程J1零件P1的供應商号碼SNO; SELECT SNO FROM SPJ WHERE JNO=‘J1’ AND PNO=‘P1’; (3) 求供應工程J1零件為紅色的供應商号碼SNO; SELECT SNO /這是嵌套查詢/ FROM SPJ WHERE JNO=‘J1’ AND PNO IN /*找出紅色的零件的零件号碼PNO */ (SELECT PNO FROM P /從P表中找/ WHERE COLOR=‘紅’); 或 SELECT SNO FROM SPJ,P /這是兩表連接配接查詢/ WHERE JNO=‘J1’ /這是複合條件連接配接查詢/ AND SPJ.PNO=P.PNO AND COLOR=‘紅’; (4) 求沒有使用天津供應商生産的紅色零件的工程号JNO; *解析: 讀者可以對比第2章習題5中用ALPHA語言來完成該查詢的解答。如果大家了解了有關該題的解析說明,那麼本題的解答可以看成是把關系演算用SQL來表示的過程。 GET W (J.JNO): SPJX( SPJX .JNO=J.JNO  SX ( SX.SNO=SPJX .SNO  SX .CITY=‘天津’  PX(PX .PNO=SPJX .PNO  PX .COLOR=’ 紅’ )) 這裡的第一種解法是使用多重嵌套查詢,第二種方法的子查詢是一個多表連接配接。 注意:從J表入手,以包含那些尚未使用任何零件的工程号。 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ.JNO=J.JNO AND SNO IN /天津供應商的SNO/ (SELECT SNO FROM S WHERE CITY=‘天津’) AND PNO IN /紅色零件的PNO/ (SELECT PNO FROM P WHERE COLOR=‘紅’)); 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ, S, P WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY=‘天津’ AND P. COLOR=‘紅’); //删除: 本例中父查詢和子查詢均引用了Student表,可以像自身連接配接那樣用别名将父查詢中的Student表與子查詢中的Student表區分開:// (5) 求至少用了供應商S1所供應的全部零件的工程号JNO (類似于P113例44)。 *解析: 本查詢的解析可以參考第二章第5題,用ALPHA語言的邏輯蘊函來表達。 上述查詢可以抽象為: 要求這樣的工程x,使 (y) p  q為真。 即: 對于所有的零件y,滿足邏輯蘊函 p  q: P表示謂詞:“供應商S1供應了零件y” q表示謂詞:“工程x選用了零件y” 即 隻要“供應商S1供應了零件y”為真,則“工程x選用了零件y”為真。 邏輯蘊函可以轉換為等價形式: (y)p  q≡  (y ((p  q ))≡ (y (( p∨ q)≡ y(p∧q) 它所表達的語義為:不存在這樣的零件y,供應商S1供應了y,而工程x沒有選用y。 用SQL語言表示如下: SELECT DISTINCT JNO FROM SPJ SPJZ WHERE NOT EXISTS /*這是一個相關子查詢 */ (SELECT * /父查詢和子查詢均引用了SPJ表/ FROM SPJ SPJX /用别名将父查詢與子查詢中的SPJ表區分開/ WHERE SNO=‘S1’ AND NOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.PNO=SPJX.PNO AND SPJY.JNO=SPJZ.JNO AND SPJY.SNO=’S1’));

14.針對習題3中的四個表試用SQL語言完成以下各項操作: (1) 找出所有供應商的姓名和所在城市。 (2) 找出所有零件的名稱、顔色、重量。 (3) 找出使用供應商S1所供應零件的工程号碼。 (4) 找出工程項目J2使用的各種零件的名稱及其數量。 (5) 找出上海廠商供應的所有零件号碼。 (6) 找出使用上海産的零件的工程名稱。 (7) 找出沒有使用天津産的零件的工程号碼。 (8) 把全部紅色零件的顔色改成藍色。 (9) 由S5供給J4的零件P6改為由S3供應,請作必要的修改。

正确答案: (1) 找出所有供應商的姓名和所在城市。 SELECT SNAME, CITY FROM S; (2) 找出所有零件的名稱、顔色、重量。 SELECT PNAME, COLOR, WEIGHT FROM P; (3) 找出使用供應商S1所供應零件的工程号碼。 SELECT JNO FROM SPJ WHERE SNO=‘S1’; (4) 找出工程項目J2使用的各種零件的名稱及其數量。 SELECT P.PNAME, SPJ.QTY FROM P, SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO=‘J2’; (5) 找出上海廠商供應的所有零件号碼。 SELECT DISTINCT PNO FROM SPJ WHERE SNO IN (SELECT SNO FROM S WHERE CITY=‘上海’); (6) 找出使用上海産的零件的工程名稱。 SELECT JNAME FROM J, SPJ, S WHERE J. JNO=SPJ. JNO AND SPJ. SNO=S.SNO AND S.CITY=‘上海’; 或 SELECT JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ, S WHERE SPJ. SNO=S.SNO AND S.CITY=‘上海’); (7) 找出沒有使用天津産的零件的工程号碼。 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ.JNO=J.JNO AND SNO IN (SELECT SNO FROM S WHERE CITY=‘天津’)); 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ, S WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=‘天津’); (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的記錄,并從供應情況關系中删除相應的記錄。 DELETE FROM SPJ WHERE SNO=‘S2’; DELETE FROM S WHERE SNO=‘S2’; *解析:注意删除順序,應該先從SPJ表中删除供應商S2所供應零件的記錄,然後從從S表中删除S2。(11) 請将 (S2,J6,P4,200) 插入供應情況關系。 INSERT INTO SPJ(SNO, JNO, PNO, QTY) /INTO子句中指明列名/ VALUES (S2,J6,P4,200); /插入的屬性值與指明列要對應/ 或 INSERT INTO SPJ /INTO子句中沒有指明列名/ VALUES (S2,P4,J6,200); /插入的記錄在每個屬性列上有值/ /并且屬性列要和表定義中的次序對應/

15.什麼是基本表?什麼是視圖?兩者的差別和聯系是什麼?

正确答案: 基本表是本身獨立存在的表,在SQL中一個關系就對應一個表。 視圖是從一個或幾個基本表導出的表。視圖本身不獨立存儲在資料庫中,是一個虛表。即資料庫中隻存放視圖的定義而不存放視圖對應的資料,這些資料仍存放在導出視圖的基本表中。視圖在概念上與基本表等同,使用者可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。

16.試述視圖的優點。

正确答案: (1)視圖能夠簡化使用者的操作。 (2)視圖使使用者能以多種角度看待同一資料。 (3)視圖對重構資料庫提供了一定程度的邏輯獨立性。 (4)視圖能夠對機密資料提供安全保護。

17.所有的視圖是否都可以更新?為什麼?

正确答案: 不是。視圖是不實際存儲資料的虛表,是以對視圖的更新,最終要轉換為對基本表的更新。因為有些視圖的更新不能唯一地有意義地轉換成對相應基本表的更新,是以,并不是所有的視圖都是可更新的。如《概論》3.5.1中的視圖S_G(學生的學号及他的平均成績) CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) /設SC表中“成績”列Grade為數字型/ FROM SC GROUP BY Sno; 要修改平均成績,必須修改各科成績,而我們無法知道哪些課程成績的變化導緻了平均成績的變化。

18.哪類視圖是可以更新的,哪類視圖是不可更新的? 各舉一例說明。

正确答案: 基本表的行列子集視圖一般是可更新的。如《概論》3.5.3中的例1。 若視圖的屬性來自集函數、表達式,則該視圖肯定是不可以更新的。 如《概論》3.5.3中的S_G視圖。

19.請為三建工程項目建立一個供應情況的視圖,包括供應商代碼(SNO)、零件代碼(PNO)、供應數量(QTY)。針對該視圖完成下列查詢: (1) 找出三建工程項目使用的各種零件代碼及其數量。 (2) 找出供應商S1的供應情況。

正确答案: 建視圖: CREATE VIEW V_SPJ AS SELECT SNO, PNO, QTY FROM SPJ WHERE JNO= (SELECT JNO FROM J WHERE JNAME=‘三建’); 對該視圖查詢: (1) 找出三建工程項目使用的各種零件代碼及其數量。 SELECT PNO, QTY FROM V_SPJ; (2) 找出供應商S1的供應情況。 SELECT PNO, QTY /* S1供應三建工程的零件号和對應的數量*/ FROM V_SPJ WHERE SNO=‘S1’;

20.針對習題3建立的表,用SQL語言完成以下各項操作: (1) 把對表S的INSERT權限授予使用者張勇,并允許他再将此權限授予其他使用者。 (2) 把查詢SPJ表和修改QTY屬性的權限授給使用者李天明。

正确答案: (1) 把對表S的INSERT權限授予使用者張勇,并允許他再将此權限授予其他使用者。 GRANT INSERT ON TABLE S TO 張勇 WITH GRANT OPTION; (2) 把查詢SPJ表和修改QTY屬性的權限授給使用者李天明。 GRANT SELECT, UPDATE(QTY) ON TABLE SPJ TO 李天明;

21.在嵌入式SQL中是如何區分SQL語句和主語言語句的?

正确答案: 在SQL語句前加上字首EXEC SQL。SQL語句的結束标志則随主語言的不同而不同。 例如在PL/1和C中以分号(;)結束,在COBOL中以END-EXEC結束。

22.在嵌入式SQL中是如何解決資料庫工作單元與源程式工作單元之間通信的?

正确答案: 資料庫工作單元與源程式工作單元之間的通信主要包括: (1)SQL通信區SQLCA,用來向主語言傳遞SQL語句的執行狀态資訊,使主語言能夠根據此資訊控制程式流程。 (2)主變量(Host Variable),1)用來實作主語言向SQL語句提供參數。 2)将SQL語句查詢資料庫的結果交主語言進一步處理 (3)遊标(Cursor),解決集合性操作語言與過程性操作語言的不比對通過遊标逐一擷取記錄,并賦給主變量,交由主語言進一步處理。 (詳細解釋參見《概論》3.7.2 )

23.在嵌入式SQL中是如何協調SQL語言的集合處理方式和主語言的單記錄處理方式的?

正确答案: 用遊标來協調這兩種不同的處理方式。遊标區是系統為使用者開設的一個資料緩沖區,存放SQL語句的執行結果,每個遊标區都有一個名字。使用者可以通過遊标逐一擷取記錄,并賦給主變量,交由主語言進一步處理。

第四章 關系系統及其查詢優化

1.試述查詢優化的一般準則。

正确答案: 下面的優化政策一般能提高查詢效率: (1)選擇運算應盡可能先做。 (2)把投影運算和選擇運算同時進行。 (3)把投影同其前或其後的雙目運算結合起來執行。 (4)把某些選擇同在它前面要執行的笛卡爾積結合起來成為一個連接配接運算。 (5)找出公共子表達式。 (6)選取合适的連接配接算法

2.試述查詢優化的一般步驟。

正确答案: 各個關系系統的優化方法不盡相同,大緻的步驟可以歸納如下: (1)把查詢轉換成某種内部表示,通常用的内部表示是文法樹。 (2)把文法樹轉換成标準(優化)形式。 即利用優化算法,把原始的文法樹轉換成優化的形式。 (3)選擇低層的存取路徑。 (4)生成查詢計劃,選擇代價最小的。

3.試給出各類關系系統的定義:最小關系系統;關系上完備的系統;全關系型的關系系統。

正确答案: 最小關系系統: 一個系統可定義為最小關系系統,當且僅當它: (1)支援關系資料庫(關系資料結構)。 從使用者觀點看,關系資料庫由表構成,并且隻有表這一種結構。 (2)支援選擇、投影和(自然)連接配接運算,對這些運算不必要求定義任何實體存取路徑。 關系上完備的系統: 這類系統支援關系資料結構和所有的關系代數操作(或者功能上與關系代數等價的操作)。 全關系型的關系系統: 這類系統支援關系模型的所有特征。即不僅是關系上完備的而且支援資料結構中域的概念,支援實體完整性和參照完整性。

4.試述全關系型系統應滿足的十二條準則,以及十二條基本準則的實際意義和理論意義。

正确答案: 關系模型的創始者E.F.Codd具體地給出了全關系型的關系系統應遵循的十二條基本準則。從實際意義上看,這十二條準則可以作為評價或購買關系型産品的标準。從理論意義上看,它是對關系資料模型的具體而又深入的論述,是從理論和實際緊密結合的高度對關系型DBMS的評述。 準則0 一個關系型的DBMS必須能完全通過它的關系能力來管理資料庫。 準則1 資訊準則。關系型DBMS的所有資訊都應在邏輯一級上用一種方法即表中的值顯式地表示。 準則2 保證通路準則。依靠表名、主碼和列名的組合,保證能以邏輯方式通路關系資料庫中的每個資料項(分量值)。 準則3 空值的系統化處理。全關系型的DBMS應支援空值的概念,并用系統化的方式處理空值。 準則4 基于關系模型的動态的聯機資料字典。資料庫的描述在邏輯級上應該和普通資料采用同樣的表示方式,使得授權使用者可以使用查詢一般資料所用的關系語言來查詢資料庫的描述資訊。 準則5 統一的資料子語言準則。 準則6 視圖更新準則。所有理論上可更新的視圖也應該允許由系統更新。 準則7 進階的插入、修改和删除操作。 準則8 資料實體獨立性。無論資料庫的資料在存儲表示或存取方法上作任何變化,應用程式和終端活動都保持邏輯上的不變性。 準則9 資料邏輯獨立性。當對基本關系進行理論上資訊不受損害的任何改變時,應用程式和終端活動都保持邏輯上的不變性。 準則l0 資料完整性的獨立性。關系資料庫的完整性限制條件必須是用資料庫語言定義并存儲在資料字典中的,而不是在應用程式中加以定義的。 準則11 分布獨立性。關系型DBMS具有分布獨立性。 準則12 無破壞準則。如果一個關系系統具有一個低級(指一次一個記錄)語言,則這個低級語言不能違背或繞過完整性準則。

5.試述查詢優化在關系資料庫系統中的重要性和可能性。

正确答案: 重要性:關系系統的查詢優化既是RDBMS實作的關鍵技術又是關系系統的優點所在。它減輕了使用者選擇存取路徑的負擔。使用者隻要提出“幹什麼”,不必指出“怎麼幹”。 查詢優化的優點不僅在于使用者不必考慮如何最好地表達查詢以獲得較好的效率,而且在于系統可以比使用者程式的“優化”做得更好。 可能性: 這是因為: (1)優化器可以從資料字典中擷取許多統計資訊,例如各個關系中的元組數、關系中每個屬性值的分布情況、這些屬性上是否有索引、是什麼索引,B+樹索引還是HASH索引?唯一索引?組合索引?等等。優化器可以根據這些資訊選擇有效的執行計劃,而使用者程式則難以獲得這些資訊。 (2)如果資料庫的實體統計資訊改變了,系統可以自動對查詢進行重新優化以選擇相适應的執行計劃。在非關系系統中必須重寫程式,而重寫程式在實際應用中往往是不太可能的。 (3)優化器可以考慮數十甚至數百種不同的執行計劃,從中選出較優的一個,而程式員一般隻能考慮有限的幾種可能性。 (4)優化器中包括了很多複雜的優化技術,這些優化技術往往隻有最好的程式員才能掌握。系統的自動優化相當于使得所有人都擁有這些優化技術。

第五章 關系資料理論

  1. 在關系模式R(D,E,G)中,存在函數依賴關系{E→D,(D,G)→E},則候選碼是__________,關系模式R(D,E,G)屬于____________。

正确答案: (E,G),(D,G) 3NF

  1. 了解并給出下列術語的定義: 函數依賴、部分函數依賴、完全函數依賴、傳遞依賴、候選碼、主碼、 外碼、全碼(All-key)、1NF、2NF、3NF、BCNF、多值依賴、4NF。

正确答案: 函數依賴:設R (U)是一個關系模式,U是R的屬性集合,X和Y是U的子集。對于R (U)的任意一個可能的關系r,如果r中不存在兩個元組,它們在X上的屬性值相同, 而在Y上的屬性值不同, 則稱“X函數确定Y"或“Y函數依賴于X",記作X→Y。 *解析: 1)函數依賴是最基本的一種資料依賴,也是最重要的一種資料依賴。 2)函數依賴是屬性之間的一種聯系,展現在屬性值是否相等。由上面的定義可以知道,如果X→Y,則r中任意兩個元組,若它們在X上的屬性值相同,那麼在Y上的屬性值一定也相同。 3)我們要從屬性間實際存在的語義來确定他們之間的函數依賴,即函數依賴反映了(描述了)現實世界的一種語義。 4)函數依賴不是指關系模式R的在某個時刻的關系(值)滿足的限制條件,而是指R任何時刻的一切關系均要滿足的限制條件。 答: 完全函數依賴、部分函數依賴:在R(U)中,如果X→Y,并且對于X的任何一個真子集X,都有X′→Y,則稱Y對X完全函數依賴,記作: 若X→Y,但Y不完全函數依賴于X,則稱Y對X部分函數依賴,記作: 傳遞依賴:在R(U)中,如果X →Y,(Y  X),Y →X,Y→Z,則稱Z對X傳遞函數依賴。 候選碼、主碼: 設K為R中的屬性或屬性組合,若K → U則K為R的候選碼(Candidate key)。若候選碼多于一個,則標明其中的一個為主碼(Primary key)。 *解析: 1) 這裡我們用函數依賴來嚴格定義碼的概念。在第二章中我們隻是描述性地定義碼(可以複習2.2.1):若關系中的某一屬性組的值能唯一地辨別一個元組,則稱該屬性組為候選碼(Candidate key)。 2)因為碼有了嚴格定義,同學在學習了《概論》5.3資料依賴的公理系統後就可以從R的函數依賴集F出發,用算法來求候選碼。 答: 外碼:關系模式R中屬性或屬性組X并非R的碼,但X是另一個關系模式的碼,則稱X是R的外部碼(Foreign key)也稱外碼。 全碼:整個屬性組是碼,稱為全碼(All-key)。 答: 1NF:如果一個關系模式R的所有屬性都是不可分的基本資料項,則R∈1NF。 *解析:第一範式是對關系模式的最起碼的要求。不滿足第一範式的資料庫模式不能稱為關系資料庫。 答: 2NF:若關系模式R∈1NF,并且每一個非主屬性都完全函數依賴于R的碼,則R∈2NF。 3NF:關系模式R 中若不存在這樣的碼X,屬性組Y及非主屬性Z(Z  Y)使得X→Y,(Y → X)Y→Z,成立,則稱R  3NF。 BCNF:關系模式R 1NF。若X→Y且Y  X時X必含有碼,則R  BCNF。 *解析: 同學們要真正了解這些範式的内涵。各種範式之間的聯系:5NF 4NF BCNF 3NF 2NF lNF(《概論》上圖5.2)。能夠了解為什麼有這種包含關系。 答: 多值依賴:設R(U)是屬性集U上的一個關系模式。X,Y,Z是U的子集,并且Z=U-X-Y。關系模式R(U)中多值依賴X→→Y成立,當且僅當對R(U)的任一關系r,給定的一對(x,z)值,有一組Y的值,這組值僅僅決定于x值而與z值無關。 4NF:關系模式R  lNF,如果對于R的每個非平凡多值依賴X→→Y(Y  X),X都含有碼,則稱R  4NF。 *解析: 對于多值依賴的定義有多種。《概論》上定義 5.9後面又給出了一種等價的定義。習題中的第4題是另一種等價的定義。同學們可以對比不同的定義來了解多值依賴。選擇自己容易了解的一種定義來掌握多值依賴概念。

  1. 在關系模式R(A,C,D)中,存在函數依賴關系{ A→C,A→D },則候選碼是___________ ,關系模式R(A,C,D)最高可以達到_____________ 。

正确答案: A BCNF

4.試由Armostrong公理系統推導出下面三條推理規則: (1) 合并規則:若X→Z,X→Y,則有X→YZ (2) 僞傳遞規則:由X→Y,WY→Z有XW→Z (3) 分解規則:X→Y,Z Y,有X→Z

正确答案: (1) 已知X→Z,由增廣律知XY→YZ,又因為X→Y,可得XX→XY→YZ,最後根據傳遞律得X→YZ。 (2) 已知X→Y,據增廣律得XW→WY,因為WY→Z,是以XW→WY→Z,通過傳遞律可知XW→Z。 (3) 已知Z Y,根據自反律知Y→Z,又因為X→Y,是以由傳遞律可得X→Z。

5.關于多值依賴的另一種定義是: 給定一個關系模式R(X,Y,Z),其中X,Y,Z可以是屬性或屬性組合。 設x∈X,y∈Y,z∈Z,xz在R中的像集為: Yx z = {r.Y | r.X=x ∧ r.Z = z ∧ rR} 定義 R(X,Y,Z)當且僅當Yxz =Yxz′對于每一組(x,z,z′)都成立,則Y對X多值依賴,記作X→→Y。這裡,允許Z為空集,在Z為空集時,稱為平凡的多值依賴。 請證明這裡的定義和《概論》5.2.7節中定義5.9是等價的。

正确答案: 設Yxz=Yxz’對于每一組(x,z,z′)都成立,現證其能推出定義5.9的條件: 設s、t是關系r中的兩個元組,s[X]= t[X],由新定義的條件知對于每一個z值,都對應相同的一組y值。這樣一來,對相同的x值,交換y值後所得的元組仍然屬于關系r,即定義5.9的條件成立; 如果定義5.9的條件成立,則對相同的x值,交換y值後所得的元組仍然屬于關系r,由于任意性及其對稱性,可知每個z值對應相同的一組y值,是以Yxz=Yxz’對于每一組(x,z,z′)都成立。 綜上可知,新定義和定義5.9的條件是等價的,是以新定義和定義5.9是等價的。

6.試舉出三個多值依賴的執行個體。

正确答案: (1) 關系模式MSC(M,S,C)中,M表示專業,S表示學生,C表示該專業的必修課。假設每個專業有多個學生,有一組必修課。設同專業内所有學生的選修的必修課相同,執行個體關系如下。按照語義對于M的每一個值M i,S有一個完整的集合與之對應而不問C取何值,是以M→→S。由于C與S的完全對稱性,必然有M→→C成立。 (2) 關系模式ISA(I,S,A)中,I表示學生興趣小組,S表示學生,A表示某興趣小組的活動項目。假設每個興趣小組有多個學生,有若幹活動項目。每個學生必須參加所 在興趣小組的所有活動項目,每個活動項目要求該興趣小組的所有學生參加。 按照語義有I→→S,I→→A成立。 (3) 關系模式RDP(R,D,P)中,R表示醫院的病房,D表示責任醫務人員,P表示病人。假設每個病房住有多個病人,有多個責任醫務人員負責醫治和護理該病房的所有病人。按照語義有R→→D,R→→P成立。

7.試證明《概論》上給出的關于FD和MVD公理系統的A4,A6和A8。

正确答案: A4:若X→→Y,VWU,則XW→→YV 設Z=U-X-Y 已知X→→Y,設r是R上的任一關系,s、t∈r,且t[X]=s[X],則存在元組p、q∈r,使p[X]=q[X]=t[X],而p[Y]=t[Y],p[Z]=s[Z],q[Y]=s[Y],q[Z]=t[Z]。 設t[XW]=s[XW],我們以上構造的元組p和q,是某部分屬性在s和t上翻轉而成,是以p[W]=q[W],可知p[XW]=q[XW],同理p[YV]=t[YV](由VW知t[V]=s[V]),q[YV]=s[YV],p[U-YV-XW]=s​​U-YV-XW​​,q[U-YV-XW]=t[U-YV-XW]。是以XW→→YV。 A6:若X→→Y,Y→→Z則X→→Z-Y 由Y→→Z容易證得Y→→Z-Y。 設R1=U-X-Y,R2=U-Y-Z,R3=U-X-Z+Y。 已知X→→Y,設r是R上的任一關系,s、t∈r,且t[X]=s[X],則存在元組p、q∈r,使p[X]=q[X]=t[X],而p[Y]=t[Y],p[R1]=s[R1],q[Y]=s[Y],q[R1]=t[R1]。 對元組t、p,已知t[Y]=p[Y],t[X]=p[X],由Y→→Z-Y知:存在元組m∈r,使m[Z-Y]=p[Z-Y],m[R2]=t[R2]。因為(Z-Y)R1,又p[R1]=s[R1],是以m[Z-Y]=s[Z-Y]。因為元組p和s在除屬性Y之外的屬性上值相等,是以m[R2]=t[R2],另外元組m是由元組t和p交換某些屬性上的值而産生的,而t和p在屬性X上值相等,顯然m[X]=t[X],是以m[U-(Z-Y)]=t[U-(Z-Y)],即m[R3]=t[R3]。 對元組s、q,同理可知s[Y]=q[Y],存在元組n,使n[Z-Y]=t[Z-Y],即n[R3]=s[R3]。 綜上所述,對t、s∈r,t[X]=s[X],存在元組m、n∈r,使m[X]=n[X]=t[X],而m[Z-Y]=s[Z-Y],m[R3]=t[R3],n[Z-Y]=t[Z-Y],n[R3]=s[R3]。 A8:若X→→Y,W→Z,W∩Y=Φ,ZY,則X→Z。 設r是R上的任一關系,對任意s、t∈r,若t[X]=s[X],設R1=U-X-Y,則根據X→→Y知:存在元組p、q∈r,使p[X]=q[X]=t[X],而p[Y]=t[Y],p[R1]=s[R1],q[Y]=s[Y],q[R1]=t[R1]。因為W∩Y=Φ,是以s[W]=p[W],又W→Z,是以s[Z]=p[Z];因為ZY,且p[Y]=t[Y],是以p[Z]=t[Z];是以可得t[Z]=s[Z],即X→Z。

8.設關系模式為R(U,F),X,Y為屬性集,X,YU。證明: (1)XXF+ (2)(XF+)F+=XF+ (3)若XY則XF+YF+ (4)UF+=U

正确答案: (1)因為X→X 是以XXF+ (根據XF+的定義) (2) *解析 1 要證明(XF+)F+=XF+ 隻要證明 XF+ (XF+)F+ 并且(XF+)F+  XF+ 而XF+ (XF+)F+ 是顯然的,是以隻要證明(XF+)F+  XF+ 2 這裡的證明要用集合論的基本知識,同學們應該複習一下有關集合論中的有關概念和證明方法。 證明:下面求證(XF+)F+XF+ 任意A∈(XF+)F+,(由題意知)存在B∈XF+,使B→A能由F根據Armstrong公理導出,而從B∈XF+ 可知X→B能由F根據Armstrong公理導出,根據公理中的傳遞律可知X→A能由F根據Armstrong公理導出,是以A∈XF+,是以(XF+)F+  XF+。 是以(XF+)F+=XF+。 (3)對任意A∈XF+ ,可知X→A能由F根據Armstrong公理導出,因為XY,由自反律可以得Y→X,由傳遞律得Y→A,是以A∈YF+ 。 XF+YF+ 得證。 (4) *解析 要證明UF+=U 隻要證明 U UF+ 并且 UF+ U U UF+ 是顯然的; 下面證明UF+ U,即證U由F據Armstrong公理推出的集合仍屬于U: 自反律:Y  U,U→Y為F所蘊含。顯然U由F據Armstrong公理的自反律推出的Y仍屬于U; 增廣律:U→Y為F所蘊含,且ZU,則U Z→YZ為F所蘊含,YZU。 傳遞律:U→Y 和Y→Z都為F所蘊含,則U→Z為F所蘊含。ZU。

9.設關系模式為R(U,F),若XF+=X,則稱X相對于F是飽和的。 定義飽和集F={X | X=XF+}, 試證明F = {XF+ | XU }。

正确答案: 證:1)證 F  {XF+|XU} 對任意A∈F ,由已知條件得A=AF+ ,因為AU,A=AF+ 是以A∈{XF+|XU}。 2)證 {XF+| XU}  F 對任意A∈{AF+|AU},因為(AF+)F+ = AF+(見習題7),令B=AF+,有BF+ =B 是以 B∈F 即AF+∈F ,A∈F 得證。

  1. 在一個關系R中,若每個資料項都是不可再分割的,那麼R一定屬于__________ 。

正确答案: 第一範式(1NF)

  1. 若關系為1NF,且它的每一非主屬性都__________ 候選碼,則該關系為2NF。

正确答案: 完全函數依賴于

  1. 如果X→Y和X→Z成立,那麼X→YZ也成立,這個推理規則稱為___________ 。

正确答案: 合并規則

  1. 如果關系模式R是第二範式,且每個非主屬性都不傳遞依賴于R的候選碼,則稱R為________ 關系模式。

正确答案: 3NF

  1. 在函數依賴中,平凡函數依賴是可以根據Armstrong推理規則中的__________ 律推出的。

正确答案: 自反

  1. 關系模式規範化需要考慮資料間的依賴關系,人們已經提出了多種類型的資料依賴,其中最重要的是_____________和___________。

正确答案: 函數依賴 多值依賴

  1. 設關系R(U),X,Y∈U,X→Y是R的一個函數依賴,如果存在X′∈X,使X′→Y成立,則稱函數依賴X→Y是___________ 函數依賴。

正确答案: 部分

  1. 在關系模式R(A,B,C,D)中,存在函數依賴關系{A→B,A→C,A→D,(B,C)→A},則候選碼是___________,關系模式R(A,B,C,D)屬于____________ 。

正确答案: A,(B,C) 2NF

第六章 資料庫設計

1.“三分________,七分________,十二分________”是資料庫建設的基本規律。

正确答案: 技術 管理 基礎資料

  1. 十二分基礎資料強調了資料的________ 、________、________和________是資料庫建設中的重要的環節。

正确答案: 整理 收集 組織 不斷更新

  1. 試述資料庫設計的特點。

正确答案: 資料庫設計既是一項涉及多學科的綜合性技術又是一項龐大的工程項目。其主要特點有: 1) 資料庫建設是硬體、軟體和幹件(技術與管理的界面)的結合。 2) 從軟體設計的技術角度看,資料庫設計應該和應用系統設計相結合,也就是說,整個設計過程中要把結構(資料)設計和行為(處理)設計密切結合起來。

  1. 規範化理論對資料庫設計有什麼指導意義?

正确答案: 規範化理論為資料庫設計人員判斷關系模式優劣提供了理論标準,可用以指導關系資料模型的優化,用來預測模式可能出現的問題,為設計人員提供了自動産生各種模式的算法工具,使資料庫設計工作有了嚴格的理論基礎。(可參考《概論》書上P231-232資料模型的優化)。

  1. 試述資料庫設計過程。

正确答案: 這裡隻概要列出資料庫設計過程的六個階段: 1) 需求分析 2) 概念結構設計 3) 邏輯結構設計 4) 資料庫實體設計 5) 資料庫實施 6) 資料庫運作和維護 這是一個完整的實際資料庫及其應用系統的設計過程。不僅包括設計資料庫本身,還包括資料庫的實施、資料庫運作和維護。 設計一個完善的資料庫應用系統往往是上述六個階段的不斷反複。

  1. 規範設計法從本質上看仍然是手工設計方法,其基本思想是________ 和________。

正确答案: 過程疊代 逐漸求精

  1. 資料庫的生命周期可分為兩個階段:一是資料庫需求分析和________ ;二是資料庫實作和________。

正确答案: 設計階段 運作階段

  1. 試述資料庫設計過程的各個階段上的設計描述。

正确答案: 各階段的設計要點如下: 1) 需求分析:準确了解與分析使用者需求(包括資料與處理)。 2) 概念結構設計:通過對使用者需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。 3) 邏輯結構設計:将概念結構轉換為某個DBMS所支援的資料模型,并對其進行優化。 4) 資料庫實體設計:為邏輯資料模型選取一個最适合應用環境的實體結構(包括存儲結構和存取方法)。 5) 資料庫實施:設計人員運用DBMS提供的資料語言、工具及宿主語言,根據邏輯設計和實體設計的結果建立資料庫,編制與調試應用程式,組織資料入庫,并進行試運作。 6) 資料庫運作和維護:在資料庫系統運作過程中對其進行評價、調整與修改。

  1. 試述資料庫設計過程中結構設計部分形成的資料庫模式。

正确答案: 資料庫結構設計的不同階段形成資料庫的各級模式,即:  在概念設計階段形成獨立于機器特點,獨立于各個DBMS産品的概念模式,在本篇中就是E-R圖;  在邏輯設計階段将E-R圖轉換成具體的資料庫産品支援的資料模型,如關系模型,形成資料庫邏輯模式;然後在基本表的基礎上再建立必要的視圖(View),形成資料的外模式;  在實體設計階段,根據DBMS特點和處理的需要,進行實體存儲安排,建立索引,形成資料庫内模式。 同學們可以參考《概論》上圖6.4(P.209)。 圖中概念模式是面向使用者和設計人員的,屬于概念模型的層次;邏輯模式、外模式、内模式是DBMS支援的模式,屬于資料模型的層次。可以在DBMS中加以描述和存儲。

  1. 需求分析階段的設計目标是什麼?調查的内容是什麼?

正确答案: 需求分析階段的設計目标是通過詳細調查現實世界要處理的對象(組織、部門、企業等),充分了解原系統(手工系統或計算機系統)工作概況,明确使用者的各種需求,然後在此基礎上确定新系統的功能。 調查的内容是“資料”和“處理”,即獲得使用者對資料庫的如下要求: (1)資訊要求。指使用者需要從資料庫中獲得資訊的内容與性質。由資訊要求可以導出資料要求,即在資料庫中需要存儲哪些資料。 (2)處理要求。指使用者要完成什麼處理功能,對處理的響應時間有什麼要求,處理方式是批處理還是聯機處理。 (3)安全性與完整性要求。

  1. 資料字典的内容和作用是什麼?

正确答案: 資料字典是系統中各類資料描述的集合。資料字典的内容通常包括:  資料項  資料結構  資料流  資料存儲  處理過程五個部分 其中資料項是資料的最小組成機關,若幹個資料項可以組成一個資料結構。資料字典通過對資料項和資料結構的定義來描述資料流、資料存儲的邏輯内容。 資料字典的作用: 資料字典是關于資料庫中資料的描述,在需求分析階段建立,是下一步進行概念設計的基礎,并在資料庫設計過程中不斷修改、充實、完善。 (詳細參考《概論》書上6.2.3。注意,資料庫設計階段形成的資料字典與第十一章DBMS中的資料字典不同,後者是DBMS關于資料庫中資料的描述,當然兩者是有聯系的)。

12.什麼是資料庫的概念結構?試述其特點和設計政策。

正确答案: 概念結構是資訊世界的結構,即概念模型,其主要特點是: (1)能真實、充分地反映現實世界,包括事物和事物之間的聯系,能滿足使用者對資料的處理要求。是對現實世界的一個真實模型。 (2)易于了解,進而可以用它和不熟悉計算機的使用者交換意見,使用者的積極參與是資料庫的設計成功的關鍵。 (3)易于更改,當應用環境和應用要求改變時,容易對概念模型修改和擴充。 (4)易于向關系、網狀、層次等各種資料模型轉換。 概念結構的設計政策通常有四種: • 自頂向下。即首先定義全局概念結構的架構,然後逐漸細化; • 自底向上。即首先定義各局部應用的概念結構,然後将它們內建起來,得到全局概念 結構; • 逐漸擴張。首先定義最重要的核心概念結構,然後向外擴充,以滾雪球的方式逐漸生 成其他概念結構,直至總體概念結構; • 混合政策。即将自頂向下和自底向上相結合,用自頂向下政策設計一個全局概念結構的 架構,以它為骨架內建由自底向上政策中設計的各局部概念結構。

13.什麼叫資料抽象?試舉例說明。

正确答案: 資料抽象是對實際的人、物、事和概念進行人為處理,抽取所關心的共同特性,忽略非本質的細節,并把這些特性用各種概念精确地加以描述,這些概念組成了某種模型。 如分類這種抽象是:定義某一類概念作為現實世界中一組對象的類型。這些對象具有某些共同的特性和行為。它抽象了對象值和型之間的“is member of”的語義。在E-R模型中,實體型就是這種抽象。例如在學校環境中,李英是老師,表示李英是教師類型中的一員,則教師是實體型,李英是教師實體型中的一個實體值,具有教師共同的特性和行為:在某個系某個專業教學,講授某些課程,從事某個方向的科研。

14.試述資料庫概念結構設計的重要性和設計步驟。

正确答案: 重要性: 資料庫概念設計是整個資料庫設計的關鍵,将在需求分析階段所得到的應用需求首先抽 象為概念結構,以此作為各種資料模型的共同基礎,進而能更好地、更準确地用某一DBMS實作這些需求。 設計步驟: 概念結構的設計方法有多種,其中最經常采用的政策是自底向上方法,該方法的設計步 驟通常分為兩步:第1步是抽象資料并設計局部視圖,第2步是內建局部視圖,得到全局的概念結構(如圖6.9所示,P216)。

15.什麼是E-R圖?構成E-R圖的基本要素是什麼?

正确答案: E-R圖為實體-聯系圖,提供了表示實體型、屬性和聯系的方法,用來描述現實世界的概念模型。 構成E-R圖的基本要素是實體型、屬性和聯系,其表示方法為: • 實體型:用矩形表示,矩形框内寫明實體名; • 屬性:用橢圓形表示,并用無向邊将其與相應的實體連接配接起來; • 聯系:用菱形表示,菱形框内寫明聯系名,并用無向邊分别與有關實體連接配接起來,同時在無向邊旁标上聯系的類型(1 : 1,1 : n或m : n)。

  1. 資料庫設計分為以下六個階段_______、、、________、和。

正确答案: 需求分析 概念結構設計 邏輯結構設計 實體設計階段 資料庫實施階段 資料庫運作和維護階段

17.為什麼要視圖內建?視圖內建的方法是什麼?

正确答案: 在對資料庫系統進行概念結構設計時一般采用自底向上的設計方法,把繁雜的大系統分解子系統。首先設計各個子系統的局部視圖,然後通過視圖內建的方式将各子系統有機的融合起來,綜合成一個系統的總視圖。這樣設計清晰,由簡到繁。由于資料庫系統是從整體角度看待和描述資料的,是以資料不再面向某個應用而是整個系統。是以必須進行視圖內建,使得資料庫能被全系統的多個使用者、多個應用共享使用。 一般說來,視圖內建可以有兩種方式: • 多個分E-R圖一次內建,如《概論》書上圖6.25(a)(P.224); • 逐漸內建,用累加的方式一次內建兩個分E-R圖,如圖6.25(b)。 無論采用哪種方式,每次內建局部E-R圖時都需要分兩步走: (1)合并。解決各分E-R圖之間的沖突,将各分E-R圖合并起來生成初步E-R圖。 (2)修改和重構。消除不必要的備援,生成基本E-R圖。

18.什麼是資料庫的邏輯結構設計?試述其設計步驟。

正确答案: 資料庫的邏輯結構設計就是把概念結構設計階段設計好的基本E-R圖轉換為與選用的DBMS産品所支援的資料模型相符合的邏輯結構。 設計步驟為(圖6.31): (1)将概念結構轉換為一般的關系、網狀、層次模型; (2)将轉換來的關系、網狀、層次模型向特定DBMS支援下的資料模型轉換; (3)對資料模型進行優化。

19.試述把E-R圖轉換為DBTG模型和關系模型的轉換規則。

正确答案: E-R圖向DBTG模型的轉換規則: 1) 每個實體型轉換為記錄型,實體的屬性轉換為記錄的資料項; 2) 實體型之間1:n(n≥1)的聯系轉換為一個系,沒有任何聯系的實體型轉換為奇異系; 3) K(K≥2)個實體型之間多對多的聯系,引入一個連結記錄,形成K個實體型和連結記錄之間的K個系。連結記錄的屬性由諸首記錄的碼及聯系屬性所組成; 4) 同一實體型内的1:n,n:m聯系,引入連結記錄,轉換為兩個系。

20.你能給出由E-R圖轉換為IMS模型的轉換規則嗎?

正确答案: E-R圖向IMS模型的轉換規則: 1) 每個實體型轉換為記錄型,實體的屬性轉換為記錄的資料項; 2) 實體型之間1:n(n≥1)的聯系轉換記錄型之間的有向邊; 3) 實體型之間m:n(m>1,n>1)的聯系則分解成一對多聯系,再根據2)轉換; 4) K(K≥2)個實體型之間多對多的聯系,可先轉換成多對兩個實體型之間的聯系,再根據3)轉換。

  1. 試述資料庫實體設計的内容和步驟。

正确答案: 資料庫在實體裝置上的存儲結構與存取方法稱為資料庫的實體結構,它依賴于給定的DBMS。為一個給定的邏輯資料模型選取一個最适合應用要求的實體結構,就是資料庫的實體設計的主要内容。 資料庫的實體設計步驟通常分為兩步: (1)确定資料庫的實體結構,在關系資料庫中主要指存取方法和存儲結構; (2)對實體結構進行評價,評價的重點是時間和空間效率。

  1. 你能給出關系資料庫實體設計的主要内容嗎?例如ORACLE資料庫實體設計的内容。

正确答案: 對于關系資料庫實體設計的内容主要包括 : • 為關系模式選擇存取方法; • 設計關系、索引等資料庫檔案的實體存儲結構。 詳細參考《概論》書上6.5.2 和6.5.3。 有關ORACLE資料庫實體設計的内容請參考其技術資料,根據上述内容進行總結。

  1. 資料輸入在實施階段的重要性是什麼?如何保證輸入資料的正确性?

正确答案: 資料庫是用來對資料進行存儲、管理與應用的,是以在實施階段必須将原有系統中的曆史資料輸入到資料庫。資料量一般都很大,而且資料來源于部門中的各個不同的機關。資料的組織方式、結構和格式都與新設計的資料庫系統有相當的差距,組織資料錄入就要将各類源資料從各個局部應用中抽取出來,分類轉換,最後綜合成符合新設計的資料庫結構的形式,輸入資料庫。是以這樣的資料轉換、組織入庫的工作是相當費力費時的工作。特别是原系統是手工資料處理系統時,各類資料分散在各種不同的原始表格、憑證、單據之中。資料輸入工作量更大。 保證輸入資料正确性的方法: 為提高資料輸入工作的效率和品質,應該針對具體的應用環境設計一個資料錄入子系統,由計算機來完成資料入庫的任務。在源資料入庫之前要采用多種方法對它們進行檢驗,以防止不正确的資料入庫。

  1. 什麼是資料庫的再組織和重構造?為什麼要進行資料庫的再組織和重構造?

正确答案: 資料庫的再組織是指:按原設計要求重新安排存儲位置、回收垃圾、減少指針鍊等,以提高系統性能。 資料庫的重構造則是指部分修改資料庫的模式和内模式,即修改原設計的邏輯和實體結構。資料庫的再組織是不修改資料庫的模式和内模式的。 進行資料庫的再組織和重構造的原因: 資料庫運作一段時間後,由于記錄不斷增、删、改,會使資料庫的實體存儲情況變壞,降低了資料的存取效率,資料庫性能下降,這時DBA就要對資料庫進行重組織。DBMS一般都提供資料重組織用的實用程式。 資料庫應用環境常常發生變化,如增加新的應用或新的實體,取消了某些應用,有的實體與實體間的聯系也發生了變化等,使原有的資料庫設計不能滿足新的需求,需要調整資料庫的模式和内模式。這就要進行資料庫重構造。

  1. 資料庫實施階段包括兩項重要的工作,一項是________ ,另一項是應用程式的________和________。

正确答案: 組織資料入庫 編碼 調試

  1. 根據模型應用的不同目的,可以将這些模型劃分為兩類,它們分别屬于兩個不同的層次。第一類是________,第二類是________。

正确答案: 概念模型 資料模型

  1. 用________ 方法來設計資料庫的概念模型是資料庫概念設計階段廣泛采用的方法。

正确答案: 實體—聯系方法(E-R)

  1. 概念模型有以下特點:、 ________ 、、________。

正确答案: 真實性 易了解性 易修改性 易轉換性

  1. 在E-R模型向關系模型轉換時,M:N的聯系轉換為關系模式時,其碼包括________ 。

正确答案: M、N端實體的碼

  1. 關系資料庫的規範化理論是資料庫________ 的一個有力工具;ER模型是資料庫的________設計的一個有力工具。

正确答案: 邏輯設計 概念結構

  1. 資料庫的實體設計通常分為兩步:(1)确定資料庫的________ ,(2)對其進行評價,評價的重點是________和________。

正确答案: 實體結構 時間 空間效率

  1. 任何DBMS都提供多種存取方法。常用的存取方法有________ 、________ 、________ 等。

正确答案: 索引(index)方法 HASH方法 聚簇(Cluster)方法

  1. 确定資料庫存儲結構主要指确定________ 、________ 、________ 、________ 、________等資料的存儲安排和存儲結構,确定系統配置參數等。

正确答案: 關系 索引 聚簇 日志 備份

34.________ 是資料庫中存放資料的基本機關。

正确答案: 表

  1. 在資料庫運作階段,對資料庫經常性的維護工作主要是由________ 完成的。

正确答案: 資料庫管理者 (DBA)

  1. 客觀存在并可互相差別的事物稱為________ ,它可以是具體的人、事、物,也可以是抽象的概念或聯系。

正确答案: 實體

  1. 唯一辨別實體的屬性集稱為________ 。

正确答案: 碼

  1. 實體之間的聯系有________ 、________ 、________三種。

正确答案: 一對一 一對多 多對多

  1. 如果兩個實體之間具有M:N聯系,則将它們轉換為關系模型的結果是________ 個關系。

正确答案: 3

  1. ER模型是對現實世界的一種抽象,它的主要成分是________ 、聯系和 ________。

正确答案: 實體 屬性

  1. 需求調查和分析的結果最終形成________ ,送出給應用部門,通過________後作為以後各個設計階段的依據。

正确答案: 需求分析說明書 評審

42.________ 表達了資料和處理的關系, ________則是系統中各類資料描述的集合,是進行詳細的資料收集和資料分析所獲得的主要成果。

正确答案: 資料流圖 資料字典

  1. 資料字典中應包括對以下幾部分資料的描述:________ 、________ 、________ 。

正确答案: 資料項 資料結構 資料流

  1. 各分E-R圖之間的沖突主要有三類:________ 、和。

正确答案: 屬性沖突 命名沖突 結構沖突

第七章 資料庫恢複技術

  1. 資料庫系統中可能發生各種各樣的故障,大緻可以分為________ 、________ 、________ 和 ________ 等。

正确答案: 事務故障 系統故障 媒體故障 計算機病毒

  1. 資料庫中為什麼要有恢複子系統?它的功能是什麼?

正确答案: 因為計算機系統中硬體的故障、軟體的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運作事務非正常中斷,影響資料庫中資料的正确性,重則破壞資料庫,使資料庫中全部或部分資料丢失,是以必須要有恢複子系統。 恢複子系統的功能是:把資料庫從錯誤狀态恢複到某一已知的正确狀态(亦稱為一緻狀态或完整狀态)。

  1. 試述事務的概念及事務的四個特性。

正确答案: 事務是使用者定義的一個資料庫操作序列,這些操作要麼全做要麼全不做,是一個不可分割的工作機關。 事務具有四個特性:原子性(Atomicity)、一緻性(Consistency)、隔離性(Isolation)和持續性(Durability)。這個四個特性也簡稱為ACID特性。 原子性:事務是資料庫的邏輯工作機關,事務中包括的諸操作要麼都做,要麼都不做。 一緻性:事務執行的結果必須是使資料庫從一個一緻性狀态變到另一個一緻性狀态。 隔離性:一個事務的執行不能被其他事務幹擾。即一個事務内部的操作及使用的資料對其他并發事務是隔離的,并發執行的各個事務之間不能互相幹擾。 持續性:持續性也稱永久性(Permanence),指一個事務一旦送出,它對資料庫中資料的改變就應該是永久性的。接下來的其他操作或故障不應該對其執行結果有任何影響。

  1. 為什麼事務非正常結束時會影響資料庫資料的正确性,請列舉一例說明之。

正确答案: 事務執行的結果必須是使資料庫從一個一緻性狀态變到另一個一緻性狀态。如果資料庫系統運作中發生故障,有些事務尚未完成就被迫中斷,這些未完成事務對資料庫所做的修改有一部分已寫入實體資料庫,這時資料庫就處于一種不正确的狀态,或者說是不一緻的狀态。 例如某工廠的庫存管理系統中,要把數量為Q的某種零件從倉庫1移到倉庫2存放。 則可以定義一個事務T,T包括兩個操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時隻做了第一個操作,則資料庫就處于不一緻性狀态,庫存量無緣無故少了Q。

  1. 資料庫運作中可能産生的故障有哪幾類?哪些故障影響事務的正常執行?哪些故障破壞資料庫資料?

正确答案: 資料庫系統中可能發生各種各樣的故障,大緻可以分以下幾類: (1) 事務内部的故障; (2) 系統故障; (3) 媒體故障; (4) 計算機病毒。 事務故障、系統故障和媒體故障影響事務的正常執行;媒體故障和計算機病毒破壞資料 庫資料。

  1. 資料庫恢複的基本技術有哪些?

正确答案: 資料轉儲和登入日志檔案是資料庫恢複的基本技術。 當系統運作過程中發生故障,利用轉儲的資料庫後備副本和日志檔案就可以将資料庫恢複到故障前的某個一緻性狀态。

  1. 事務具有四個特性:它們是________ 、________ 、________ 和 ________ 。這個四個特性也簡稱為________特性。

正确答案: 原子性(Atomicity) 一緻性(Consistency) 隔離性(Isolation) 持續性(Durability) ACID

8.資料庫轉儲的意義是什麼? 試比較各種資料轉儲方法。

正确答案: 資料轉儲是資料庫恢複中采用的基本技術。所謂轉儲即DBA定期地将資料庫複制到錄音帶或另一個磁盤上儲存起來的過程。當資料庫遭到破壞後可以将後備副本重新裝入,将資料庫恢複到轉儲時的狀态。 靜态轉儲:在系統中無運作事務時進行的轉儲操作。如上圖所示。靜态轉儲簡單,但必須等待正運作的使用者事務結束才能進行。同樣,新的事務必須等待轉儲結束才能執行。顯然,這會降低資料庫的可用性。 動态轉儲:指轉儲期間允許對資料庫進行存取或修改。動态轉儲可克服靜态轉儲的缺點,它不用等待正在運作的使用者事務結束,也不會影響新事務的運作。但是,轉儲結束時後援副本上的資料并不能保證正确有效。因為轉儲期間運作的事務可能修改了某些資料,使得後援副本上的資料不是資料庫的一緻版本。 為此,必須把轉儲期間各事務對資料庫的修改活動登記下來,建立日志檔案(log file)。這樣,後援副本加上日志檔案就能得到資料庫某一時刻的正确狀态。 轉儲還可以分為海量轉儲和增量轉儲兩種方式。 海量轉儲是指每次轉儲全部資料庫。增量轉儲則指每次隻轉儲上一次轉儲後更新過的資料。從恢複角度看,使用海量轉儲得到的後備副本進行恢複一般說來更簡單些。但如果資料庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。

9.什麼是日志檔案?為什麼要設立日志檔案?

正确答案: (1) 日志檔案是用來記錄事務對資料庫的更新操作的檔案。 (2) 設立日志檔案的目的是: 進行事務故障恢複;進行系統故障恢複;協助後備副本進行媒體故障恢複。

10.登記日志檔案時為什麼必須先寫日志檔案,後寫資料庫?

正确答案: 把對資料的修改寫到資料庫中和把表示這個修改的日志記錄寫到日志檔案中是兩個不同的操作。有可能在這兩個操作之間發生故障,即這兩個寫操作隻完成了一個。 如果先寫了資料庫修改,而在運作記錄中沒有登記這個修改,則以後就無法恢複這個修改了。如果先寫日志,但沒有修改資料庫,在恢複時隻不過是多執行一次UNDO操作,并不會影響資料庫的正确性。是以一定要先寫日志檔案,即首先把日志記錄寫到日志檔案中,然後寫資料庫的修改。

11.針對不同的故障,試給出恢複的政策和方法。(即如何進行事務故障的恢複?系統故障的恢複?媒體故障恢複?)

正确答案: 答: 事務故障的恢複: 事務故障的恢複是由DBMS自動完成的,對使用者是透明的。 DBMS執行恢複步驟是: (1)反向掃描檔案日志(即從最後向前掃描日志檔案),查找該事務的更新操作。 (2)對該事務的更新操作執行逆操作。即将日志記錄中“更新前的值”寫入資料庫。 (3)繼續反向掃描日志檔案,做同樣處理。 (4)如此處理下去,直至讀到此事務的開始标記,該事務故障的恢複就完成了。 答: 系統故障的恢複: 系統故障可能會造成資料庫處于不一緻狀态: 一是未完成事務對資料庫的更新可能已寫入資料庫; 二是已送出事務對資料庫的更新可能還留在緩沖區,沒來得及寫入資料庫。 是以恢複操作就是要撤銷(UNDO)故障發生時未完成的事務,重做(REDO)已完成的事務。 系統的恢複步驟是: (1)正向掃描日志檔案,找出在故障發生前已經送出的事務隊列(REDO隊列)和未完成的事務隊列(UNDO隊列)。 (2)對撤銷隊列中的各個事務進行UNDO處理。 進行UNDO處理的方法是,反向掃描日志檔案,對每個UNDO事務的更新操作執行逆操作,即将日志記錄中“更新前的值”(Before Image)寫入資料庫。 (3)對重做隊列中的各個事務進行REDO處理。 進行REDO處理的方法是:正向掃描日志檔案,對每個REDO事務重新執行日志檔案登記的操作。即将日志記錄中“更新後的值”(After Image)寫入資料庫。 *解析: 在第(1)步中如何找出REDO隊列和UNDO隊列?請大家思考一下。 下面給出一個算法: 1) 建立兩個事務隊列: • UNDO-LIST: 需要執行undo操作的事務集合; • REDO-LIST: 需要執行redo操作的事務集合; 兩個事務隊列初始均為空。 2) 從日志檔案頭開始,正向掃描日志檔案 • 如有新開始(遇到Begin Transaction)的事務Ti,把Ti暫時放入UNDO-LIST隊列; • 如有送出的事務(遇到End Transaction)Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列; 直到日志檔案結束 答: 媒體故障的恢複: 媒體故障是最嚴重的一種故障。 恢複方法是重裝資料庫,然後重做已完成的事務。具體過程是: (1) DBA裝入最新的資料庫後備副本(離故障發生時刻最近的轉儲副本),使資料庫恢複到轉儲時的一緻性狀态。 (2) DBA裝入轉儲結束時刻的日志檔案副本 (3) DBA啟動系統恢複指令,由DBMS完成恢複功能,即重做已完成的事務。 *解析 1)我們假定采用的是靜态轉儲,是以第(1)步裝入資料庫後備副本便可以了。 2)如果采用的是動态轉儲,第(1)步裝入資料庫後備副本還不夠,還需同時裝入轉儲開始時刻的日志檔案副本,經過處理後才能得到正确的資料庫後備副本。 3)第(2)步重做已完成的事務的算法是: a. 正向掃描日志檔案,找出故障發生前已送出的事務的辨別,将其記入重做隊列 b. 再一次正向掃描日志檔案,對重做隊列中的所有事務進行重做處理。即将日志記錄中“更新後的值”寫入資料庫。

12.什麼是檢查點記錄,檢查點記錄包括哪些内容?

正确答案: 檢查點記錄是一類新的日志紀錄。它的内容包括: ① 建立檢查點時刻所有正在執行的事務清單。 ② 這些事務的最近一個日志記錄的位址。

13.具有檢查點的恢複技術有什麼優點?試舉一個具體的例子加以說明。

正确答案: 利用日志技術進行資料庫恢複時,恢複子系統必須搜尋日志,确定哪些事務需要REDO,哪些事務需要UNDO。一般來說,需要檢查所有日志記錄。這樣做有兩個問題: 一是搜尋整個日志将耗費大量的時間。 二是很多需要REDO處理的事務實際上已經将它們的更新操作結果寫到資料庫中了,恢複子系統又重新執行了這些操作,浪費了大量時間。 檢查點技術就是為了解決這些問題。

14.試述使用檢查點方法進行恢複的步驟。

正确答案: ① 從重新開始檔案中找到最後一個檢查點記錄在日志檔案中的位址,由該位址在日志檔案中找到最後一個檢查點記錄。 ② 由該檢查點記錄得到檢查點建立時刻所有正在執行的事務清單ACTIVE-LIST。 這裡建立兩個事務隊列: • UNDO-LIST: 需要執行undo操作的事務集合; • REDO-LIST: 需要執行redo操作的事務集合; 把ACTIVE-LIST暫時放入UNDO-LIST隊列,REDO隊列暫為空。 ③ 從檢查點開始正向掃描日志檔案 • 如有新開始的事務Ti,把Ti暫時放入UNDO-LIST隊列; • 如有送出的事務Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列,直到日志檔案結束; ④ 對UNDO-LIST中的每個事務執行UNDO操作, 對REDO-LIST中的每個事務執行REDO操作。

15.什麼是資料庫鏡像?它有什麼用途?

正确答案: 資料庫鏡像即根據DBA的要求,自動把整個資料庫或者其中的部分關鍵資料複制到另一個磁盤上。每當主資料庫更新時,DBMS自動把更新後的資料複制過去,即DBMS自動保證鏡像資料與主資料的一緻性。 資料庫鏡像的用途有: 一是用于資料庫恢複。當出現媒體故障時,可由鏡像磁盤繼續提供使用,同時DBMS自動利用鏡像磁盤資料進行資料庫的恢複,不需要關閉系統和重裝資料庫副本。 二是提高資料庫的可用性。在沒有出現故障時,當一個使用者對某個資料加排它鎖進行修改時,其他使用者可以讀鏡像資料庫上的資料,而不必等待該使用者釋放鎖。

  1. 把資料庫從錯誤狀态恢複到某一已知的正确狀态(亦稱為一緻狀态)的功能,這就是________ 。

正确答案: 資料庫的恢複

17.________ 是一系列的資料庫操作,是資料庫應用程式的基本邏輯單元。

正确答案: 事務

  1. 事務處理技術主要包括________ 技術和________技術。

正确答案: 資料庫恢複 并發控制

  1. 在SQL語言中,定義事務控制的語句主要有________ 、________ 和 ________ 。

正确答案: BEGIN TRANSACTION COMMIT ROLLBACK

  1. 建立備援資料最常用的技術是________ 和________ 。通常在一個資料庫系統中,這兩種方法是一起使用的。

正确答案: 資料轉儲 登入日志檔案

  1. 轉儲可分為________ 和________,轉儲方式可以有________和 ________。

正确答案: 靜态轉儲 動态轉儲 海量轉儲 增量轉儲

22.________ 是用來記錄事務對資料庫的更新操作的檔案。主要有兩種格式:以________為機關的日志檔案和以________為機關的日志檔案。

正确答案: 日志檔案 記錄 資料塊

第八章 并發控制

1.并發操作可能會産生哪幾類資料不一緻?用什麼方法能避免各種不一緻的情況?

正确答案: 并發操作帶來的資料不一緻性包括三類:丢失修改、不可重複讀和讀“髒”資料。 (1)丢失修改(Lost Update) 兩個事務T1和T2讀入同一資料并修改,T2送出的結果破壞了(覆寫了)T1送出的結果,導緻T1的修改被丢失。 (2)不可重複讀(Non-Repeatable Read) 不可重複讀是指事務T1讀取資料後,事務T2執行更新操作,使T1無法再現前一次讀取結果。不可重複讀包括三種情況:詳見《概論》8.1 p266。 (3)讀“髒”資料(Dirty Read) 讀“髒”資料是指事務T1修改某一資料,并将其寫回磁盤,事務T2讀取同一資料後,T1由于某種原因被撤銷,這時T1已修改過的資料恢複原值,T2讀到的資料就與資料庫中的資料不一緻,則T2讀到的資料就為“髒”資料,即不正确的資料。 避免不一緻性的方法就是并發控制。最常用的并發控制技術是封鎖技術。 也可以用其他技術,例如在分布式資料庫系統中可以采用時間戳方法來進行并發控制。

2.在資料庫中為什麼要并發控制?

正确答案: 資料庫是共享資源,通常有許多個事務同時在運作。 當多個事務并發地存取資料庫時就會産生同時讀取和/或修改同一資料的情況。若對并發操作不加控制就可能會存取和存儲不正确的資料,破壞資料庫的一緻性。是以資料庫管理系統必須提供并發控制機制。

3.什麼是封鎖?

正确答案: 封鎖就是事務T在對某個資料對象例如表、記錄等操作之前,先向系統送出請求,對其加鎖。加鎖後事務T就對該資料對象有了一定的控制,在事務T釋放它的鎖之前,其他的事務不能更新此資料對象。 封鎖是實作并發控制的一個非常重要的技術。

4.基本的封鎖類型有幾種?試述它們的含義。

正确答案: 基本的封鎖類型有兩種: 排它鎖(Exclusive Locks,簡稱X鎖) 和共享鎖(Share Locks,簡稱S鎖)。 排它鎖又稱為寫鎖。若事務T對資料對象A加上X鎖,則隻允許T讀取和修改A,其他任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。 共享鎖又稱為讀鎖。若事務T對資料對象A加上S鎖,則事務T可以讀A但不能修改A,其他事務隻能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其他事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。

5.什麼是封鎖協定?不同級别的封鎖協定的主要差別是什麼?

正确答案: 在運用封鎖技術對資料加鎖時,要約定一些規則。例如,在運用X鎖和S鎖對資料對象加鎖時,要約定何時申請X鎖或S鎖、何時釋放封鎖等。這些約定或者規則稱為封鎖協定(Locking Protocol)。對封鎖方式約定不同的規則,就形成了各種不同的封鎖協定。不同級别的封鎖協定,例如《概論》8.3中介紹的三級封鎖協定,三級協定的主要差別在于什麼操作需要申請封鎖,何時申請封鎖以及何時釋放鎖(即持鎖時間的長短)。 一級封鎖協定:事務T在修改資料R之前必須先對其加X鎖,直到事務結束才釋放。 二級封鎖協定:一級封鎖協定加上事務T在讀取資料R之前必須先對其加S鎖,讀完後即可釋放S鎖。 三級封鎖協定:一級封鎖協定加上事務T在讀取資料R之前必須先對其加S鎖,直到事務結束才釋放。

6.不同封鎖協定與系統一緻性級别的關系是什麼?

正确答案: 不同的封鎖協定對應不同的一緻性級别。 一級封鎖協定可防止丢失修改,并保證事務T是可恢複的。在一級封鎖協定中,對讀資料是不加S鎖的,是以它不能保證可重複讀和不讀“髒”資料。 二級封鎖協定除防止了丢失修改,還可進一步防止讀“髒”資料。在二級封鎖協定中,由于讀完資料後立即釋放S鎖,是以它不能保證可重複讀。 在三級封鎖協定中,無論是讀資料還是寫資料都加長鎖,即都要到事務結束時才釋放封鎖。是以三級封鎖協定除防止了丢失修改和不讀“髒”資料外,還進一步防止了不可重複讀。

7.什麼是活鎖?什麼是死鎖 ?

正确答案: 如果事務T1封鎖了資料R,事務T2又請求封鎖R,于是T2等待。T3也請求封鎖R,當T1釋放了R上的封鎖之後系統首先準許了T3的請求,T2仍然等待。然後T4又請求封鎖R,當T3釋放了R上的封鎖之後系統又準許了T4的請求……T2有可能永遠等待,這就是活鎖的情形。活鎖的含義是該等待事務等待時間太長,似乎被鎖住了,實際上可能被激活。 如果事務T1封鎖了資料R1,T2封鎖了資料R2,然後T1又請求封鎖R2,因T2已封鎖了R2,于是T1等待T2釋放R2上的鎖。接着T2又申請封鎖R1,因T1已封鎖了R1,T2也隻能等待T1釋放R1上的鎖。這樣就出現了T1在等待T2,而T2又在等待T1的局面,T1和T2兩個事務永遠不能結束,形成死鎖。

8.試述活鎖的産生原因和解決方法。

正确答案: 活鎖産生的原因:當一系列封鎖不能按照其先後順序執行時,就可能導緻一些事務無限期等待某個封鎖,進而導緻活鎖。 避免活鎖的簡單方法是采用先來先服務的政策。當多個事務請求封鎖同一資料對象時,封鎖子系統按請求封鎖的先後次序對事務排隊,資料對象上的鎖一旦釋放就準許申請隊列中第一個事務獲得鎖。

9.請給出預防死鎖的若幹方法。

正确答案: 在資料庫中,産生死鎖的原因是兩個或多個事務都已封鎖了一些資料對象,然後又都請求已被其他事務封鎖的資料加鎖,進而出現死等待。 防止死鎖的發生其實就是要破壞産生死鎖的條件。預防死鎖通常有兩種方法: (1)一次封鎖法 要求每個事務必須一次将所有要使用的資料全部加鎖,否則就不能繼續執行。 (2)順序封鎖法 預先對資料對象規定一個封鎖順序,所有事務都按這個順序實行封鎖。

10.請給出檢測死鎖發生的一種方法,當發生死鎖後如何解除死鎖?

正确答案: 資料庫系統一般采用允許死鎖發生,DBMS檢測到死鎖後加以解除的方法。 DBMS中診斷死鎖的方法與作業系統類似,一般使用逾時法或事務等待圖法。 逾時法是:如果一個事務的等待時間超過了規定的時限,就認為發生了死鎖。逾時法實作簡單,但有可能誤判死鎖,事務因其他原因長時間等待超過時限時,系統會誤認為發生了死鎖。若時限設定得太長,又不能及時發現死鎖發生。 DBMS并發控制子系統檢測到死鎖後,就要設法解除。通常采用的方法是選擇一個處理死鎖代價最小的事務,将其撤消,釋放此事務持有的所有鎖,使其他事務得以繼續運作下去。當然,對撤銷的事務所執行的資料修改操作必須加以恢複。

11.什麼樣的并發排程是正确的排程?

正确答案: 可串行化(Serializable)的排程是正确的排程。 可串行化的排程的定義:多個事務的并發執行是正确的,當且僅當其結果與按某一次序串行地執行它們時的結果相同,我們稱這種排程政策為可串行化的排程。

12.試述兩段鎖協定的概念。

正确答案: 兩段鎖協定是指所有事務必須分兩個階段對資料項加鎖和解鎖。 • 在對任何資料進行讀、寫操作之前,首先要申請并獲得對該資料的封鎖; • 在釋放一個封鎖之後,事務不再申請和獲得任何其他封鎖。 “兩段”的含義是,事務分為兩個階段: 第一階段是獲得封鎖,也稱為擴充階段。在這階段,事務可以申請獲得任何資料項上的任何類型的鎖,但是不能釋放任何鎖。 第二階段是釋放封鎖,也稱為收縮階段。在這階段,事務釋放已經獲得的鎖,但是不能再申請任何鎖。

13.試證明,若并發事務遵守兩段鎖協定,則對這些事務的并發排程是可串行化的。

正确答案: 首先以兩個并發事務T1和T2為例,存在多個并發事務的情形可以類推。 根據可串行化定義可知,事務不可串行化隻可能發生在下列兩種情況: 1.事務T1寫某個資料對象A,T2讀或寫A; 2.事務T1讀或寫某個資料對象A,T2寫A。 下面稱A為潛在沖突對象。 設T1和T2通路的潛在沖突的公共對象為{A1, A2, …, An}。 不失一般性,假設這組潛在沖突對象中X={A1,A2, …, Ai}均符合情況1。 Y={Ai+1, …,An}符合所情況2。 xX,T1需要Xlock x ① T2需要Slock x或Xlockx ② (1) 如果操作①先執行,則T1獲得鎖,T2等待 由于遵守兩段鎖協定,T1在成功獲得X和Y中全部對象及非潛在沖突對象的鎖後,才會釋放鎖 這時如果wX或Y,T2已獲得w的鎖,則出現死鎖 否則,T1在對X、Y中對象全部處理完畢後,T2才能執行 這相當于按T1、T2的順序串行執行 根據可串行化定義,T1和T2的排程是可串行化的。 (2) 操作②先執行的情況與(1)對稱 是以,若并發事務遵守兩段鎖協定,在不發生死鎖的情況下,對這些事務的并發排程一定是可串行化的。

14.為什麼要引進意向鎖? 意向鎖的含義是什麼?

正确答案: 引進意向鎖是為了提高封鎖子系統的效率。該封鎖子系統支援多種封鎖粒度。 原因是:在多粒度封鎖方法中一個資料對象可能以兩種方式加鎖—顯式封鎖和隐式封鎖(有關概念參見《概論》8.7.1)。是以系統在對某一資料對象加鎖時不僅要檢查該資料對象上有無(顯式和隐式)封鎖與之沖突;還要檢查其所有上級結點和所有下級結點,看申請的封鎖是否與這些結點上的(顯式和隐式)封鎖沖突;顯然,這樣的檢查方法效率很低。為此引進了意向鎖。 意向鎖的含義是:對任一結點加鎖時,必須先對它的上層結點加意向鎖。 例如事務T要對某個元組加X鎖,則首先要對關系和資料庫加IX鎖。換言之,對關系和資料庫加IX鎖,表示它的後裔結點—某個元組拟(意向)加X鎖。 引進意向鎖後,系統對某一資料對象加鎖時不必逐個檢查與下一級結點的封鎖沖突了。例如,事務T要對關系R加X鎖時,系統隻要檢查根結點資料庫和R本身是否已加了不相容的鎖(如發現已經加了IX,則與X沖突),而不再需要搜尋和檢查R中的每一個元組是否加了X鎖或S鎖。

15.試述常用的意向鎖:IS鎖,IX鎖,SIX鎖,給出這些鎖的相容矩陣。

正确答案: IS鎖 如果對一個資料對象加IS鎖,表示它的後裔結點拟(意向)加S鎖。例如,要對某個元組加S鎖,則要首先對關系和資料庫加IS鎖 IX鎖 如果對一個資料對象加IX鎖,表示它的後裔結點拟(意向)加X鎖。例如,要對某個元組加X鎖,則要首先對關系和資料庫加IX鎖。 SIX鎖 如果對一個資料對象加SIX鎖,表示對它加S鎖,再加IX鎖,即SIX = S + IX。

  1. 并發操作帶來的資料不一緻性包括:________ 、________ 和 ________ 。

正确答案: 丢失修改 不可重複讀 讀“髒”資料

  1. 多個事務的并發執行是正确的,當且僅當其結果與按某一次序串行地執行它們時的結果相同,我們稱這種排程政策為________的排程。

正确答案: 可串行化

  1. 基本的封鎖類型有兩種:________ 和________ 。

正确答案: 排它鎖(Exclusive Locks,簡稱X鎖) 共享鎖(Share Locks,簡稱S鎖)

  1. 在資料庫并發控制中,兩個或多個事務同時處在互相等待狀态,稱為________ 。

正确答案: 死鎖

20.________ 被稱為封鎖的粒度。

正确答案: 封鎖對象的大小

第九章 資料庫安全性

  1. 什麼是資料庫的安全性?

正确答案: 資料庫的安全性是指保護資料庫以防止不合法的使用所造成的資料洩露、更改或破壞。

  1. 資料庫安全性和計算機系統的安全性有什麼關系?

正确答案: 安全性問題不是資料庫系統所獨有的,所有計算機系統都有這個問題。隻是在資料庫系統中大量資料集中存放,而且為許多最終使用者直接共享,進而使安全性問題更為突出。 系統安全保護措施是否有效是資料庫系統的主要名額之一。 資料庫的安全性和計算機系統的安全性,包括作業系統、網絡系統的安全性是緊密聯系、互相支援的,

  1. 試述可信計算機系統評測标準的情況,試述TDI/TCSEC标準的基本内容。

正确答案: 各個國家在計算機安全技術方面都建立了一套可信标準。目前各國引用或制定的一系列安全标準中,最重要的是美國國防部(DoD)正式頒布的《 DoD可信計算機系統評估标準》(Trusted Computer System Evaluation Criteria,簡稱TCSEC,又稱桔皮書)。 TDI/TCSEC标準是将TCSEC擴充到資料庫管理系統,即《可信計算機系統評估标準關于可信資料庫系統的解釋》( Trusted Database Interpretation 簡稱TDI,又稱紫皮書)。在TDI中定義了資料庫管理系統的設計與實作中需滿足和用以進行安全性級别評估的标準。 TDI與TCSEC一樣,從安全政策、責任、保證和文檔四個方面來描述安全性級别劃分的名額。每個方面又細分為若幹項。

  1. 試述TCSEC(TDI)将系統安全級别劃分為四組七個等級的基本内容。

正确答案: 根據計算機系統對安全性各項名額的支援情況,TCSEC(TDI)将系統劃分為四組(division)七個等級,依次是D;C(C1,C2);B(B1,B2,B3);A(A1),按系統可靠或可信程度逐漸增高。 這些安全級别之間具有一種偏序向下相容的關系,即較高安全性級别提供的安全保護包含較低級别的所有保護要求,同時提供更多或更完善的保護能力。 各個等級的基本内容為: D級 D級是最低級别。一切不符合更高标準的系統,統統歸于D組。 C1級 隻提供了非常初級的自主安全保護。能夠實作對使用者和資料的分離,進行自主存取控制(DAC),保護或限制使用者權限的傳播。 C2級 實際是安全産品的最低檔次,提供受控的存取保護,即将C1級的DAC進一步細化,以個人身份注冊負責,并實施審計和資源隔離。 B1級 标記安全保護。對系統的資料加以标記,并對标記的主體和客體實施強制存取控制(MAC)以及審計等安全機制。 B2級 結構化保護。建立形式化的安全政策模型并對系統内的所有主體和客體實施DAC和MAC。 B3級 安全域。該級的TCB必須滿足通路監控器的要求,審計跟蹤能力更強,并提 供系統恢複過程。 A1級 驗證設計,即提供B3級保護的同時給出系統的形式化設計說明和驗證以确信 各安全保護真正實作。

  1. 試述實作資料庫安全性控制的常用方法和技術。

正确答案: 實作資料庫安全性控制的常用方法和技術有: 1) 使用者辨別和鑒别:該方法由系統提供一定的方式讓使用者辨別自己的名字或身份。每次使用者要求進入系統時,由系統進行核對,通過鑒定後才提供系統的使用權。 2) 存取控制:通過使用者權限定義和合法權檢查確定隻有合法權限的使用者通路資料庫,所有未被授權的人員無法存取資料。例如C2級中的自主存取控制(DAC),B1級中的強制存取控制(MAC); 3) 視圖機制:為不同的使用者定義視圖,通過視圖機制把要保密的資料對無權存取的使用者隐藏起來,進而自動地對資料提供一定程度的安全保護。 4) 審計:建立審計日志,把使用者對資料庫的所有操作自動記錄下來放入審計日志中, DBA可以利用審計跟蹤的資訊,重制導緻資料庫現有狀況的一系列事件,找出非法存取資料的人、時間和内容等。 5) 資料加密:對存儲和傳輸的資料進行加密處理,進而使得不知道解密算法的人無法獲知資料的内容。

  1. 什麼是資料庫中的自主存取控制方法和強制存取控制方法?

正确答案: 自主存取控制方法:定義各個使用者對不同資料對象的存取權限。當使用者對資料庫通路時首先檢查使用者的存取權限。防止不合法使用者對資料庫的存取。 強制存取控制方法:每一個資料對象被(強制地)标以一定的密級,每一個使用者也被(強制地)授予某一個級别的許可證。系統規定隻有具有某一許可證級别的使用者才能存取某一個密級的資料對象。 *解析:自主存取控制中自主的含義是:使用者可以将自己擁有的存取權限“自主”地授予别人。即使用者具有一定的“自主”權。

  1. SQL語言中提供了哪些資料控制(自主存取控制)的語句?請試舉幾例說明它們的使用方法。

正确答案: SQL中 的自主存取控制是通過GRANT 語句和 REVOKE 語句來實作的。如: GRANT SELECT, INSERT ON Student TO 王平 WITH GRANT OPTION; 就将Student表的SELECT和INSERT權限授予了使用者王平,後面的“WITH GRANT OPTION”子句表示使用者王平同時也獲得了“授權”的權限,即可以把得到的權限繼續授予其他使用者。 REVOKE INSERT ON Student FROM 王平 CASCADE; 就将Student表 的INSERT權限從使用者王平處收回,選項 CASCADE 表示,如果使用者王平将 Student 的 INSERT 權限又轉授給了其他使用者,那麼這些權限也将從其他使用者處收回。

  1. 為什麼強制存取控制提供了更進階别的資料庫安全性?

正确答案: 強制存取控制(MAC)是對資料本身進行密級标記,無論資料如何複制,标記與資料是一個不可分的整體,隻有符合密級标記要求的使用者才可以操縱資料,進而提供了更進階别的安全性。

  1. 了解并解釋MAC機制中主體、客體、敏感度标記的含義。

正确答案: 主體是系統中的活動實體,既包括DBMS所管理的實際使用者,也包括代表使用者的各程序。 客體是系統中的被動實體,是受主體操縱的,包括檔案、基表、索引、視圖等。 對于主體和客體,DBMS為它們每個執行個體(值)指派一個敏感度标記(Label)。敏感度标記被分成若幹級别,例如絕密(Top Secret)、機密(Secret)、可信(Confidential)、公開(Public)等。主體的敏感度标記稱為許可證級别(Clearance Level),客體的敏感度标記稱為密級(Classification Level)。

  1. 什麼是資料庫的審計功能,為什麼要提供審計功能?

正确答案: 審計功能是指DBMS的審計子產品在使用者對資料庫執行操作的同時把所有操作自動記錄到系統的審計日志中。 因為任何系統的安全保護措施都不是完美無缺的,蓄意盜竊破壞資料的人總可能存在。利用資料庫的審計功能,DBA可以根據審計跟蹤的資訊,重制導緻資料庫現有狀況的一系列事件,找出非法存取資料的人、時間和内容等。

  1. 統計資料庫中存在何種特殊的安全性問題?

正确答案: 統計資料庫允許使用者查詢聚集類型的資訊,如合計、平均值、最大值、最小值等,不允許查詢單個記錄資訊。但是,人們可以從合法的查詢中推導出不合法的資訊,即可能存在隐蔽的資訊通道,這是統計資料庫要研究和解決的特殊的安全性問題。

  1. 資料庫的安全性是指保護資料庫以防止不合法的使用所造成的_______、_或。

正确答案: 資料洩漏 更改 破壞

  1. 計算機系統有三類安全性問題,即________ 、_________和 ________。

正确答案: 技術安全類 管理安全類 政策法律類

  1. 使用者辨別和鑒别的方法有很多種,而且在一個系統中往往是多種方法并舉,以獲得更強的安全性。常用的方法有通過輸入________和 ________來鑒别使用者。

正确答案: 使用者名 密碼

15.________ 和 ________ 一起組成了DBMS的本機安全性授權。

正确答案: 使用者權限定義 合法權檢查機制

  1. 目前大型的DBMS一般都支援________ ,有些DBMS同時還支援________ 。

正确答案: 自主存取控制(DAC) 強制存取控制(MAC)

  1. 使用者權限是由兩個要素組成的:________ 和 ________ 。

正确答案: 資料對象 操作類型

  1. 在資料庫系統中,定義存取權限稱為________ 。SQL語言用________語句向使用者授予對資料的操作權限,用________語句收回授予的權限。

正确答案: 授權 GRANT REVOKE

  1. 對資料庫模式的授權由DBA在________ 時實作。

正确答案: 建立使用者

  1. 一個DBA使用者可以擁有________ 、________ 和________ 權限,一個RESOURCE使用者可以擁有________權限。

正确答案: CREATE USER CREATE SCHEMA CREATE TABLE CREATE TABLE

  1. 資料庫角色是被命名的一組與________ 相關的權限,角色是________的集合。

正确答案: 資料庫操作 權限

  1. 通過________ 可以把要保密的資料對無權存取的使用者隐藏起來,進而自動地對資料提供一定程度的安全保護。

正确答案: 視圖機制

  1. 審計一般可以分為________ 審計和 ________審計。

正确答案: 使用者級 系統級

第十章 資料庫完整性

  1. 什麼是資料庫的完整性?

正确答案: 資料庫的完整性是指資料的正确性和相容性。

  1. 資料庫的完整性概念與資料庫的安全性概念有什麼差別和聯系?

正确答案: 資料的完整性和安全性是兩個不同的概念,但是有一定的聯系。 前者是為了防止資料庫中存在不符合語義的資料,防止錯誤資訊的輸入和輸出,即所謂垃圾進垃圾出(Garbage In Garbage Out)所造成的無效操作和錯誤結果。 後者是保護資料庫防止惡意的破壞和非法的存取。 也就是說,安全性措施的防範對象是非法使用者和非法操作,完整性措施的防範對象是不合語義的資料。

  1. 什麼是資料庫的完整性限制條件?可分為哪幾類?

正确答案: 完整性限制條件是指資料庫中的資料應該滿足的語義限制條件。 一般可以分為六類: 靜态列級限制、靜态元組限制、靜态關系限制、動态列級限制、動态元組限制、動态關系限制。 靜态列級限制是對一個列的取值域的說明,包括以下幾方面: 1. 對資料類型的限制,包括資料的類型、長度、機關、精度等 2. 對資料格式的限制 3. 對取值範圍或取值集合的限制。 4. 對空值的限制 5. 其他限制 靜态元組限制就是規定組成一個元組的各個列之間的限制關系,靜态元組限制隻局限在單個元組上。 靜态關系限制是在一個關系的各個元組之間或者若幹關系之間常常存在各種聯系或限制。常見的靜态關系限制有: 1. 實體完整性限制。 2. 參照完整性限制。 3. 函數依賴限制。 動态列級限制是修改列定義或列值時應滿足的限制條件,包括下面兩方面: 1. 修改列定義時的限制 2. 修改列值時的限制 動态元組限制是指修改某個元組的值時需要參照其舊值,并且新舊值之間需要滿足某種限制條件。 動态關系限制是加在關系變化前後狀态上的限制條件,例如事務一緻性、原子性等限制條件。

  1. DBMS的完整性控制機制應具有哪些功能?

正确答案: DBMS的完整性控制機制應具有三個方面的功能: 1. 定義功能,即提供定義完整性限制條件的機制。 2. 檢查功能,即檢查使用者發出的操作請求是否違背了完整性限制條件。 3. 違約反應:如果發現使用者的操作請求使資料違背了完整性限制條件,則采取一定的動作來保證資料的完整性。

  1. RDBMS在實作參照完整性時需要考慮哪些方面?

正确答案: RDBMS在實作參照完整性時需要考慮以下幾個方面: 1) 外碼是否可以接受空值 2) 删除被參照關系的元組時的考慮,這時系統可能采取的作法有三種: (a)級聯删除(CASCADES); (b)受限删除(RESTRICTED); (c)置空值删除(NULLIFIES) 3) 在參照關系中插入元組時的問題,這時系統可能采取的作法有: (a)受限插入 (b)遞歸插入 4) 修改關系中主碼的問題 一般是不能用UPDATE語句修改關系主碼的。如果需要修改主碼值,隻能先删除該元組,然後再把具有新主碼值的元組插入到關系中。 如果允許修改主碼,首先要保證主碼的唯一性和非空,否則拒絕修改。然後要區分是參照關系還是被參照關系。

6.假設有下面兩個關系模式: 職工(職工号,姓名,年齡,職務,工資,部門号),其中職工号為主碼; 部門(部門号,名稱,經理名,電話),其中部門号為主碼; 用SQL語言定義這兩個關系模式,要求在模式中完成以下完整性限制條件的定義: 定義每個模式的主碼;定義參照完整性;定義職工年齡不得超過60歲。

正确答案: CREATE TABLE DEPT (Deptno NUMBER(2), Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12) CONSTRAINT PK_SC PRIMARY 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) REFERENCES DEPT(Deptno));

  1. 關系系統中,當操作違反實體完整性、參照完整性和使用者定義的完整性限制條件時,一般是如何分别進行處理的?

正确答案: 對于違反實體完整性和使用者定義的完整性的操作一般都采用拒絕執行的方式進行處理。而對于違反參照完整性的操作,并不都是簡單地拒絕執行,有時要根據應用語義執行一些附加的操作,以保證資料庫的正确性。具體的處理可以參見上面第5題或《概論》10.2中相應部分。

  1. 資料庫的完整性是指資料的________ 和 ________。

正确答案: 正确性 相容性

  1. SQL标準使用了一系列概念來描述完整性,包括關系模型的________ 、________和 ________完整性。

正确答案: 實體完整性 參照完整性 使用者定義

  1. 資料庫完整性的定義一般由SQL的________ 語句來實作。它們作為資料庫模式的一部分存入 中。

正确答案: DDL 資料字典

  1. 關系模型的實體完整性在________ 中用________定義。

正确答案: CREATE TABLE PRIMARY KEY

  1. 為了避免對基本表進行全表掃描,RDBMS核心一般都對________ 自動建立一個________ 。

正确答案: 主碼 索引

13.關系模型的參照完整性在________中用________短語定義哪些列為外碼列,用________短語指明這些外碼參照哪些表的主碼。

正确答案: CREATE TABLE FOREIGN KEY REFERENCES

第十一章 資料庫管理系統

1.DBMS由哪些主要的程式子產品組成?

正确答案: DBMS主要的程式子產品有: 1. 資料定義子產品 2. 資料操縱子產品 3. 資料庫運作管理方面的程式子產品 4. 資料庫組織、存儲和管理方面的程式子產品 5. 資料庫建立、維護和其他方面的程式子產品

2.DBMS的語言翻譯層是如何處理一個DDL語句的?

正确答案: 語言翻譯處理層首先要對DDL語句進行文法檢查、語義檢查和使用者權限檢查。語義檢查的内容具體做法是,DBMS讀取資料字典,檢查是否存在與該語句中的表,或視圖,或索引等要建立的對象名相同的對象名,檢查該使用者是否具有建立資料庫對象的權限。 然後把DDL語句翻譯成内部表示,把它存儲在系統的資料字典中。例如建立立一個表,就要把關系名、建立者、屬性個數、記錄長度等等資訊記入資料字典中。

3.試述DBMS的語言翻譯層處理一個DML語句的大緻過程。

正确答案: 首先,對DML語句進行詞法分析和文法分析,并把外部關系名、屬性名轉換為内部名。詞法和文法分析通過後生成文法分析樹。 接着,根據資料字典中的内容進行查詢檢查,包括稽核使用者的存取權限、視圖轉換和完整性檢查。 然後,對查詢進行優化。優化分為兩類,一類為代數優化,另一類為存取路徑優化。并把選中的查詢執行方案描述出來。 DBMS語言翻譯層處理一個DML語句的過程稱為一個逐漸束縛的過程。

4.試述DBMS的基本功能?

正确答案: DBMS主要是實作對共享資料有效的組織、管理和存取。DBMS的基本功能有: (1)資料庫定義功能; (2)資料存取功能; (3)資料庫運作管理功能; (4)資料組織、存儲和管理功能; (5)資料庫的建立和維護功能; (6)其他功能

5.試述DBMS 四種程序組織方案,并分析各種方案的特點和優缺點。

正确答案: DBMS 四種程序組織方案是: N方案:N個DB使用者應用程式對應 N個使用者程序,DBMS作為應用程式的子程式被 連入使用者應用程式中。是以這種方案也稱為連入式方案。資料庫系統中共有N個程序。 2N方案:每個使用者程序有一個DBMS程序為之服務,是以N個使用者程序就有N個DBMS 程序,共2N個程序。 N+1方案:N個使用者程序僅有一個DBMS程序為它們服務,是以共N+1個程序,共 N+1個程序。 N+M方案:用M個DBMS程序為N個使用者程序提供服務,一般M < N。 這四個方案各自的特點和優缺點請參見《概論》11.2.1、11.2.2、11.2.3、11.2.4。

6.了解并解釋下列術語的含義: 程序、任務、“輕權”程序、線程、線索。

正确答案: 程序:作業系統中的核心概念,程序是程式的一次執行過程。程序既是資源配置設定的最小單 位也是作業系統排程的基本機關。 任務:在單處理器系統中任務與程序是類似的概念。随着多處理器系統以及并行計算技術 的發展,程序概念被進一步細劃為任務(Task)與線程(Thread)的概念。任務是 申請資源的基本機關,而線程是排程和運作的基本機關。 輕權程序:線程又被稱為“輕權”或“輕量” 程序。 線索:是資料庫系統中的概念,它借鑒了作業系統中“線程”的概念:整個DBMS可以看 作是一個Task,當有一個使用者申請資料庫服務時,Task配置設定多個Thread為之服務, 多個Thread并行工作,共享資源。一般地講,DBMS中的線索是DBMS的一個執 行流。

7.什麼是DBMS的多線索機制?有什麼優點?

正确答案: DBMS借鑒了作業系統中“線程”的概念和技術,在DBMS的實作中采用多線索機制。 一般地講,DBMS中的線索是DBMS的一個執行流,它服務于整個DBMS系統或DBMS中的某個使用者;DBMS伺服器響應客戶請求是通過為每個使用者建立線索(而不是建立程序)來完成的。DBMS的各個線索能在邏輯上并行執行;它們共存于一個伺服器程序中,共享DBMS的所有資源,如資料庫緩沖區和CPU時間;線索是DBMS的排程機關,伺服器程序能按一定的排程算法排程使用者請求。 與程序相比,線索具有以下優點: 1)線索比程序占用較少的系統資源,如記憶體 2)線索排程比較靈活,可控制性強 3)線索切換開銷較小 4)線索間通信簡便

8.什麼是處理DML語句的解釋方法和預編譯方法?試述二者的差別,聯系,比較各自的優缺點。

正确答案: 解釋執行DML語句的方法是:執行語句前,該語句都以原始字元串的形式儲存。當執行到該語句時,才利用解釋程式去完成束縛的全部過程,同時予以執行。 解釋方法的優點是:應變性強,能适應在解釋過程中發生的資料結構、存儲結構等的變化,是以能保持較高的資料獨立性。缺點是:每次執行一次DML語句時都要經過所有解釋步驟,尤其當這樣的語句位于一個循環體内時,就要多次重複解釋一個DML語句,顯然效率比較低。 預編譯方法是:在使用者送出DML語句之後對它進行翻譯處理,儲存産生的可執行代碼。當需要運作時,取出儲存的可執行代碼加以執行。 優點是:效率高。但是,使用這種方法會遇到這樣的問題:在束縛過程中進行優化所依據的條件可能在運作前已不存在,導緻已作出的應用規劃在執行時不再有效。為了解決這類問題,可以采用自動重編譯技術。

9.試述資料存取層主要的子系統及其功能。

正确答案: 資料存取層中包括記錄存取子系統,事務管理子系統,封鎖子系統,恢複子系統,存取路徑維護子系統,排序/合并子產品等等。主要功能有: 1. 記錄存取、事務管理子系統: 記錄存取子系統提供按某個屬性值直接取一個元組和順序取一個元組的存取原語。事務管理子系統提供定義和控制事務的操作。 2. 封鎖子系統,執行并發控制。 3. 恢複子系統:主要是日志登記子系統把事務開始、滾回、送出;對元組的插入、删除、修改;對索引記錄的插入、删除、修改等每一個操作作為一個日志記錄存入日志檔案中, 對不同的故障恢複政策執行恢複。 4. 控制資訊管理子產品: 該子產品利用專門的資料區(記憶體中)登記不同記錄類型以及不同存取路徑的說明資訊(取自資料字典)和控制資訊。 5. 存取路徑維護子系統:對資料執行插入、删除、修改操作的同時要對相應的存取路徑進行維護。 6. 排序/合并子系統: 在語言翻譯處理層中,描述性語言表達的集合級操作被轉換成一系列的對資料存取層所提供的存取原語的調用。為了得到使用者所要求的有序輸出,為了加速關系運算(如自然連接配接)的中間步驟,為了提高效率,常常需要對關系元組重新排序。這一工作由排序/合并子系統來完成

10.在作業系統中也有并發控制問題,為什麼DBMS還要并發控制機制?

正确答案: 作業系統提供的封鎖機制和DBMS的封鎖機制在封鎖對象,封鎖對象的狀态,封鎖的粒度,及封鎖的類型上存在很大的差别,作業系統的封鎖機制不能直接應用在DBMS中,DBMS必須重新設計,來滿足複雜的封鎖需求。

11.DBMS中為什麼要設定系統緩沖區?

正确答案: 設立系統緩沖區的原因: 一是為了把存儲層以上DBMS各系統成分和實在的外存裝置隔離,外存裝置的變更不會影響這些系統,使DBMS具有裝置獨立性。 二是為了提高效率。DBMS利用系統緩沖區滞留資料。當需要讀取資料時系統首先到緩沖區中查找。隻有當緩沖區中不存在該資料時才真正從外存讀入該資料所在的頁面。當要寫回一進制組到資料庫中時,系統并不把它立即寫回外存,僅把該元組所在的緩沖區頁面作一标志,表示可以釋放。隻有當該使用者事務結束或緩沖區已滿需要調入新頁時才按一定的淘汰政策把緩沖區中已有釋放标志的頁面寫回外存。這樣可以減少I/O次數,提高系統效率。

12.資料庫中要存儲和管理的資料内容包括哪些方面?

正确答案: 資料庫中存儲四個方面的資料: 1.資料描述,即資料的外模式、模式、内模式; 2.資料本身; 3.資料之間的聯系; 4.存取路徑。 這四個方面的資料内容都要采用一定的方式組織、存儲起來。

第十二章 資料庫技術新發展

1.試述資料庫技術的發展過程。

正确答案: 答案要點: 1) 資料模型是資料庫系統的核心和基礎。資料庫技術的三個發展階段應該按照資料模型的進展來界定。按照資料模型的進展,資料庫技術可以相應地分為三個發展階段。 2) 資料模型的發展經曆了格式化資料模型(包括層次資料模型和網狀資料模型)、關系資料模型兩個階段,以面向對象資料模型為代表的非傳統資料模型的階段。 3) 同學們可以從每一代資料庫系統的主要特征、代表性系統、主要成就、優點和不足來了解資料庫技術的發展過程。 層次資料庫系統和網狀資料庫系統的資料模型雖然分别為層次模型和網狀模型,但實質上層次模型是網狀模型的特例。它們都是格式化模型。它們從體系結構、資料庫語言到資料存儲管理均具有共同特征,是第一代資料庫系統。 關系資料庫系統支援關系模型。關系模型不僅簡單、清晰,而且有關系代數作為語言模型,有關系資料理論作為理論基礎。是以,關系資料庫系統具有形式基礎好、資料獨立性強、資料庫語言非過程化等特色,标志着資料庫技術發展到了第二代。 第二代資料庫系統的資料模型雖然描述了現實世界資料的結構和一些重要的互相聯系,但是仍不能捕捉和表達資料對象所具有的豐富而重要的語義,是以尚隻能屬于文法模型。 第三代的資料庫系統将以更加豐富的資料模型和更強大的資料管理功能為特征,進而滿足傳統資料庫系統難以支援的新的應用要求。

2.目前資料庫技術發展的主要特征是什麼?

正确答案: 答案要點: 新一代資料庫技術的特點是: (1)面向對象的方法和技術對資料庫發展的影響最為深遠 資料庫研究人員借鑒和吸收了面向對象的方法和技術,提出了面向對象資料模型(簡稱對象模型)。該模型克服了傳統資料模型的局限性,促進了資料庫技術在一個新的技術基礎上繼續發展。 (2)資料庫技術與多學科技術的有機結合 計算機領域中其他新興技術的發展對資料庫技術産生了重大影響。傳統的資料庫技術和其他計算機技術如,網絡通信技術、人工智能技術、面向對象程式設計技術、并行計算技術移動計算技術等的互相結合、互相滲透,使資料庫中新的技術内容層出不窮。 (3)面向應用領域的資料庫技術的研究 在傳統資料庫系統基礎上,結合各個應用領域的特點,研究适合該應用領域的資料庫技術,如資料倉庫、工程資料庫、統計資料庫、科學資料庫、空間資料庫、地理資料庫等,這是目前資料庫技術發展的又一重要特征。

3.試述第一、二代資料庫系統的主要成就。

正确答案: 答案要點: 第一代資料庫系統指層次和網狀資料庫系統,其代表是: (1) 1969年IBM公司研制的層次模型的資料庫管理系統IMS。 (2) 美國資料庫系統語言協商會CODASYL下屬的資料庫任務組DBTG對資料庫方法進行了系統的研究、探讨,于20世紀60年代末70年代初提出了若幹DBTG報告。DBTG 報告确定并建立了資料庫系統的許多概念、方法和技術。DBTG所提議的方法是基于網狀結構的。它是資料庫網狀模型的典型代表。在DBTG方法和思想的指引下資料庫系統的實作技術不斷成熟,開發了許多商品化的資料庫管理系統,它們都是基于網狀模型或層次模型的。 可以說,層次資料庫是資料庫系統的先驅,而網狀資料庫則是資料庫概念、方法、技術的奠基。它們是資料庫技術中研究得最早的兩種資料庫系統。 支援關系資料模型的關系資料庫系統是第二代資料庫系統。 20世紀70年代是關系資料庫理論研究和原型開發的時代,其中以IBM San Jose研究室開發的System R和Berkeley大學研制的INGRES為典型代表。經過大量的高層次的研究和開發取得了一系列的成果,主要是: (1)奠定了關系模型的理論基礎,給出了人們一緻接受的關系模型的規範說明。 (2)研究了關系資料語言,有關系代數、關系演算、SQL語言及QBE等。這些描述性語言一改以往程式設計語言和網狀、層次資料庫系統中資料庫語言的風格,以其易學易懂的優點得到了最終使用者的喜愛,為20世紀80年代資料庫語言标準化打下了基礎。 (3)研制了大量的RDBMS的原型,攻克了系統實作中查詢優化、并發控制、故障恢複等一系列關鍵技術。不僅大大豐富了DBMS實作技術和資料庫理論,更重要的是促進了RDBMS産品的蓬勃發展和廣泛應用。 在計算機領域中把20世紀70年代稱為資料庫時代。20世紀80年代幾乎所有新開發的系統均是關系的。關系資料庫系統從實驗室走向了社會,資料庫技術日益廣泛地應用到企業管理、情報檢索、輔助決策等各個方面,成為實作和優化資訊系統的基礎和基本技術。

4.第三代資料庫系統的主要特點是什麼?

正确答案: 經過多年的研究和讨論,對第三代資料庫系統的基本特征已有了共識。 (1)第三代資料庫系統應支援資料管理、對象管理和知識管理 除提供傳統的資料管理服務外,第三代資料庫系統将支援更加豐富的對象結構和規則,應該集資料管理、對象管理和知識管理為一體。由此可以導出第三代資料庫系統必須支援OO資料模型。 (2)第三代資料庫系統必須保持或繼承第二代資料庫系統的技術 第三代資料庫系統應繼承第二代資料庫系統已有的技術,如第二代資料庫系統的非過程化資料存取方式和資料獨立性。不僅能很好的支援對象管理和規則管理,而且能更好地支援原有的資料管理,支援多數使用者需要的即席查詢等。 (3)第三代資料庫系統必須對其他系統開放 資料庫系統的開放性表現在:支援資料庫語言标準;在網絡上支援标準網絡協定;系統具有良好的可移植性、可連接配接性、可擴充性和可互操作性等。

5.試述資料模型在資料庫系統發展中的作用和地位。

正确答案: 答案要點: (1)資料模型是資料庫系統的核心和基礎。 (2)資料庫的發展集中表現在資料模型的發展。

6.請用執行個體闡述資料庫技術與其他學科的技術相結合的成果。

正确答案: 答案要點: 資料庫技術與其他學科的内容相結合,是新一代資料庫技術的一個顯著特征,湧現出各種新型的資料庫系統(如圖所示)。例如: • 資料庫技術與分布處理技術相結合,出現了分布式資料庫系統; • 資料庫技術與并行處理技術相結合,出現了并行資料庫系統; • 資料庫技術與人工智能技術相結合,出現了知識庫系統和主動資料庫系統; • 資料庫技術與多媒體技術相結合,出現了多媒體資料庫系統; • 資料庫技術與模糊技術相結合,出現了模糊資料庫系統; 等等。

7.請闡述以下資料庫系統的主要概念、研究的主要問題及其發展過程: 分布式資料庫系統、并行資料庫系統、主動資料庫系統、多媒體資料庫系統、模糊資料庫系統。

正确答案: 答案要點: 下面僅僅給出有關概念,它們研究的主要問題及其發展過程請參見《概論》。 分布式資料庫系統:分布式資料庫是由一組資料組成的,這組資料分布在計算機網絡的不同計算機上,網絡中的每個結點具有獨立處理的能力(稱為場地自治),可以執行局部應用。同時,每個結點也能通過網絡通信子系統執行全局應用。(參見《概論》12.2.2與14.1.1) 并行資料庫系統:并行資料庫系統是在并行機上運作的具有并行處理能力的資料庫系統。并行資料庫系統是資料庫技術與并行計算技術相結合的産物。(參見《概論》12.2.2與15.1) 主動資料庫系統:主動資料庫是相對于傳統資料庫的被動性而言的。主動資料庫能根據資料庫的目前狀态,主動适時地做出反應,執行某些操作,向使用者提供有關資訊。主動資料庫是傳統資料庫技術與人工智能技術、面向對象技術相結合的産物。(參見《概論》12.2.2) 多媒體資料庫系統:可實作對格式化和非格式化的多媒體資料的存儲、管理和查詢的資料庫系統。(參見《概論》12.2.2) 模糊資料庫系統:存儲、組織、管理和操作模糊資料的資料庫系統。(參見《概論》12.2.2)

8.試述資料倉庫的産生背景。

正确答案: 答案要點: 1) 資料庫技術的發展和廣泛應用使許多部門、企業積累了大量的原始資料,這些資料是寶貴的資源 2) 對這些資料的分析和利用可以了解企業運作的情況,發現存在的問題,預測未來的趨勢。 3) 資料庫系統作為資料管理的先進技術已經成功用于事務處理。但是它對分析處理的支援一直不能令人滿意,具體表現在: (1)分析處理時性能低。 (2)分析的資料對象分散,而且不一緻,即缺乏對資料的清洗、內建能力。 (3)事務處理系統不具備動态內建的能力。 (4)系統缺乏對曆史資料的有效組織和存儲能力,而分析方法必須以大量的曆史資料為 依托。 (5)在事務處理系統中存儲的是細節資料,不适合進行分析處理,而事務處理系統又不 具備對資料的綜合能力。 總之,DSS對資料在空間和時間的廣度上都有了更高的要求,而事務處理環境難以滿足這些要求。在事務型環境中直接建構分析型應用是一種失敗的嘗試。資料倉庫正是為了建構這種新的分析處理環境而出現的一種資料存儲群組織技術。但是資料倉庫的主要驅動力并不是過去的缺點,而是市場商業經營行為的改變,市場競争要求捕獲和分析事務級的業務資料。(詳細參見《概論》12.2.3)

9.資料倉庫資料的基本特征是什麼?

正确答案: 答案要點:四個基本特征是: • 資料倉庫的資料是面向主題的 • 資料倉庫的資料是內建的 • 資料倉庫的資料是不可更新的 • 資料倉庫的資料是随時間不斷變化的 (參見《概論》12.2.3)

10.什麼是聯機分析處理?什麼是資料挖掘?

正确答案: 答案要點: 聯機分析處理OLAP是以海量資料為基礎的複雜分析技術。 OLAP支援各級管理決策人員從不同的角度、快速靈活地對資料倉庫中的資料進行複雜查詢和多元分析處理,并且能以直覺易懂的形式将查詢和分析結果提供給決策人員,以友善他們及時掌握企業内外的情況,輔助各級上司進行正确決策,提高企業的競争力 資料挖掘是從超大型資料庫(VLDB)或資料倉庫中發現并提取隐藏在内的模式的過程,這些模式是有效的、新穎的、有潛在使用價值的和易于了解的。目的是幫助決策者尋找資料間潛在的關聯,發現經營者忽略的要素,而這些要素對預測趨勢、決策行為也許是十分有用的資訊。 (詳細參見《概論》12.2.3)

11.基于資料庫技術的DSS解決方案是什麼?

正确答案: 基于資料庫技術的DSS的解決方案是: DW+OLAP+DM DSS的可行方案 資料倉庫、聯機分析處理和資料挖掘是作為三種獨立的資訊處理技術出現的。資料倉庫用于資料的存儲群組織,OLAP集中于資料的分析,資料挖掘則緻力于知識的發現。由于這三種技術内在的聯系性和互補性,将它們結合起來是一種新的DSS構架。是DSS有效而可操作的整體解決方案。 (詳細參見《概論》12.2.3)

12.什麼是工程資料庫?

正确答案: 工程資料庫是一種能存儲和管理各種工程設計圖形和工程設計文檔,并能為工程設計提供各種服務的資料庫。 主要應用于CAD/CAM,CIM,CASE等工程應用領域。 工程資料庫中,由于傳統的資料模型難以滿足工程應用的要求,需要運用新的模型技術,如擴充的關系模型、語義模型、面向對象的資料模型。 工程資料庫管理系統的功能與傳統資料庫管理系統有很大不同,詳細參見《概論》12.2.3。

13.什麼是統計資料庫?

正确答案: 統計資料庫是一種用來對統計資料進行存儲、統計、分析的資料庫系統。 統計資料具有層次型特點,但并不完全是層次型結構。統計資料也有關系型特點,但關系型也不完全滿足需要。統計資料具有一些特殊的性質,例如: (1) 分類屬性和統計屬性 (2) 多元性 (3) 分類屬性的層次結構 (4) 微資料和宏資料之分 統計資料庫中常用的操作有:抽樣、鄰近搜尋、估計與插值、轉置、聚集及複雜的分析操作。這些操作不同于關系資料庫中傳統的查詢、增加、删除、修改操作。人們希望能從DMBS一級來支援以上的資料特性和操作。是以,研究和發展了統計資料庫技術。 統計資料庫在安全性方面有特殊的要求,要防止某些使用者在統計資料庫中利用對統計資料(如綜合資料)的合法查詢推導出該使用者無權了解的某一個體的具體資料。

14.什麼是空間資料庫?

正确答案: 空間資料庫系統是描述、存儲和處理空間資料及其屬性資料的資料庫系統。 空間資料是用于表示空間物體的位置、形狀、大小和分布特征等諸方面資訊的資料。 空間資料的特點是不僅包括物體本身的空間位置及狀态資訊,還包括表示物體的空間關系(即拓撲關系)的資訊。 空間資料庫是随着地理資訊系統(GIS)的開發和應用而發展起來的資料庫新技術。目前,空間資料庫系統不是獨立存在的系統,它是和應用緊密結合,大多數作為地理資訊系統的基礎和核心的形式出現。 空間資料庫的研究涉及計算機科學、地理學、地圖制圖學、攝影測量與遙感、圖像處理等多個學科。空間資料庫技術研究的主要内容包括: (1)空間資料模型 (2)空間資料查詢語言 (3)空間資料庫管理系統 等等。

第十三章 面向對象資料庫系統

  1. 舉例說明超類和子類的概念。

正确答案: 在第4題例子中: 勞工和幹部是人的子類,在職勞工、退休勞工、下崗勞工是勞工的子類, 行政幹部、技術幹部是幹部的子類; 人是勞工和幹部的直接超類。人也是在職勞工、退休勞工、下崗勞工、行政幹部、技術幹部的間接超類。

  1. 面向對象程式設計的基本思想是什麼? 它的主要特點是什麼?

正确答案: 答案要點: 面向對象程式設計的基本思想是封裝和可擴充性。 封裝的特點: 面向對象程式設計就是把資料結構和資料結構上的操作算法封裝在一個對象之中。 對象是以對象名封裝的資料結構和可施加在這些資料上的私有操作。對象的資料結構 描述了對象的狀态,對象的操作是對象的行為。 面向對象程式設計中,操作名列在封裝對象的界面上,當其他對象要啟動它的某個操作時,以操作名發一條消息,該對象接受消息,操作動作起來,完成對私有資料的加工。當一個面向對象的程式運作完畢時,各對象也就達到了各自的終态。輸入、輸出也由對象自己完成。 這種全封裝的計算實體給軟體帶來了子產品性、安全性等顯著優點。因為它基本沒有資料耦合,對象間沒有因操作而産生的邊界效應,出了錯可以很快找到原因,是以易于維護和修改。 可擴充性的特點: 面向對象程式設計的可擴充性展現在繼承性和行為擴充兩個方面。 因為對象具有一種層次關系。每個對象可以有子對象。子對象可以繼承父對象(及其祖先對象)的資料結構和操作,繼承的部分就可以重用。 另一方面子對象還可以增加新的資料結構和新的操作。新增加的部分就是子對象對父對象發展的部分。 面向對象程式設計的行為擴充是指可以友善地增加程式代碼來擴充對象的行為而不會影響該對象上的其他操作。

  1. 定義并解釋OO模型中以下核心概念: 對象與對象辨別、封裝、類、類層次。

正确答案: 答案要點:  對象與對象辨別OID 現實世界的任一實體被模型化為一個對象,每個對象有一個唯一的辨別,稱為對象辨別。  封裝 每一個對象是其狀态與行為的封裝,其中狀态是該對象一系列屬性值的集合,而行為是在對象狀态上操作的集合,操作也稱為方法。  類 共享同樣屬性和方法集的所有對象構成了一個對象類簡稱類,一個對象是某一類的一個執行個體。類的屬性的定義域可以是任何類,即可以是基本類也可以是包含屬性和方法的一般類,還也可是這個類自身。  類層次 在一個面向對象資料庫模式中,可以定義一個類(如C1)的子類(如C2),類C1稱為類C2的超類(或父類)。子類(如C2)還可以再定義子類(如C3)。這樣,面向對象資料庫模式的一組類形成一個有限的層次結構,稱為類層次。

  1. OO模型中對象辨別與關系模型中的“碼”有什麼差別?

正确答案: 答案要點: 對象辨別具有永久持久性。一個對象一經産生系統就給它賦于一個在全系統中唯一的對象辨別符,直到它被删除。對象辨別是由系統統一配置設定的,使用者不能對對象辨別符進行修改。對象辨別是穩定的,獨立于值的,它不會因為對象中某個值的修改而改變。 關系模型中的“碼”是值辨別,不具有永久持久性,隻具有程式内持久性。碼是由使用者 建立的,用來區分關系的不同元組。

  1. 什麼是單繼承?什麼是多重繼承?繼承性有什麼優點?

正确答案: 答案要點: 若一個子類隻能繼承一個超類的特性(包括屬性、方法和消息),這種繼承稱為單繼承;若一個子類能繼承多個超類的特性,這種繼承稱為多重繼承。 繼承性優點:  它是模組化的有力工具,提供了對現實世界簡明而精确的描述。  它提供了資訊重用機制。由于子類可以繼承超類的特性,這就可以避免許多重複定義。 (詳細參見《概論》13.2.4)

  1. 什麼是操作的重載?在OODB中為什麼要滞後聯編?

正确答案: 答案要點: 在OO模型中對于同一個操作,可以按照類的不同,重新定義操作的實作,這稱為操作的重載。這樣,同一個操作名就與不同的實作方法,與不同的參數相聯系。 為了提供這個功能,OODBMS不能在編譯時就把操作名聯編到程式上,必須在運作時根據實際請求中的對象類型和操作來選擇相應的程式,把操作名與它聯編上(即把操作名轉換成該程式的位址),這個推遲的轉換稱為滞後聯編。 (詳細參見《概論》13.2.5)

  1. 什麼是OODB模式演進?為什麼面向對象資料庫模式的修改要比關系模式的修改複雜得多?

正确答案: 答案要點: 面向對象資料庫模式是類的集合。模式為适應需求的變化會随着時間而變化,這稱為模式演進。模式演進包括建立新的類、删除舊的類、修改類的屬性和操作等。 面向對象資料庫模式的修改要比關系模式的修改複雜的原因是:  模式改變頻繁 使用OODB系統的應用通常需要頻繁地改變OODB資料庫模式。例如OODB經常運用于工程設計環境中,設計環境特征之一就是不斷變化。  模式修改複雜 OO模型具有很強的模組化能力和豐富的語義,包括類本身的語義、類屬性之間和類之間豐富的語義聯系,這使得模式修改操作的類型複雜多樣。  OODB中模式演進往往是動态的,使得實作技術更加複雜。 (詳細參見《概論》13.4)

  1. 什麼是對象-關系資料庫?它的主要特點是什麼?常用的實作方法有哪些?

正确答案: 答案要點: 對象-關系資料庫系統是将關系資料庫系統與面向對象資料庫系統兩方面的特征相結合,不僅支援核心的面向對象資料模型,而且支援傳統資料庫系統所具有的特征。 主要特點有: 1) 具有原來關系資料庫的各種特點; 2) 擴充資料類型; 3) 支援複雜對象; 4) 支援繼承的概念; 5) 提供通用的規則系統; 實作對象-關系資料庫系統的方法主要有以下五類。 1) 從頭開發對象-關系DBMS。 2) 在現有的關系型DBMS基礎上進行擴充。擴充方法有兩種:  對關系型DBMS核心進行擴充,逐漸增加對象特性。  不修改現有的關系型DBMS核心,而是在現有關系型DBMS外面加一個包裝層。 3) 将現有的關系型DBMS與其他廠商的對象-關系型DBMS連接配接在一起,使現有的關系型DBMS直接而迅速地具有了對象-關系特征。連接配接方法主要有兩種:  關系型DBMS使用網關技術與其他廠商的對象-關系型DBMS連接配接。  将對象-關系型引擎與關系型存儲管理器結合起來,即以關系型DBMS作為系統的最底層,對象-關系型系統作為上層。 4) 将現有的OO型DBMS與其他廠商的對象-關系型DBMS連接配接在一起,使現有的面向對象型DBMS直接而迅速地具有了對象-關系特征。 5) 擴充現有的面向對象的DBMS,使之成為對象-關系型DBMS。

第十四章 分布式資料庫系統

  1. 什麼樣的資料庫系統是分布式資料庫系統?圖14.1的系統配置在什麼情況下隻能算分散的資料庫系統?在什麼條件下才是分布式資料庫系統?

正确答案: 答案要點: 分布式資料庫是由一組資料組成的,這組資料分布在計算機網絡的不同計算機上,網絡中的每個結點具有獨立處理的能力(稱為場地自治),可以執行局部應用。同時,每個結點也能通過網絡通信子系統執行全局應用。 分布式資料庫定義的要點:分布性、邏輯整體性、自治性和協作性。 *解析: (1)分布性,資料庫中的資料不是存儲在同一場地上,這就可以和集中式資料庫相差別。 (2)邏輯整體性,這些資料邏輯上是互相聯系的,是一個整體,邏輯上如同集中資料庫。 (3)自治性,分布資料庫中每個結點上的DBMS具有獨立處理的能力(如果沒有連入網絡,也是一個完整的DBMS)。 (4)協作性,分布資料庫中各個結點上的DBMS能互相協調,執行全局應用。 答案要點: 《概論》圖14.1中,如果使用者既可以通過客戶機對本地伺服器中的資料庫執行局部應用,也可以對兩個或兩個以上結點中的資料庫執行全局應用,這樣的系統是分布式資料庫系統。不支援全局應用的系統不能稱為分布式資料庫系統,即隻是分散的資料庫系統。 (詳細說明參見《概論》14.1.1)

  1. 試述研制分布式資料庫系統的目的和動機。

正确答案: 答案要點:研制分布式資料庫系統的目的和動機,主要包括技術群組織兩方面。  适應部門分布的組織結構,降低費用;  提高系統的可靠性和可用性;  充分利用資料庫資源,提高資料庫的使用率和共享程度;  逐漸地擴充系統處理能力和系統規模。 (詳細說明參見《概論》14.1.3)。

  1. 試述分布式資料庫系統的模式結構。

正确答案: 答案要點: 分布式資料庫系統的模式結構可以分為兩大部分:集中式資料庫系統的模式結構和分布式資料庫系統增加的模式級别,其中包括: (1)全局外模式,它們是全局應用的使用者視圖,是全局概念模式的子集。 (2)全局概念模式,它定義分布式資料庫中資料的整體邏輯結構,使得資料如同沒有分布一樣。 (3)分片模式,定義片段以及全局關系到片段的映象。 (4)分布模式,定義片段的存放結點。分布模式的映象類型确定了分布式資料庫是備援的還是非備援的。 (詳細可參考《概論》圖14.3分布式資料庫系統的模式結構)。

  1. 什麼是資料分片?有幾種分片方式?資料分片的目的是什麼?有什麼優點?

正确答案: 答案要點: 資料分片就是将資料表按照一定條件劃分成若幹子集,每個子集稱為一個片段。 分片的方式有多種,水準分片和垂直分片是兩種基本的分片方式,混合分片和導出分片是較複雜的分片方式。 水準分片是指按一定的條件将關系表按行(水準方向)分為若幹不相交的子集,每個子集為關系的一個片段。 垂直分片是指将關系按列(垂直方向)分為若幹子集。垂直分片的各個片段都要包含關系的碼。這樣才能從各個片段重構原來的關系。 導出分片是指導出水準分片,即水準分片的條件不是本身屬性的條件而是其他關系的屬性的條件。 混合分片是指按上述三種分片方式得到的片段繼續按另一種方式分片。 資料分片的優點是:資料不是按照關系而是按片段來存放,有利于更好地根據使用者需求來組織資料的分布,也有利于控制資料的備援度。

5.試述分布透明性的内容。

正确答案: 答案要點: 分布透明性包括分片透明性、位置透明性和局部資料模型透明性。 分片透明性指使用者或應用程式隻對全局關系進行操作而不必考慮關系的分片。當分片模式改變了,由于全局模式到分片模式的映象,全局模式不變,應用程式不必改寫。 位置透明性指使用者或應用程式不必了解片段的存儲場地,當存儲場地改變了,由于分片模式到分布模式的映象,應用程式不必改變。同時,若片段的重複副本數目改變了,資料的備援度改變了,使用者也不必關心如何保持各副本的一緻性,這就是重複副本的透明性。 局部資料模型透明性指使用者或使用者程式不必了解局部場地上使用的是哪種資料模型。

6.什麼是同構型D-DBMS? 什麼是異構型D-DBMS?

正确答案: 答案要點: D-DBMS的同構和異構可以有三級:硬體級、作業系統級和局部DBMS級。其中最主要的是局部DBMS這一級,因為硬體和作業系統的不同将由通信軟體處理和管理。是以,同構型D-DBMS定義為:在分布資料庫系統中若每個結點的局部資料庫具有相同的DBMS則成為同構型D-DBMS;若各結點的局部資料庫具有不同的DBMS,則成為異構型的D-DBMS。 (詳細說明參見《概論》14.2.4)

7.設在《概論》14.2.3節的分布式資料庫系統例子中,還有全局關系SC(SNO,CNO,G),它具有兩個導出分片SC_A,SC_B,分别存儲理學院和文學院學生的選課記錄。SC_A存放在場地4,SC_B存放在場地今有一個稍複雜的查詢,從終端輸入一個課程号,查找選修該課程的學生學号和姓名,并把它們顯示在螢幕上。請寫出具有不同層次分布透明性(類比例子中的三種情況)的應用程式。不必給出細節,隻需寫出算法思想。

正确答案: 情況1 若系統具有分片透明性,則 Scanf(″% s″,Scnumber); / * 從終端讀入課程号到變量Scnumber中 / EXEC SQL SELECT Sno,Sname INTO :SNO, :NAME / * SNO,NAME為程式變量 * / FROM SC,Student / * 在全局關系SC,Student中查找 * / WHERE SC.Cno =:Scnumber AND SC.Sno=Student.Sno; Printf(″% s,% s″,SNO,NAME); / * 把SNO,NAME輸出在螢幕上 * / 情況2 若系統具有位置透明性,但不具有分片透明性,則 Scanf(″% s″,Scnumber); EXEC SQL SELECT Sno,Sname INTO :SNO, :NAME FROM SC_A,S_A WHERE SC_A.Cno =:Scnumber AND SC_A.Sno=S_A.Sno; If(! FOUND){ EXEC SQL SELECT Sno,Sname INTO :SNO, :NAME FROM SC_B,S_B WHERE SC_B.Cno =:Scnumber AND SC_B.Sno=S_B.Sno; } Printf(″% s,% s″,SNO,NAME); 情況3 若系統隻具有局部資料模型透明性,不具有位置透明性(當然也就不具有分片透明性),則 Scanf(″% s″,Scnumber); EXEC SQL SELECT Sno,Sname INTO :SNO,:NAME FROM SC_A AT Site4, S_A AT Site1 / * 先在場地4的片段SC_A和場地1的片段S_A中查找 / WHERE SC_A.Cno =:Scnumber AND SC_A.Sno=S_A.Sno; If(! FOUND){ EXEC SQL SELECT Sno,Sname INTO :SNO,:NAME FROM SC_B AT Site5,S_B AT Site2 / * 再在場地5的片段SC_B和場地2的片段S_B中查找*/ /也可以在場地5的片段SC_B和場地3的片段S_B中查找 / WHERE SC_B.Cno =:Scnumber AND SC_B.Sno=S_B.Sno; } Printf(″% s,% s″,SNO,NAME);

8.對14.3.1節的例子中介紹的六種政策改用下列估算值後分别計算通信時間: 紅色零件數=1000, 北京供應商的裝運單=10000。

正确答案: 政策1 把關系P傳送到場地A,在A地進行查詢處理,是以, T[1]=1+105×100/104 =103秒(16.7分) 政策2 把關系S,SP傳到場地B,在B地執行查詢處理,是以 T[2]=2+(104+106)×100/104≈10 100秒(2.8小時) 政策3 在場地A連接配接關系S和SP,選出城市為北京的元組(104個)然後對這些元組中的每個元組的Pno,詢問場地B看此零件 是否紅色。是以共問答104次,由于不是傳送資料,隻是消息的問答,是以 T[3]=2×104s (5.6小時) 政策4 在場地B選出紅色零件的元組(103個),然後對每一個元組逐一檢查A站,看北京供應商的裝運單中是否有這個零件裝運單(若有則選出SNO)每做這樣一次檢查包括2次消息,共問一答103次,是以 T[4]=2×103s (33.3分) 政策5 在場地A選出北京的供應商的裝運單把結果送到場地B,在場地B完成最後處理,是以 T[5]=1+(104×100)/104≈101秒 (1.68分) 政策6 在場地B的關系 P 中選出紅色的元組(1000個),把結果送到場地A完成最終處理。是以 T[6]=1+(1000×100)/104=11秒

9.試述下列概念:兩段送出協定(2PC);分布事務的原子性;全局死鎖。

正确答案: 答案要點: 2PC:2PC把一個分布事務的事務管理分為協調者和參與者。 2PC的第一階段:協調者向所有參與者發出“準備送出”資訊。如果某個參與者準備送出,就回答“就緒”資訊,否則回答“撤銷”資訊。參與者在回答前,應把有關資訊寫入自己的日志中。協調者在發出準備送出資訊前也要把有關資訊寫入自己的日志中。如果在規定時間内協調者收到了所有參與者“就緒”的資訊,則将作出送出的決定,否則将作出撤銷的決定。 2PC的第二階段:協調者将有關決定的資訊先寫入日志,然後把這個決定發送給的所有的參與者。所有參與者收到指令之後首先往日志中寫入“收到送出(或撤銷)”決定的資訊,并向協調者發送“應答(ACK)”消息,最後執行有關決定。協調者收到所有參與者的應答消息後,一個事務的執行到此結束,有關日志資訊可以脫機儲存。 分布事務的原子性:分布事務的原子性就應該是:組成一個全局事務的所有子事務要麼一緻地全部送出,要麼一緻地全部滾回。 全局死鎖:全局事務執行時發生的涉及兩個以上場地上的死鎖。

10.在分布式資料庫系統中,對多副本的封鎖有幾種解決方法?

正确答案: 處理多副本的封鎖可采取如下幾種方法: (1)對寫操作,要申請對所有副本的X鎖。對于讀操作,隻要申請對某個副 本的S鎖。 (2)無論是寫操作還是讀操作都要對多數(大于半數)副本申請X鎖或S鎖。 (3)規定某個場地上的副本為主副本,所有的讀寫操作均申請對主副本的封鎖。

  1. 分布式資料庫系統有什麼特點?

正确答案: 答案要點: 分布式資料庫系統是在集中式資料庫系統技術的基礎上發展起來的,但不是簡單地把集中式資料庫分散地實作,它是具有自己的性質和特征的系統。  資料獨立性:除了資料的邏輯獨立性與實體獨立性外,還具有資料分布獨立性亦稱分布透明性。  集中與自治相結合的控制結構:各局部的DBMS可以獨立地管理局部資料庫,具有自治的功能。同時又有集中控制機制,協調各局部DBMS的工作,執行全局應用。  資料可以适當備援以提高系統的可靠性、可用性和性能。  全局的一緻性、可串行性和可恢複性。分布式資料庫系統中各局部資料庫應滿足集中式資料庫的一緻性、并發事務的可串行性和可恢複性。除此以外還應保證資料庫的全局一緻性、全局并發事務的可串行性和系統的全局可恢複性。 (詳細說明參見《概論》14.1.2)。

第十五章 并行資料庫系統

  1. 并行資料庫系統中有哪幾種常用的資料劃分方法?

正确答案: 答案要點: 劃分資料時可以依據一個屬性的值,也可以同時依據多個屬性的值,前者稱為一維資料劃分,後者則稱為多元資料劃分。 一維資料劃分方法相對比較簡單,常用的資料劃分方法有: •輪轉法 •Hash法 •值域劃分法 此外,還有使用者定義的劃分法、模式劃分法、Hybrid_Range劃分法等。 具體說明可參考《概論》15.5.1。

  1. 什麼是并行資料庫系統的伸縮比和加速比?

正确答案: 答案要點: 線性伸縮比是指當任務擴大N倍,系統處理和存儲能力也擴大N倍時系統性能不變。 線性伸縮比= (小任務在小系統上的運作時間)/(大(N倍)任務在大任務上的運作時間)=1 線性加速比是指當任務不變而系統處理和存儲能力擴大N倍時,系統性能也提高N倍。 線性加速比= (小系統上執行一個任務的時間)/(大(N倍)系統上執行同一任務的時間)=N

  1. 什麼是并行資料庫系統?

正确答案: 答案要點: 并行資料庫系統是在并行機上運作的具有并行處理能力的資料庫系統。并行資料庫系統是資料庫技術與并行計算技術相結合的産物。

  1. 試述并行資料庫系統的研制目标。

正确答案: 答案要點: 并行資料庫系統該實作如下目标:  高性能 并行資料庫系統通過将資料庫管理技術與并行處理技術有機結合,發揮多處理機結構 的優勢,提供比相應的大型機系統更高的性能價格比和可用性。  高可用性 并行資料庫系統可通過資料複制來增強資料庫的可用性。  可擴充性 系統通過增加處理和存儲能力來平滑地擴充性能,應具有線性伸縮比和線性加速比。 具體說明可參考《概論》15.2。

  1. 并行資料庫系統有哪幾種體系結構?試比較它們的特點。

正确答案: 答案要點:從硬體結構來看,根據處理機與磁盤、記憶體的互相關系可以将并行計算機分為三種基本的體系結構: •共享記憶體結構(SM); •共享磁盤結構(SD); •無共享資源結構(SN)。 此外還有混合結構,即整個系統是Shared_Nothing結構而每個結點是Shared_Memory結構。這種結構綜合了SM與SN的優點。 (1) SM并行結構 SM并行結構由多個處理機、一個共享記憶體(主存儲器)和多個磁盤存儲器構成。多處理機和共享記憶體由高速通訊網絡連接配接,每個處理機可直接存取一個或多個磁盤,即所有記憶體與磁盤為所有處理機共享。 (2) SD并行結構 SD并行結構由多個具有獨立記憶體的處理機和多個磁盤構成。每個處理機都可以讀寫任何磁盤。 (3) SN并行結構 SN并行結構由多個處理節點構成。每個處理節點具有自己獨立的處理機、記憶體和磁盤存儲器。多個處理機結點由高速通信網絡連接配接。 并行資料庫系統體系結構的詳細說明可參考《概論》15.3.1、15.3.2、15.3.3。

  1. 闡述并行資料庫系統中并行粒度的概念。

正确答案: 答案要點: 并行粒度是用來刻畫查詢執行的并行程度,有四種并行粒度: 不同使用者事務間的并行性、同一事務内不同查詢間的并行性、同一查詢内不同操作間的并行性和同一操作内的并行性。 具體說明可參考《概論》15.4.1。

  1. 舉例說明水準并行和垂直并行的概念。

正确答案: 水準并行化指:互相獨立的多個操作或者一個操作内互相獨立的多個子操作分别由不同的處理機并行執行的形式。 如果兩個操作OP1和OP2之間沒有資料的依賴關系,這兩個操作可以獨立地并行執行。例如圖(a)中對不同表的掃描操作Scan S和Scan P,由不同的處理機并行執行就是水準并行化的執行個體。 如果把操作的輸入資料分解為多個子集,該操作就可以分成多個獨立的子操作,每個子操作隻處理一部分資料,這種針對單個操作的并行被稱為操作内并行。例如圖(c)中的Scan S和Sort S都被分解成三個子操作,每個子操作隻對部分資料進行掃描和排序。 如果一個操作的輸出流是另一個操作的輸入流,這兩個操作之間就存在着流水線并行性,操作間流水線并行又被直覺地稱為垂直并行。垂直并行化也就是指存在流水線方式依賴關系的操作分别由不同處理機并行執行的形式。例如圖(b)中的四個操作都可以采用流水線方式并行執行。 詳細說明可參考《概論》15.4.2。

  1. 并行資料庫系統中并行查詢優化的必要性和困難何在?

正确答案: 答案要點: 查詢優化始終是資料庫管理系統的重要組成部分,查詢優化的目标在于提高執行效率。由于并行資料庫環境中存在多個處理機,并行查詢優化應盡可能地使每個操作并行處理,充分利用系統資源提高并行度來達到提高系統性能的目的。 并行查詢優化面臨的兩大困難在于: (1) 執行計劃的搜尋空間十分龐大 (2) 執行時的某些系統參數比如CPU數目、記憶體大小在優化時是未知的。 具體說明可參考《概論》15.4.4。

  1. 試述資料劃分在并行查詢進行中的重要性。
  1. 試述并行資料庫系統與分布式資料庫系統的差別。