某学生选课数据库中有如下三个关系表:①学生表包含学号(字符型)、姓名(字符型)、性别(字符型)、所在院系(字符型)四个属性, 对应的关系模式为STUDENT(SNO,SNAME,SEX,DEPT):②课程表包含课程号(字符型)、课程名(字符型)、先修课程(字符型)、学分(数值型)四个属性,对应的关系模式COURSE(CNO,CNAME,PCNO,CREDIT):③选课表包含学号(字符型),课程号(字符型)、成绩(数值型)三个属性,对应的关系模式为SC(SNO,CNO,GRADE)。
请回答
某学生选课数据库中有如下三个关系表:①学生表包含学号(字符型)、姓名(字符型)、性别(字符型)、所在院系(字符型)四个属性, 对应的关系模式为STUDENT(SNO,SNAME,SEX,DEPT):②课程表包含课程号(字符型)、课程名(字符型)、先修课程(字符型)、学分(数值型)四个属性,对应的关系模式COURSE(CNO,CNAME,PCNO,CREDIT):③选课表包含学号(字符型),课程号(字符型)、成绩(数值型)三个属性,对应的关系模式为SC(SNO,CNO,GRADE)。
请回答如下问题。
(1)分别判断关系模式STUDENT、COURSE是否为第三范式(3NP)?
(2)关系模式 SC的主码和外码分别是什么?
(3)使用SQL语句完成以下操作:
①向STUDENT表中插入一个元组(‘20201',’李红’;’女’;’管理系’);
②查询“20201'号学生选修课程的最高分。
【正确答案】:(1)是,是。
(2)主码为(SNO,CNO),外码为SNO和CNO。
(3)对应SQL语句如下:
①INSERT INTO STUDENT VALUES(‘20201',’李红',’女',’管理系');
②SELECT MAX(GRADE)FROM SC WHERE SNO=’20201';
【评分参考】SQL语句不区分大小写。
Top