1. 程式人生 > 資料庫 >資料庫系統概論練習2

資料庫系統概論練習2

此文轉載自:https://blog.csdn.net/mez_Blog/article/details/112292196#commentBox

一、填空題(每空 1 分,共 10 分)

 

  1. 資料模型的三要素包括:資料結構、 資料操縱 、完整性約束。
  2. 資料庫系統的三級模式和二級映像中外模式/模式映像 保證了資料與程式的邏輯獨立性。
  3. 概念模型是對資訊世界的建模,其表示方法我們常使用   E-R 圖來描述。
  4. 關係代數的五種基本查詢操作有選擇、投影、並、差、 笛卡爾積
  5. 寫出實現“ 賦權使用者 U1 對學生表(STUD) 的查詢權” 這一功能的 SQL 語句:Grant select on table STUD to U1;
  6. SQL 中建立資料庫物件使用 create 關鍵字;刪除資料庫物件使用 drop 關鍵字。
  7. 在基於日誌的資料庫資料恢復技術中, 對發生故障時沒有完成的事務應執行Undo
    操作。
  8. 查詢優化有多種方法,按照優化的層次可以分為 代數優化 和物理優化。
  9. 兩段鎖協議中,在釋放一個封鎖以後,規定事務 不再申請和獲得任何其他封鎖
  10. 在 2NF 的基礎上,消除了 傳遞函式依賴 以後的關係模式,屬於 3NF。

二、單項選擇題(每小題 2 分,共 40 分)

  1. 資料庫系統中  是資料庫全體資料的邏輯結構和特徵的描述 (B )

          A.內模式 B. 模式 C. 外模式 D.檢視

2.關於 E-R 方法中的聯絡,下列說法正確的是(A )

①聯絡必須有命名

②多個實體間也可以有聯絡

③單個實體間也可以有聯絡

④聯絡也可以有屬性

A.①②③④ B. ①③④ C. ①②③ D. ②③④

3.在資料庫物理設計階段,建立索引的目的是為了提高資料的(C )

更改效率 B. 插入效率 C. 查詢效率 D. 刪除效率

4.設關係 R、S、W 各有 10 個元組,那麼這 3 關係的自然聯接的元組個數為多少(D)

A. 10 B. 30 C.1000 D.不確定

5.一個 M 行 N 列的關係,和一個 K 行 L 列的關係進行笛卡爾積,生成目標關係的列數為

( D)

A.M*K B.M+K C.N*L D.N+L

6.在關係資料庫中,NULL 是一個特殊值,在很多資料操作中都需要對 NULL 進行特殊處理。關於 NULL,下列說法正確的是   ( B  )

A.判斷元組的某一列是否為 NULL 一般使用“=NULL”

B.NULL 在資料庫中表示尚不確定的值

C.對數值型資料,NULL 等價於 0

D.NULL 只適用於字元和數值型別

7.在檢視上不能完成的操作是(D )

A.在檢視上定義新的檢視

B. 查詢操作

C.更新操作

D. 在檢視上定義新的基本表

8.SQL 查詢中  謂詞後面只能引出子查詢(B )

A.[NOT] IN B.[NOT] EXISTS

C.[NOT]BETWEEN AND D.比較運算子

9.當關系 R(左)和 S(右)自然連線時,能夠把 S 中原該捨棄的元組保留到結果關係中的操作是(B )

A.左外連線 B.右外連線 C.外部並 D.外連線

10.違反參照完整性時的系統處理方法,不包括 (C )

A. 拒絕執行 B. 級聯操作 C. 系統自動修正 D. 設定為空

11.在資料庫設計中,將 E-R 圖轉換成關係資料模型的過程屬於(B )

A.需求分析階段 B.邏輯設計階段

C.概念設計階段 D.物理設計階段

12.E-R 圖向關係模型轉換原則中,一個 M:N 的聯絡(A)

A.轉換為一個獨立的關係模式 B. 與 M 端對應的實體關係模式合併

C.與 N 端對應的實體關係模式合併 D. 與任意一端實體關係模式合併

13. 在 ARMSTRONG 公理系統中,下列結論錯誤的是(C )

A.若 A→B, B→C 則 A→C

B.若 A→B, A→C 則 A→(B,C)

C.若 B→A, C→A 則(B,C)→A

D.若(B,C)→A 則 B→A, C→A

14.任給關係 R<U>,X 和 Y 是 U 的子集,若 X 既不函式決定 Y,又不函式依賴於 Y,則 X 與Y 間的聯絡為(D )     

A.1:1 B.1:N C.N:1 D.M:N

15.關於函式依賴,以下說法錯誤的是(C)

A.平凡的函式依賴不反映語義資訊

B.函式依賴具有傳遞性

C.函式依賴的決定部分一定要包含有碼

D.關係的碼可以函式決定關係的每一個屬性

16.若關係 R 的候選鍵都是由單屬性構成的,則 R 至少應為(B ).

A.1NF B. 2NF C. 3NF D. BCNF

17.事務的多個性質,其中不包括(B )

