第 1 頁:單選題 |
第 3 頁:應用題 |
第 4 頁:設計與應用題 |
三、設計與應用題(每題12分,共24分)
36[簡答題]
在進行某學校教務管理系統的數據庫設計時,數據庫設計人員設計了如下幾個關系模式:系(系號,系名),系號為主碼
學生(學號,姓名,所在系號),學號為主碼
課程(課程號,課程名,開課系號),課程號為主碼
選課(學號,課程號,選課時間),學號和課程號為主碼
開發人員在將關系模式實施到SQL Server 2008的“教務”數據庫時,使用了如下表結構定義語句:
(1)在查找原因時發現建表語句有問題。請指出問題并說明該問題是否會影響此查詢語句的執行效率。
(2)設已在“選課”表的“選課時間”列及“學生”表的“所在系號”列上建立了索引。請問這兩個索引是否能夠提高該查詢語句的執行效率?如果不能,請說明原因。
參考解析:(1)【解題思路】 本題中查詢語句的功能是得到12系全體學生在2010年1月1日后的選課情況的匯總表。在每個數據表的定義時都必須嚴格定義表中的完整性約束條件,包括主鍵的設置,否則之后會出現主鍵有相同值的情況,破壞了數據的完整性。
【參考答案】
建表時沒有設置主鍵,也沒有說明外鍵,但不會影響此查詢語句的執行效率。
(2)【解題思路】
“選課”表的“選課時間”列上建立了索引,從而能夠提高執行效率。經常出現在Where子句中的字段,特別是大表的字段,應該建立索引。索引的作用就類似于書的目錄,即會按照章節的順序排列。因此如果在一本數百頁的書里面查找某個章節位置的時候,就可以只掃描書的目錄。掃描的范圍縮了n倍,查詢的效率自然就會提高。另外,在SQL Server內存夠用的情況下,索引會被放到內存中,在內存中查找自然又會提高效率,所以必須合理利用索引。
【參考答案】
“選課”表的“選課時間”可以建立索引,從而提高了查詢效率,而“學生”表的“所在系號”建立索引不會提高查詢效率。索引的意義就是將記錄按目標關鍵字順序排列,這樣查找某個目標關鍵字的對應值的位置就縮小了查找范圍!斑x課時間”的重復率低,所以可以作為索引,而學生“所在系號”的重復率太高,則不會提高查詢效率。
37[簡答題]
已知有如下關系模式:Rl(a,b,C.,R2(c,d,A.,R3(e,f),R4(a,g),其中標下劃線的屬性是主碼。請將上述關系模式用適當的ER圖表示出來,并用下劃線標注出作為實體主碼的屬性。
參考解析:【解題思路】 ER模型和關系模式相互轉換的一般規則如下:
(1)將每一個實體類型轉換成一個關系模式,實體的屬性為關系模式的屬性。
(2)對于二元聯系,按各種情況處理,如下表格所示。
此題為關系模式轉換為實體類型,因此采用實體→關系的逆向思維解題。從模式R1和R2可知,R1和R2為一對一關系,根據這兩個模式的拆分可以確定三個實體,此處將這三個實體分別命名為A、B和C。其中A、B和C分別一一對應,且a和c分別是B和C的外鍵。從模式R1和R4可知,Rl和R4為多對一關系,由此確定實體D。從模式R3和R4可知,R3和R4為多對一關系,由此可以確定出實體E。
【參考答案】
a、c為A的候選碼,可任選其一做主碼?赏ㄟ^以下ER圖來表示:
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: