四、设计题(每小题5分,共20分)
假设有三个表:
学生表:S(SNO,SNAME,SEX)
各属性含义依次为学号、姓名和性别;
课程表:C(CNO,CNAME,CREDIT)
各属性含义依次为课程号、课程名、学分;
学生选课表:SC(SNO,CNO,MARK)
各属性含义依次为学号、课程号和成绩。
基于以上表回答36—39题
36.请用SQL语句创建学生选课表SC,要求包含主、外码的定义,同时要保证MARK的取值不能为空。
37.试用SQL语句写出下列查询:(要求用嵌套查询完成)
检索出没有选修课程号为3的所有学生姓名。
38.有如下关系代数表达式:
ΠSNAME,CNO,MARK(σSEX='男'(S SC))
请将其转化成相应的SQL语句。
39.试用SQL语句实现下列查询:
检索出各门课程的学生平均成绩(要求列出课程名称和平均成绩)。五、综合题(共15分)
40.设有商店和顾客两个实体集,“商店”有属性商店编号、商店名、地址、电话,“顾客”有属性顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,
(1)根据上述语义设计E-R模型,要求标注连通词,可省略属性。
(2)将E-R模型转换成关系数据模型,并指出每一个关系的主码和外码(如果存在)。
(3)写出定义参照完整性和“当顾客已有购物时,禁止删除该顾客的购物记录”约束的SQL子句。