三、設計與應用題
(1)設有某簡化的網上購物系統,其ER圖如下:

該系統數據之間存在下列約束:
Ⅰ. 一個客戶(編號)可以擁有多個訂單,每個訂單僅屬于一個客戶;
Ⅱ. 一個訂單(編號)可以包含多個訂購細目,每個訂購細目只屬于一個訂單;
Ⅲ. 一種商品可以出現在多個訂購細目中,一個訂購細目只包含一種商品;
Ⅳ. 一個商品類別可以包含多種商品,一種商品只屬于一個商品類別。
① 請根據以上約束,標出ER圖中各實體集之間聯系的基數。(2分)
② 請將ER圖轉換成符合3NF的關系模式,并給出各關系模式的主碼和外碼。(4分)
③ 請修改所設計的關系模式使之支持下列功能(僅列出發生修改的關系模式)。(4分)
Ⅰ. 使客戶能方便了解每個訂購細目的處理狀態和到貨時間;
Ⅱ. 使客戶能方便查詢商品供應商的編號、名稱、所在城市、聯系電話和信譽。(限定一個供應商可以供應多種商品,一種商品只選自一個供應商)
(2)某學校的學籍管理系統實現了對學生學籍信息的管理,其中學生表結構為:學生表(學號, 姓名, 性別, 系號, 是否有學籍),此表中除學號列有索引外,其它列均無索引。
①設學籍管理系統中經常執行如下形式的操作:
SELECT*FROM學生表
WHERE姓名='張三' AND 系號='10' AND 是否有學籍='有'
系統運行中發現這類操作的效率比較低,系統工程師建議:由于查詢條件中使用了“系號”、“姓名”和“是否有學籍”三列,建議在這三個列上分別建立索引,以提高查詢效率。
請問其建議建立的三個索引是否都能提高查詢效率?請簡要說明原因。
②設學生表中有下列數據:
并且已經在學生表的姓名列上建立了一個非聚集索引(按姓名拼音升序排序)。請給出查找碼“姓名”對應的稠密索引示意圖。(4分)
(3)在SQL Server 2000中,設有教師表(教師號, 姓一名, 所在部門號, 職稱)和部門表(部門號, 部門名, 高級職稱人數)。請編寫滿足下列要求的后觸發型觸發器(設觸發器名字為tri_zc)。(10分)
每當在教師表中插入一名具有高級職稱(“教授”或“副教授”)的教師時,或者將非高級職稱教師的職稱更改為高級職稱時,均修改部門表中相應部門的高級職稱人數。(假設一次操作只插入或更改一名教師的職稱