学生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张,若按如下顺序执行有何问题?如何实现并发控制? 八、(每小6分,共12分)
对于电影关系Movie(title,year,length,in Color,studio Name)中的属性,写出下列约束:
1)年份不能在1895年以前;
2)电影长度不能短于60,也不能长于240。 七。(共12分)
若按上述顺序执行,则最后的余票为30,显然不对,因为正确结果应为20。这种错误属于“丢失修改”,即把甲写回的数据丢失了。应采用封锁机制实现并发控制,具体修改如下:
试题答案及评分标准 (供参考)
数据库系统概论模拟试题3
一、请为顾客定购零件设计一个数据库,要求包括零件和顾客的信息。(共12分) 零件的信息包括零件名、零件号、重量、颜色、单价、供应商; 顾客的信息包括顾客名、顾客号、地址、电话; 定购需要记录数量和价格。
要求:将数据库用E/R图来描述。 一、(共12分)
二、用SQL的有关语句定义(每小题s分,共18分)
1)商店关系(S),包括商店号SNo、商店名SName、地址SAdd;
2)商品关系(P),包括商品号PNo、商品名PName、单价PPrice;
3)商店销售商品关系(scll),包括某商店销售某商品的数量Sell_Number、日期Sell_Date。
注意:说明主键码和外键码(如果有的话)。 二、(每小题6分,共18分) 1)
CREATETABLE S{
SNo INT PRIMARY KEY, SName CHAR(30), SAdd CHAR(20)
}; 2)
CREATE TAHLE P(
PNo INT PRIMARY KEY, PName CHAR(30), PPrice CHAR(30) }; 3)
CREATE TABLE Sell( SNo INT, PNo INT,
Sell—Number CHAR(30), SellDate DATE,
PRIMARY KEY(SNo,PNo),
POREIGN KEY(SNo)REFERENCES S(SNo), FORElGN KEY(PNo)REFERENCES P(PNo) };
三、结合题2的数据库,用SQL的有关语句(每小题6分,共18分)
1)针对商店销售商品关系Sell,授予“大中电器商店”查询权限以及对SNo和PNo的插入权限;
2)在商品关系P的键码属性上建立索引;
3)删除编号为1200236的商品所有的有关数据。 三、(每小题6分,共18分)
1)GRANTSELECT,lNSERT(SNo,PNo)ON Sell TO大中电器商店; 2)CREATE INDEX PNOIndex ON P(PNO); 3)DELETE FROM Sell WHERE PNo=1200236; DELETE FROM P
WHERE PNo=1200236;
四、(共12分) 设T1、T2、T3是如下三个事务;T1:A=A+2,T2:A=A*2,T3:A=A**2,A的初值为1。设T1、TZ和T3可以并发执行,并对其操作的顺序不加限制,则它们的并发执行可能产生哪几种结果(写出最后的A值)。
四、(共12分)
答:T1、T2和T3并发执行可能产生如下6种结果: 操作顺序 最后的A值 T1 T2 T3 36 T1 T3 T2 18 T2 T1 T3 16 T2 T3 T1 6 T3 T1 T2 6 T3 T2 T1 4 五、关系模式如下: (共6分) 学生S(SNO,SN,SEX,AGE) 用SQL写出查询程序,
查询年龄(AGE)大于“张三”年龄的学生姓名和年龄。
五、(共6分)
答: SELECT S.SN,S.AGE FROM S,S AS SX
WHERE S.AGE>SX.AGE ANDSX.SN=‘张三’;
六、(第一小题8分,第二小题10分,共18分) 从学生选课数据库中查询选修“JAVA程序设计”课并且成绩在90分以上的学生名单,
SQL语句序列如下: SELECT StudentName
FROM Student,Course,StudentCourse
WHERE Student.StudentNo=StudentCourse.StudentNo AND Course。CourseNo=StudentCourse.CourseNo
ANDCourse.CourseName='JAVA程序设计'ANDStudentCourse.Score>90, (1)画出这个查询的关系代数语法树;
(2)对该语法树进行优化。
六、(第一小题8分,第二小题lo分,共18分) 答: 1)
2) a)
Course-CourseName=’JAVA
程序设计’
ANDStudentCourse.Score>90
Course.CourseName=’JAVA程序设计’
和StudentCourse.Score>90
b)