A.一致性 B.唯一性 C 原子性 D.隔離性

              解析:ACID(原子性,一致性,隔離性,永續性)。

18.對基於檢查點的恢復技術,下列說法中錯誤的是(A )

A.無論事務在檢查點之前還是之後提交,都需執行 REDO 操作

B.檢查點技術可以提高恢復效率

C.檢查點可以定期建立

D.能最大限度的減少恢復資料庫時根據日誌記錄所需執行的恢復操作

19.設有兩個事務 T1 和 T2,它們的併發操作如圖所示。對於這個併發操作,下列評價正確的是( A)

 

T1

T2

讀 A=10

 

 

讀 A=10

A=A-5 寫回

 

 

A=A-8 寫回

A、該操作丟失了更新 B、該操作不能重複讀C、該操作讀髒資料 D、該操作不存在問題

20.併發事務的排程時,以下說法正確的是(B )

A.  排程是可序列化的,則是正確排程

B.  2PL 隱含預防死鎖的一次封鎖法

C.  一個可序列化的排程一定不會產生死鎖

D.  死鎖可以通過“先來先服務”解決

 解析:D.避免活鎖使用先來先服務演算法。

三、簡答題(每小題 5 分,共 10 分)

 

1、簡要描述查詢處理中實現連線操作的巢狀迴圈演算法(nested loop)。

            

          首先按連線屬性對錶1和表2排序

對錶1的第一個元組,從頭開始掃描表2,順序查詢滿足連線條件的元組,找到後就將表1中的第一個元組與該元組拼接起來,形成結果表中一個元組。當遇到表2中第一條大於表1連線欄位值的元組時,對錶2的查詢不再繼續

找到表1的第二條元組,然後從剛才的中斷點處繼續順序掃描表2,查詢滿足連線條件的元組,找到後就將表1中的第一個元組與該元組拼接起來,形成結果表中一個元組。直到遇到表2中大於表1連線欄位值的元組時,對錶2的查詢不再繼續

重複上述操作,直到表1或表2中的全部元組都處理完畢為止

 

2、什麼是活鎖?什麼是死鎖?在事務排程中,如何預防和解決死鎖?

        如果事務T 1 封鎖了資料R事務T 2 又請求封鎖R於是T 2 等待。T 3 也請求封鎖R當T 1 釋放了R上的封鎖之後系統首先批准了T 3 的請求T 2 仍然等待。然後T 4 又請求封鎖R當T 3 釋放了R上的封鎖之後系統又批准了T 4 的請求……T 2 有可能永遠等待這就是活鎖的情形.

        如果事務T1封鎖了資料R1,T2封鎖了資料R2,然後T1又請求封鎖R2,因T2已封鎖了R2,於是T1等待T2釋放R2上的鎖;接著T2又申請封鎖R1,因T1已封鎖了R1,T2也只能等待T1釋放R1上的鎖。這樣就出現了T1在等待T2,而T2又在等待T1的局面,T1和T2兩個事務永遠不能結束,形成死鎖。

        採用一次封鎖法和順序封鎖法預防死鎖。

        採用超時法和等待圖法來解決死鎖  

          

四、應用題(共 20 分)

 

設有如下圖書借閱關係模式:

圖書:Book(bno, bname, author, publisher, price, stocks)/*圖書編號,圖書名,作者,出版商,單價,庫存*/

讀者:Reader(rno, rname, address)/*讀者編號,讀者名,住址*/

