有关系模式:系(系号,系名,系办公电话),教师(教师号,教师名,职称,聘任日期,工资,所在系号)。现要定义下列约束: Ⅰ.系号是系关系的主码,教师号是教师关系的主码 Ⅱ.职称列的取值只能为“教授、”副教授“、”讲师“、”助教“和”其它“ Ⅲ.教授的默认工资为10000元,副教授的默认五资为8000元,讲师的默认工资为5000元 Ⅳ.每个教师的所在系号不能为空,且其值必须在系关系中存在 若在数据库中实现以上约束,需要使用触发器才能实现的是
A.仅Ⅰ和Ⅱ
B.仅Ⅲ和Ⅳ
C.仅Ⅲ
D.仅Ⅰ和Ⅳ
第1题:
SELECT学院表.系号,SUM(工资);
FROM 学院表,教师表;
WHERE 学院表.系号=教师表.系号;
GROUP BY 学院表.系号
查询结果是
A.各个系教师的工资合计
B.所有教师的工资合计
C.各个系教师工资的平均工资
D.所有教师工资的平均工资
第2题:
有两个基本关系:学生(学号,姓名,系号)和系(系号,系名,系主任),学生表的主码为学号,系表的主码为系号,因而系号是学生表的
A.主码(主键)
B.外码(外关键字)
C.域
D.映像
第3题:
A.教师表中的“教师号”
B.教师表中的“系部号”
C.系部表中的“系部号”
D.系部表中的“教师号”
第4题:
“教师表”中有“职工号”、“姓名”、“工龄”和“系号”等字段,“学院表”中有“系名”和“系号”等字段,计算“计算机”系教师总数的命令是
A.SELECT COUNT(*)FROM教师表INNER JOIN学院表;0N教师表.系号=学院表.系号WHERE系名=“计算机”
B.SELECT COUNT(*)FROM教师表INNER JOIN学院表;ON教师表.系号=学院号.系号ORDER BY教师表.系号;HAVING学院表.系名=”计算机”
C.SELECT SUM(*)FROM教师表INNER JOIN学院表;ON教师表.系号=学院表.系号GROUP BY教师表.系号;HAVING学院表.系名=”计算机”
D.SELECT SUM(*)FROM教师表INNER JION学院表;ON教师表.系号=学院表.系号ORDER BY教师表.系号;HAVING学院表.系名:“计算机”
第5题:
有两个基本关系:学生(学号,姓名,系号),系(系号,系名,系主任),学生表的主码为学号,系表的主码为系号,因而系号是学生表的( )。
A.主码
B.外码
C.域
D.映像
第6题:
已知某教务管理系统有下列关系模式(带下划线的属性是主码):
系(系号,系名)
学生(学号,姓名,性别,入学日期,正常毕业日期,所在系号)
课程(课程号,课程名,学分,开课系号,教师号)
选课(学号,课程号,成绩)
教师(教师号,姓名,职称,所在系号)
①请根据给出的关系模式画出该系统的E-R图,图中忽略实体集的属性,但如果实体集之间的联系有属性则需要给出联系属性。
②随着教学改革的需要,该系统需要满足下列需求:
一门课程可由多名教师讲授,一名教师可以讲授多门课程。
请根据以上需求修改关系模式,仅列出有改动的关系模式,并使每个关系模式满足3NF。
第7题:
建立一个视图salary,该视图包括了系号和(该系的)平均工资两个字段,正确的SQL语句是
A.CREATE VIEW salary AS系号,AVG(工资)AS平均工资 FROM 教师; GROUP BY系号
B.CREATE VIEW salary AS SELECT系号,AVG(工资)AS平均工资FROM教师; GROUP BY系号
C.CREATE VIEW salary SELECT系号,AVG(工资)AS平均工资FROM教师; GROUP BY系号
D.CREATE VIEW salary AS SELECT系号,AVG(工资)AS平均工资FROM教师; GROUP BY系号
第8题:
建立一个视图salary,该视图包括了系号和(该系的)平均工资两个字段,正确的SQL语句是( )。
A.CREATE vIEw salary AS系号.AVG(工资)AS平均工资FRM教师GRUP BY系号
B.CREATE VIEW salary AS SELECT 系号,AVG(工 资)AS平均工资FROM教师GROUP BY系名
C.CREATE VIEw salary SELECT 系号,AVG(工资)AS平均工资FRM教师 GRUP BY系号
D.CREATE VIEW salary AS SELECT系号,AVG(工 资)AS平均工资FRM教师 GROUP BY系号
第9题:
设教师表的结构为:(教师号、姓名、性别、职称、工资、所在系),其中教师号为主键。若要利用SELECT语句查询除教授和副教授以外的教师姓名,其WHERE子句为______。
A.WHERE职称NOT BETWEEN"教授"AND"副教授"
B.WHERE职称!="教授"AND"副教授"
C.WHERE职称NOT LIKE("教授","副教授")
D.WHERE职称NOT IN("教授","副教授")
第10题:
有SQL语句:SELECT学院,系名,COUNT(*)AS教师人数FROM教师,学院;WHERE教师.系号=学院.系号GROUP BY学院.系名与如上语句等价的SQL语句是:
A.SELECT学院.系名,COUNT(*)AS教师人数;FROM教师INNER JOIN学院; 教师.系号= 学院.系号GROUP BY学院. 系名
B.SELECT学院.系名,COUNT(*)AS教师人数;FROM 教师INNER JOIN学院;ON 系号 GROUP BY学院.系名
C.SELECT学院.系名,COUNT(*) AS教师人数;FROM教师INNER JOIN学院;ON 教师.系号=学院.系号GROUP BY学院. 系名
D.SELECT 学院. 系名,COUNT(*)AS教师人数;FROM教师INNER JOIN学院;ON教师.系号 = 学院.系号
第11题:
建立一个视图salary,该视图包括了系号和(该系的)平均工资两个字段,正确的SQL语句是( )。
A)CREATE VIEW salary AS系号,AVG(工资)AS平均工资FROM教师;
GROUPBY系号
B)CREATEVIEW salaryAS SELECT系号,AVG(工资)AS平均工资FROM教师;
GROUPBY系名
C)CREATE VIEW Salary SELECT系号,AVG(工资)AS平均工资FROM教师;
GROUP BY系号
D)CREATE VIEW salaryAS SELECT系号,AVG(工资)AS平均工资FROM教师;
GROUPBY系号
第12题:
SELECT COUNT(*)FROM教师表INNER JOIN学院表;
ON教师表.系号=学院表.系号WHERE系名=计算机
SELECT COUNT(*)FROM教师表INNER JOIN学院表;
ON教师表.系号=学院表.系号ORDER BY教师表.系号;
HAVING学院表系名=计算机
SELECT SUM(*)FROM教师表INNER JOIN学院表;
ON教师表.系号=学院表.系号GROUP BY教师表.系号;
HAVING学院表系名=计算机
SELECT SUM(*)FROM教师表INNER JOIN学院表;
ON教师表.系号=学院表.系号ORDER BY教师表.系号;
HAVING学院表系名=计算机
第13题:
设有两个关系:
系(系编号,系名称,系主任) ,主码是系编号
教师(教工号,姓名,性别,系编号) ,主码是教工号,外码是系编号
规定当一个系里有教师,就不允许删除这个系。则能够实现这个删除约束的SQL语言外键子句中应该使用短语
A.ON DELETE CASCADES
B.ON DELETE RESTRICTED
C.ON DELETE NULLIFIES
D.ON DELETE DEFAULT
第14题:
有如下SQL语句: SELECT 学院表.系号,SUM(工资); FROM 学院表,教师表; WHERE 学院表.系号;教师表.系号; GROUP BY 学院表.系号查询结果是
A.各个系教师的工资合计
B.所有教师的工资合计
C.各个系教师工资的平均工资
D.所有教师工资的平均工资
第15题:
设教师表的结构为:(教师号、姓名、性别、职称、工资、所在系)。若要查询其他系中比计算机系所有教师工资都高的教师的姓名和工资,正确的SELECT语句是 ______。
A.SELECT姓名,工资FROM教师表WHERE工资>ANY(SELECT工资; FROM教师表WHERE所在系=“计算机”)AND所在系<>计算机
B. SELECT姓名,工资FROM教师表WHERE工资>(SELECT MIN(工资); FROM教师表WHERE所在系=“计算机”)AND所在系<>计算机
C. SELECT姓名,工资FROM教师表WHERE工资>ALL(SELECT工资; FROM教师表WHERE所在系=“计算机”)AND所在系<>计算机
D. SELECT姓名,工资FROM教师表WHERE工资>(SELECT MAX(工资); FROM教师表WHERE所在系=“计算机”AND所在系<>计算机)
第16题:
已知某教务管理系统有下列关系模式(带下划线的属性是主码) :
系(系号,系名)
学生(系号,姓名,性别,入学日期,正常毕业日期,所在系号)
课程(课程号,课程名,学分,开课系号,教师号)
选课(学号,课程号,成绩)
教师(教师号,姓名,职称,所在系号)
①请根据给出的关系模式画出该系统的ER图,图中忽略实体集的属性,但如果实体集之间的联系有属性则需要给出联系的属性。
②随着教学改革的需要,该系统需要满足下列需求:
Ⅰ.需为课程增加先修课信息(一门课程可有多门先修课程) ;
Ⅱ.一门课程可由多名教师讲授,一名教师可以讲授多门课程。
请根据以上需求修改关系模式,仅列出有改动的关系模式,并使每个关系模式满足3NF。
第17题:
建立一个视图salary,该视图包括了系号和(该系的)平钧工资两个字段,正确的是SQL语句是A)CREATE VIEW salaryAS系号,AVG(工资)AS平均工资FROM教师;GROUP BY系号B) CREATE VIEW salary AS SELECT系号,AVG(工资)AS平均工资FROM教师;GROUP BY系名C) CREATE VIEW salary SELECT系号,AVG(工资)AS平均工资FROM教师;GROUP BY系号D)CREATE VIEW salary AS SELECT系号,AVG(工资)As平均工资FROM教师;GROUP BY系号
第18题:
有SQL语句: SELECT学院.系名,COUNT(*)AS教师人数FROM教师.学院 WHERE教师.系号一学院.系号G-ROUP BY学院.系名 与如上语句等价的SQL语句是( )。
A.SELECT学院.系名,COUNT(*)AS教师人数 FROM教师INNER JOIN学院 教师.系号=学院.系号GROUP BY学院.系名
B.SELECT学院.系名,COUNT(*)AS教师人数 FROM教师 INNER JOIN 学院 ON系号GROUP BY学院.系名
C.SELECT学院.系名,COUNT(*)AS教师人数 FROM教师 INNER JOlN学院 ON教师.系号=学院.系号GROUP BY学院.系名
D.SELECT 学院.系名,COUNT(*)AS教师人数 FROM教师INNER JOIN学院 ON教师.系号=学院.系号
第19题:
设某教学管理系统,其查询模块需要提供如下功能:Ⅰ.查询系信息,列出各系编号、系名和系办公电话;Ⅱ.查询某系教师的信息,列出教师号、教师名、工资和聘用日期;Ⅲ.查询某教师讲授的课程信息,列出课程号、课程名和学分;Ⅳ.查询讲授某门课程的教师信息,列出教师名和职称;V.查询某门课程的先修课程信息,列出先修课程号和先修课程名。系统有如下业务规则:Ⅰ.一个系可聘用多名教师,一名教师只能受聘于一个系;Ⅱ.一名教师可讲授多门课程,一门课程可由多名教师讲授;Ⅲ.一门课程可以有多门先修课程,也可以没有先修课程。(1)请根据以上查询功能与业务规则,用ER图描述该系统的概念模型。(5分)(2)将ER图转换为满足3NF的关系模式,并说明每个关系模式的主码和外码。(5分)
(1)E-R图也称实体一联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。为了简化E-R图的处置,现实世界的事物能作为属性对待的则尽量作为属性对待。实体与属性的划分给出如下两条规则:①作为“属性”,不能再具有需要描述的性质,“属性”必须是不可分的数据项,不能包含其它属性。②“属性”不能与其它实体有联系,即E-R图中所表示的联系是实体之问的联系。本题中一个系可以聘用多名教师,一名教师只能受聘于一个系,所以系实体与教师实体有联系;一名教师可以讲授多门课程,一门课程可由多名教师讲授,所以教师实体与课程实体有联系,一门课程可以有多门先修课程,所以课程间也有联系。
【参考答案】
(2)要想使转换生成的关系模式满足3NF,则必须满足关系模式中每一个非主属性既不部分依赖于码也不传递依赖于码。
【参考答案】
系(系编号,系名,系办公电话),无外码
教师(教师号,教师名,工资,聘用日期,职称,系编号),外码:系编号
课程(课程号,课程名,学分,教师号),外码:教师号
先修(先修课程号,先修课程名,课程号),外码:课程号
第20题:
“教师表”中有“职工号”“姓名”“工龄”和“系号”等字段,“学院表”中有“系名”和“系号”等字段,计算“计算机”系教师总数的命令是( )。
A.SELECT COUNT(*)FROM教师表INNER JOIN学院表ON教师表,系号=学院表,系号WHERE系名=“计算机”
B.SELECT COUNT(*)FROM教师表INNER JOIN学院表ON教师表,系号=学院表,系号0RDER BY教师表系号HAVING学院表,系名=“计算机”
C.SELECT SUM(*)FROM教师表INNER JOIN学院表ON教师表,系号=学院表,系号GROUP BY教师表,系号
D.SELECT SUM(*)FROM教师表INNER JOIN学院表ON教师表,系号=学院表,系号0RDER BY教师表,系号HAVING学院表,系名=“计算机”
第21题:
建立一个视图salary,该视图包括了系号和(该系的)平均工资两个字段,正确的SQL语句是:
A.CREATE VIEW salary AS系号,SVG(工资)AS平均工资FROM教师GROUP BY系号
B.CREATE VIEW salary AS SELECT系号,AVG(工资)AS平均工资FROM教师GROUP BY系名
C.CREATE VIEW Salary SELECT系号,AVG(工资)AS平均工资FROM教师GROUP BY系号
D.CREATE VIEW salary AS SELECT系号,AVG(工资)AS平均工资FROM教师GROUP BY系号
第22题:
有SQL语句:SELECT DISTINCT系号FROM教师WHERE 工资>=ALL (SELECT 工资FROM教师WHERE系号=\"02\") 与如上语句等价的SQL语句是
A.SELECT DISTINCT系号FROM教师WHERE工资>=(SELECT MAX(工资)FROM教师WHERE 系号="02")
B.SELECT DISTINCT系号FROM教师WHERE工资>=(SELECT MIN(工资)FROM教师WHERE 系号="02")
C.SELECT DISTINCT系号FROM教师WHERE工资>=(ANY(SELECT(工资)FROM教师WHERE 系号="02")
D.SELECT DISTINCT系号FROM教师WHERE工资>=(SOME (SELECT(工资)FROM教师WHERE 系号="02")
第23题:
SELECT学院,系名,COUNT(*)AS教师人数FROM教师INNER JOIN学院;
教师.系号=学院.系号GROUP BY学院.系名
SELECT学院,系名,COUNT(*)AS教师人数FROM教师INNER JOIN学院;
ON系号GROUP BY学院.系名
SELECT学院,系名,COUNT(*)AS教师人数FROM教师INNER JOIN学院;
ON教师.系号=学院.系号GROUP BY学院.系名
SELEC7学院,系名,COUNT(*)AS教师人数FROM教师INNER JOIN学院;
ON教师.系号=学院.系号