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
inverse Movie::acts;
};
2) SELECt m.title m.year
FROM Act a, a.starredIn m
WHERE a.name=“張曉麗”;

