1、一、(每小题1分,共20分)1、A2、D3、A4、C5、D6、A7、D8、C9、B10、B11、B 12、A 13、D14、B15、C16、C17、C18、C19、C20、A二、(每小题1分,共20分)1、数据库系统阶段2、外码3、外模式4、关系模型5、数据结构6、列7、实体8、关系9、drop table10、查询11、差 12、是否为空 13、等值连接14、AB15、联系16、元组17、WHERE 18、n+m19、逻辑独立性20、广义笛卡尔积三、(每小题5分,共10分)1、学号,姓名(年龄20性别=男(学生)2、姓名(课程号=2成绩90(学生wv选课)四、(6分)RwvSRABCDabc
2、dbadgcdek五、(每小题1分,共6分)(1)(2)(4)(5)(6)(3)例如:S(Sno,Cno,Grade),其中:Sno为学号,Cno为课程号,Grade为有(Sno, Cno) Grade。但是,SnoGrade,Cno Grade六、(10分)S不属于3NF,它属于2NF。因为R的候选关键字为“学生号”,而学生号系号,系号系名,系号学生号,所以学生号系名,即存在非主属性系名对候选关键字“学生号”的传递依赖。可将S分解成:S1(学生号,学生名,年龄,性别,系号)3NFS2(系号,系名) 3NF七、(共28分,每小题7分)(1) 某学校的教学管理的E-R模型如附图I-1所示。(2)
3、 将上述E-R模型转换为关系模型如下:根据E-R图向关系模型转换的原则,将五个实体转换为如下的关系模式,其中码用下划线表示:系(系号,系名,主任名)教师(教师号,教师名,职称)学生(学号,姓名,年龄,性别)项目(项目号,名称,负责人)课程(课程号,课程名,学分)各实体之间的联系有:教师担任课程的1:n“任课”联系;教师参加项目的n:m“参加”联系;学生选修课程的n:m“选修”联系;教师、学生与系之间的所属关系的l:n:m“领导”联系。其中,“参加”联系有一个排名属性,“选修”联系有一个成绩属性。根据E-R图向关系模型转换的原则,将相关的联系转换为关系模式如下:任课(课程号,教师号)参加(教师号
4、,项目号,排名)选修(学号,课程号,成绩)领导(教师号,学号,系号)(3)使用SQL的DDL语句定义上述关系如下:CREATE TABLE SDEMP(Dno CHAR(6),Dname CHAR(10),Mname CHAR(10),PRIMARY KEY(Dno);CREATE TABLE Teacher(Tno CHAR(6),Tname CHAR(10),TE CHAR(10),PRIMARY KEY(Tno);CREATE TABLE Student(Sno CHAR(8),Sname CHAR(10),Sage NUMBER(3),SexCHAR(1),PRIMARY KEY(Sn
5、o);CREATE TABLE PROJ(Pno CHAR(6),Pname CHAR(30),PMname CHAR(10),PRIMARY KEY(Pno);CREATE TABLE COURSE(Cno CHAR(3),Cname CHAR(20),CSCHAR(3),PRIMARY KEY(Cno);CREATE TABLE C_T(Cno CHAR(3),Tno CHAR(6),PRIMARY KEY(Cno)FOREIGN KEY (Cno) REFERENCES COURSE(Cno)FOREIGN KEY (Tno) REFERENCES TEACHER(Tno);CREATE
6、 TABLE T_P(Tno CHAR(6),Pno CHAR(6),PORD INTPRIMARY KEY(Tno,Pno)FOREIGN KEY (Tno) REFERENCES TEACHER(Tno)FOREIGN KEY (Pno) REFERENCES PROJ(Pno);CREATE TABLE S_C(Sno CHAR(6),Cno CHAR(6),GRADE INTPRIMARY KEY(Sno,Cno)FOREIGN KEY (Sno) REFERENCES STUDENT(Sno)FOREIGN KEY (Cno) REFERENCES COURSE(Cno);CREAT
7、E TABLE T_S_D(Tno CHAR(6),Sno CHAR(6),Dno CHAR(6),PRIMARY KEY(Tno,Sno),FOREIGN KEY (Tno) REFERENCES TERCHER(Tno)FOREIGN KEY (Sno) REFERENCES STUDENT(Sno);(4)查询选修了“高等数学”的学生姓名和成绩的SQL语句如下:SELECT Sname,GradeFROM Student,S_ C,CourseWHERE Student.Sno=SC.SnoAND SC.Cno= Course.CnoAND Course.Cname=高等数学查询选修了“张军”老师担任的“数据库系统原理”课程的学生姓名的SQL语句如下:SELECT SnameFROM Student,S_C,Course,C_T,TeacherWHERE Student.Sno=S_C.Sno AND S_C.Cno= Course.CnoAND Course.Cno=C_T.Cno AND C_T.Tno=Teacher.TnoAND Teacher.Tname=张军 AND Course.Cname=数据库系统原理