1、软件设计师-数据库及答案解析(总分:39.00,做题时间:90 分钟)在学生、专业关系模式中:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)其中带下划线的属性为主码。则下述说法中不正确的是 (1) 和 (2) 。(注意,答案须按顺序排列)(分数:2.00)A.专业号是学生关系模式的外键B.专业关系是参照关系C.学生关系是参照关系D.学生关系中专业号属性的值或者为空,或者等于专业关系中某个元组的主键值E.参照关系和被参照关系不能是同一个关系A.专业号是学生关系模式的外键B.专业关系是参照关系C.学生关系是参照关系D.学生关系中专业号属性的值或者为空,或者等于专业关系中某个元组的主键
2、值E.参照关系和被参照关系不能是同一个关系若有关系模式 R(A,B,C)和 S(C,D,E),对于如下的关系代数表达式:(分数:2.00)A.E1E 2E 3E 4B.E3E 4但 E1E 2C.E1E 2但 E3E 4D.E3E 4但 E2E 4A.E1B.E3C.E2D.E41.在关系代数运算中,_运算结果的关系模式与原关系模式相同。(分数:1.00)A.并B.笛卡儿积C.投影D.自然连接2.在 SQL 中,外模式一级数据结构的基本单位是_。(分数:1.00)A.基本表B.视图C.E-R 图D.用户表3.DBMS 是位于_之间的一层数据管理软件。(分数:1.00)A.OA 软件与用户B.O
3、S 与 DBC.硬件与软件D.OS 与硬件关系数据库设计理论主要包括三个方面内容,其中起核心作用的是 (1) 。在关系模型的完整性约束中,实体完整性规则是指关系中 (2) 。引用完整性规则要求 (3) 。(分数:3.00)A.范式B.数据模式C.数据依赖D.范式和数据依赖A.不允许有主行B.属性值不允许为空C.主键值不允许为空D.外键值不允许为空A.不允许引用不存在的元组B.允许引用不存在的元组C.不允许引用不存在的属性D.允许引用不存在的属性4.下列关于 Armstrong 公理系统的叙述中,错误的是_。(分数:1.00)A.Armstrong 公理系统有效性是指,从函数依赖集 F 出发,根
4、据 Armstrong 公理推导出来的每一个函数依赖一定在 F 的闭包中B.Armstrong 公理系统完备性是指,F +中的每一个函数依赖必定可以由 F 出发,根据 Armstrong 公理推导出来C.通常把自反律、传递律和增广律统称为 Armstrong 公理系统D.Armstrong 公理系统中的传递律就是传递函数依赖5.两个子查询的结果_时,可以执行并、交、差操作。(分数:1.00)A.结构完全一致B.结构完全不一致C.结构部分相同D.主键完全相同6.若 R1=a,b),R 2=a,b,c,d),则 R1R2集合中共有_个元组。(分数:1.00)A.2B.4C.6D.8设供应商零件的关
5、系模式为 SP(Sno,Pno,Qty),其中 Sno 表示供应商号,Pno 表示零件号,Qty 表示零件数量。查询至少包含了供应商“168”所供应的全部零件的供应商号的 SQL 语句如下:SELECT SnoFROM SP SPXWHERE (1) (SELECT*FROM SP SPYWHERE (2) AND NOT EXISTS(SELECT*FROM SP SPZWHERE (3) );(分数:3.00)A.EXISTSB.NOT EXISTSC.IND.NOT INA.SPY. Sno=168B.SPY Sno168C.SPY. Sno=SPX. SnoD.SPY. SnoSPX.
6、 SnoA.SPZ. Sno=SPY. Sno AND SPZ. Pno=SPY. PnoB.SPZ. Sno=SPX. Sno AND SPZ. Pno=SPX. PnoC.SPZ. Sno=SPX. Sno AND SPZ. Pno=SPY. PnoD.SPY. Sno=168 AND SPZ. Pno=SPY. Pno设有如表 4-47 所示的关系 R,R 的候选码为 (1) ,R 属于 (2) 范式。表 4-47 关系 RA D Ea1 d1 e1a2 d1 e2a3 d3 e3a4 d4 e3(分数:2.00)A.AB.DC.ED.以上都不是A.1NFB.2NFC.3NFD.BCNF
7、设关系 P 和 Q 分别为 2 元和 3 元关系,则与关系代数表达式 (分数:2.00)(1). (分数:1.00)A.B.C.D.(2). (分数:1.00)A.B.C.D.给定关系 R(A1,A2,A3,A4)上的函数依赖集 F=A1A3A2,A2A3),R 候选关键字为 (1) 。分解p=(A1,A2),(A1,A3) (2) 。(分数:2.00)A.A1A3B.A1A2A3C.A1A3A4D.A2 和 A1A3A.是无损连接的B.是保持函数依赖的C.既是无损连接又保持函数依赖D.既是有损连接又不保持函数依赖7.SQL 语言具有_的功能。(分数:1.00)A.关系规范化、数据操纵、数据控
8、制B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵8.若两个实体之间的联系是 1:m,则实现 1:m 联系的方法是_。(分数:1.00)A.在“m”端实体转换的关系中加入“1”端的实体转换所得的关系的码B.将“m”端实体转换关系的码加入到“1”端的实体转换所得的关系C.在两个实体转换的关系中,分别加入另一个关系码D.将两个实体转换成一个关系9.数据库管理系统运行的基本工作单位是事务,事务是用户定义的一个数据库操作序列,这些操作序列要么全做,要么全不做,是一个不可分割的工作单位。事务具有原子性、一致性、隔离性和_。(分数:1.00)A.恢复性B
9、.内存驻留性C.连续性D.永久性10.在数据库中有如表 4-49 所示的两个表,设职工表的主码是职工号,部门表的主码是部门号。表 4-49 职工表和部门表职 工 表 部 门 表职工号 职工名 部门号 工资 部门号 部门名 部门主任001 李红 01 580 01 人事处 高平005 刘军 01 670 02 财务处 蒋华025 王芳 03 720 03 教务处 许红038 张强 02 650 04 学生处 杜琼下面的 SQL 操作,不能执行的是_。(分数:1.00)A.从职工表中删除行(025,王芳,03,720)B.将行(005,乔兴,04,750)插入到职工表中C.将职工号为“001”的工
10、资改为 700D.将职工号为“038”的部门号改为03某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和部门关系的外键分别是 (1) 。职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)查询每个部门中月工资最高的“职工号”的 SQL 查询语句如下:SELECT 职工号 FROM 职工 AS EWHERE 月工资=(SELECT MAX(月工资)FROM 职工 AS M (2) )。(分数:2.00)A.职工号和部门号B.部门号和负责人代码C.职工号和负责人代码D.部门号和职工号A.WHERE M. 职工号=E. 职工号B.W
11、HEREW M. 职工号=E. 负责人代码C.WHERE M. 部门号=部门号D.WHERE M. 部门号=E. 部门号在集合成员的算术比较运算中,与ANY 等价的是 (1) ,与ALL 等价的是 (2) 。(分数:2.00)A.MINB.MAXC.MAXD.MINA.MINB.MAXC.MAXD.MIN11.关系模式 R(S,T,J)中,每个属性均不可分,存在函数依赖有:(S,J)T,(S,T)J,TJ,则下述说法正确的是_。(分数:1.00)A.关系模式 R 满足 1NF,但不满足 2NFB.关系模式 R 满足 2NF,但不满足 3NFC.关系模式 R 满足 3NF,但不满足 BCNFD.
12、关系模式 R 满足 BCNF,但不满足 4NF12.学生关系模式为 S(Sno,Sname,SD,Sage),其中:Sno 表示学生学号,Sname 表示学生姓名,SD 表示学生所在系,Sage 表示学生年龄。试将下面的 SQL 语句空缺部分补充完整,使其可以查询计算机系学生的学号、姓名和年龄。SELECT Sno, Sname, SageFORM sWHERE _(分数:1.00)A.SD=计算机B.SD=计算机C.SD=计算机D.SD=计算机13.有关系表学生(学号,姓名,系,班级号)和班级(班级号,专业,教室号,班主任,班长)。其中学生关系中的班级号可以为 NULL,为 NULL 表示还
13、未分班的学生。现执行查询语句:SELECT COUNT(DISTINCT、班级号)FROM 学生,其结果是_。(分数:1.00)A.学生总人数B.每一个班的学生人数C.班级数D.已分班学生的人数14.为使程序员编程时既可使用数据库语言又可使用常规的程序设计语言,数据库系统需要把数据库语言嵌入到_中。(分数:1.00)A.编译程序B.操作系统C.中间语言D.宿主语言关系 R、S 如表 4-48 所示,R( A1,A2 ( 13 (S)的结果为 (1) ,左外连接、右外连接和完全外连接的元组个数分别为 (2) 。表 4-48 关系 R、SR 关系 S 关系A1 A2 A3 A1 A2 A3a b
14、c a z ab a d b a hc d d c d dd f g d s c(分数:2.00)A.dB.c,dC.c,d,8D.(a,b),(b,a),(c,d),(d,f)A.2,2,4B.2,2,6C.4,4,6D.4,4,415.自然连接是构成新关系的有效方法。一般情况下,当对关系 R 和 S 使用自然连接时,要求 R 和 S 含有一个或多个共有的_。(分数:1.00)A.元组B.行C.记录D.属性设有一个关系 Student(学号,姓名,系名,课程号,成绩),查询至少选修了四门课程的学生学号、姓名及平均成绩的 SELECT 语句应该是:SELECT 学号,姓名,AVG(成绩)AS
15、平均成绩FROM StudentGROUP BY (1) HAVING (2) (分数:2.00)A.学号B.姓名C.系名D.课程号A.COUNT(DISTINCT 学号)3B.COUNT(课程号)3C.COUNT(DISTINCT 学号)=3D.COUNT(课程号)=3软件设计师-数据库答案解析(总分:39.00,做题时间:90 分钟)在学生、专业关系模式中:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)其中带下划线的属性为主码。则下述说法中不正确的是 (1) 和 (2) 。(注意,答案须按顺序排列)(分数:2.00)A.专业号是学生关系模式的外键B.专业关系是参照关系 C.学
16、生关系是参照关系D.学生关系中专业号属性的值或者为空,或者等于专业关系中某个元组的主键值E.参照关系和被参照关系不能是同一个关系解析:A.专业号是学生关系模式的外键B.专业关系是参照关系C.学生关系是参照关系D.学生关系中专业号属性的值或者为空,或者等于专业关系中某个元组的主键值E.参照关系和被参照关系不能是同一个关系 解析:学生关系的“专业号”属性与专业关系的主码“专业号”对应,因此“专业号”属性是学生关系的外键。这里专业关系是被参照关系,学生关系为参照关系,注意不要搞反了!由于参照完整性规则的制约,学生关系中的专业号属性的值或者为空,或者等于专业关系中某个元组的主键值,如果是空值表示尚未给
17、该生分配专业。参照关系和被参照关系可以是同一个关系,比如在关系学生中加入“班长”属性:学生(学号,姓名,性别,专业号,年龄,班长学号),“班长学号”属性表示该学生所在班级的班长的学号,它参照了本关系“学号”属性。由上述分析可知 B、E 错误。若有关系模式 R(A,B,C)和 S(C,D,E),对于如下的关系代数表达式:(分数:2.00)A.E1E 2E 3E 4 B.E3E 4但 E1E 2C.E1E 2但 E3E 4D.E3E 4但 E2E 4解析:A.E1B.E3 C.E2D.E4解析:给定的四个选项的含义都是求 B“2003”且 E=“80”的 AD 列。所以结果都是一样的。对几个查询来
18、说,要判断哪个查询的效率最高,就是在得到同样结果的情况下,判断谁用时最少。本题我们就是要寻找所用步骤最少的操作方法。E1与 E2:它们的操作方式相似,但在 E2中,由于 R 和 S 模式先做了选择,因此 RS 得到更少的结果,所以 E2效率高于 E1。E3与 E4:它们的操作方式相似,但在 E3中,由于 R 和 S 模式先做了选择,所以 R 和 S 的连接得到更少的结果,所以 E3效率高于 E4。E2与 E3它们的操作方式相似,顺序相似,但不同的是 RS 和 R 自然连接 S。由于根据定义知道自然连接要取消重复列,在该题中 R 自然连接 S 后就要取消一个 C 列,因此 R 自然连接的效率比
19、RS 高。因此,E 3的查询效率最高。1.在关系代数运算中,_运算结果的关系模式与原关系模式相同。(分数:1.00)A.并 B.笛卡儿积C.投影D.自然连接解析:并操作是指在关系 R 和关系 S 具有相同关系模式的情况下,将属于 R 或属于 S 的元组合并起来。因此,并操作的结果的关系模式与原关系模式相同。2.在 SQL 中,外模式一级数据结构的基本单位是_。(分数:1.00)A.基本表B.视图 C.E-R 图D.用户表解析:数据库的三级体系结构为外模式、模式和内模式,其中外模式也称为子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某
20、一应用有关的数据的逻辑表示。3.DBMS 是位于_之间的一层数据管理软件。(分数:1.00)A.OA 软件与用户B.OS 与 DB C.硬件与软件D.OS 与硬件解析:略。关系数据库设计理论主要包括三个方面内容,其中起核心作用的是 (1) 。在关系模型的完整性约束中,实体完整性规则是指关系中 (2) 。引用完整性规则要求 (3) 。(分数:3.00)A.范式B.数据模式C.数据依赖 D.范式和数据依赖解析:A.不允许有主行B.属性值不允许为空C.主键值不允许为空 D.外键值不允许为空解析:A.不允许引用不存在的元组 B.允许引用不存在的元组C.不允许引用不存在的属性D.允许引用不存在的属性解析
21、:关系数据库设计理论主要包括数据依赖、范式和关系模式规范化三个方面的内容,其中起核心作用的是数据依赖,范式和关系模式规范化都是在数据依赖的基础上定义和发展而来的。数据库的完整性是指数据的正确性和相容性,指数据库中的数据始终保持正确的状态,防止不符合语义的错误数据的输入和输出。关系模型中的完整性约束条件包括实体完整性、参照完整性和用户自定义完整性。实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。设 F 是基本关系 R 的一个或一组属性,但不是关系 R 的码,如果 F 与基本关系 S 的主码 Ks 相对应,则称F 是基本关系 R 的外码,并称基本关系 R 为参照关系,
22、基本关系 S 为被参照关系或目标关系。关系 R 和 S不一定是不同的关系。参照完整性规则:若属性(或属性组)F 是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应(基本关系R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为:或者取空值(F 的每个属性值均为空值),或者等于 S 中某个元组的主码值。4.下列关于 Armstrong 公理系统的叙述中,错误的是_。(分数:1.00)A.Armstrong 公理系统有效性是指,从函数依赖集 F 出发,根据 Armstrong 公理推导出来的每一个函数依赖一定在 F 的闭包中B.Armstrong 公理系统完备性是
23、指,F +中的每一个函数依赖必定可以由 F 出发,根据 Armstrong 公理推导出来C.通常把自反律、传递律和增广律统称为 Armstrong 公理系统D.Armstrong 公理系统中的传递律就是传递函数依赖 解析:根据传递律和传递函数依赖的定义可知,这两者不是同一个概念,尽管它们形式类似。5.两个子查询的结果_时,可以执行并、交、差操作。(分数:1.00)A.结构完全一致 B.结构完全不一致C.结构部分相同D.主键完全相同解析:基本概念题。并、交、差这三种操作都只能是当两个关系具有完全相同的结构时才能使用。查询的结果是一个关系,是一张表格。6.若 R1=a,b),R 2=a,b,c,d
24、),则 R1R2集合中共有_个元组。(分数:1.00)A.2B.4C.6D.8 解析:两个关系的笛卡儿积中元组的个数为两个关系中元组个数的乘积。所以答案应为 D。设供应商零件的关系模式为 SP(Sno,Pno,Qty),其中 Sno 表示供应商号,Pno 表示零件号,Qty 表示零件数量。查询至少包含了供应商“168”所供应的全部零件的供应商号的 SQL 语句如下:SELECT SnoFROM SP SPXWHERE (1) (SELECT*FROM SP SPYWHERE (2) AND NOT EXISTS(SELECT*FROM SP SPZWHERE (3) );(分数:3.00)A.
25、EXISTSB.NOT EXISTS C.IND.NOT IN解析:A.SPY. Sno=168 B.SPY Sno168C.SPY. Sno=SPX. SnoD.SPY. SnoSPX. Sno解析:A.SPZ. Sno=SPY. Sno AND SPZ. Pno=SPY. PnoB.SPZ. Sno=SPX. Sno AND SPZ. Pno=SPX. PnoC.SPZ. Sno=SPX. Sno AND SPZ. Pno=SPY. Pno D.SPY. Sno=168 AND SPZ. Pno=SPY. Pno解析:问题要求的是至少包含了供应商168所供应的全部零件的供应商号,可以分解成
26、两个否定形式:不存在这样的供应商,168 号选了的商品,该供应商却没有选择。根据以上分解,显然,第(1)空选择否定的表达,即用双重否定表示肯定。而 IN/NOT IN 的一般用法为:SEL ECT *FROM table_ namelWHERE columnl IN/NOT IN(SEL ECT columnlFROM table_ name2 WHERE conditions);也就是说,IN 后面接的是一个集合,且前面有列名 columnl。EXISTS/NOT EXISTS 指是否存在,一般用法为:SELECT *FROM table_ namelWHERE EXISTS/NOT EXI
27、STS(SELECT *FROM table_ name2 WHERE conditions);设有如表 4-47 所示的关系 R,R 的候选码为 (1) ,R 属于 (2) 范式。表 4-47 关系 RA D Ea1 d1 e1a2 d1 e2a3 d3 e3a4 d4 e3(分数:2.00)A.A B.DC.ED.以上都不是解析:A.1NFB.2NFC.3NFD.BCNF 解析:关系 R 上的函数依赖集为AD,AE,DEA,R 的候选码为 A 或 DE,R 上的任一函数依赖的左部都包含了 R 的某一候选码,所以 R 是 BCNF。设关系 P 和 Q 分别为 2 元和 3 元关系,则与关系代
28、数表达式 (分数:2.00)(1). (分数:1.00)A.B. C.D.解析:(2). (分数:1.00)A.B. C.D.解析: 连接的定义如下:*,这里 r 是关系 R 的元数。因此,第 (1) 空的选项 C、D 显然是错误的。这里 r=2,i=1,j=2, 连接条件 12,在笛卡儿积中应改为 14,故正确答案应为 B。显然,试题中的 SQL 语句的功能为查询没有选修课程号为 c102 的学生的学号和姓名。在选项 A 中,S 和 SC 进行自然连接后,如果一个学生选修了多门课程(假如同时选修了 c102 和 c103),则对应两个元组。进行选择操作(选出 C#不等于 c102),则仍然保
29、留了一个元组(c102),这样再进行投影操作后,答案是错误的。在选项 B 中,S 和 SC 进行自然连接后,进行选择操作(选出 C#等于 c102),这样,凡是选修了 c102 课程的元组都会被选择出来,然后用投影后的 S 去减选修了 C102 课程的元组,余下的就是没有选修 c102 课程的元组了。给定关系 R(A1,A2,A3,A4)上的函数依赖集 F=A1A3A2,A2A3),R 候选关键字为 (1) 。分解p=(A1,A2),(A1,A3) (2) 。(分数:2.00)A.A1A3B.A1A2A3C.A1A3A4 D.A2 和 A1A3解析:A.是无损连接的B.是保持函数依赖的C.既是
30、无损连接又保持函数依赖D.既是有损连接又不保持函数依赖 解析:能够推出所有属性且不含多余属性的属性组称为候选码。由于 A1A3A2,根据函数依赖的性质,可知属性组 A1A3 决定属性 A1、A2、A3,但它不能成为 R 的候选码,因为还有一个属性 A4,A1A3 不能决定它。因此,R 的候选码为 A1A3A4。在分解 p 中,我们发现少了属性 A4,而且把两个函数依赖都丢了,因为关系(A1,A2)没覆盖函数依赖集F 中任何一个函数依赖,关系(A1,A3)亦如此,所以分解 p 既是有损连接又不保持函数依赖。7.SQL 语言具有_的功能。(分数:1.00)A.关系规范化、数据操纵、数据控制B.数据
31、定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵解析:SQL 不仅具有丰富的数据操纵功能,而且具有数据定义和数据控制功能,是集数据操纵、数据定义、数据控制功能为一体的关系数据语言,充分体现了关系数据语言的特点和优点。SQL 数据定义(即定义基本表)的功能包括三个部分:(1)CREATE TABLE (建立基本表)DROP TABLE (删除基本表)ALTER TABLE (修改基本表)(2)CREATE VIVEW (建立视图)DROP VIEW (删除视图)(3)CREATE INDEX (建立索引)DROP INDEX (删除索引)SQL 数据
32、操纵功能包括:SELECT(检索)、INSERT(插入)、DELETE(删除)、UPDATE(更新)。SQL 的数据控制功能是指:控制用户对数据的存取权利。某个用户对某类数据具有何种操作权是由 DBA 决定的。8.若两个实体之间的联系是 1:m,则实现 1:m 联系的方法是_。(分数:1.00)A.在“m”端实体转换的关系中加入“1”端的实体转换所得的关系的码 B.将“m”端实体转换关系的码加入到“1”端的实体转换所得的关系C.在两个实体转换的关系中,分别加入另一个关系码D.将两个实体转换成一个关系解析:1:m 类型的联系转换为实体有两种方法:第一种方法是把联系转换为一个独立的关系模式;第二种
33、方法是把联系与“m”端实体对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系体本身的属性均转换为关系的属性,而关系的码为 m 端实体的码;如果与“m”端关系模式合并,则把联系的属性加入到“m”端,并在“m”端加入“1”端的码。9.数据库管理系统运行的基本工作单位是事务,事务是用户定义的一个数据库操作序列,这些操作序列要么全做,要么全不做,是一个不可分割的工作单位。事务具有原子性、一致性、隔离性和_。(分数:1.00)A.恢复性B.内存驻留性C.连续性D.永久性 解析:事务具有以下四个基本特性:(1)原子性(Atomicity):数据库的逻辑工作单位;(2)一致
34、性(Consistency):使数据库从一个一致性状态变到另一个一致性状态;(3)隔离性(Isolation):不能被其它事务干扰;(4)持续性(永久性)(Durability):一旦提交,改变就是永久性的。10.在数据库中有如表 4-49 所示的两个表,设职工表的主码是职工号,部门表的主码是部门号。表 4-49 职工表和部门表职 工 表 部 门 表职工号职工名部门号工资部门号部门名部门主任001李红 01580 01人事处 高平00刘 0167 02 财务 蒋华5 军 0 处025王芳 03720 03教务处 许红038张强 02650 04学生处 杜琼下面的 SQL 操作,不能执行的是_。
35、(分数:1.00)A.从职工表中删除行(025,王芳,03,720)B.将行(005,乔兴,04,750)插入到职工表中 C.将职工号为“001”的工资改为 700D.将职工号为“038”的部门号改为03解析:由于职工表中的职工号为主码,不能向其中插入同主码的记录,因此选择 B。某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和部门关系的外键分别是 (1) 。职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)查询每个部门中月工资最高的“职工号”的 SQL 查询语句如下:SELECT 职工号 FROM 职工 AS EWHERE
36、 月工资=(SELECT MAX(月工资)FROM 职工 AS M (2) )。(分数:2.00)A.职工号和部门号B.部门号和负责人代码 C.职工号和负责人代码D.部门号和职工号解析:A.WHERE M. 职工号=E. 职工号B.WHEREW M. 职工号=E. 负责人代码C.WHERE M. 部门号=部门号D.WHERE M. 部门号=E. 部门号 解析:题目第(1)空要求找出职工和部门关系的外键,首先可以将这两个关系的主键求出。职工的主键为职工号,部门的主键为部门号。在职工关系中,部门号不是主键,但它在部门关系中是主键,所以部门号对于职工关系是外键。再看部门关系,在部门关系中未发现其它关
37、系中的主键,但是题目中有“其中部门负责人也是一个职工”,这意味着部门中的“负责人代码”和职工关系中的“职工号”有着对应关系,所以负责人代码是部门关系的外键。正确答案为 B。接下来看第(2)空,这里考的是 SQL 语言。题目要求查询每个部门中月工资最高的“职工号”,这里面最重要的一个条件就是“每个部门”。如何实现查询每个部门的最高工资呢?我们带着这个疑问来看 SQL 语句,此 SQL 语句的结构很简单,先看括号内的 SQL 语句,从此句中的“SELECT MAX(月工资)”可以看出这个 SQL 的作用是找出最高月工资,而这个最高月工资应是有条件限制的,题目要求的是每个部门的最高月工资,所以查询条
38、件一定是与部门有关的。而括号外的语句用于把拥有此月工资的职工号查询出来。整个SQL 语句唯有外层 SQL 的部门号字段能作为内层 SQL 的查询参数,又因为两层 SQL 当中有相同属性部门号,所以要用外层职工关系的引用名 E 和内层职工关系的 M 对两个属性进行区分,故此处应加条件判断“WHERE M. 部门号=E. 部门号”。加了条件判断以后的 SQL 语句可以这样来理解,对于职工关系中的每一条数据,根据其部门号,找到此部门的最高工资与当前记录的月工资进行对比,若相等,则输出当前记录的职工号。在集合成员的算术比较运算中,与ANY 等价的是 (1) ,与ALL 等价的是 (2) 。(分数:2.
39、00)A.MIN B.MAXC.MAXD.MIN解析:A.MINB.MAXC.MAXD.MIN 解析:ANY 表示大于子查询结果中的某个值,注意,不是大于子查询结果中的所有值,与其等价的是MIN;类似地,与ANY 等价的是MAX。ALL 表示小于子查询结果中的所有值,与其等价的是MIN;类似地,与ALL 等价的是MAX。11.关系模式 R(S,T,J)中,每个属性均不可分,存在函数依赖有:(S,J)T,(S,T)J,TJ,则下述说法正确的是_。(分数:1.00)A.关系模式 R 满足 1NF,但不满足 2NFB.关系模式 R 满足 2NF,但不满足 3NFC.关系模式 R 满足 3NF,但不满
40、足 BCNF D.关系模式 R 满足 BCNF,但不满足 4NF解析:此题最大的陷阱就是“(S,T)J,TJ”,有些读者一看到这种形式,就立即做出判断“这个关系不满足 2NF,因为它存在部分函数依赖”。但这种断定是错误的,因为他们忘记了一个重要的前提,那就是:2NF 要求每一个“非主属性”完全函数依赖于码。该关系模式的候选码是(S,J)和(S,T),所有的属性都是主属性,所有该关系模式至少是 3NF,又因为 TJ 的左部未包含该关系的某一候选码,所以它不是 BCNF。正确答案应为 C。12.学生关系模式为 S(Sno,Sname,SD,Sage),其中:Sno 表示学生学号,Sname 表示学
41、生姓名,SD 表示学生所在系,Sage 表示学生年龄。试将下面的 SQL 语句空缺部分补充完整,使其可以查询计算机系学生的学号、姓名和年龄。SELECT Sno, Sname, SageFORM sWHERE _(分数:1.00)A.SD=计算机B.SD=计算机 C.SD=计算机D.SD=计算机解析:要查询计算机系学生的学号、姓名和年龄,其 SQL 语句为:SELECT Sno, Sname, SageFROM S WHERE SD=计算机注意,“计算机”是个字符串,在 SQL 中要用单引号引起来。13.有关系表学生(学号,姓名,系,班级号)和班级(班级号,专业,教室号,班主任,班长)。其中学
42、生关系中的班级号可以为 NULL,为 NULL 表示还未分班的学生。现执行查询语句:SELECT COUNT(DISTINCT、班级号)FROM 学生,其结果是_。(分数:1.00)A.学生总人数B.每一个班的学生人数C.班级数 D.已分班学生的人数解析:该题中值得注意的一点是 DISTINCT 的功能。SQL 语句:SELECT COUNT(班级号)FROM 学生的功能是统计已分班学生的人数,但加上 DISTINCT 情况就完全不同了,语句会首先把班级号的所有重复行数据去除,即每个班留下一条数据,这样统计出来的结果是班级数。14.为使程序员编程时既可使用数据库语言又可使用常规的程序设计语言,
43、数据库系统需要把数据库语言嵌入到_中。(分数:1.00)A.编译程序B.操作系统C.中间语言D.宿主语言 解析:SQL 既可作为独立语言使用,也可以将其嵌入到某种高级语言中使用,利用高级语言的过程性结构来弥补 SQL 实现复杂应用方面的不足,这种方式下的 SQL 称为嵌入式 SQL,而嵌入了 SQL 的高级语言称为主语言或宿主语言。关系 R、S 如表 4-48 所示,R( A1,A2 ( 13 (S)的结果为 (1) ,左外连接、右外连接和完全外连接的元组个数分别为 (2) 。表 4-48 关系 R、SR 关系 S 关系A1 A2 A3 A1 A2 A3a b c a z ab a d b a
44、 hc d d c d dd f g d s c(分数:2.00)A.d B.c,dC.c,d,8D.(a,b),(b,a),(c,d),(d,f)解析:A.2,2,4B.2,2,6C.4,4,6 D.4,4,4解析:首先看除法运算的定义。设两个关系 R 和 S 的元数分别为 r 和 s(设 rs0),那么 RS 是一个(r-s)元的元组的集合。RS 是满足下列条件的最大关系:其中每个元组 t 与 S 中每个元组 u 组成的新元组t,u必在关系 R 中。其具体计算公式如下:RS= 1,2,r-s (R)- 1,2,r-s ( 1,2,r-s (R)S)-R)在本题中 A1,A2 ( 13 (S
45、)的结果如表 4-50 所示。表 4-50 新的关系 SA1 A2b ac d直接把 R 和新的 S 结果代入上述公式进行计算肯定不行,必须用基于像集的方法计算,可得 RS=d。两个关系 R 和 S 进行自然连接时,选择两个关系 R 和 S 公共属性上相等的元组,去掉重复的属性列构成新关系。这样,关系 R 中的某些元组有可能在关系 S 中不存在公共属性值上相等的元组,造成关系 R 中这些元组的值在运算时舍弃了;同样,关系 S 中的某些元组也可能舍弃。为此,扩充了关系运算左外连接、右外连接和完全外连接。左外连接:R 和 S 进行自然连接时,只把 R 中舍弃的元组放到新关系中。右外连接:R 和 S
46、 进行自然连接时,只把 S 中舍弃的元组放到新关系中。完全外连接:R 和 S 进行自然连接时,把 R 和 S 中舍弃的元组都放到新关系中。根据以上定义,本题中 R 与 S 的左外连接、右外连接和完全外连接的结果如表 4-51表 4-53 所示。*15.自然连接是构成新关系的有效方法。一般情况下,当对关系 R 和 S 使用自然连接时,要求 R 和 S 含有一个或多个共有的_。(分数:1.00)A.元组B.行C.记录D.属性 解析:自然连接是在两个关系的公共属性上进行的等值连接。所以答案应为 D。设有一个关系 Student(学号,姓名,系名,课程号,成绩),查询至少选修了四门课程的学生学号、姓名
47、及平均成绩的 SELECT 语句应该是:SELECT 学号,姓名,AVG(成绩)AS 平均成绩FROM StudentGROUP BY (1) HAVING (2) (分数:2.00)A.学号 B.姓名C.系名D.课程号解析:A.COUNT(DISTINCT 学号)3B.COUNT(课程号)3 C.COUNT(DISTINCT 学号)=3D.COUNT(课程号)=3解析:GROUP BY 子句可以将查询结果表的各行按一列或多列取值相等的原则进行分组,对查询结果分组的目的是为了细化函数的作用对象。如果分组后还要按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,可以使用 HAVING 短语指定筛选条件。由题意可知,在这里只能根据学号进行分组,并且要满足条件:此学号的学生至少选修了四门课。