數據庫原理與應用MySQL版何玉潔課后答案_第1頁
數據庫原理與應用MySQL版何玉潔課后答案_第2頁
數據庫原理與應用MySQL版何玉潔課后答案_第3頁
數據庫原理與應用MySQL版何玉潔課后答案_第4頁
數據庫原理與應用MySQL版何玉潔課后答案_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數據庫概述一、選擇題下列關于用文件管理數據的說法,錯誤的是()A.用文件管理數據,難以提供應用程序與數據的獨立性B.當存儲數據的文件名發生變化時,必須修改訪問數據文件的應用程序C.用文件管理數據的方式難以實現數據的安全控制D.用文件管理數據能更方便實現數據共享答案:D下列說法中,不屬于數據庫管理系統特征的是()A.提供了應用程序和數據的獨立性B.數據庫中的數據是相互關聯的數據的集合C.用戶訪問數據時,需要知道存儲數據的文件的文件名D.能保證數據庫數據的可靠性,以防止數據丟失答案:C數據庫管理系統是數據庫系統的核心,它屬于()A.系統軟件 B.工具軟件C.應用軟件 D.數據軟件答案:A下列不屬于數據庫系統組成部分的是()A.數據庫 B.操作系統C.應用程序 D.數據庫管理系統答案:B下列關于數據庫技術的描述,錯誤的是()A.數據庫中不但保存數據,還保存了數據之間的關聯關系B.數據庫中的數據具有較小的數據冗余C.數據庫中數據存儲結構的變化不會影響到應用程序D.由于數據庫是存儲在磁盤上的,因此用戶在訪問數據庫時需要知道數據庫存儲位置答案:D二、簡答題數據管理技術的發展主要經歷了哪兩個階段?答:文件管理、數據庫管理文件管理方式在管理數據方面有哪些不足?答:編寫應用程序不方便,數據冗余不可避免,應用程序依賴性,不支持對文件的并發訪問。數據間聯系弱,難以滿足不同用戶對數據的需求,無安全控制功能。與文件管理數據相比,用數據庫管理數據有哪些優點?答:相互關聯的數據集合,較少的數據冗余,程序與數據相互獨立,保證數據的安全和可靠,最大限度地保證數據的正確性,數據可以共享并能保證數據的一致性。數據庫系統由哪幾部分組成,每一部分在數據庫系統中的作用大致是什么?答:數據庫系統是基于數據庫的計算機應用系統,一般由數據庫、數據庫管理系統(及相應的實用工具)、應用程序和數據庫管理員四個部分組成。數據庫是數據的匯集場所,它以一定的組織形式保存在存儲介質上;數據庫管理系統是管理數據庫的系統軟件,它可以實現數據庫系統的各種功能;應用程序專指訪問數據庫數據的程序,數據庫管理員負責整個數據庫系統的正常運行。第2章數據模型與數據庫結構一、選擇題數據庫三級模式結構的劃分,有利于A.數據的獨立性 B.用戶管理數據庫文件C.用戶建立數據庫 D.操作系統管理數據庫答案:A在數據庫的三級模式中,描述數據庫中全體數據的邏輯結構和特征的是內模式 B.模式 C.外模式 D.用戶模式答案:B下列關于數據庫中邏輯獨立性的說法,正確的是A. 當內模式發生變化時,模式可以不變B. 當內模式發生變化時,外模式可以不變C. 當模式發生變化時,外模式可以不變D. 當模式發生變化時,內模式可以不變答案:D下列模式中,用于描述單個用戶數據視圖的是 A.內模式 B.模式C.外模式 D.存儲模式答案:C數據庫中的數據模型三要素是指 A.數據結構、數據對象和數據共享B.數據結構、數據操作和數據完整性約束C.數據結構、數據操作和數據的安全控制D.數據結構、數據操作和數據的可靠性答案:B下列關于ER模型中聯系的說法,錯誤的是A.一個聯系最多只能關聯2個實體B.聯系可以是一對一的C.一個聯系可以關聯2個或2個以上的實體D.聯系的種類是由客觀世界業務決定的答案:A數據庫中的三級模式以及模式間的映像提供了數據的獨立性。下列關于兩級映像的說法,正確的是 A.外模式到模式的映像是由應用程序實現的,模式到內模式的映像是由DBMS實現的B.外模式到模式的映像是由DBMS實現的,模式到內模式的映像是由應用程序實現的C.外模式到模式的映像以及模式到內模式的映像都是由DBMS實現的D.外模式到模式的映像以及模式到內模式的映像都是由應用程序實現的答案:C下列關于概念層數據模型的說法,錯誤的是 A.概念層數據模型應該采用易于用戶理解的表達方式B.概念層數據模型應該比較易于轉換成組織層數據模型C.在進行概念層數據模型設計時,需要考慮具體的DBMS的特點D.在進行概念層數據模型設計時,重點考慮的內容是用戶的業務邏輯答案:C二、簡答題1.解釋數據模型的概念,為什么要將數據模型分為概念層數據模型和組織層數據模型兩個層次?答:數據模型實際上是模型化數據和信息的工具。根據模型應用的不同目的,可以將模型分為概念層數據模型和組織層數據模型兩大類,它們分別屬于兩個不同的層次。一般要求數據模型滿足三個方面的要求。能夠真實地模擬現實世界。第二,容易被人們理解。第三,能夠方便地在計算機上實現。用一種模型來同時很好地滿足這三方面的要求在目前是比較困難的,因此在數據庫領域中是針對不同的使用對象和應用目的,采用概念層和組織層兩種不同的模型來實現。組織層數據模型有哪些?關系數據庫采用的數據模型是什么?答:組織層數據模型主要有層次模型、網狀模型和關系模型。關系數據庫采用的是關系模型。說明ER模型中的實體、屬性和聯系的概念。答:實體是具有公共性質、并且可以相互區分的現實世界對象的集合,或者說是具有相同結構的對象的集合。屬性是描述實體或聯系的性質或特征的數據項,同一個實體的所有實例都具有相同的屬性。聯系表達的是現實世界中事物內部以及事物之間的關聯關系。實體之間的聯系有幾種?請為每種聯系舉一個例子。答:有一對一、一對多和多對多聯系三種。一對一聯系例子:一個學會只有一個負責人,一個人只能擔任一個學會的負責人。一對多聯系例子:一個學院有多名學生,一名學生只在一個學院學習。多對多聯系例子:一名學生可以修多門課程,一門課程可有多名學生修。5.指明下列實體間聯系的種類:教研室和教師(假設一個教師只屬于一個教研室,一個教研室可有多名教師)。商店和顧客。飛機和乘客。答:(1)一對多;(2)多對多;(3)多對多數據庫包含哪三級模式?試分別說明每一級模式的作用?答:外模式、模式、內模式。外模式是對現實系統中用戶感興趣的整體數據的局部描述,用于滿足數據庫不同用戶對數據的需求;是對數據庫中全體數據的邏輯結構和特征的描述,是所有用戶的公共數據視圖;內模式對應于物理級,它是數據庫中全體數據的內部表示或底層描述,是數據庫最低一級的邏輯描述,它描述了數據在存儲介質上的存儲方式和存儲結構,對應著實際存儲在存儲介質上的數據庫。數據庫管理系統提供的兩級映像的作用是什么?它帶來了哪些功能?答:外模式/模式映像以及模式/內模式映像保證了數據庫中的數據能夠具有較高的邏輯獨立性和物理獨立性,使數據庫應用程序不隨數據庫數據的邏輯或存儲結構的變動而變動。外模式/模式映像保證的是程序與數據的邏輯獨立性;模式/內模式映像保證的是程序與數據的物理獨立性。第3章關系數據庫選擇題下列關于關系中主屬性的描述,錯誤的是 主鍵所包含的屬性都是主屬性外鍵所引用的屬性一定是主屬性候選鍵所包含的屬性都是主屬性任何一個主屬性都可以唯一地標識表中的一行數據答:D設有關系模式:銷售(顧客號,商品號,銷售時間,銷售數量),若一個商品可在不同時間多次銷售給同一個顧客,同一個顧客在同一時間可購買多種商品,則此關系模式的主鍵是A.顧客號 B.產品號C.(顧客號,商品號) D.(顧客號,商品號,銷售時間)答:D關系數據庫用二維表來組織數據。下列關于關系表中記錄排列順序的說法,正確的是A.順序很重要,不能交換 B.順序不重要C.按輸入數據的順序排列 D.一定是有序的答:B下列不屬于數據完整性約束的是A.實體完整性 B.參照完整性C.域完整性 D.數據操作完整性答:D下列關于關系操作的說法,正確的是A.關系操作是基于集合的操作 B.在進行關系操作時,用戶需要知道數據的存儲位置C.在進行關系操作時,用戶需要知道數據的存儲結構 D.用戶可以在關系上直接進行行定位操作答:A下列關于關系的說法,錯誤的是A.關系中的每個屬性都是不可再分的基本屬性B.關系中不允許出現值完全相同的元組C.關系中不需要考慮元組的先后順序D.關系中屬性順序的不同,關系所表達的語義也不同答:D下列關于關系代數中選擇運算的說法,正確的是A.選擇運算是從行的方向選擇集合中的數據,選擇運算后的行數有可能減少B.選擇運算是從行的方向選擇集合中的數據,選擇運算后的行數不變C.選擇運算是從列的方向選擇集合中的若干列,選擇運算后的列數有可能減少D.選擇運算是從列的方向選擇集合中的若干列,選擇運算后的列數不變答:A下列用于表達關系代數中投影運算的運算符是σ B.∏ C. D.+答:B下列關于關系代數中差運算結果的說法,正確的是A.差運算的結果包含了兩個關系中的全部元組,因此有可能有重復的元組B.差運算的結果包含了兩個關系中的全部元組,但不會有重復的元組C.差運算的結果只包含兩個關系中相同的元組D.“A-B”差運算的結果由屬于A但不屬于B的元組組成答:D設有如下三個關系模式,學生(學號,姓名,性別),圖書(書號,書名,出版社)和借閱(學號,書號,借書日期)。現要查詢趙飛借的圖書的書名和出版社,下列關系代數表達式正確的是A.∏書名,出版社(σ姓名=‘趙飛’(學生)圖書借閱)B.∏書名,出版社(σ姓名=‘趙飛’(學生)借閱圖書)C.∏書名,出版社(σ姓名=‘趙飛’(學生圖書借閱))D.∏書名,出版社(σ姓名=‘趙飛’(圖書學生借閱))答:B二、簡答題試述關系模型的三個組成部分。答:關系模型包括數據結構、數據操作和數據完整性約束。解釋下列術語的含義:主鍵候選鍵關系關系模式關系數據庫答:(1)主鍵:主鍵也稱為主碼或主關鍵字,是表中的屬性或屬性集,用于唯一地確定一個元組。(2)候選鍵:如果一個屬性或屬性集(或叫屬性組)的值能夠唯一標識一個關系的元組而又不包含多余的屬性,則稱該屬性或屬性集為候選鍵。(3)關系:關系就是簡單二維表。(4)關系模式:二維表的結構稱為關系模式,或者說,關系模式就是二維表的表頭結構。(5)關系數據庫:對應于關系模型的所有關系的集合稱為關系數據庫。關系數據庫的三個完整性約束是什么?各是什么含義?答:實體完整性、參照完整性、用戶定義的完整性約束。實體完整性:實體完整性是保證關系中的每個元組都是可識別的和唯一的。實體完整性是指關系數據庫中所有的表都必須有主鍵,而且表中不允許存在無主鍵值的記錄、主鍵值相同的記錄。參照完整性:參照完整性也稱為引用完整性。現實世界中的實體之間往往存在著某種聯系,在關系模型中,實體以及實體之間的聯系都是用關系來表示的,這樣就自然存在著關系與關系之間的引用。參照完整性就是描述實體之間的聯系的。用戶定義的完整性約束:用戶定義的完整性是針對某一具體應用領域定義的數據約束條件,它反映某一具體應用所涉及的數據必須滿足應用語義的要求,實際上就是指明關系中屬性的取值范圍。根據如下給出的三個關系模式(各屬性含義見3.4.3節),寫出實現如下查詢的關系代數表達式。students(SID,sname,gender,college)books(ISBN,bname,category,press,price)borrow(ISBN,SID,borrow_time,return_time)查詢“計算機學院”學生的借閱情況,列出學號、姓名、圖書ISBN號和借書時間。答:∏SID,sname,ISBN,borrow_time(σcollege=‘計算機學院’(students)borrow)查詢“Java編程入門”圖書的借閱情況,列出學生姓名、所在學院、借書時間、還書時間。答:∏sname,college,borrow_time,return_time(σbname=‘Java編程入門’(students)borrow)查詢“計算機學院”學生借的價格在50-60之間的圖書情況,列出學生姓名、圖書名和出版社。答:∏sname,bname,press(σcollege=‘計算機學院’(students)borrowσprice>=50ANDprice<=60(books))查詢“計算機學院”學生中沒借過“人工智能基礎”的學生學號和姓名。答:∏SID,sname(σcollege=‘計算機學院’(students)-∏SID,sname(σcollege=‘計算機學院’(students)borrowσbname=‘人工智能基礎’(books))查詢至少借過“人間詞話”和“圍城”兩本圖書的學生的學號和所在學院。答:∏SID,college(students)÷∏SID,college(studentsborrowσbname=‘人間詞話’Vbname=‘圍城’(books))第4章SQL語言基礎及基本表的定義選擇題1.下列關于SQL語言特點的敘述,錯誤的是A.使用SQL語言訪問數據庫,用戶只需提出做什么,而無需描述如何實現SQL語言比較復雜,因此在使用上比較難SQL是非過程化語言D.使用SQL語言可以完成任何數據庫操作答案:B2.下列所述功能中,不屬于SQL語言功能的是A.數據庫和表的定義功能B.數據查詢功能數據增、刪、改功能 D.提供方便的用戶操作界面功能答案:D3.設某職工表中有用于存放年齡(整數)的列,下列類型中最合適年齡列的是A.TINYINT B.SMALLINTMEDIUMINT D.INTEGER答案:A4.設某列的類型是CHAR(10),存放“abc”,占用空間的字節數是A.3B.45 D.10答案:D5.設某列的類型是VARCHAR(10),存放“abc”,占用空間的字節數是A.3 B.4C.5 D.10答案:B6.下列約束中用于限制列的取值范圍的是A.PRIMARYKEY B.CHECKDEFAULT D.UNIQUE答案:B7.下列約束中用于限制列取值不重的是A.PRIMARYKEY B.CHECKDEFAULT D.UNIQUE答案:D8.下列關于DEFAULT約束的說法,正確的是A.一個DEFAULT約束可用于一個表的多個列上B.DEFAULT約束只能作為表級完整性約束C.DEFAULT約束只能作為列級完整性約束D.DEFAULT約束既可作為表級完整性約束也可作為列級完整性約束答案:C二、簡答題SQL語言的特點是什么?具有哪些功能?答:SQL語言的特點:(1)一體化(2)高度非過程化(3)簡潔(4)可以多種方式使用:SQL語言可以直接以命令方式交互使用,也可以嵌入到程序設計語言中使用。SQL語言具有功能:(1)數據定義、(2)數據查詢、(3)數據更改和(4)數據控制。MySQL提供了哪些主要數據類型?答:(1)數值類型,包括整數類型和小數類型,小數類型又包括浮點數類型和定點數類型。(2)字符串類型,包括文本字符串和二進制字符串、ENUM類型、SET類型。(3)日期時間類型。SMALLINT類型定義的數據的取值范圍是多少?答:存儲從–32768到32767范圍的整數,無符號整數的范圍是0到65535數。定點小數類型DECIMAL(M,D)中的M和D的含義分別是什么?答:M為精度,指定可以存儲的十進制數字的最大位數,包括整數部分和小數部分。D為小數位數,指定小數點右邊可以存儲的十進制數字的最大位數。CHAR(M)、TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT的取值范圍分別是多少?答:CHAR(M):M取值范圍為0~255。TINYTEXT:短文本字符串,最大可存儲28-1字節。TEXT:長文本字符串,最大可存儲216-1字節。MEDIUMTEXT:中等長度文本字符串,最大可存儲224-1字節。LONGTEXT:極大文本字符串,最大可存儲232-1字節。ENUM類型和SET類型的區別是什么?答:SET與ENUM的區別:SET一次可以選取多個成員,而ENUM一次只能選一個。常見的完整性約束有哪些?各約束的作用是什么?答:(1)PRIMARYKEY:主鍵約束。指定本列為主鍵。(2)FOREIGNKEY:外鍵約束。定義本列為引用其他表的外鍵。(3)NOTNULL:非空約束。限制列取值非空。(4)UNIQUE:唯一值約束。限制列取值不能重復。(5)DEFAULT:默認值約束。指定列的默認值。(6)AUTO_INCREMENT:自增約束。設置自增屬性。(7)CHECK:列取值范圍約束。限制列的取值范圍。數據操作語句一、選擇題當關系R和S進行連接操作時,如果R中的元組不滿足連接條件,在連接結果中也會將這些記錄保留下來的操作是A.左外連接 B.右外連接C.內連接 D.自連接答:A設在某SELECT語句的WHERE子句中,需要對return_time列的空值進行處理。下列關于空值的操作,錯誤的是 return_timeISNOTNULL return_timeISNULLreturn_time=NULL NOT(return_timeISNULL)答:C 下列聚合函數中,不忽略空值的是 A.SUM(列名) B.MAX(列名)C.AVG(列名) D.COUNT(*)答:D下列查詢語句中,錯誤的是 SELECTSID,COUNT(*)FROMborrowGROUPBYSID;SELECTSIDFROMborrowGROUPBYSIDWHERECOUNT(*)>3;SELECTSIDFROMborrowGROUPBYSIDHAVINGCOUNT(*)>3;SELECTSIDFROMborrowGROUPBYSID;答:B現要利用books表查詢價格最低的圖書書名和價格。下列實現此查詢要求的語句中,正確的是SELECTbname,priceFROMbooksORDERBYpriceDESCLIMIT1;SELECTbname,priceFROMbooksORDERBYpriceASCLIMIT1;SELECTbname,priceFROMbooksWHEREprice=MIN(price);SELECTbname,priceFROMbooksLIMIT1;答:B針對books表中的price列,若在查詢圖書價格時,希望對價格進行分類。下列CASE表達式正確的是CASEpriceWHEN>=100THEN'很貴'WHEN80~99.99THEN'比較貴'WHEN50~79.99THEN'適中'WHEN30~49.99THEN'比較便宜'ELSE'很便宜'ENDCASEpriceWHEN>=100THENprice='很貴'WHEN80~99.99THENprice='比較貴'WHEN50~79.99THENprice='適中'WHEN30~49.99THENprice='比較便宜'ELSE'很便宜'ENDCASEWHENprice>=100THENprice='很貴'WHENpricebetween80and99.99THENGrade='比較貴'WHENpricebetween50and79.99THENGrade='適中'WHENpricebetween30and49.99THENGrade='比較便宜'ELSEprice='很便宜'ENDCASEWHENprice>=100THEN'很貴'WHENpricebetween80and99.99THEN'比較貴'WHENpricebetween50and79.99THEN'適中'WHENpricebetween30and49.99THEN'比較便宜'ELSE'很便宜'END答:D下列SQL語句中,用于更改表數據的語句是 A.ALTER B.SELECTC.UPDATE D.INSERT答:C設有Teachers表,該表的定義如下:CREATETABLETeachers(TnoCHAR(8)PRIMARYKEY,TnameNVARCHAR(10)NOTNULL,AgeTINYINTCHECK(AgeBETWEEN25AND65));下列插入語句中,不能正確執行的是 A.INSERTINTOTeachersVALUES('T100','張三',NULL);B.INSERTINTOTeachers(Tno,Tname,Age)VALUES('T100','張三',30);C.INSERTINTOTeachers(Tno,Tname)VALUES('T100','張三');D.INSERTINTOTeachersVALUES('T100','張三');答:D下列刪除計算機學院學生的借書記錄的語句,正確的是 DELETEFROMborrowJOINstudentsONstudents.SID=borrow.SIDWHEREcollege='計算機學院';DELETEborrowFROMborrowJOINstudentsONborrow.SID=students.SIDWHEREcollege='計算機學院';C.DELETEFROMstudentsWHEREcollege='計算機學院';D.DELETEFROMborrowWHEREcollege='計算機學院';答:B下列條件子句中,能夠篩選出Col列中以“a”開始的所有數據的是A.WHERECol='a%'B.WHERECollike'a%'C.WHERECol='a_'D.WHEREColLIKE'a_'答:B二、簡答題聚合函數中,在統計時忽略NULL的聚合函數有哪些?答:COUNT(*)HAVING子句的作用是什么?答:用于對分組后的統計結果再進行篩選。“%”和“_”通配符的作用分別是什么?答:“%”用于匹配任意一個字符。“_”用于匹配0到多個字符。“WHEREpriceBETWEEN20AND30”子句,查找的price范圍是多少?答:大于等于20,并且小于等于30“WHEREcollegeNOTIN('CS','IS','MA')”,查找的數據是什么?答:查找college不是'CS',也不是'IS',也不是'MA'的學院。自連接與普通內連接的主要區別是什么?答:自連接是一種特殊的內連接,它是相互連接的表在物理上為同一張表,普通內連接是相互連接的表在物理上是兩張表。外連接與內連接的主要區別是什么?答:外連接是只限制一張表中的數據必須滿足連接條件,而另一張表中的數據不必滿足連接條件。內連接是只有兩張表中的數據都滿足連接條件的元組才能作為結果輸出,相關子查詢與嵌套子查詢在執行上的主要區別是什么?答:相關子查詢是是先執行外層查詢,再執行內層查詢,且外層查詢與內層查詢有關聯關系。嵌套子查詢是先執行子查詢,利用子查詢的結果再執行外層查詢,外層查詢與內層查詢之間沒有關聯關系。對統計結果的篩選應該使用哪個子句完成?答:havingLIMIT子句的作用是什么?答:限制查詢結果集的行數。第6章索引和視圖選擇題1.下列關于索引的說法,正確的是 A.只要建立了索引就可以加快數據的查詢效率B.在一個表上可以創建多個聚集索引C.在一個表上可以建立多個唯一的非聚集索引D.索引會影響數據插入和更新的執行效率,但不會影響刪除數據的執行效率答案:C2.下面適宜建立非聚集索引的是A.經常作為查詢條件的列B.包含大量重復值的列C.主鍵列D.經常進行更改操作的列答案:A3.“CREATEUNIQUEINDEXIDX1ONT(C1,C2)”語句的作用是A.在C1和C2列上分別建立一個唯一聚集索引B.在C1和C2列上分別建立一個唯一非聚集索引C.在C1和C2列的組合上建立一個唯一聚集索引D.在C1和C2列的組合上建立一個唯一非聚集索引答案:D4.以下不是MySQL索引類型的是A.主鍵索引B.普通索引C.外鍵索引D.唯一索引答案:C5.DROPINDEX語句的作用是A.刪除索引B.更新索引C.建立索引D.修改索引答案:A6.下列關于視圖的說法,正確的是A.視圖與基本表一樣,其數據也被保存到數據庫中B.對視圖的操作最終都轉換為對基本表的操作C.視圖的數據源只能是基本表D.所有視圖都可以實現對數據的增、刪、改、查操作答案:B7.下列關于視圖的說法,正確的是A.視圖是真實存在的表,并保存了待查詢的數據B.視圖是真實存在的表,只有部分數據來源于基本表C.視圖是虛擬表,其數據只能從一個基本表中導出D.視圖是虛擬表,其數據可以從一個或者多個基本表或視圖導出答案:D8.下列關于在視圖的定義語句中可以包含的語句的說法,正確的是A.只能包含數據查詢語句B.可以包含數據增、刪、改、查語句C.可以包含創建表的語句D.所有語句都可以答案:A9.下列關于視圖的說法,正確的是 A.通過視圖可以提高數據查詢效率B.視圖提供了數據的邏輯獨立性C.視圖只能建立在基本表上D.定義視圖的語句可以包含數據更改語句答案:B二、簡答題索引的作用是什么?答:在數據庫中建立索引是為了加快數據的查詢速度。索引分為哪幾種類型?分別是什么?它們的主要區別是什么?答:索引分為兩種類型,分別是聚集索引和非聚集索引。聚集索引和非聚集索引有兩個主要區別:(1)數據按聚集索引關鍵字的值進行物理排序和存儲,而不按非聚集索引關鍵字值的順序排序和存儲。(2)聚集索引的葉級節點是存放數據的數據頁,而非聚集索引的葉級節點不是存放數據的數據頁。在一個表上可以創建幾個聚集索引?可以創建多個非聚集索引嗎?答:在一個表上只可以創建一個聚集索引。可以創建多個非聚集索引。聚集索引一定是唯一性索引,是否正確?反之呢?答:正確。唯一性索引不一定是聚集索引。在建立聚集索引時,數據庫管理系統是真正將數據按聚集索引列進行物理排序。是否正確?答:正確。在建立非聚集索引時,數據庫管理系統并不對數據進行物理排序。是否正確?答:正確。不管對表進行什么類型的操作,在表上建立的索引越多越能提高數據操作效率。是否正確?答:不正確。索引通常情況下可以提高哪個數據操作的效率?答:索引通常情況下可以提高數據查詢的效率。視圖的作用是什么?答:(1)簡化數據查詢語句。(2)使用戶能從多角度看待同一數據。(3)提高了數據的安全性。(4)提供了一定程度的邏輯獨立性。10.使用視圖可以加快數據的查詢速度,這句話對嗎?為什么?答:不對。對視圖的查詢還需轉換成對基本表的查詢,并不能加快數據的查詢速度。11.視圖與表的區別是什么?答:視圖是由從數據庫的基本表中選取出來的數據組成的邏輯窗口,是基本表的部分行和列數據的組合。它與基本表不同的是,視圖是一個虛表。數據庫中只存儲視圖的定義,而不存儲視圖所包含的數據,這些數據仍存放在原來的基本表中。第7章SQL擴展編程選擇題1.下列不屬于存儲過程作用的是A.能夠根據數據更改操作自動執行B.能夠實現模塊化程序設計C.可以減少網絡流量D.可作為安全機制使用答案:A2.下列有關存儲過程的敘述,錯誤的是A.MySQL允許在存儲過程創建時引用一個不存在的對象B.存儲過程可以帶多個輸入參數,也可以帶多個輸出參數C.使用存儲過程可以減少網絡流量D.在一個存儲過程中不可以調用其他存儲過程答案:D3.下列不能引發觸發器執行的操作是A.INSERTB.DELETEC.SELECTD.UPDATE答案:C4.MySQL為觸發器創建的兩個臨時表是A.max

minB.avg

sumC.int

charD.old

new答案:D5.下列說法錯誤的是A.觸發器觸發時機有BEFORE、AFTER兩種B.對于同一張數據表,只能定義一個觸發器C.由INSERT操作引發的觸發器,NEW臨時表用來保存新插入的數據D.OLD臨時表中的數據是只讀的,不能被更新答案:B二、簡答題存儲過程的作用是什么?答:(1)允許模塊化程序設計(2)改善性能(3)減少網絡流量(4)可作為安全機制使用存儲過程和函數有哪些共同點和不同點?答:相同點:都是數據庫系統中一組為了完成特定功能的SQL語句塊,它將常用或復雜的工作預先用SQL語句編寫腳本并指定名稱存儲在數據庫服務器中,可以包含控制語句,有很強的靈活性,可以完成復雜的數據操作功能。不同點:(1)自定義函數不能有輸出參數,這是因為自定義函數自身就是輸出參數;而存儲過程可以有輸出參數。(2)自定義函數的函數體中必須包含一條RETURN語句,而存儲過程不需要。(3)自定義函數是在SELECT語句中調用執行的,而存儲過程是通過CALL語句調用執行的。存儲過程的參數有哪幾種形式?答:in:輸入參數(默認情況下為in參數),該參數的值在調用時指定。out:輸出參數,存儲過程運行過程中可以對該類參數賦值,起到將計算結果返回給調用程序的作用。inout:既是輸入參數,又是輸出參數,該參數的值可在調用時指定,又可以將計算結果返回給調用程序。存儲過程和函數如何將結果返回給調用者?答:存儲過程:通過OUT或INOUT參數返回結果。函數:通過RETURN語句返回單個值。什么是觸發器?觸發器和存儲過程主要區別是什么?答:觸發器是存儲數據庫中的一段完成特定功能的SQL語句集合。觸發器和存儲過程主要區別是觸發器是由對數據進行的更改操作觸發自動執行,這些操作包括INSERT、UPDATE、DELETE等。觸發器的主要作用是什么?答:當對數據表中的數據執行插入、更新和刪除操作,需要自動執行一些數據庫邏輯時,可以使用觸發器來實現。觸發器通常用于保證業務規則和復雜數據完整性。三、編程題請根據books、students和borrow表,編寫實現下列要求的代碼。定義變量num,統計所有圖書的平均價格,將值賦給變量num并顯示num的值。答:--定義變量并計算平均價格SET@num=(SELECTAVG(price)FROMbooks);--顯示變量值SELECT@numASaverage_price;定義存儲過程,輸入參數是圖書類型,求該類型的圖書總數量,寫出定義語句和調用語句。答:--定義存儲過程DELIMITER//CREATEPROCEDUREGetBookCountByType(INbook_typeVARCHAR(50))BEGINSELECTCOUNT(*)AStotal_countFROMbooksWHEREtype=book_type;END//DELIMITER;--調用存儲過程CALLGetBookCountByType('小說');定義存儲過程,輸入參數是出版社、出版年份,輸出參數是圖書數量,統計指定年份該出版社出版的圖書數量,寫出存儲過程定義語句和調用語句。答:--定義存儲過程DELIMITER//CREATEPROCEDUREGetBookCountByPublisherAndYear(INpublisher_nameVARCHAR(100),INpublish_yearINT,OUTbook_countINT)BEGINSELECTCOUNT(*)INTObook_countFROMbooksWHEREpress=publisher_nameANDYEAR(publish_date)=publish_year;END//DELIMITER;--調用存儲過程CALLGetBookCountByPublisherAndYear('清華大學出版社',2022,@count);SELECT@countASbook_count;定義函數,輸入參數是出生日期,返回值是學生年齡,寫出函數定義語句和在SELECT語句調用此函數查詢學生的姓名、年齡的語句。答:--定義函數DELIMITER//CREATEFUNCTIONCalculateAge(birth_dateDATE)RETURNSINTBEGINRETURNYEAR(CURDATE())-YEAR(birth_date)-(DATE_FORMAT(CURDATE(),'%m%d')<DATE_FORMAT(birth_date,'%m%d'));END//DELIMITER;--調用函數查詢學生姓名和年齡SELECTname,CalculateAge(birth_date)ASageFROMstudents;查看題目3定義的存儲過程的信息。答:SHOWPROCEDUREGetBookCountByPublisherAndYear;刪除題目3定義的存儲過程。答:DROPPROCEDUREGetBookCountByPublisherAndYear;定義觸發器,在students表中插入新生信息前判斷:如果新生年齡小于15歲或者大于60歲,則提示年齡輸入錯誤。答:DELIMITER//CREATETRIGGERBeforeInsertStudentBEFOREINSERTONstudentsFOREACHROWBEGINDECLAREstudent_ageINT;SETstudent_age=YEAR(CURDATE())-YEAR(NEW.birth_date)-(DATE_FORMAT(CURDATE(),'%m%d')<DATE_FORMAT(NEW.birth_date,'%m%d'));IFstudent_age<15ORstudent_age>60THENSIGNALSQLSTATE'45000'SETMESSAGE_TEXT='年齡輸入錯誤:年齡必須介于15到60歲之間';ENDIF;END//DELIMITER;為books表增加一個新列,列名:“狀態”,類型為字符串類型。定義觸發器,每當有圖書被借出,判斷該圖書庫存,如果庫存為0,則將books表的“狀態”列設為“已全部借出”。答:--增加新列ALTERTABLEbooksADDCOLUMN`狀態`VARCHAR(50);--定義觸發器DELIMITER//CREATETRIGGERAfterBorrowBookAFTERINSERTONborrowFOREACHROWBEGINDECLAREcurrent_stockINT;SELECTstockINTOcurrent_stockFROMbooksWHEREid=NEW.book_id;IFcurrent_stock=0THENUPDATEbooksSET`狀態`='已全部借出'WHEREid=NEW.book_id;ENDIF;END//DELIMITER;第8章關系規范化理論選擇題1.對關系模式進行規范化的主要目的是 A.提高數據操作效率 B.維護數據的一致性C.加強數據的安全性 D.為用戶提供更快捷的數據操作答案:B2.關系模式中的插入異常是指A.插入的數據違反了實體完整性約束B.插入的數據違反了用戶定義的完整性約束C.插入了不該插入的數據D.應該被插入的數據不能被插入答案:D3.關系模型中的關系模式至少是A.1NF B.2NFC.3NF D.BCNF答案:A4.如果有函數依賴X→Y,并且對X的任意真子集X',都有X'Y,則稱A.X完全函數依賴于Y B.X部分函數依賴于YC.Y完全函數依賴于X D.Y部分函數依賴于X答案:C5.如果有函數依賴X→Y,并且對X的某個真子集X',有X'→Y成立,則稱A.Y完全函數依賴于X B.Y部分函數依賴于XC.X完全函數依賴于Y D.X部分函數依賴于Y答案:B6.關系模式1NF是指關系模式中不存在A.傳遞函數依賴 B.部分函數依賴C.非主屬性 D.復合屬性答案:D7.設F是某關系模式的極小函數依賴集。下列關于F的說法,錯誤的是A.F中每個函數依賴的右部都必須是單個屬性B.F中每個函數依賴的左部都必須是單個屬性C.F中不能有冗余的函數依賴D.F中每個函數依賴的左部不能有冗余屬性答案:B8.有關系模式:學生(學號,姓名,所在系,系主任),設一個系只有一個系主任,則該關系模式至少屬于 A.第一范式 B.第二范式C.第三范式 D.BC范式答案:B9.設有關系模式R(X,Y,Z),其F={Y→Z,Y→X,X→YZ},則該關系模式至少屬于 A.第一范式 B.第二范式C.第三范式 D.BC范式答案:D10.下列關于關系模式與范式的說法,錯誤的是 A.任何一個只包含兩個屬性的關系模式一定屬于3NFB.任何一個只包含兩個屬性的關系模式一定屬于BCNFC.任何一個只包含兩個屬性的關系模式一定屬于2NFD.任何一個只包含三個屬性的關系模式一定屬于3NF答案:D11.若關系模式R(U,F)屬于3NF,則RA.一定屬于BCNFB.一定不屬于BCNFC.仍可能存在插入和刪除異常D.一定消除了插入的刪除異常答案:C12.有關系模式:借書(書號,書名,庫存量,讀者號,借書日期,還書日期),設一個讀者可以多次借閱同一本書,但對一種書(用書號唯一標識)不能同時借多本。該關系模式的主鍵是 A.(書號,讀者號,借書日期) B.(書號,讀者號)C.(書號) D.(讀者號)答案:A二、簡答題1.關系規范化中的操作異常有哪些?是由什么引起的?解決的辦法是什么?答:關系規范化中的操作異常有:更新異常、插入異常和刪除異常。產生的原因:關系模式的設計問題,也就是關系模式中屬性之間的依賴關系存在不好的性質。解決辦法:關系規范化。第一范式、第二范式和第三范式的關系的定義是什么?答:第一范式:不包含非原子項屬性的關系都是第一范式(1NF)的關系。第二范式:如果R(U,F)∈1NF,并且R中的每個非主屬性都完全函數依賴于主鍵,則R(U,F)∈2NF。第三范式:如果R(U,F)∈2NF,并且所有的非主屬性都不傳遞依賴于主鍵,則R(U,F)∈3NF。什么是部分函數依賴?什么是傳遞函數依賴?請舉例說明。答:如果X→Y,并且對于X的某個真子集X',如果有X'Y成立,則稱Y部分函數依賴于X,記作XY。例如有關系模式:參賽情況(競賽編號,學號,獲獎情況,姓名),主鍵為(競賽編號,學號),由于:學號→姓名,可得:姓名部分函數依賴于(競賽編號,學號)。如果X→Y(非平凡函數依賴,并且YX)、Y→Z,則稱Z傳遞函數依賴于X。例如有關系模式:科研項目(項目編號,項目名稱,負責人,負責人郵箱),主鍵為項目編號,則有如下函數依賴:項目編號→負責人,負責人→負責人郵箱,則有負責人郵箱傳遞依賴于項目編號。第三范式的關系模式是否一定不包含部分函數依賴關系?答:是的,第三范式(3NF)的關系模式一定不包含部分函數依賴關系。其語義為:設有關系模式:學生(學號,姓名,所在系,班號,班主任,系主任),其語義為:一名學生只在一個系的一個班學習,一個系只有一名系主任,一個班只有一名班主任,一個系可以有多個班。請指出此關系模式的候選鍵,并判斷此關系模式是第幾范式的;若不是第三范式的,請將其規范化為第三范式關系模式,并指出分解后的每個關系模式的主鍵和外鍵。答:系主任設有關系模式:授課(課程號,課程名,學分,授課教師號,教師名,授課時數),其語義為:一門課程(由課程號決定)有確定的課程名和學分,每名教師(由教師號決定)有確定的教師名,每門課程可以由多名教師講授,每名教師也可以講授多門課程,每名教師對每門課程有確定的授課時數。指出此關系模式的候選鍵,并判斷此關系模式屬于第幾范式;若不屬于第三范式,請將其規范化為第三范式關系模式,并指出分解后的每個關系模式的主鍵和外鍵。答:指出下列各關系模式屬于第幾范式:(1)R1=({A,B,C,D},{B→D,AB→C})(2)R2=({A,B,C,D,E},{AB→CE,E→AB,C→D})(3)R3=({A,B,C,D},{A→C,D→B})(4)R4=({A,B,C,D},{A→C,CD→B})答:(1)屬于1NF,不滿足2NF(2)屬于2NF,不滿足3NF(3)屬于3NF(4)屬于2NF,不滿足3NF設有關系模式R(W,X,Y,Z),F={X→Z,WX→Y},該關系模式屬于第幾范式,請說明理由。11.設有關系模式R(A,B,C,D),F={A→C,C→A,B→AC,D→AC}(1)求B+,(AD)+。(2)求R的全部候選鍵,判斷R屬于第幾范式。(3)求F的極小函數依賴集Fmin。答:(1)B?={A,B,C}(AD)+={A,C,D}(2)由:(BD)?={A,B,C,D}=R;得出:BD是候選鍵。由B→AC(即A部分依賴于候選鍵{B,D}的子集{B},得出R屬于1NF,不滿足2NF(存在部分依賴)。(3)步驟1:分解右部為單屬性,F={A→C,C→A,B→A,B→C,D→A,D→C}步驟2:消除冗余函數依賴檢查A→C:計算A?去除A→C:A?={A}(不包含C,因此A→C不可去除)檢查C→A:計算C?去除C→A:C?={C}(不包含A,因此C→A不可去除)檢查B→A計算B?去除B→A:B?={B,C}(不包含A,因此B→A不可去除)檢查B→C:計算B?去除B→C:B?={B,A,C}(已包含C,因此B→C冗余,可去除)檢查D→A:計算D?去除D→A:D?={D,C}(不包含A,因此D→A不可去除)檢查D→C:計算D?去除D→C:D?={D,A,C}(已包含C,因此D→C冗余,可去除)步驟3:消除冗余屬性(左部簡化):所有依賴的左部已是單屬性或最小化,無需進一步簡化。最終F???={A→C,C→A,B→A,D→A}第9章數據庫設計選擇題在數據庫設計中,將ER圖轉換為關系數據模型是下述哪個階段完成的工作A.需求分析 B.概念結構設計C.邏輯結構設計 D.物理結構設計答案:C2.在進行數據庫邏輯結構設計時,不屬于邏輯設計應遵守的原則的是A.盡可能避免插入異常 B.盡可能避免刪除異常C.盡可能避免數據冗余 D.盡可能避免多表連接操作答案:D3.在將ER圖轉換為關系模型時,一般是將m:n聯系轉換成一個獨立的關系模式。下列關于這種聯系產生的關系模式的主鍵的說法,正確的是 A.只需包含m端關系模式的主鍵即可B.只需包含n端關系模式的主鍵即可C.至少包含m端和n端關系模式的主鍵D.必須添加新的屬性作為主鍵答案:C4.數據流圖是從“數據”和“處理”兩方面來表達數據處理的一種圖形化表示方法,該方法主要用在數據庫設計的 A.需求分析階段 B.概念結構設計階段C.邏輯結構設計階段 D.物理結構設計階段答案:A5.在將局部ER圖合并為全局ER圖時,可能會產生一些沖突。下列沖突中不屬于合并ER圖沖突的是 A.結構沖突 B.語法沖突C.屬性沖突 D.命名沖突答案:B6.一個銀行營業所可以有多個客戶,一個客戶也可以在多個營業所進行存取款業務,則客戶和銀行營業所之間的聯系是 A.一對一 B.一對多C.多對一 D.多對多答案:D7.設實體A與實體B之間是一對多聯系。下列進行的邏輯結構設計方法中,最合理的是A.為實體A和實體B分別設計一個關系模式,且外鍵放在實體B的關系模式中B.為實體A和實體B分別設計一個關系模式,且外鍵放在實體A的關系模式中C.將實體A和實體B設計為一個關系模式,該關系模式包含兩個實體的全部屬性D.分別為實體A、實體B和它們之間的聯系設計一個關系模式,外鍵在聯系對應的關系模式中答案:A8.設有描述學生借書情況的關系模式:借書(書號,讀者號,借書日期,還書日期),設一個讀者可在不同日期多次借閱同一本書,但不能在同一天對同一本書借閱多次。該關系模式的主鍵是 A.書號 B.(書號,讀者號)C.(書號,讀者號,借書日期) D.(書號,讀者號,借書日期,還書日期)答案:C9.在數據庫設計中,進行外模式設計是下列哪個階段完成的工作A.需求分析階段 B.概念結構設計階段C.邏輯結構設計階段 D.物理結構設計階段答案:C10.數據庫物理結構設計完成后就進入到數據庫實施階段。下列不屬于數據庫實施階段工作的是A.調試應用程序 B.試運行應用程序C.加載數據 D.擴充系統功能答案:D二、簡答題試說明數據庫設計的特點。答:(1)綜合性:數據庫設計涉及的范圍很廣,包含了計算機專業知識及業務系統的專業知識;同時它還要解決技術及非技術兩方面的問題。(2)結構設計與行為設計相分離。簡述數據庫的設計過程。答:數據庫設計分為六個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、數據庫實施、數據庫運行和維護數據庫結構設計包含哪幾個過程?答:數據庫結構設計包括概念結構設計、邏輯結構設計和物理結構設計。什么是數據庫的邏輯結構設計?簡述其設計步驟。答:邏輯結構設計的任務是把在概念結構設計階段設計好的基本ER模型轉換為具體的數據庫管理系統支持的組織層數據模型,也就是導出特定的DBMS可以處理的數據庫邏輯結構。關系模型的邏輯結構設計一般包含三個步驟:(1)將ER模型轉換為關系數據模型。(2)對關系數據模型進行優化。(3)設計面向用戶的外模式。把ER模型轉換為關系模式的轉換規則有哪些?答:轉換的一般規則如下:一個實體轉換為一個關系模式。實體的屬性就是關系的屬性,實體的標識屬性就是關系的主鍵。對于實體間的聯系有以下不同的情況:1∶1聯系:一般情況下是與任意一端實體所對應的關系模式合并,并且在該關系模式中加入另一個實體的標識屬性和聯系本身的屬性,同時該實體的標識屬性作為該關系模式的外鍵。1∶n聯系:一般是與n端實體所對應的關系模式合并,并且在該關系模式中加入1端實體的標識屬性以及聯系本身的屬性,并將1端實體的標識屬性作為該關系模式的外鍵。m∶n聯系:必須轉換為一個獨立的關系模式,且與該聯系相連的各實體的標識屬性以及聯系本身的屬性均轉換為此關系模式的屬性,且該關系模式的主鍵包含各實體的標識屬性,外鍵為各實體的標識屬性。三個或三個以上實體間的一個多元聯系也轉換為一個關系模式,與該多元聯系相連的各實體的標識屬性以及聯系本身的屬性均轉換為此關系模式的屬性,而此關系模式的主鍵包含各實體的標識屬性,外鍵為各相關實體的標識屬性。數據模型的優化包含哪些方法?答:數據模型的優化方法有:確定各屬性間的函數依賴關系。根據需求分析階段得出的語義,分別寫出每個關系模式的各屬性之間的函數依賴以及不同關系模式中各屬性之間的函數依賴關系。對各個關系模式之間的函數依賴進行極小化處理,消除冗余的聯系。判斷每個關系模式的范式,根據實際需要確定最合適的范式。根據需求分析階段得到的處理要求,分析這些模式對于這樣的應用環境是否合適,確定是否要對某些模式進行分解或合并。對關系模式進行必要的分解,以提高數據的操作效率和存儲空間的利用率。將下列給定的ER圖轉換為符合3NF的關系模式,并指出每個關系模式的主鍵和外鍵。(1)圖9-44所示為描述圖書、讀者以及讀者借閱圖書的ER圖。圖9-44圖書借閱ER圖答:圖書(書號,書名,出版日期,作者號),主鍵:書號讀者(讀者號,讀者名,聯系電話,所在單位),主鍵:讀者號借閱(書號,讀者號,借書日期,還書日期),主鍵:(書號,讀者號,借書日期);外鍵:書號,引用圖書表的書號;讀者號,引用讀者表的讀者號(2)圖9-45所示為描述商店從生產廠家訂購商品的ER圖。圖9-45商品訂購ER圖答:商店(商店編號,商店名,聯系電話),主鍵:商店編號廠家(廠家號,聯系地址,聯系電話),主鍵:廠家編號商品(商品編號,商品名稱,庫存量,商品分類),主鍵:商品號訂購(商店編號,廠家號,商品編號,訂購日期,訂購數量),主鍵:(商店編號,廠家號,商品編號,訂購日期);外鍵:商店編號,引用商店表的商店編號;廠家號,引用廠家表的廠家號;商品編號,引用商品表的商品編號(3)圖9-46為描述學生參加學校社團的ER圖。圖9-46學生參加社團ER圖答:學生(學號,姓名,性別,專業,社團號,參加日期),主鍵:學號;外鍵:社團號,引用社團表的社團號社團(社團號,社團名,電話,性質),主鍵:社團號根據下列描述,畫出相應的ER圖,并將ER圖轉換為滿足3NF的關系模式,指明每個關系模式的主鍵和外鍵。現要實現一個顧客購物系統,需求描述如下:一個顧客可去多個商店購物,一個商店可有多名顧客購物;每個顧客一次可購買多種商品,但對同一種商品不能同時購買多次,但在不同時間可購買多次;每種商品可銷售給不同的顧客。對顧客的每次購物都需要記錄其購物的商店、購買商品的數量和購買日期。需要記錄的“商店”信息包括:商店編號、商店名、地址、聯系電話;需要記錄的顧客信息包括:顧客號、姓名、住址、身份證號、性別。需要記錄的商品信息包括:商品號、商品名、進貨價格、進貨日期、銷售價格。 答:系統ER圖滿足3NF的關系模式:商店(商店編號,商店名,地址,聯系電話),主鍵:商店編號顧客(顧客號,姓名,住址,身份證號、性別),主鍵:顧客號商品(商品號、商品名、進貨價格、進貨日期、銷售價格),主鍵:商品號購買(顧客號,商店編號,商品編號,購買日期,購買數量),主鍵:(顧客號,商店編號,商品編號,購買日期);外鍵:顧客號,引用顧客表的顧客號;商店編號,引用商店表的商店編號;商品編號,引用商品表的商品編號。根據下列描述,畫出相應的ER圖,并將ER圖轉換為滿足3NF的關系模式,指明每個關系模式的主鍵和外鍵。某大學為了提升學生的創新創業能力,現要開發一個大學生創新創業(簡稱:大創)項目管理系統,用來管理大創項目以及指導項目的教師和參與的學生,需求如下:每個申報的大創項目有:項目編號、項目題目、預期成果、開始日期、結束日期等信息,其中項目編號是唯一的。每個大創項目有且僅有一位指導教師,但是一個教師可以指導多項大創項目。該大創項目管理系統需要記錄的教師信息有:教師工號、姓名、職稱。每個項目可以有多名學生參與,一個學生可以參與多個大創項目。該大創項目管理系統需要記錄的學生信息有:學號、姓名、聯系電話。申報的項目,經過評審,將項目分為不同等級,包括:國家級項目、北京市級項目、校級項目。答:系統ER圖滿足3NF的關系模式:教師(教師工號,姓名,職稱),主鍵:教師工號學生(學號、姓名、聯系電話),主鍵:學號大創項目(項目編號、項目題目、預期成果、開始日期、結束日期,指導教師工號,項目等級),主鍵:項目編號;外鍵:指導教師工號,引用教師表的教師工號參與(學號,項目編號),主鍵(學號,項目編號);外鍵:學號,引用學生表的學號;項目編號,應用大創項目表的項目編號。第9章數據庫設計選擇題在數據庫設計中,將ER圖轉換為關系數據模型是下述哪個階段完成的工作A.需求分析 B.概念結構設計C.邏輯結構設計 D.物理結構設計答案:C2.在進行數據庫邏輯結構設計時,不屬于邏輯設計應遵守的原則的是A.盡可能避免插入異常 B.盡可能避免刪除異常C.盡可能避免數據冗余 D.盡可能避免多表連接操作答案:D3.在將ER圖轉換為關系模型時,一般是將m:n聯系轉換成一個獨立的關系模式。下列關于這種聯系產生的關系模式的主鍵的說法,正確的是 A.只需包含m端關系模式的主鍵即可B.只需包含n端關系模式的主鍵即可C.至少包含m端和n端關系模式的主鍵D.必須添加新的屬性作為主鍵答案:C4.數據流圖是從“數據”和“處理”兩方面來表達數據處理的一種圖形化表示方法,該方法主要用在數據庫設計的 A.需求分析階段 B.概念結構設計階段C.邏輯結構設計階段 D.物理結構設計階段答案:A5.在將局部ER圖合并為全局ER圖時,可能會產生一些沖突。下列沖突中不屬于合并ER圖沖突的是 A.結構沖突 B.語法沖突C.屬性沖突 D.命名沖突答案:B6.一個銀行營業所可以有多個客戶,一個客戶也可以在多個營業所進行存取款業務,則客戶和銀行營業所之間的聯系是 A.一對一 B.一對多C.多對一 D.多對多答案:D7.設實體A與實體B之間是一對多聯系。下列進行的邏輯結構設計方法中,最合理的是A.為實體A和實體B分別設計一個關系模式,且外鍵放在實體B的關系模式中B.為實體A和實體B分別設計一個關系模式,且外鍵放在實體A的關系模式中C.將實體A和實體B設計為一個關系模式,該關系模式包含兩個實體的全部屬性D.分別為實體A、實體B和它們之間的聯系設計一個關系模式,外鍵在聯系對應的關系模式中答案:A8.設有描述學生借書情況的關系模式:借書(書號,讀者號,借書日期,還書日期),設一個讀者可在不同日期多次借閱同一本書,但不能在同一天對同一本書借閱多次。該關系模式的主鍵是 A.書號 B.(書號,讀者號)C.(書號,讀者號,借書日期) D.(書號,讀者號,借書日期,還書日期)答案:C9.在數據庫設計中,進行外模式設計是下列哪個階段完成的工作A.需求分析階段 B.概念結構設計階段C.邏輯結構設計階段 D.物理結構設計階段答案:C10.數據庫物理結構設計完成后就進入到數據庫實施階段。下列不屬于數據庫實施階段工作的是A.調試應用程序 B.試運行應用程序C.加載數據 D.擴充系統功能答案:D二、簡答題試說明數據庫設計的特點。答:(1)綜合性:數據庫設計涉及的范圍很廣,包含了計算機專業知識及業務系統的專業知識;同時它還要解決技術及非技術兩方面的問題。(2)結構設計與行為設計相分離。簡述數據庫的設計過程。答:數據庫設計分為六個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、數據庫實施、數據庫運行和維護數據庫結構設計包含哪幾個過程?答:數據庫結構設計包括概念結構設計、邏輯結構設計和物理結構設計。什么是數據庫的邏輯結構設計?簡述其設計步驟。答:邏輯結構設計的任務是把在概念結構設計階段設計好的基本ER模型轉換為具體的數據庫管理系統支持的組織層數據模型,也就是導出特定的DBMS可以處理的數據庫邏輯結構。關系模型的邏輯結構設計一般包含三個步驟:(1)將ER模型轉換為關系數據模型。(2)對關系數據模型進行優化。(3)設計面向用戶的外模式。把ER模型轉換為關系模式的轉換規則有哪些?答:轉換的一般規則如下:一個實體轉換為一個關系模式。實體的屬性就是關系的屬性,實體的標識屬性就是關系的主鍵。對于實體間的聯系有以下不同的情況:1∶1聯系:一般情況下是與任意一端實體所對應的關系模式合并,并且在該關系模式中加入另一個實體的標識屬性和聯系本身的屬性,同時該實體的標識屬性作為該關系模式的外鍵。1∶n聯系:一般是與n端實體所對應的關系模式合并,并且在該關系模式中加入1端實體的標識屬性以及聯系本身的屬性,并將1端實體的標識屬性作為該關系模式的外鍵。m∶n聯系:必須轉換為一個獨立的關系模式,且與該聯系相連的各實體的標識屬性以及聯系本身的屬性均轉換為此關系模式的屬性,且該關系模式的主鍵包含各實體的標識屬性,外鍵為各實體的標識屬性。三個或三個以上實體間的一個多元聯系也轉換為一個關系模式,與該多元聯系相連的各實體的標識屬性以及聯系本身的屬性均轉換為此關系模式的屬性,而此關系模式的主鍵包含各實體的標識屬性,外鍵為各相關實體的標識屬性。數據模型的優化包含哪些方法?答:數據模型的優化方法有:確定各屬性間的函數依賴關系。根據需求分析階段得出的語義,分別寫出每個關系模式的各屬性之間的函數依賴以及不同關系模式中各屬性之間的函數依賴關系。對各個關系模式之間的函數依賴進行極小化處理,消除冗余的聯系。判斷每個關系模式的范式,根據實際需要確定最合適的范式。根據需求分析階段得到的處理要求,分析這些模式對于這樣的應用環境是否合適,確定是否要對某些模式進行分解或合并。對關系模式進行必要的分解,以提高數據的操作效率和存儲空間的利用率。將下列給定的ER圖轉換為符合3NF的關系模式,并指出每個關系模式的主鍵和外鍵。(1)圖9-44所示為描述圖書、讀者以及讀者借閱圖書的ER圖。圖9-44圖書借閱ER圖答:圖書(書號,書名,出版日期,作者號),主鍵:書號讀者(讀者號,讀者名,聯系電話,所在單位),主鍵:讀者號借閱(書號,讀者號,借書日期,還書日期),主鍵:(書號,讀者號,借書日期);外鍵:書號,引用圖書表的書號;讀者號,引用讀者表的讀者號(2)圖9-45所示為描述商店從生產廠家訂購商品的ER圖。圖9-45商品訂購ER圖答:商店(商店編號,商店名,聯系電話),主鍵:商店編號廠家(廠家號,聯系地址,聯系電話),主鍵:廠家編號商品(商品編號,商品名稱,庫存量,商品分類),主鍵:商品號訂購(商店編號,廠家號,商品編號,訂購日期,訂購數量),主鍵:(商店編號,廠家號,商品編號,訂購日期);外鍵:商店編號,引用商店表的商店編號;廠家號,引用廠家表的廠家號;商品編號,引用商品表的商品編號(3)圖9-46為描述學生參加學校社團的ER圖。圖9-46學生參加社團ER圖答:學生(學號,姓名,性別,專業,社團號,參加日期),主鍵:學號;外鍵:社團號,引用社團表的社團號社團(社團號,社團名,電話,性質),主鍵:社團號根據下列描述,畫出相應的ER圖,并將ER圖轉換為滿足3NF的關系模式,指明每個關系模式的主鍵和外鍵。現要實現一個顧客購物系統,需求描述如下:一個顧客可去多個商店購物,一個商店可有多名顧客購物;每個顧客一次可購買多種商品,但對同一種商品不能同時購買多次,但在不同時間可購買多次;每種商品可銷售給不同的顧客。對顧客的每次購物都需要記錄其購物的商店、購買商品的數量和購買日期。需要記錄的“商店”信息包括:商店編號、商店名、地址、聯系電話;需要記錄的顧客信息包括:顧客號、姓名、住址、身份證號、性別。需要記錄的商品信息包括:商品號、商品名、進貨價格、進貨日期、銷售價格。 答:系統ER圖滿足3NF的關系模式:商店(商店編號,商店名,地址,聯系電話),主鍵:商店編號顧客(顧客號,姓名,住址,身份證號、性別),主鍵:顧客號商品(商品號、商品名、進貨價格、進貨日期、銷售價格),主鍵:商品號購買(顧客號,商店編號,商品編號,購買日期,購買數量),主鍵:(顧客號,商店編號,商品編號,購買日期);外鍵:顧客號,引用顧客表的顧客號;商店編號,引用商店表的商店編號;商品編號,引用商品表的商品編號。根據下列描述,畫出相應的ER圖,并將ER圖轉換為滿足3NF的關系模式,指明每個關系模式的主鍵和外鍵。某大學為了提升學生的創新創業能力,現要開發一個大學生創新創業(簡稱:大創)項目管理系統,用來管理大創項目以及指導項目的教師和參與的學生,需求如下:每個申報的大創項目有:項目編號、項目題目、預期成果、開始日期、結束日期等信息,其中項目編號是唯一的。每個大創項目有且僅有一位指導教師,但是一個教師可以指導多項大創項目。該大創項目管理系統需要記錄的教師信息有:教師工號、姓名、職稱。每個項目可以有多名學生參與,一個學生可以參與多個大創項目。該大創項目管理系統需要記錄的學生信息有:學號、姓名、聯系電話。申報的項目,經過評審,將項目分為不同等級,包括:國家級項目、北京市級項目、校級項目。答:系統ER圖滿足3NF的關系模式:教師(教師工號,姓名,職稱),主鍵:教師工號學生(學號、姓名、聯系電話),主鍵:學號大創項目(項目編號、項目題目、預期成果、開始日期、結束日期,指導教師工號,項目等級),主鍵:項目編號;外鍵:指導教師工號,引用教師表的教師工號參與(學號,項目編號),主鍵(學號,項目編號);外鍵:學號,引用學生表的學號;項目編號,應用大創項目表的項目編號。第10章事務與并發控制選擇題如果事務T獲得了數據項A的排他鎖,則其他事務對A A.只能讀不能寫 B.只能寫不能讀C.可以寫也可以讀 D.不能讀也不能寫答:D設事務T1和T2執行如圖10-17所示的并發操作,這種并發操作存在的問題是時間事務T1事務T2t1讀A=100,B=10t2讀A=100計算A=A*2=200寫回A=200t3計算A+B=110t4讀A=200,B=10再次計算A+B=210圖10-17并發操作A.丟失修改 B.不能重復讀C.讀臟數據 D.產生幽靈數據答:B下列不屬于事務特征的是 A.完整性 B.一致性C.隔離性 D.原子性答:A事務一旦提交,其對數據庫中數據的修改就是永久的,以后的故障不會對事務的操作結果產生任何影響。這個特性是事務的 A.原子性 B.一致性隔離性 D.持久性答:D在多個事務并發執行時,如果事務T1對數據項A的修改覆蓋了事務T2對數據項A的修改,這種現象稱為 A.丟失修改 B.讀臟數據C.不可重復讀 D.數據不一致答:A若事務T對數據項D已加了S鎖,則其他事務對數據項D A.可以加S鎖,但不能加X鎖B.可以加X鎖,但不能加S鎖C.可以加S鎖,也可以加X鎖D.不能加任何鎖答:A在數據庫管理系統的三級封鎖協議中,二級封鎖協議的加鎖要求是A.讀數據時不加鎖,寫數據是在事務開始時加X鎖,事務完成后釋放X鎖B.讀數據時加S鎖,讀完即釋放S鎖;寫數據時加X鎖,寫完即釋放X鎖C.讀數據時加S鎖,讀完即釋放S鎖;對寫數據是在事務開始時加X鎖,事務完成后釋放X鎖D.在事務開始時即對要讀、寫的數據加鎖,等事務結束后再釋放全部鎖答:C在數據庫管理系統的三級封鎖協議中,一級封鎖協議能夠解決的問題是 A.丟失修改 B.不可重復讀C.讀臟數據 D.死鎖答:A在多個事務并發執行時,如果并發控制措施不好,則可能會造成事務T1讀了事務T2的“臟”數據。這里的“臟”數據是指 A.T1回滾前的數據 B.T1回滾后的數據C.T2回滾前的數據 D.T2回滾后的數據答:C若系統中存在4個等待事務T0、T1、T2和T3,其中T0正等待被T1鎖住的數據項A1,T1正等待被T2鎖住的數據項A2,T2正等待被T3鎖住的數據項A3,T3正等待被T0鎖住的數據項A0。則此時系統所處的狀態是 A.活鎖 B.死鎖C.封鎖 D.正常答:B簡答題什么是事務?它有哪些特性?每個特性的含義是什么?答:事務是用戶定義的數據操作系列,這些操作作為一個完整的工作單元執行。一個事務內的所有語句作為一個整體,要么全部執行,要么全部不執行。事務有原子性、一致性、隔離性和持久性四個特征。原子性:事務的原子性是指事務是數據庫的邏輯工作單位,事務中的操作,要么都做,要么都不做。一致性:指事務執行的結果必須是使數據庫從一個一致性狀態變到另一個一致性狀態。隔離性:指數據庫中一個事務的執行不能被其他事務干擾。持久性:指事務一旦提交,則其對數據庫中數據的改變就是永久的,以后的操作或故障不會對事務的操作結果產生任何影響。什么是調度?它的作用是什么?答:調度是事務中的操作的執行順序,正確的調度可以保證并發事務的正確性。什么是并發控制?它的目的是什么?答:在多用戶系統中,可能同時運行著多個事務。當系統中同時有多個事務運行時,特別是當這些事務使用同一段數據時,彼此之間就有可能產生相互干擾的情況。并發控制的目的就是保證并發事務的A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論