計(jì)算機(jī)軟考數(shù)據(jù)庫系統(tǒng)工程師考前練習(xí)題及答案(8)

字號(hào):

計(jì)算機(jī)軟考數(shù)據(jù)庫系統(tǒng)工程師考前練習(xí)題及答案(8)

    1.用SQL的有關(guān)語句定義(12分)
    1)學(xué)生關(guān)系Student,包括學(xué)號(hào)Sno、姓名SN、年齡SA;
    2)課程關(guān)系Course,包括課程號(hào)Cno、課程名CN、任課教師CT;
    3)學(xué)生選課關(guān)系,包括Sno、Cno和成績(jī)G。
    注意:說明主鍵碼和外鍵碼(如果有的話),并在鍵碼屬性上建立索引。
    2.按題1的學(xué)生關(guān)系模式,用SQL的有關(guān)語句(12分)
    1)授予趙華對(duì)學(xué)生關(guān)系Student的插入和修改權(quán)限;
    2)插入任意3個(gè)學(xué)生的完整信息;
    3)修改所有學(xué)生的年齡(加1)。
    3.結(jié)合題1定義的學(xué)生選課數(shù)據(jù)庫,用SQL語句查詢計(jì)算機(jī)系學(xué)生數(shù)據(jù)庫課的成績(jī),輸出學(xué)生姓名和成績(jī),按成績(jī)排序(降序),若成績(jī)相同,再按學(xué)號(hào)排序(升序)。(6分)
    4.已知關(guān)系R、S如下所示,求域演算表達(dá)式的結(jié)果。(4分)
    R S
    A B C D E F
    a c 5 4 d 8
    b d 3 5 a 1
    m e 4 3 e 2
    6.商店銷售商品的數(shù)據(jù)庫,涉及如下數(shù)據(jù):(12分)
    商店號(hào)、商店名、地址
    商品號(hào)、商品名、單價(jià)。
    某商店銷售某商品的數(shù)量和日期。
    1)設(shè)計(jì)E/R圖(屬性名用中、英文均可);
    2)轉(zhuǎn)換成關(guān)系模型(注明鍵碼和函數(shù)依賴)。
    7.有關(guān)圖書發(fā)行的關(guān)系模型如下:(12分)
    書店S(書店號(hào)SNo,書店名SN,地址A)
    圖書B(書號(hào)BNo,書名BN,價(jià)格P)
    圖書館L(館號(hào)LNo,館名LN,城市C)
    圖書發(fā)行LBS(LNo,BNo,SNo,發(fā)行量Q)
    分別用關(guān)系代數(shù)和SQL語言表達(dá)如下查詢:
    圖書館L4(館號(hào))收藏圖書的書名和出售該書的書店名。
    8.圖書管理數(shù)據(jù)庫關(guān)系模型如下:(12分)
    圖書B(書號(hào)BN,書名T,作者A,出版社P)
    學(xué)生S(姓名N,班級(jí)C,借書證號(hào)LN)
    借書L(LN,BN,日期D)
    查詢:2001.1.1(20010101)以前借書的學(xué)生姓名和書名。
    求:1)以笛卡爾積為基礎(chǔ)表達(dá)查詢要求;
    2)畫出原始語法樹;
    3)畫出優(yōu)化語法樹。
    9.寫出3個(gè)關(guān)系模式分別滿足:(12分)
    1)是1NF,不是2NF;
    2)是2NF,不是3NF;
    3)是3NF,也是BCNF;
    各用兩句話分別說明你所寫的關(guān)系模式是前者,不是(或也是)后者。
    10.電影數(shù)據(jù)庫涉及如下數(shù)據(jù):電影類包括電影名、制作年份、電影長(zhǎng)度等屬性,演員類包括姓名、年齡、地址等屬性,每部電影都可能有多個(gè)演員出演,而每個(gè)演員都可能出演多部電影。(12分)
    1)用ODL給出類的說明;
    2)用OQL查詢演員張曉麗所出演的電影的電影名和制作年份。
    1.1) CREATE TABLE Student(
     Sno INT PRIMARY KEY,
     SN CHAR(30),
     SA INT
     );
     2) CREATE TABEL Course(
     Cno INT PRIMARY KEY,
     CN CHAR(30),
     CT CHAR(30)
     );
     3) CREATE TABEL SC(
     Sno INT,
      Cno INT,
      G INT,
     PRIMAYR KEY(Sno,Cno),
     FOREIGN KEY(Sno) REFERENCES Student(Sno),
      FOREIGN KEY(Cno) REFERENCES Course(Cno)
      );
    2.1) GRANT INSERT, UPDATE, ON Student TO 趙華;
     2) INSERT INTO Student
     (TABLE (01001,‘趙華',19),
      (01002,’李芳‘,18),
      (01003,’劉紅‘,20),
      );
     3) UPDATE Student
      SET SA=SA+1;
    3.SELECT SN,G
     FROM Student,Course,SC
     WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno
     AND Course.CN=’數(shù)據(jù)庫‘
     ORDER BY G DESC,Sno;
      4.R1 X Y Z
     a c 5
     b d 3
      m e 4
     4 d 8
      5.1) 說明:EXEC SQL BEGIN DECLARE SECTION;
       int sno;
      char sname[30];
      int sage;
     char SQLSTATE[6];
     EXEC SQL END DECLARE SECTION;
     2) 賦值:sno:=01001;
      sname:=’趙華‘;
      sage:=19;
     3) 插入:EXEC SQL INSERT
      INTO Student
      VALUES(:sno,:sname,:sage);
      6.1)
     2) 商店(商店號(hào),商店名,地址)商店號(hào)→商店名,地址
      商品(商品號(hào),商品名,單價(jià))商品號(hào)→商品名,單價(jià)
      銷售(商店號(hào),商品號(hào),數(shù)量,日期)商店號(hào),商品號(hào)→數(shù)量,日期
      7.1) π BN,SN(σ LNo=L4(BLBSS))
     2) SELECT BN,SN
      FROM B,LBS,S
      WHERE B.BNo=LBS.BNo AND LBS.SNo=S.SNo
      AND LBS.LNo=L4;
      8.1) π N,T(σ D=20010101(S × L × B)) 
     2)
      9.1) 學(xué)生選課(學(xué)號(hào),姓名,課程號(hào),成績(jī))
      屬性不可分,是1NF;存在非主屬性對(duì)鍵碼的部分依賴(學(xué)號(hào),課程號(hào)姓名),不是2NF。
     2) 學(xué)生(學(xué)號(hào),姓名,系別,系主任)
     鍵碼為單屬性,不存在部分依賴,是2NF;存在非主屬性對(duì)鍵碼的傳遞依賴(學(xué)號(hào)→姓名,系別;系別學(xué)號(hào);系別→系主任;學(xué)號(hào)系主任),不是3NF。
     3) 學(xué)生(學(xué)號(hào),姓名,年齡)
      非主屬性(姓名,年齡)對(duì)鍵碼不存在部分依賴和傳遞依賴,是3NF;
     主屬性(學(xué)號(hào))對(duì)鍵碼也不存在部分依賴和傳遞依賴,是BCNF。
    10.1) interface Movie{
        attribute string title;
         attribute integer year;
         attribute integer length;
         relationship Set (Act) acts
         inverse Act::starredIn;
         };  
         interface Act{
         attribute string name;
         attribute integer age;
         attribute string address;
        relationship Set starredIn
         inverse Movie::acts;
         };
     2) SELECt m.title m.year
         FROM Act a, a.starredIn m
        WHERE a.name=“張曉麗”;