借閱:Borrow(bno, rno, b_date , r_date, flag)/*圖書編號,讀者編號,借期,還期,還書標誌{1.已還,0.未還}*/

  1. 用關係代數表示式實現以下題目:
    1. 檢索讀者’ 李林’ 所借圖書中未還的書名。(2 分)
    2. 檢索借閱了包含讀者 ’李林’ 所有借閱圖書的讀者姓名。(2 分)

              Flag=0,rname=’李林’

  1. πbname(σFlag=0∧rname=’李林’ (Borrow∞Reader∞Book)

      2.  πrname,rno(Borrow∞Reader)÷ πrno(σrname=‘李林‘ (Reader))

 

2.使用 SQL 語言實現如下題目:

  1. 檢索借閱圖書號為 ’B5’ 的所有讀者姓名。(2 分)

 

                     Bno=’B5’(Book),rname(Reader)

 

          Select rname from Book,Reader,Borrow where Book.bno=Borrow.bno and

Reader.rno=Borrow.rno and Borrow.bno=’B5’;

2.使用 SQL 語言實現如下題目:

(1)檢索借閱圖書號為 ’B5’ 的所有讀者姓名。(2 分)

 

                     Bno=’B5’(Book),rname(Reader)

 

          Select rname from Book,Reader,Borrow where Book.bno=Borrow.bno and

Reader.rno=Borrow.rno and Borrow.bno=’B5’;

 

(2)檢索讀者’ 李林’ 所借圖書中未還的書名。(2 分)

(3)建立有未還圖書的讀者姓名和地址的檢視。(2 分)

  (2)rname=’李林’,flag=0

  Select bname from Book,Reader,Borrow where Book.bno=Brrow.bno and

Reader.rno=Borrow.rno and Borrow.flag=0 and rname=’李林’;

(3)create view view1(rname,address) as select rname,address from Reader,Borrow

where  Reader.rno=Borrow.rno and Borrow.flag=0 ;

五、綜合題(每小題 10 分,共 10 分)

4.對於查詢:找出 ‘2012-01-01’日前 到期還書的圖書名和讀者名。

(1)用 SQL 語句實現此查詢。(2 分)

(2)將上面問題轉化為關係代數表示式(操作限定為關係代數的 5 種基本運算)。(2 分)

(3)畫出上面關係代數表示式的語法樹。(3 分)

(4)使用代數優化,畫出優化後的語法樹。(3 分)

答:

(1)r_data>20120101,flag=0,查詢結果為圖書名(bname)和讀者名(rname)

Select bname,rname from Book,Reader,Borrow where Book.bno=Borrow.bno and Reader.rno=Borrow.rno and r_data>20120101 and flag=0;

(2)πbname,rname(σFlag=0∧r_data>’20120101’ (Borrow∞Reader∞Book))

 

(3)主要是瞭解一下關係代數表示式語法樹即可,一般用到語法樹就是5種關係代數之間的複合了。瞭解即可

五、綜合題(每小題 10 分,共 10 分)

設有關係模式R<U,F> 其中 U=(A,B,C,D,E,P),定義在其上的函式依賴為 F={CE→B,A→B,C→D,E→A,CE→P},

(1)求(CE)關於函式依賴集 F 的閉包。(3 分)

          解:X0=CE C->D E->A CE->P CE->B X1=CEDAPB 因為X1已經等於全部屬性的集合,所以(CE)^(+)F=ABCDEP

(2)說明 CE 應該具有什麼性質。(2 分)

                   CE是關係模式中的碼

(3)判斷CE→B 是否是多餘的函式依賴關係?如果是,請證明 F-{CE→B}邏輯蘊含 CE→B。(5 分)

                 答:CE->B是多餘的函式依賴關係。證明:設u,v為R中任意兩個元祖:若去掉CE->B,則有u[CE]=v[CE],且u[B]=v[B],而且E->A,A->B,E->B,CE->B,即u[CE]=v[CE],u[B]=v[B],滿足題意。故F-{CE→B}邏輯蘊含 CE→B。

六、資料庫設計題(每小題 10 分,共 10 分)

 

設有高校選課系統,需要對學校的系資訊、教師資訊、課程資訊、學生資訊、學生選課資訊進行管理。已知系(DEPT)資訊包括系編號(DeptNO)、系名稱(DeptName),教師

(Teacher)資訊包括教師號(TNO)、教師名(Tname),課程(Course)資訊包括課程號

(CNO)、課程名(CName)、課程學分(Credit),學生(Student)資訊包括學號(SNO)、學生姓名(Sname)、學生性別(Sex)。

選課系統的管理規則如下:

Ⅰ、一個系可聘用多名教師,一個教師只受聘於一個系; Ⅱ、一個系可有多名學生,一個學生只屬於一個系;

Ⅲ、一名教師可講授多門課程,一門課程可被多個教師講授;

 Ⅳ、一名學生可選修多門課程,一門課程可被多名學生選修; Ⅴ、學生選修完課程後,可獲得相應課程的成績。

針對以上描述,完成下列設計內容:  

  1. 構建選修課系統的 ER 圖。(5 分)
  2. 根據所構建的 ER 圖,設計滿足 3NF 的關係模式,並標出每個關係模式的主碼和外碼。(要求關係模式名同實體集名或聯絡名,屬性名用試卷中給出的英文名,大小寫不限)

(5 分)

解:(1)

(2)滿足3NF的關係模式如下所示:

 DEPT(DeptNO,DeptName)主碼DeptNO【系編號】,無外碼 注:DeptName系名稱不能唯一確定其它屬性,故不是外碼

Teacher(TNO,TName,DeptNO)主碼TNO【教師號】,外碼DeptNO 【系編號】注:系編號(DeptNO)可以唯一確定系名稱(DeptName)

Student(SNO,SName,Sex,DeptNO)主碼SNO,外碼DeptNO

Course(CNO,CName,Credit)主碼CNO,無外碼

 T-C(TNO,CNO)主碼(TEO,CNO),外碼TNO,CNO 注:教師號(TNO)能唯一確定教師名(Tname),課程號

(CNO)能唯一確定課程名(CName):

 S-C(SNO,CNO,成績)主碼(SNO,CNO),外碼SNO,CNO

 [解析] 建立相應的E-R圖的過程如下:

 ①確定實體型別。②確定聯絡型別。

 ③把實體型別和聯絡型別組合成E-R圖。④確定實體型別和聯絡型別的屬性。

如果一個關係模式R是一個正規化,且不存在非主屬性傳遞依賴於主碼,則R是一個3NF。