九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

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

《數(shù)據(jù)庫系統(tǒng)概論》課后習題及參考答案.doc

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

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

《數(shù)據(jù)庫系統(tǒng)概論》課后習題及參考答案.doc

課后作業(yè)習題數(shù)據(jù)庫系統(tǒng)概論課程部分習題及參考答案 第一章緒論(教材 41頁) 試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)的概念。 數(shù)據(jù): 描述事物的符號記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有文字、圖形、圖象、聲音、正文等等。數(shù)據(jù)與其語義是不可分的。 數(shù)據(jù)庫: 數(shù)據(jù)庫是長期儲存在計算機內、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享。 數(shù)據(jù)庫系統(tǒng): 數(shù)據(jù)庫系統(tǒng)( DBS)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構成。數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應用系統(tǒng)、數(shù)據(jù)庫管理員構成。 數(shù)據(jù)庫管理系統(tǒng): 數(shù)據(jù)庫管理系統(tǒng) (DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。用于科學地組織和存儲數(shù)據(jù)、高效地獲取和維護數(shù)據(jù)。DBMS主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫的運行管理功能、數(shù)據(jù)庫的建立和維護功能。 使用數(shù)據(jù)庫系統(tǒng)有什么好處? 使用數(shù)據(jù)庫系統(tǒng)的好處是由數(shù)據(jù)庫管理系統(tǒng)的特點或優(yōu)點決定的。 使用數(shù)據(jù)庫系統(tǒng)的好處很多,例如可以大大提高應用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫系統(tǒng)管理人員維護的負擔等。 為什么有這些好處,可以結合第 5題來回答。 使用數(shù)據(jù)庫系統(tǒng)可以大大提高應用開發(fā)的效率。因為在數(shù)據(jù)庫系統(tǒng)中應用程序不必考慮數(shù)據(jù)的定義、存儲和數(shù)據(jù)存取的具體路徑,這些工作都由 DBMS來完成。 此外,當應用邏輯改變,數(shù)據(jù)的邏輯結構需要改變時,由于數(shù)據(jù)庫系統(tǒng)提供了數(shù)據(jù)與程序之間的獨立性。數(shù)據(jù)邏輯結構的改變是 DBA的責任,開發(fā)人員不必修改應用程序,或者只需要修改很少的應用程序。從而既簡化了應用程序的編制,又大大減少了應用程序的維護和修改。 使用數(shù)據(jù)庫系統(tǒng)可以減輕數(shù)據(jù)庫系統(tǒng)管理人員維護系統(tǒng)的負擔。因為 DBMS在數(shù)據(jù)庫建立、運用和維護時對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,包括數(shù)據(jù)的完整性、安全性,多用戶并發(fā)控制,故障恢復等等都由DBMS執(zhí)行。 總之,使用數(shù)據(jù)庫系統(tǒng)的優(yōu)點是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,可以提高數(shù)據(jù)的利用率和一致性,又有利于應用程序的開發(fā)和維護。 試述文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別和聯(lián)系。 文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別: 文件系統(tǒng)面向某一應用程序,共享性差、冗余度大,獨立性差,紀錄內有結構、整體無結構,應用程序自己控制。 數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實世界,共享性高、冗余度小,具有高度的物理獨立性和一定的邏輯獨立性,整體結構化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復能力。 文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的聯(lián)系是: 文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)都是計算機系統(tǒng)中管理數(shù)據(jù)的軟件。 試述數(shù)據(jù)庫系統(tǒng)的特點。 數(shù)據(jù)庫系統(tǒng)的主要特點有: 一、數(shù)據(jù)結構化 數(shù)據(jù)庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結構化,這是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質區(qū)別。 二、數(shù)據(jù)的共享性高,冗余度低,易擴充 數(shù)據(jù)庫的數(shù)據(jù)不再面向某個應用而是面向整個系統(tǒng),因此可以被多個用戶、多個應用、用多種不同的語言共享使用。由于數(shù)據(jù)面向整個系統(tǒng),是有結構的數(shù)據(jù),不僅可以被多個應用共享使用,而且容易增加新的應用,這就使得數(shù)據(jù)庫系統(tǒng)彈性大,易于擴充。 三、數(shù)據(jù)獨立性高 數(shù)據(jù)獨立性包括數(shù)據(jù)的物理獨立性和數(shù)據(jù)的邏輯獨立性。 數(shù)據(jù)庫管理系統(tǒng)的模式結構和二級映象功能保證了數(shù)據(jù)庫中的數(shù)據(jù)具有很高的物理獨立性和邏輯獨立性。 四、數(shù)據(jù)由 DBMS統(tǒng)一管理和控制 數(shù)據(jù)庫的共享是并發(fā)的共享,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時存取數(shù)據(jù)庫中同一個數(shù)據(jù)。為此, DBMS必須提供統(tǒng)一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性保護,數(shù)據(jù)的完整性檢查,并發(fā)控制和數(shù)據(jù)庫恢復。 數(shù)據(jù)庫管理系統(tǒng)的主要功能有哪些? 數(shù)據(jù)庫定義功能; 數(shù)據(jù)存取功能; 數(shù)據(jù)庫運行管理; 數(shù)據(jù)庫的建立和維護功能。 試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個要素。 數(shù)據(jù)模型是數(shù)據(jù)庫中用來對現(xiàn)實世界進行抽象的工具,是數(shù)據(jù)庫中用于提供信息表示和操作手段的形式構架。 一般地講,數(shù)據(jù)模型是嚴格定義的概念的集合。這些概念精確地描述系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件。因此數(shù)據(jù)模型通常由數(shù)據(jù)結構、數(shù)據(jù)操作和完整性約束三部分組成。 數(shù)據(jù)結構:是所研究的對象類型的集合,是對系統(tǒng)的靜態(tài)特性的描述。 數(shù)據(jù)操作:是指對數(shù)據(jù)庫中各種對象(型)的實例(值)允許進行的操作的集合,包括操作及有關的操作規(guī)則,是對系統(tǒng)動態(tài)特性的描述。 數(shù)據(jù)的約束條件:是完整性規(guī)則的集合,完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。 試述概念模型的作用。 概念模型實際上是現(xiàn)實世界到機器世界的一個中間層次。概念模型用于信息世界的建模,是現(xiàn)實世界到信息世界的第一層抽象,是數(shù)據(jù)庫設計人員進行數(shù)據(jù)庫設計的有力工具,也是數(shù)據(jù)庫設計人員和用戶之間進行交流的語言。 定義并解釋概念模型中以下術語: 實體,實體型,實體集,屬性,碼,實體聯(lián)系圖( E-R圖) 實體:客觀存在并可以相互區(qū)分的事物叫實體。 實體型:具有相同屬性的實體具有相同的特征和性質,用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型。 實體集:同型實體的集合稱為實體集。 屬性:實體所具有的某一特性,一個實體可由若干個屬性來刻畫。 碼:唯一標識實體的屬性集稱為碼。 實體聯(lián)系圖: E-R圖提供了表示實體型、屬性和聯(lián)系的方法: 實體型:用矩形表示,矩形框內寫明實體名。 屬性:用橢圓形表示,并用無向邊將其與相應的實體連接起來。 聯(lián)系:用菱形表示,菱形框內寫明聯(lián)系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型( 1 : 1,1 : n或m : n)。 第二章 關系數(shù)據(jù)庫 (教材81頁) 1.試述關系模型的三個組成部分。 答:關系模型由關系數(shù)據(jù)結構、關系操作集合和關系完整性約束三部分組成。 2.試述關系數(shù)據(jù)語言的特點和分類。 答:關系數(shù)據(jù)語言可以分為三類: 關系代數(shù)語言 例如 ISBL 關系演算語言 (元組關系演算語言 例如 APLHA,QUEL 和 域關系演算語言 例如QBE) 具有關系代數(shù)和關系演算雙重特點的語言 例如 SQL 這些關系數(shù)據(jù)語言的共同特點是,具有完備的表達能力,是非過程化的集合操作語言,功能強,能夠嵌入高級語言中使用。 3. 定義并理解下列術語,說明它們之間的聯(lián)系與區(qū)別: ( 1)域,關系,元組,屬性 答: 域:域是一組具有相同數(shù)據(jù)類型的值的集合。 關系:在域 D1,D2,Dn上笛卡爾積D1D2Dn的子集稱為關系,表示為 R(D1,D2,Dn) 元組:關系中的每個元素是關系中的元組。 屬性:關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。由于域可以相同,為了加以區(qū)分,必須對每列起一個名字,稱為屬性( Attribute)。 ( 2)主碼,候選碼,外部碼 答: 候選碼:若關系中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為候選碼( Candidate key)。 主碼:若一個關系有多個候選碼,則選定其中一個為主碼( Primary key)。 外部碼:設 F是基本關系R的一個或一組屬性,但不是關系R的碼,如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外部碼(Foreign key),簡稱外碼。 基本關系 R稱為參照關系(Referencing relation),基本關系S稱為被參照關系(Referenced relation)或目標關系(Target relation)。關系R和S可以是相同的關系。 (3)關系模式,關系,關系數(shù)據(jù)庫 關系模式:關系的描述稱為關系模式( Relation Schema)。它可以形式化地表示為: R(U,D,dom,F(xiàn)) 其中 R為關系名,U為組成該關系的屬性名集合,D為屬性組U中屬性所來自的域,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關系集合。 關系:在域 D1,D2,Dn上笛卡爾積D1D2Dn的子集稱為關系,表示為 R(D1,D2,Dn) 關系是關系模式在某一時刻的狀態(tài)或內容。關系模式是靜態(tài)的、穩(wěn)定的,而關系是動態(tài)的、隨時間不斷變化的,因為關系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。 關系數(shù)據(jù)庫:關系數(shù)據(jù)庫也有型和值之分。關系數(shù)據(jù)庫的型也稱為關系數(shù)據(jù)庫模式,是對關系數(shù)據(jù)庫的描述,它包括若干域的定義以及在這些域上定義的若干關系模式。關系數(shù)據(jù)庫的值是這些關系模式在某一時刻對應的關系的集合,通常就稱為關系數(shù)據(jù)庫。 4.試述關系模型的完整性規(guī)則。在參照完整性中,為什么外部碼屬性的值也可以為空?什么情況下才可以為空? 答: 關系模型的完整性規(guī)則是對關系的某種約束條件。關系模型中可以有三類完整性約束:實體完整性、參照完整性和用戶定義的完整性。參見教材 在參照完整性中,外部碼屬性的值可以為空,它表示該屬性的值尚未確定。但前提條件是該外部碼屬性不是其所在關系的主屬性。 例如,在下面的 “學生”表中,“專業(yè)號”是一個外部碼,不是學生表的主屬性,可以為空。其語義是,該學生的專業(yè)尚未確定。 學生(學號,姓名,性別,專業(yè)號,年齡) 專業(yè)(專業(yè)號,專業(yè)名) 而在下面的 “選修”表中的“課程號”雖然也是一個外部碼屬性,但它又是“選修”表的主屬性,所以不能為空。因為關系模型必須滿足實體完整性。 課程(課程號,課程名,學分) 選修(學號,課程號,成績) 5等值連接與自然連接的區(qū)別是什么? 答:自然連接( Natural join)是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且要在結果中把重復的屬性去掉。 第三章 關系數(shù)據(jù)庫標準語言 SQL (教材148頁) 1. 試述SQL語言的特點。 答: ( 1)綜合統(tǒng)一。 SQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體。 ( 2)高度非過程化。用SQL語言進行數(shù)據(jù)操作,只要提出“做什么”,而無須指明“怎么做”,因此無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動完成。 ( 3)面向集合的操作方式。SQL語言采用集合操作方式,不僅操作對象、查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。 ( 4)以同一種語法結構提供兩種使用方式。SQL語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨立地用于聯(lián)機交互的使用方式,也能夠嵌入到高級語言程序中,供程序員設計程序時使用。 ( 5)語言簡捷,易學易用。 2. 試述SQL的定義功能。 答: SQL的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。 SQL語言使用CREATE TABLE語句定義建立基本表,;ALTER TABLE語句修改基本表定義,DROP TABLE語句刪除基本表;建立索引使用CREATE INDEX語句建立索引, DROP INDEX語句刪除索引表;SQL語言使用CREATE VIEW命令建立視圖,DROP VIEW語句刪除視圖。 3. 用SQL語句建立第3章習題3中的四個表。 答: 對于 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表、 建J表、建SPJ表略。 4. 針對上題中建立的四個表試用SQL語言完成第3章習題3中的查詢。 答: ( 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 (SELECT PNO FROM P WHERE COLOR=紅); ( 4) 求沒有使用天津供應商生產的紅色零件的工程號JNO; 略, 注意:從 J 表入手,以包含那些尚未使用任何零件的工程號。 5. 針對習題3中的四個表試用SQL語言完成以下各項操作: ( 1)找出所有供應商的姓名和所在城市。 ( 2)找出所有零件的名稱、顏色、重量。 ( 3)找出使用供應商S1所供應零件的工程號碼。 ( 4)找出工程項目J2使用的各種零件的名稱及其數(shù)量。 ( 5)找出上海廠商供應的所有零件號碼。 ( 6)找出使用上海產的零件的工程名稱。 ( 7)找出沒有使用天津產的零件的工程號碼。 ( 8)把全部紅色零件的顏色改成藍色。 ( 9)由S5供給J4的零件P6改為由S3供應,請作必要的修改。 ( 10)從供應商關系中刪除S2的記錄,并從供應情況關系中刪除相應的記錄。 ( 11)請將 (S2,J6,P4,200) 插入供應情況關系。 答: (1) 找出所有供應商的姓名和所在城市。 SELECT SNAME, CITY FROM S; (2) 找出所有零件的名稱、顏色、重量。 SELECT PNAME, COLOR, WEIGHT FROM P; (3) 找出使用供應商S1所供應零件的工程號碼。 SELECT JNO FROM SPJ WHERE SNO=S1; (4) 找出工程項目J2使用的各種零件的名稱及其數(shù)量。 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=上海; (7) 找出沒有使用天津產的零件的工程號碼。 略 (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的記錄,并從供應情況關系中刪除相應的記錄。 解析:注意刪除順序,應該先從 SPJ表中刪除供應商S2所供應零件的記錄,然后從從S表中刪除S2。 (11) 請將 (S2,J6,P4,200) 插入供應情況關系。 INSERT INTO SPJ(SNO, JNO, PNO, QTY) VALUES (S2,J6,P4,200); 6. 什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么? 答:基本表是本身獨立存在的表,在 SQL中一個關系就對應一個表。 視圖是從一個或幾個基本表導出的表。視圖本身不獨立存儲在數(shù)據(jù)庫中,是一個虛表。即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應的數(shù)據(jù),這些數(shù)據(jù)仍存放在導出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。 7. 試述視圖的優(yōu)點。 答: (1)視圖能夠簡化用戶的操作。 (2)視圖使用戶能以多種角度看待同一數(shù)據(jù)。 (3)視圖對重構數(shù)據(jù)庫提供了一定程度的邏輯獨立性。 (4)視圖能夠對機密數(shù)據(jù)提供安全保護。 8. 所有的視圖是否都可以更新?為什么? 答:不是。視圖是不實際存儲數(shù)據(jù)的虛表,因此對視圖的更新,最終要轉換為對基本表的更新。因為有些視圖的更新不能唯一地有意義地轉換成對相應基本表的更新,所以,并不是所有的視圖都是可更新的。 9. 哪類視圖是可以更新的,哪類視圖是不可更新的? 各舉一例說明。 答:基本表的行列子集視圖一般是可更新的。如教材 3.5.3中的例1。 若視圖的屬性來自集函數(shù)、表達式,則該視圖肯定是不可以更新的。 如教材 3.5.3中的S_G視圖。 11. 請為三建工程項目建立一個供應情況的視圖,包括供應商代碼(SNO)、零件 代碼( PNO)、供應數(shù)量(QTY)。針對該視圖完成下列查詢: ( 1)找出三建工程項目使用的各種零件代碼及其數(shù)量。 ( 2)找出供應商S1的供應情況。 答:建視圖: CREATE VIEW V_SPJ AS SELECT SNO, PNO, QTY FROM SPJ WHERE JNO= ( SELECT JNO FROM J WHERE JNAME=三建); 對該視圖查詢: (1) 找出三建工程項目使用的各種零件代碼及其數(shù)量。 SELECT PNO, QTY FROM V_SPJ; (2) 找出供應商S1的供應情況。 SELECT PNO, QTY /* S1供應三建工程的零件號和對應的數(shù)量*/ FROM V_SPJ WHERE SNO=S1; 第五章 關系數(shù)據(jù)理論 (教材 196頁) 1理解并給出下列術語的定義: 函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、候選碼、主碼、 外碼、全碼。 答: 函數(shù)依賴:設 R (U)是一個關系模式,U是R的屬性集合,X和Y是U的子集。對于R (U)的任意一個可能的關系r,如果r中不存在兩個元組,它們在X上的屬性值相同, 而在Y上的屬性值不同, 則稱"X函數(shù)確定Y"或"Y函數(shù)依賴于X",記作XY。 完全函數(shù)依賴、部分函數(shù)依賴:在 R(U)中,如果XY,并且對于X的任何一個真子集X,都有XY,則稱Y對X完全函數(shù)依賴;若XY,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴; 候選碼、主碼: 設 K為R(U,F(xiàn))中的屬性或屬性組合,若K U則K為R的候選碼。若候選碼多于一個,則選定其中的一個為主碼。 外碼:關系模式 R中屬性或屬性組X并非R的碼,但X是另一個關系模式的碼,則稱X是R的外部碼也稱外碼。 全碼:整個屬性組是碼,稱為全碼( All-key)。 2建立一個關于系、學生、班級、學會等諸信息的關系數(shù)據(jù)庫。 描述學生的屬性有:學號、姓名、出生年月、系名、班號、宿舍區(qū)。 描述班級的屬性有:班號、專業(yè)名、系名、人數(shù)、入校年份。 描述系的屬性有:系名、系號、系辦公室地點、人數(shù)。 描述學會的屬性有:學會名、成立年份、地點、人數(shù)。 有關語義如下:一個系有若干專業(yè),每個專業(yè)每年只招一個班,每個班有若干學生。一個系的學生住在同一宿舍區(qū)。每個學生可參加若干學會,每個學會有若干學生。學生參加某學會有一個入會年份。 請給出關系模式,寫出每個關系模式的極小函數(shù)依賴集,指出是否存在傳遞函數(shù)依賴,對于函數(shù)依賴左部是多屬性的情況討論函數(shù)依賴是完全函數(shù)依賴,還是部分函數(shù)依賴。 指出各關系的候選碼、外部碼,有沒有全碼存在? 答: 關系模式: 學生 S(S#,SN,SB,DN,C#,SA) 班級 C(C#,CS,DN,CNUM,CDATE) 系 D(D#,DN,DA,DNUM) 學會 P(PN,DATE1,PA,PNUM) 學生 -學會SP(S#,PN,DATE2) 其中, S#學號,SN姓名,SB出生年月,SA宿舍區(qū) C#班號,CS專業(yè)名,CNUM班級人數(shù),CDATE入校年份 D#系號,DN系名,DA系辦公室地點,DNUM系人數(shù) PN學會名,DATE1成立年月,PA地點,PNUM學會人數(shù),DATE2入會年份 每個關系模式的極小函數(shù)依賴集: S:S#SN,S#SB,S#C#,C#DN,DNSA C:C#CS,C#CNUM,C#CDATE,CSDN,(CS,CDATE)C# D:D#DN,DND#,D#DA,D#DNUM P:PNDATE1,PNPA,PNPNUM SP:(S#,PN)DATE2 S中存在傳遞函數(shù)依賴: S#DN, S#SA, C#SA C中存在傳遞函數(shù)依賴:C#DN ( S#,PN)DATE2 和(CS,CDATE)C# 均為SP中的函數(shù)依賴,是完全函數(shù)依賴 關系 候選碼 外部碼 全碼 S S# C#,DN 無 C C#,(CS,CDATE) DN 無 D D#和DN 無 無 P PN 無 無 SP (S#,PN) S#,PN 無 4. 試舉出三個多值依賴的實例。 答: ( 1)關系模式MSC(M,S,C)中,M表示專業(yè),S表示學生,C表示該專業(yè)的必修課。假設每個專業(yè)有多個學生,有一組必修課。設同專業(yè)內所有學生的選修的必修課相同,實例關系如下。按照語義對于M的每一個值M i,S有一個完整的集合與之對應而不問C取何值,所以MS。由于C與S的完全對稱性,必然有MC成立。 M S C M 1 S1 C1 M 1 S1 C2 M 1 S2 C1 M 1 S2 C2 ( 2)關系模式ISA(I,S,A)中,I表示學生興趣小組,S表示學生,A表示某興趣小組 的活動項目。假設每個興趣小組有多個學生,有若干活動項目。每個學生必須參加所 在興趣小組的所有活動項目,每個活動項目要求該興趣小組的所有學生參加。 按照語義有 IS,IA成立。 ( 3)關系模式RDP(R,D,P)中,R表示醫(yī)院的病房,D表示責任醫(yī)務人員,P表示病人。假設每個病房住有多個病人,有多個責任醫(yī)務人員負責醫(yī)治和護理該病房的所有病人。按照語義有RD,RP成立。 第六章 數(shù)據(jù)庫設計 (教材241頁) 1. 試述數(shù)據(jù)庫設計過程。 1) 需求分析 2) 概念結構設計 3) 邏輯結構設計 4) 數(shù)據(jù)庫物理設計 5) 數(shù)據(jù)庫實施 6) 數(shù)據(jù)庫運行和維護 這是一個完整的實際數(shù)據(jù)庫及其應用系統(tǒng)的設計過程。不僅包括設計數(shù)據(jù)庫本身,還包括數(shù)據(jù)庫的實施、數(shù)據(jù)庫運行和維護。 設計一個完善的數(shù)據(jù)庫應用系統(tǒng)往往是上述六個階段的不斷反復。 2. 試述數(shù)據(jù)庫設計過程的各個階段上的設計描述。 答:各階段的設計要點如下: 1) 需求分析:準確了解與分析用戶需求(包括數(shù)據(jù)與處理)。 2) 概念結構設計:通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。 3) 邏輯結構設計:將概念結構轉換為某個DBMS所支持的數(shù)據(jù)模型,并對其進行優(yōu)化。 4) 數(shù)據(jù)庫物理設計:為邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結構(包括存儲結構和存取方法)。 5) 數(shù)據(jù)庫實施:設計人員運用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設計和物理設計的結果建立數(shù)據(jù)庫,編制與調試應用程序,組織數(shù)據(jù)入庫,并進行試運行。 6) 數(shù)據(jù)庫運行和維護:在數(shù)據(jù)庫系統(tǒng)運行過程中對其進行評價、調整與修改。 3. 試述數(shù)據(jù)庫設計過程中結構設計部分形成的數(shù)據(jù)庫模式。 答:數(shù)據(jù)庫結構設計的不同階段形成數(shù)據(jù)庫的各級模式,即: 在概念設計階段形成獨立于機器特點,獨立于各個 DBMS產品的概念模式,在本篇中就是E-R圖; 在邏輯設計階段將 E-R圖轉換成具體的數(shù)據(jù)庫產品支持的數(shù)據(jù)模型,如關系模型,形成數(shù)據(jù)庫邏輯模式;然后在基本表的基礎上再建立必要的視圖(View),形成數(shù)據(jù)的外模式; 在物理設計階段,根據(jù) DBMS特點和處理的需要,進行物理存儲安排,建立索引,形成數(shù)據(jù)庫內模式。 概念模式是面向用戶和設計人員的,屬于概念模型的層次;邏輯模式、外模式、內模式是 DBMS支持的模式,屬于數(shù)據(jù)模型的層次。可以在DBMS中加以描述和存儲。 4. 試述數(shù)據(jù)庫設計的特點。 答:數(shù)據(jù)庫設計既是一項涉及多學科的綜合性技術又是一項龐大的工程項目。其主要特點有: 1) 數(shù)據(jù)庫建設是硬件、軟件和干件(技術與管理的界面)的結合。 2) 從軟件設計的技術角度看,數(shù)據(jù)庫設計應該和應用系統(tǒng)設計相結合,也就是說,整個設計過程中要把結構(數(shù)據(jù))設計和行為(處理)設計密切結合起來。 5. 需求分析階段的設計目標是什么?調查的內容是什么? 答:需求分析階段的設計目標是通過詳細調查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))工作概況,明確用戶的各種需求,然后在此基礎上確定新系統(tǒng)的功能。 調查的內容是 “數(shù)據(jù)”和“處理”,即獲得用戶對數(shù)據(jù)庫的如下要求: ( 1)信息要求。指用戶需要從數(shù)據(jù)庫中獲得信息的內容與性質。由信息要求可以導出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)。 ( 2)處理要求。指用戶要完成什么處理功能,對處理的響應時間有什么要求,處理方式是批處理還是聯(lián)機處理。 ( 3)安全性與完整性要求。 6. 數(shù)據(jù)字典的內容和作用是什么? 答:數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合。數(shù)據(jù)字典的內容通常包括:數(shù)據(jù)項、數(shù)據(jù)結構、數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程五個部分 其中數(shù)據(jù)項是數(shù)據(jù)的最小組成單位,若干個數(shù)據(jù)項可以組成一個數(shù)據(jù)結構。數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結構的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲的邏輯內容。 數(shù)據(jù)字典的作用:數(shù)據(jù)字典是關于數(shù)據(jù)庫中數(shù)據(jù)的描述,在需求分析階段建立,是下一步進行概念設計的基礎,并在數(shù)據(jù)庫設計過程中不斷修改、充實、完善。 (注意,數(shù)據(jù)庫設計階段形成的數(shù)據(jù)字典與后面講到的數(shù)據(jù)字典不同,后者是 DBMS關于數(shù)據(jù)庫中數(shù)據(jù)的描述,當然兩者是有聯(lián)系的)。 7. 什么是數(shù)據(jù)庫的概念結構?試述其特點和設計策略。 答: 概念結構是信息世界的結構,即概念模型,其主要特點是: ( 1)能真實、充分地反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求。是對現(xiàn)實世界的一個真實模型。 ( 2)易于理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫的設計成功的關鍵。 ( 3)易于更改,當應用環(huán)境和應用要求改變時,容易對概念模型修改和擴充。 ( 4)易于向關系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉換。 概念結構的設計策略通常有四種: 自頂向下。即首先定義全局概念結構的框架,然后逐步細化; 自底向上。即首先定義各局部應用的概念結構,然后將它們集成起來,得到全局概念 結構; 逐步擴張。首先定義最重要的核心概念結構,然后向外擴充,以滾雪球的方式逐步生成其他概念結構,直至總體概念結構; 混合策略。即將自頂向下和自底向上相結合,用自頂向下策略設計一個全局概念結構的框架,以它為骨架集成由自底向上策略中設計的各局部概念結構。 8. 什么叫數(shù)據(jù)抽象?試舉例說明。 答: 數(shù)據(jù)抽象是對實際的人、物、事和概念進行人為處理,抽取所關心的共同特性,忽略非本質的細節(jié),并把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。 如分類這種抽象是:定義某一類概念作為現(xiàn)實世界中一組對象的類型。這些對象具有某些共同的特性和行為。它抽象了對象值和型之間的 “is member of”的語義。在E-R模型中,實體型就是這種抽象。例如在學校環(huán)境中,李英是老師,表示李英是教師類型中的一員,則教師是實體型,李英是教師實體型中的一個實體值,具有教師共同的特性和行為:在某個系某個專業(yè)教學,講授某些課程,從事某個方向的科研。 9.試述數(shù)據(jù)庫概念結構設計的重要性和設計步驟。 答: 重要性: 數(shù)據(jù)庫概念設計是整個數(shù)據(jù)庫設計的關鍵,將在需求分析階段所得到的應用需求首先抽象為概念結構,以此作為各種數(shù)據(jù)模型的共同基礎,從而能更好地、更準確地用某一 DBMS實現(xiàn)這些需求。 設計步驟: 概念結構的設計方法有多種,其中最經(jīng)常采用的策略是自底向上方法,該方法的設計步驟通常分為兩步:第 1步是抽象數(shù)據(jù)并設計局部視圖,第2步是集成局部視圖,得到全局的概念結構 10.什么是E-R圖?構成E-R圖的基本要素是什么? 答: E-R圖為實體-聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。 構成 E-R圖的基本要素是實體型、屬性和聯(lián)系,其表示方法為: 實體型:用矩形表示,矩形框內寫明實體名; 屬性:用橢圓形表示,并用無向邊將其與相應的實體連接起來; 聯(lián)系:用菱形表示,菱形框內寫明聯(lián)系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型( 1 : 1,1 : n或m : n)。 11. 為什么要視圖集成?視圖集成的方法是什么? 答:在對數(shù)據(jù)庫系統(tǒng)進行概念結構設計時一般采用自底向上的設計方法,把繁雜的大系統(tǒng)分解子系統(tǒng)。首先設計各個子系統(tǒng)的局部視圖,然后通過視圖集成的方式將各子系統(tǒng)有機的融合起來,綜合成一個系統(tǒng)的總視圖。這樣設計清晰,由簡到繁。由于數(shù)據(jù)庫系統(tǒng)是從整體角度看待和描述數(shù)據(jù)的,因此數(shù)據(jù)不再面向某個應用而是整個系統(tǒng)。因此必須進行視圖集成,使得數(shù)據(jù)庫能被全系統(tǒng)的多個用戶、多個應用共享使用。 一般說來,視圖集成可以有兩種方式: 多個分 E-R圖一次集成; 逐步集成,用累加的方式一次集成兩個分 E-R圖。 無論采用哪種方式,每次集成局部 E-R圖時都需要分兩步走: ( 1)合并。解決各分E-R圖之間的沖突,將各分E-R圖合并起來生成初步E-R圖。 ( 2)修改和重構。消除不必要的冗余,生成基本E-R圖。 12. 什么是數(shù)據(jù)庫的邏輯結構設計?試述其設計步驟。 答:數(shù)據(jù)庫的邏輯結構設計就是把概念結構設計階段設計好的基本 E-R圖轉換為與選用的DBMS產品所支持的數(shù)據(jù)模型相符合的邏輯結構。 設計步驟為: ( 1)將概念結構轉換為一般的關系、網(wǎng)狀、層次模型; ( 2)將轉換來的關系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉換; ( 3)對數(shù)據(jù)模型進行優(yōu)化。 第七章 數(shù)據(jù)庫恢復技術 (教材261頁) 1.試述事務的概念及事務的四個特性。 答:事務是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做 ,是一個不可分割的工作單位。 事務具有四個特性:原子性( Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這個四個特性也簡稱為ACID特性。 原子性:事務是數(shù)據(jù)庫的邏輯工作單位,事務中包括的諸操作要么都做,要么都不做。 一致性:事務執(zhí)行的結果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。 隔離性:一個事務的執(zhí)行不能被其他事務干擾。即一個事務內部的操作及使用的數(shù)據(jù)對其他并發(fā)事務是隔離的,并發(fā)執(zhí)行的各個事務之間不能互相干擾。 持續(xù)性:持續(xù)性也稱永久性( Permanence),指一個事務一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應該是永久性的。接下來的其他操作或故障不應該對其執(zhí)行結果有任何影響。 2.為什么事務非正常結束時會影響數(shù)據(jù)庫數(shù)據(jù)的正確性,請列舉一例說明之。 答:事務執(zhí)行的結果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng)運行中發(fā)生故障,有些事務尚未完成就被迫中斷,這些未完成事務對數(shù)據(jù)庫所做的修改有一部分已寫入物理數(shù)據(jù)庫,這時數(shù)據(jù)庫就處于一種不正確的狀態(tài),或者說是不一致的狀態(tài)。 例如某工廠的庫存管理系統(tǒng)中,要把數(shù)量為 Q的某種零件從倉庫1移到倉庫2存放。 則可以定義一個事務 T,T包括兩個操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時只做了第一個操作,則數(shù)據(jù)庫就處于不一致性狀態(tài),庫存量無緣無故少了Q。 3.數(shù)據(jù)庫中為什么要有恢復子系統(tǒng)?它的功能是什么? 答:因為計算機系統(tǒng)中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分數(shù)據(jù)丟失,因此必須要有恢復子系統(tǒng)。 恢復子系統(tǒng)的功能是:把數(shù)據(jù)庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))。 4數(shù)據(jù)庫運行中可能產生的故障有哪幾類?哪些故障影響事務的正常執(zhí)行?哪些故障破壞數(shù)據(jù)庫數(shù)據(jù)? 答:數(shù)據(jù)庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類: ( 1)事務內部的故障; ( 2)系統(tǒng)故障; ( 3)介質故障; ( 4)計算機病毒。 事務故障、系統(tǒng)故障和介質故障影響事務的正常執(zhí)行;介質故障和計算機病毒破壞數(shù)據(jù)庫數(shù)據(jù)。 5據(jù)庫恢復的基本技術有哪些? 答:數(shù)據(jù)轉儲和登錄日志文件是數(shù)據(jù)庫恢復的基本技術。 當系統(tǒng)運行過程中發(fā)生故障,利用轉儲的數(shù)據(jù)庫后備副本和日志文件就可以將數(shù)據(jù)庫恢復到故障前的某個一致性狀態(tài)。 6. 數(shù)據(jù)庫轉儲的意義是什么? 試比較各種數(shù)據(jù)轉儲方法。 答:數(shù)據(jù)轉儲是數(shù)據(jù)庫恢復中采用的基本技術。所謂轉儲即 DBA定期地將數(shù)據(jù)庫復制到磁帶或另一個磁盤上保存起來的過程。當數(shù)據(jù)庫遭到破壞后可以將后備副本重新裝入,將數(shù)據(jù)庫恢復到轉儲時的狀態(tài)。 靜態(tài)轉儲:在系統(tǒng)中無運行事務時進行的轉儲操作。靜態(tài)轉儲簡單,但必須等待正運行的用戶事務結束才能進行。同樣,新的事務必須等待轉儲結束才能執(zhí)行。顯然,這會降低數(shù)據(jù)庫的可用性。 動態(tài)轉儲:指轉儲期間允許對數(shù)據(jù)庫進行存取或修改。動態(tài)轉儲可克服靜態(tài)轉儲的缺點,它不用等待正在運行的用戶事務結束,也不會影響新事務的運行。但是,轉儲結束時后援副本上的數(shù)據(jù)并不能保證正確有效。因為轉儲期間運行的事務可能修改了某些數(shù)據(jù),使得后援副本上的數(shù)據(jù)不是數(shù)據(jù)庫的一致版本。 為此,必須把轉儲期間各事務對數(shù)據(jù)庫的修改活動登記下來,建立日志文件( log file)。這樣,后援副本加上日志文件就能得到數(shù)據(jù)庫某一時刻的正確狀態(tài)。 轉儲還可以分為海量轉儲和增量轉儲兩種方式。 海量轉儲是指每次轉儲全部數(shù)據(jù)庫。增量轉儲則指每次只轉儲上一次轉儲后更新過的數(shù)據(jù)。從恢復角度看,使用海量轉儲得到的后備副本進行恢復一般說來更簡單些。但如果數(shù)據(jù)庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。 7. 什么是日志文件?為什么要設立日志文件? 答:( 1)日志文件是用來記錄事務對數(shù)據(jù)庫的更新操作的文件。 ( 2)設立日志文件的目的是: 進行事務故障恢復;進行系統(tǒng)故障恢復;協(xié)助后備副本進行介質故障恢復。 8. 登記日志文件時為什么必須先寫日志文件,后寫數(shù)據(jù)庫? 答:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中和把表示這個修改的日志記錄寫到日志文件中是兩個不同的操作。有可能在這兩個操作之間發(fā)生故障,即這兩個寫操作只完成了一個。 如果先寫了數(shù)據(jù)庫修改,而在運行記錄中沒有登記這個修改,則以后就無法恢復這個修改了。如果先寫日志,但沒有修改數(shù)據(jù)庫,在恢復時只不過是多執(zhí)行一次 UNDO操作,并不會影響數(shù)據(jù)庫的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據(jù)庫的修改。 9. 針對不同的故障,試給出恢復的策略和方法。(即如何進行事務故障的恢復?系統(tǒng)故障的恢復?介質故障恢復?) 答:事務故障的恢復: 事務故障的恢復是由 DBMS自動完成的,對用戶是透明的。 DBMS執(zhí)行恢復步驟是: ( 1)反向掃描文件日志(即從最后向前掃描日志文件),查找該事務的更新操作。 ( 2)對該事務的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。 ( 3)繼續(xù)反向掃描日志文件,做同樣處理。 ( 4)如此處理下去,直至讀到此事務的開始標記,該事務故障的恢復就完成了。 系統(tǒng)故障的恢復: 系統(tǒng)故障可能會造成數(shù)據(jù)庫處于不一致狀態(tài): 一是未完成事務對數(shù)據(jù)庫的更新可能已寫入數(shù)據(jù)庫; 二是已提交事務對數(shù)據(jù)庫的更新可能還留在緩沖區(qū),沒來得及寫入數(shù)據(jù)庫。 因此恢復操作就是要撤銷 (UNDO)故障發(fā)生時未完成的事務,重做(REDO)已完成的事務。 系統(tǒng)的恢復步驟是: ( 1)正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務隊列(REDO隊列)和未完成的事務隊列(UNDO隊列)。 ( 2)對撤銷隊列中的各個事務進行UNDO處理。 進行 UNDO處理的方法是,反向掃描日志文件,對每個UNDO事務的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”(Before Image)寫入數(shù)據(jù)庫。 ( 3)對重做隊列中的各個事務進行REDO處理。 進行 REDO處理的方法是:正向掃描日志文件,對每個REDO事務重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”(After Image)寫入數(shù)據(jù)庫。 介質故障的恢復: 介質故障是最嚴重的一種故障。 恢復方法是重裝數(shù)據(jù)庫,然后重做已完成的事務。具體過程是: ( 1)DBA裝入最新的數(shù)據(jù)庫后備副本(離故障發(fā)生時刻最近的轉儲副本),使數(shù)據(jù)庫恢復到轉儲時的一致性狀態(tài)。 ( 2)DBA裝入轉儲結束時刻的日志文件副本 ( 3)DBA啟動系統(tǒng)恢復命令,由DBMS完成恢復功能,即重做已完成的事務。 10. 具有檢查點的恢復技術有什么優(yōu)點? 答:利用日志技術進行數(shù)據(jù)庫恢復時,恢復子系統(tǒng)必須搜索日志,確定哪些事務需要 REDO,哪些事務需要UNDO。一般來說,需要檢查所有日志記錄。這樣做有兩個問題: 一是搜索整個日志將耗費大量的時間。 二是很多需要 REDO處理的事務實際上已經(jīng)將它們的更新操作結果寫到數(shù)據(jù)庫中了,恢復子系統(tǒng)又重新執(zhí)行了這些操作,浪費了大量時間。 檢查點技術就是為了解決這些問題。 11. 試述使用檢查點方法進行恢復的步驟。 答: 從重新開始文件中找到最后一個檢查點記錄在日志文件中的地址,由該地址在日志文件中找到最后一個檢查點記錄。 由該檢查點記錄得到檢查點建立時刻所有正在執(zhí)行的事務清單 ACTIVE-LIST。 這里建立兩個事務隊列 : UNDO-LIST: 需要執(zhí)行undo操作的事務集合; REDO-LIST: 需要執(zhí)行redo操作的事務集合; 把 ACTIVE-LIST暫時放入UNDO-LIST隊列,REDO隊列暫為空。 從檢查點開始正向掃描日志文件 如有新開始的事務 Ti,把Ti暫時放入UNDO-LIST隊列; 如有提交的事務 Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列,直到日志文件結束; 對 UNDO-LIST中的每個事務執(zhí)行UNDO操作, 對REDO-LIST中的每個事務執(zhí)行REDO操作。 12. 什么是數(shù)據(jù)庫鏡像?它有什么用途? 答:數(shù)據(jù)庫鏡像即根據(jù) DBA的要求,自動把整個數(shù)據(jù)庫或者其中的部分關鍵數(shù)據(jù)復制到另一個磁盤上。每當主數(shù)據(jù)庫更新時,DBMS自動把更新后的數(shù)據(jù)復制過去,即DBMS自動保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。 數(shù)據(jù)庫鏡像的用途有: 一是用于數(shù)據(jù)庫恢復。當出現(xiàn)介質故障時,可由鏡像磁盤繼續(xù)提供使用,同時 DBMS自動利用鏡像磁盤數(shù)據(jù)進行數(shù)據(jù)庫的恢復,不需要關閉系統(tǒng)和重裝數(shù)據(jù)庫副本。 二是提高數(shù)據(jù)庫的可用性。在沒有出現(xiàn)故障時,當一個用戶對某個數(shù)據(jù)加排它鎖進行修改時,其他用戶可以讀鏡像數(shù)據(jù)庫上的數(shù)據(jù),而不必等待該用戶釋放鎖。 第八章 數(shù)據(jù)庫并發(fā)控制 (教材280頁) 1. 在數(shù)據(jù)庫中為什么要并發(fā)控制? 答:數(shù)據(jù)庫是共享資源,通常有許多個事務同時在運行。 當多個事務并發(fā)地存取數(shù)據(jù)庫時就會產生同時讀取和 /或修改同一數(shù)據(jù)的情況。若對并發(fā)操作不加控制就可能會存取和存儲不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機制。 2. 并發(fā)操作可能會產生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況? 答:并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復讀和讀 “臟”數(shù)據(jù)。 ( 1)丟失修改(Lost Update) 兩個事務 T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結果破壞了(覆蓋了)T1提交的結果,導致T1的修改被丟失。 ( 2)不可重復讀(Non-Repeatable Read) 不可重復讀是指事務 T1讀取數(shù)據(jù)后,事務T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結果。 ( 3)讀“臟”數(shù)據(jù)(Dirty Read) 讀 “臟”數(shù)據(jù)是指事務T1修改某一數(shù)據(jù),并將其寫回磁盤,事務T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時T1已修改過的數(shù)據(jù)恢復原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。 避免不一致性的方法和技術就是并發(fā)控制。最常用的并發(fā)控制技術是封鎖技術。 也可以用其他技術,例如在分布式數(shù)據(jù)庫系統(tǒng)中可以采用時間戳方法來進行并發(fā)控制。 3. 什么是封鎖? 答:封鎖就是事務 T在對某個數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務T就對該數(shù)據(jù)對象有了一定的控制,在事務T釋放它的鎖之前,其他的事務不能更新此數(shù)據(jù)對象。 封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術。 4. 基本的封鎖類型有幾種?試述它們的含義。 答:基本的封鎖類型有兩種 : 排它鎖(Exclusive Locks,簡稱X鎖) 和共享鎖(Share Locks,簡稱S鎖)。 排它鎖又稱為寫鎖。若事務 T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其他任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。 共享鎖又稱為讀鎖。若事務 T對數(shù)據(jù)對象A加上S鎖,則事務T可以讀A但不能修改A,其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其他事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。 5. 什么是封鎖協(xié)議?不同級別的封鎖協(xié)議的主要區(qū)別是什么? 答:在運用封鎖技術對數(shù)據(jù)加鎖時,要約定一些規(guī)則。例如,在運用 X鎖和S鎖對數(shù)據(jù)對象加鎖時,要約定何時申請X鎖或S鎖、何時釋放封鎖等。這些約定或者規(guī)則稱為封鎖協(xié)議(Locking Protocol)。對封鎖方式約定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。不同級別的封鎖協(xié)議,例如概論中介紹的三級封鎖協(xié)議,三級協(xié)議的主要區(qū)別在于什么操作需要申請封鎖,何時申請封鎖以及何時釋放鎖(即持鎖時間的長短)。 一級封鎖協(xié)議:事務 T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務結束才釋放。 二級封鎖協(xié)議:一級封鎖協(xié)議加上事務 T在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后即可釋放S鎖。 三級封鎖協(xié)議:一級封鎖協(xié)議加上事務 T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務結束才釋放。 6. 不同封鎖協(xié)議與系統(tǒng)一致性級別的關系是什么? 答:不同的封鎖協(xié)議對應不同的一致性級別。 一級封鎖協(xié)議可防止丟失修改,并保證事務 T是可恢復的。在一級封鎖協(xié)議中,對讀數(shù)據(jù)是不加S鎖的,所以它不能保證可重復讀和不讀“臟”數(shù)據(jù)。 二級封鎖協(xié)議除防止了丟失修改,還可進一步防止讀 “臟”數(shù)據(jù)。在二級封鎖協(xié)議中,由于讀完數(shù)據(jù)后立即釋放S鎖,所以它不能保證可重復讀。 在三級封鎖協(xié)議中,無論是讀數(shù)據(jù)還是寫數(shù)據(jù)都加長鎖,即都要到事務結束時才釋放封鎖。所以三級封鎖協(xié)議除防止了丟失修改和不讀 “臟”數(shù)據(jù)外,還進一步防止了不可重復讀。 7. 試述活鎖的產生原因和解決方法。 答:活鎖產生的原因:當一系列封鎖不能按照其先后順序執(zhí)行時,就可能導致一些事務無限期等待某個封鎖,從而導致活鎖。 避免活鎖的簡單方法是采用先來先服務的策略。當多個事務請求封鎖同一數(shù)據(jù)對象時,封鎖子系統(tǒng)按請求封鎖的先后次序對事務排隊,數(shù)據(jù)對象上的鎖一旦釋放就批準申請隊列中第一個事務獲得鎖。 8. 請給出預防死鎖的若干方法。 答:在數(shù)據(jù)庫中,產生死鎖的原因是兩個或多個事務都已封鎖了一些數(shù)據(jù)對象,然后又都請求已被其他事務封鎖的數(shù)據(jù)加鎖,從而出現(xiàn)死等待。 防止死鎖的發(fā)生其實就是要破壞產生死鎖的條件。預防死鎖通常有兩種方法: ( 1)一次封鎖法 要求每個事務必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。 ( 2)順序封鎖法 預先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務都按這個順序實行封鎖。 不過,預防死鎖的策略不大適合數(shù)據(jù)庫系統(tǒng)的特點。 9. 請給出檢測死鎖發(fā)生的一種方法,當發(fā)生死鎖后如何解除死鎖? 答:數(shù)據(jù)庫系統(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ù)據(jù)修改操作必須加

注意事項

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

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




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

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

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


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