试卷代号:1060 座位■ 中央广播电视大学2006一2007学年度第一学期“开放本科”期末考试 计算机专业 数据库系统概论 试题 2007年1月 题 号 三 四 五 六 七 八 总 分 分 数 得分 评卷人 一、(共12分) 请为顾客定购零件设计一个数据库,要求包括零件和顾客的信息。 零件的信息包括零件名、零件号、重量、颜色、单价、供应商: 顾客的信息包括顾客名、顾客号、地址、电话; 定购需要记录数量和价格。 要求:将数据库用E/R图来描述。 得 分 评卷人 二、(每小题6分,共18分) 用SQL的有关语句定义 l)图书Book,包括图书编号BookID、图书名称Title、图书作者Author、出版社Publisher; 2)学生Student,包括学生编号ID、学生姓名Name、系Dept; 3)学生借书关系Lend,包括学生编号LD、图书编号BookID,借阅时间LDate。 注意:说明主键码和外键码(如果有的话)。 得 分 评卷人 三、(每小题7分,共14分) 按题2的关系模式,用SQL的有关语句 1)增加学生张京京,编号是100200036,化学系; 2)从学生借书关系Lend中,别除苏明所借的所有书。 440
试卷代号:1060 座位号皿] 中央广播电视大学2006-2007学年度第一学期“开放本科”期末考试 计算机专业 数据库系统概论 试题 2007年 1月 题 号 四 五 六 七 八 总 分 分 数 得 分 评卷人 一、(共 12分) 请为顾客定购零件设计一个数据库,要求包括零件和顾客的信息。 零件的信息包括零件名、雯笠量、重量·颜色、单价、供应商; 顾客的信息包括顾客名、顾客号、地址、电话; 定购需要记录数量和价格。 要求:将数据库用 E/R图来描述。 得 分 评卷人 二、(每小题 6分 ,共 18分) 用 SQL的有关语句定义 I)图书T3ook,包括图书编号13ookID、图书名称Title、图书作者Author、出版社Publisher; 2)学生 Student,包括学生编号 ID、学生姓名 Name、系 Dept ; 3)学生借书关系 Lend,包括学生编号 ID、图书编号 BookID、借阅时间 I_Date o 注意:说明主键码和外键码(如果有的话)。 得 分 评卷人 三.(每小题 7分,共 14分) 按题2的关系模式,用SQL的有关语句 1)增加学生张京京,编号是 100200Q36,化学系; 2)从学生借书关系 Lend中,删除苏明所借的所有书。 440
得分 评卷人 四、(共8分) 结合题2的关系模式,用SQL语句查询借阅《数据库基础》的学生的姓名和编号并输出。 得分 评卷人 五、(每小题6分,共12分) 关系模式如下: 学生S(SNO,SN,SEX,AGE): 课程C(CNO,CN,PCNO);PCNO为直接先行课号 选课SC(SNO,CNO,GR);GR为课程考试成绩 用SQL写出查询程序: 1)选修课程DB的学生姓名SN; 2)所有学生都选修的课程名CN。 得分评卷人 六、(共12分) 对于关系Movie(Title,Length,Type,Year),按嵌人式SQL的格式插入任一部电影的电 影名、长度、类型、拍摄年代。 得 分 评卷人 七、(共12分) 设某航班某日尚有余票50张,甲预订10张,乙预订20张,若按如下顺序执行有何问题? 如何实现并发控制? 甲 乙 1)读余票A 2) 读余票A 3)A=A-10 4)写回A 5) A=A-20 6) 写回A 441
得 分 评卷人 四、(共 8分) 结合题 2的关系模式,用 SQL语句查询借 阅《数据库基础》的学生的姓名和编号并输出。 得 分 评卷人 五、(每小题 6分 ,共 12分) 关系模式如下 : 学生 S (SNO, SN, SEX, AGE); 课程 C (CNO, CN, PCNO);PCNO为直接先行课号 选课 SC <SNO, CNO, GR) ; GR为课程考试成绩 用 SQL写出查询程序: 1)选修课程 DB的学生姓名 SN; 2)所有学生都选修的课程名 CNo 得 分 评卷人 六、(共 12分 ) 对于关系Movie( Zitle, Length, Type, Year),按嵌入式SQL的格式插人任一部电影的电 影名、长度、类型、拍摄年代。 得 分 评卷人 七、(共 12分 ) 设某航班某 日尚有余票 50张,甲预订 10张,乙预订 20张 ,若按如下顺序执行有何问题? 如何实现并发控制? 甲 乙 1)读余票 A 2) 读余票 A 3) A =A一 10 4)写 回 A 5) A= A一 20 6) 写 回 A 441
得分 评卷人 八、(每小题6分,共12分) 对于电影关系Movie(title,year,length,inColor,studioName)中的属性,写出下列约 束: 1)年份不能在1895年以前; 2)电影长度不能短于60,也不能长于240。 442
得 分 评卷人 八、(每小题 6分,共 12分) 对于电影关系 MovieCtitle, year, length, inColor, studioNaxne)中的属性,写出下列约 束 1)年份不能在 189 年以前; 2)电影长度不能短于 60,也不能长于 2400 442
试卷代号:1060 中央广播电视大学2006一2007学年度第一学期“开放本科”期末考试 计算机专业 数据库系统概论试题答案及评分标准 (供参考) 2007年1月 一、(共12分) 零件名 多件殳 重量 单价 颜色 零件 供应商 数量 定购 价格 顾客 顾客号 顾客名 地址 电话 二、(每小题6分,共18分) 1)CREATE TABLE Book BookID varchar(20)PRIMARY KEY, Title varchar(50), Author varchar(50), Publisher varchar(50) }: 443
试卷代号:1060 中央广播电视大学zoos-2ao7学年度第一学期“开放本科”期末考试 计算机专业 数据库系统概论 试题答案及评分标准 (供参考) 2007年 I月 一、(共 12分) 二、(每小题 6分,共 18分) 1)CR)~;A1'E '1'AI3LE Book{ BookID varchar(20) PRIMARY KEY Title varchar(50), A uthor varchar(50), Publisher varchar(50) 443
2)CREATE TABLE Student( ID CHAR(10)PRIMARY KEY, Name varchar (20), Dept varchar (20) }; 3)CREATE TABLE Lend( StdID CHAR(6), BookID varchar(20), LDate datetime, PRIMARY KEY (StdID,BookID), FOREIGN KEY (StdID)REFERENCES Student (ID), FOREIGN KEY (BookID)REFERENCES Book (BookID) ; 三、(每小题7分,共14分) 1)INSERT INTO Student VALUES(‘100200036’,‘张京京’,‘化学系); 2)DELETE FROM Lend WHERE StdID IN (SELECT ID FROM Student WHERE Name=‘苏明' ); 四、(共8分) 答案一.SELECT Name,lD FROM Student WHERE ID IN (SELECT StdID FROM Lend 444
2) CREATE TABLE Student丈 ID CHAR(10) PRIMARY KEY Name varchar (20) Dept varchar (20) 3) CREATE TABLE Lend{ StdID CHAR(6) BookID varchar(20) LDate datetime PRIMARY KEY (StdID,BookID) FOREIGN KEY (StdID) REFERENCES Student (ID), FOREIGN KEY (BookID) REFERENCES Book (BookID) }; 三、(每小题 7分,共 14分) 1) INSERT INTO Student VALUES ( `100200036' ,‘张京京 ’,‘化学系’); 2) DELETE FROM Lend W HERE StdID IN (SELECT ID FROM Student WHERE Name=‘苏明 ); 四、(共 8分) 答案一 SELECT Name, ID FROM Student W HERE ID IN (SELECT StdID FROM Lend 444
WHERE BookID IN (SELECT BookID FROM Book WHERE Title二‘数据库基础’ )) 答案二.SELECT Name,ID FROM Student,Lend,Book WHERE Student.ID=Lend.StdID AND Book.BookID=Lend.BookID AND Title=‘数据库基础’; 五、(每小题6分,共12分)】 1) SELECT SN FROM S WHERE SNO IN (SELECT SNO FROM SC WHERE CNO IN (SELECT CNO FROM C WHERE CN='DB')) 2) SELECT CN FROM C WHERE CNO IN (SELECT CNO FROM SC GROUP BY CNO HAVING COUNT(*)= (SELECT COUNT(¥) FROM S)); 445
W HERE BookID IN (SELECT BookID FROM Book WHERE Title ‘数据库基础’ )); 答案二.SELECT Name,ID FROM Student,Lend, Book WHERE Student_ ID=Lend. StdID AND Book. BookID= bend. BookID AND Title=‘数据库基础 ’; 五、(每小题 6分,共 12分 ) 1) SELECT SN FROM S WHERE SNO IN (SEI,EC1' SNO FROM SC W HERE CNO IN (SELECT CNO FROM C WHERE CN=’DB})) 2) SELECT CN FROM C WHERE CNO IN ( SELECT CNO FROM SC GROUP BY CNO HAVING COUNT( )= (SELECT COUNT(二) FROM S)); 445
六、(共12分) I)说明:EXEC SQL BEGIN DECLARE SECTION; char Title[30]; int Length; char Type[10]; int Year; char SQLSTATE[6]; EXEC SQL END DECLARE SECTION; 2)赋值:Title:=‘手机'; Length:=120; Type:=‘color'; Year:=2004; 3)插人:EXEC SQL INSERT INTO Movie VALUES(:Title,Length,:Type,Year): 七、(共12分】 若按上述顺序执行,则最后的余票为30,显然不对,因为正确结果应为20。这种错误属于 “丢失修改”,即把甲写回的数据丢失了。应采用封锁机制实现并发控制,具体修改如下: 甲 乙 LOCK-X(A) 读A=50 LOCK-X(A) A=A-10 等待 写回A=40 等待 COMMIT 等待 UNLOCK(A) 获得 读A=40 A=A-20 写回A=20 COMMIT UNLOCK(A) 446
六、(共 12分) 1)说 明 : 2)赋值 : EXEC SQL BEGIN DECLARE SECTION char Title[30]; int Length; char Type[10]; int Year; char SQLSTAI'E巨6]; EXEC SQI. END DECLARE SECTION; Title:二‘手机 ’; Length:=120; 7}Ype:“‘color'; Year:=2004; 3)插人 :EXEC SQ工矛INSERT INTO Movie VALUES(:Title,:Length,:Type,:Year); 七、(共 12分 ) 若按 上述顺序执行 ,则最后的余票为 30,显然不对 ,因为正确结果应为 L })‘这种错误属 “丢失修改”,即把甲写回的数据丢失了。应采用封锁机制实现并发控制,具体修改如 下: 甲 乙 LOCK一X(A) 读 A=50 LOCK一X(A) A=A一 l0 等待 写回 A=40 等待 COM M IT 等待 UNLOCK(A) 获得 读 A弃40 A=A一 20 写 回 A=?o COMM I"h UNLOCK(A) 446
八、(每小题6分,共12分)】 1) CREATE TABLE Movie year INT CHECK (year>=1895), ); 2) CREATE TABLE Movie length INT CHECK (length>=60 AND length<=240), 447
八 、(每小题 6分,共 12分) 1) CREATE TABLE Movie year INT CHECK =60 AND length<=240) ); 447