跳转至

数据库系统:题库练习

已整理本章知识点练习 98 条来源题目,共 95 道练习。题号沿用来源序号;同材料的不同小问分别保留。

题干保留事实条件、选项与必要题图;平台答案、整理解析与纠错默认收起。解析重新归纳为复习笔记,平台答案不等同于官方答案。

题库整理进度 · 历年试卷清单

知识点练习

题目 001

来源:知识点练习「数据库系统」第 1 题(原站入口)。

为保证数据库数据安全、可靠且有效,事务对插入、删除和修改的相关内容先写入(1);系统正常工作时,再按一定时间间隔把数据库缓冲区内容写入(2)。发生故障后,使用现场数据及相关文件恢复系统状态。

请作答:第 1 题。

  • A. 索引文件

  • B. 数据文件

  • C. 日志文件

  • D. 数据字典

答案与解析

平台答案:C。

整理解析

选 C。先写日志使恢复过程能够知道哪些修改已经发生,并按恢复策略重做或撤销。严格的预写日志规则要求:对应日志先持久化,才可将修改后的数据页写入持久存储;提交记录也须按持久性要求处理。不能只把日志暂存在易失缓冲区就认为已经满足该规则。平台未提供解析,本说明为独立推导。

题目 002

来源:知识点练习「数据库系统」第 2 题(原站入口)。

为保证数据库数据安全、可靠且有效,事务对插入、删除和修改的相关内容先写入(1);系统正常工作时,再按一定时间间隔把数据库缓冲区内容写入(2)。发生故障后,使用现场数据及相关文件恢复系统状态。

请作答:第 2 题。

  • A. 索引文件

  • B. 数据文件

  • C. 日志文件

  • D. 数据字典

答案与解析

平台答案:B。

整理解析

选 B。数据库缓冲区中的修改页最终要写回持久的数据文件;日志文件记录恢复所需的变更信息,职责不同。题目的定时写回是简化描述,实际系统还可能因缓存压力、检查点等触发刷页,也不一定在一次检查点中刷清全部缓冲区。该材料两小问均无平台解析。

题目 003

来源:知识点练习「数据库系统」第 3 题(原站入口)。

多个事务并发运行时,一个事务的更新从开始到成功提交之前,对其他事务保持不可见。按事务性质分类,这体现什么( )?

  • A. 原子性

  • B. 一致性

  • C. 隔离性

  • D. 持久性

答案与解析

平台答案:C。

整理解析

选 C。限制其他事务看见本事务尚未提交的中间结果,体现隔离性。原子性强调事务整体完成或整体撤销,持久性强调提交后结果不丢失。限定:实际数据库允许不同隔离级别,读未提交可能读到未提交数据,不能把题述保证套用于所有隔离配置。

题目 004

来源:知识点练习「数据库系统」第 4 题(原站入口)。

某企业2014年5月的员工工资见下表。需要查询员工人数大于2的部门,以及各符合条件部门的应发工资平均值。补全下列SQL的(4)、(5)、(6):

1
2
3
4
SELECT (4)
FROM 工资表
(5)
(6)

题目配图

请作答:第 4 题。

  • A. 部门,AVG(应发工资)AS平均工资

  • B. 姓名,AVG(应发工资)AS平均工资

  • C. 部门,平均工资AS AVG(应发工资)

  • D. 姓名,平均工资AS AVG (应发工资)

答案与解析

平台答案:A。

整理解析

选 A。输出按部门汇总,选择列应为部门和 AVG(应发工资),AS 后面写结果列别名“平均工资”。姓名不是所需分组键,不能用它代替部门;C、D又把表达式与别名位置倒置。原选项中的中文括号等排版照录,真正执行SQL时应采用合法的SQL标点和标识符写法。

题目 005

来源:知识点练习「数据库系统」第 5 题(原站入口)。

某企业2014年5月的员工工资见下表。需要查询员工人数大于2的部门,以及各符合条件部门的应发工资平均值。补全下列SQL的(4)、(5)、(6):

1
2
3
4
SELECT (4)
FROM 工资表
(5)
(6)

题目配图

请作答:第 5 题。

  • A. ORDER BY 姓名

  • B. ORDER BY部门

  • C. GROUP BY 姓名

  • D. GROUP BY 部门

答案与解析

平台答案:D。

整理解析

选 D。先用 GROUP BY 部门把同部门员工放在一组,再为每组统计人数及平均工资。ORDER BY 只改变结果排列,不产生汇总分组;按姓名分组也不对应本题按部门统计的目标。

题目 006

来源:知识点练习「数据库系统」第 6 题(原站入口)。

某企业2014年5月的员工工资见下表。需要查询员工人数大于2的部门,以及各符合条件部门的应发工资平均值。补全下列SQL的(4)、(5)、(6):

1
2
3
4
SELECT (4)
FROM 工资表
(5)
(6)

题目配图

请作答:第 6 题。

  • A. WHERE COUNT(姓名)>2

  • B. WHERE COUNT(DISTINCT(部门) )>2

  • C. HAVING COUNT(姓名) >2

  • D. HAVING COUNT(DISTINCT(部门))>2

答案与解析

平台答案:C。

整理解析

选 C。人数是分组聚合结果,要用 HAVING COUNT(姓名)>2 筛选;WHERE 用于分组前筛选明细行。纠错:平台把 HAVING 说成分组前限制,先后关系倒置。原表姓名均非空,因此该COUNT等于人数;若允许空姓名,统计行数宜用COUNT(*)。每个部门组中COUNT(DISTINCT 部门)为1,不能筛出人数大于2的组。按原表,设计部与销售部各3人,应发工资均值分别为8950/3≈2983.33、8030/3≈2676.67。

题目 007

来源:知识点练习「数据库系统」第 7 题(原站入口)。

进行数据库逻辑结构设计时,要以(7)阶段形成的(8)作为设计依据。

请作答:第 7 题。

  • A. 需求分析

  • B. 概念结构设计

  • C. 物理结构设计

  • D. 数据库运行和维护

答案与解析

平台答案:A。

整理解析

结合第8空所列文档,选 A。需求分析产生需求说明、数据字典和数据流图,为后续逻辑结构设计提供需求依据。逻辑设计也会使用概念设计阶段的E-R等模型,因此不能把此题解释为它不需要概念结构设计成果。该材料两小问均未提供平台解析。

题目 008

来源:知识点练习「数据库系统」第 8 题(原站入口)。

进行数据库逻辑结构设计时,要以(7)阶段形成的(8)作为设计依据。

请作答:第 8 题。

  • A. 程序文档、数据字典和数据流图。

  • B. 需求说明文档、程序文档和数据流图

  • C. 需求说明文档、数据字典和数据流图

  • D. 需求说明文档、数据字典和程序文档

答案与解析

平台答案:C。

整理解析

选 C。需求说明文档描述业务要求,数据字典明确数据项及结构含义,数据流图表达数据流动和处理需求;这些均可在需求分析阶段形成。程序文档涉及具体实现,不是此阶段应有的必备成果。平台与相同材料第7题均无解析。

题目 009

来源:知识点练习「数据库系统」第 9 题(原站入口)。

给定关系模式R(A,B,C,D)与S(C,D,E)。与关系代数式 π_{1,3,5}(σ_{2='软件工程'}(R⋈S)) 等价的SQL为:

SELECT (9) FROM R,S WHERE (10);

另需从关系代数表达式中选出效率最高者(11),查询条件为B='信息'且E='北京',输出A、B、E。

请作答:第 9 题。

  • A. A,C,S.C

  • B. A,B,E

  • C. A,R.C,E

  • D. A,R.C,S.D

答案与解析

平台答案:C。

整理解析

选 C,即A、R.C、E。原页已核实原式为自然连接R⋈S。共同属性C、D合并后列序为A、B、C、D、E,所以投影第1、3、5列得到A、C、E;SQL中用R.C消除同名列歧义,并须同时约束R.C=S.C、R.D=S.D及B='软件工程'。经典关系代数投影会去重,严格对应SQL时还需DISTINCT或结果唯一性前提。

题目 010

来源:知识点练习「数据库系统」第 10 题(原站入口)。

给定关系模式R(A,B,C,D)与S(C,D,E)。与关系代数式 π_{1,3,5}(σ_{2='软件工程'}(R⋈S)) 等价的SQL为:

SELECT (9) FROM R,S WHERE (10);

另需从关系代数表达式中选出效率最高者(11),查询条件为B='信息'且E='北京',输出A、B、E。

请作答:第 10 题。

  • A. B=软件工程 OR R.C=S.C AND R.D=S.D

  • B. B=’软件工程‘OR R.C=S.C AND R.D=S.D

  • C. B=’软件工程‘OR R.C=S.C OR R.D=S.D

  • D. B=’软件工程‘AND R.C=S.C AND R.D=S.D

答案与解析

平台答案:D。

整理解析

选 D。原页已核实原式使用自然连接,因此R和S的同名列C、D必须分别相等,同时还要满足B='软件工程',三个条件用AND连接。用OR会放入仅满足部分条件的行。选项中的弯引号保留原样,实际SQL字符串通常使用成对的半角单引号。

题目 011

来源:知识点练习「数据库系统」第 11 题(原站入口)。

给定关系模式R(A,B,C,D)与S(C,D,E)。与关系代数式 π_{1,3,5}(σ_{2='软件工程'}(R⋈S)) 等价的SQL为:

SELECT (9) FROM R,S WHERE (10);

另需从关系代数表达式中选出效率最高者(11),查询条件为B='信息'且E='北京',输出A、B、E。

请作答:第 11 题。

  • A. π1,2,7(σ2=’信息‘∧3=5∧4=6∧7=’北京‘(R×S))

  • B. π1,2,7(σ3=5∧4=6(σ2=’信息‘(R)×σ3=’北京‘(S)))

  • C. π1,2,7(σ3=5∧4=6∧2=’信息‘(R×σ7=’北京‘(S)))

  • D. π1,2,7(σ3=5∧4=6∧7=’北京‘(σ2=’信息‘(R)×S))

答案与解析

平台答案:B。

整理解析

按选择下推、缩小中间结果的逻辑优化口径选 B。先在R上按第2列B筛选,在S上按第3列E筛选;笛卡儿积后列序为A、B、R.C、R.D、S.C、S.D、E,所以用3=5且4=6连接,再投影1、2、7列。原页已核实,C确写σ第7列='北京'并直接作用于只有3列的S,这是原题错误,保留7,不能改成3后让错误消失。B避免先扩大结果再筛选,但实际物理性能还取决于索引、数据分布和优化器,不能保证所有系统都严格更快。

题目 012

来源:知识点练习「数据库系统」第 12 题(原站入口)。

给定关系模式R(U,F),属性集U={A,B,C,D,E,H},函数依赖F={A→B,A→C,C→D,AE→H}。以下哪组属性是候选键( )?

  • A. AC

  • B. AB

  • C. AE

  • D. DE

答案与解析

平台答案:C。

整理解析

选 C。A、E都未出现在任何依赖的右部,无法由其他属性推出,所以每个候选键必须含二者。从AE出发,A推出B、C,再由C推出D,AE还推出H,闭包覆盖全部六个属性;去掉A或E都不能覆盖U,因此AE是唯一候选键。

题目 013

来源:知识点练习「数据库系统」第 13 题(原站入口)。

关系R(H,L,M,P)的主键被说明为全码(All-key)。那么这个主键应由哪些属性组成( )?

  • A. 为HLMP

  • B. 在集合{H,L,M,P)中任选一个

  • C. 在集合{ HL,HM,HP,LM,LP,MP}中任选一个

  • D. 在集合{HLM,HLP,HMP,LMP}中任选一个

答案与解析

平台答案:A。

整理解析

选 A。全码表示全部属性一起构成候选键,因此主键为HLMP。这里不是任意取几个属性都能唯一标识元组;全码作为候选键仍要求最小性。

题目 014

来源:知识点练习「数据库系统」第 14 题(原站入口)。

关系模式R(A1,A2,A3,A4)具有函数依赖F={A1A3→A2,A2→A3}。题给分解ρ={(A1,A2),(A1,A3)},问其连接损失及依赖保持情况( )。

  • A. 无损联接且不保持函数依赖

  • B. 无损联接且保持函数依赖

  • C. 有损联接且保持函数依赖

  • D. 有损联接且不保持函数依赖

答案与解析

平台答案:D。

整理解析

平台选 D。原页已核实原题确含A4,分解却只有(A1,A2)、(A1,A3),属于原题缺项。两个子模式的并集未覆盖A4,严格说不满足分解应覆盖原属性集的前提,不能直接对原四属性模式套二元无损连接判据。即便只考察前三列,两表公共列A1也不能决定A2或A3,连接仍会产生伪元组;如合法的(a,b1,c1)、(a,b2,c2)投影后还会拼出(a,b1,c2)。投影到两个子模式均无非平凡依赖,也不能推出原来的两条依赖。平台D可概括信息丢失及依赖不保持,但原题遗漏A4的缺陷须保留。

题目 015

来源:知识点练习「数据库系统」第 15 题(原站入口)。

哪一种算法用选择(繁殖)、交叉(重组)、变异(突变)这三个过程模拟生物进化( )?

  • A. 粒子群

  • B. 人工神经网络

  • C. 遗传

  • D. 蚁群

答案与解析

平台答案:C。

整理解析

选 C。遗传算法以编码个体组成种群,按适应度选择,再经交叉和变异产生新候选解。该机制用于启发式搜索,不保证每次运行都找到全局最优解。

题目 016

来源:知识点练习「数据库系统」第 16 题(原站入口)。

给定三个关系模式及下图,实下划线标识主键:

部门(部门代码,部门名称,电话);员工(员工代码,姓名,部门代码,联系方式,薪资);项目(项目编号,项目名称,承担任务)。

部门与员工自然连接后为(16)元关系。员工与项目的联系类型为(17),须将此联系转成独立关系模式,其主键为(18)。

题目配图

请作答:第 16 题。

  • A. 5

  • B. 6

  • C. 7

  • D. 8

答案与解析

平台答案:C。

整理解析

选 C。部门有3个属性,员工有5个属性,共同属性只有部门代码;自然连接合并这一列,结果的度为3+5−1=7。“7元”指7个属性,不是7条记录。原图及其中的主键下划线已核实。

题目 017

来源:知识点练习「数据库系统」第 17 题(原站入口)。

给定三个关系模式及下图,实下划线标识主键:

部门(部门代码,部门名称,电话);员工(员工代码,姓名,部门代码,联系方式,薪资);项目(项目编号,项目名称,承担任务)。

部门与员工自然连接后为(16)元关系。员工与项目的联系类型为(17),须将此联系转成独立关系模式,其主键为(18)。

题目配图

请作答:第 17 题。

  • A. 1对1

  • B. 1对多

  • C. 多对1

  • D. 多对多

答案与解析

平台答案:D。

整理解析

选 D。原图员工和项目两端均标*,表示多对多:员工可参与多个项目,项目也可有多个员工参与。上述联系类型已据原图核实。

题目 018

来源:知识点练习「数据库系统」第 18 题(原站入口)。

给定三个关系模式及下图,实下划线标识主键:

部门(部门代码,部门名称,电话);员工(员工代码,姓名,部门代码,联系方式,薪资);项目(项目编号,项目名称,承担任务)。

部门与员工自然连接后为(16)元关系。员工与项目的联系类型为(17),须将此联系转成独立关系模式,其主键为(18)。

题目配图

请作答:第 18 题。

  • A. (项目名称,员工代码)

  • B. (项目编号,员工代码)

  • C. (项目名称,部门代码)

  • D. (项目名称,承担任务)

答案与解析

平台答案:B。

整理解析

选 B。原图的主键下划线表明,员工实体的主键是员工代码,项目实体的主键是项目编号。原图员工—项目为多对多且未显示联系属性,按普通二元联系转换规则,用这两个实体键共同标识一条联系;键中列的先后顺序不影响唯一性。项目名称等未被给定唯一性,不能代替项目编号。

题目 019

来源:知识点练习「数据库系统」第 19 题(原站入口)。

数据库的三级模式依次为外模式、模式、内模式。下列哪一组选项与这三级模式的顺序对应( )?

  • A. 基本表、存储文件和视图

  • B. 视图、基本表和存储文件

  • C. 基本表、视图和存储文件

  • D. 视图、存储文件和基本表

答案与解析

平台答案:B。

整理解析

选 B。外模式是用户可见的局部逻辑视图;模式描述全库的逻辑结构,在关系数据库中常对应基本表等定义;内模式描述实际存储组织。视图—基本表—存储文件是本题在关系数据库语境下的简化对应,外模式不必逐一对应某条SQL CREATE VIEW语句。

题目 020

来源:知识点练习「数据库系统」第 20 题(原站入口)。

数据库逻辑设计中,若实体有多值属性,怎样将E-R图转换成关系模式,才能按题目所述得到4NF的设计( )?

  • A. 将所有多值属性组成一个关系模式

  • B. 使多值属性不在关系模式中出现

  • C. 将实体的码分别和每个多值属性独立构成一个关系模式

  • D. 将多值属性和其它属性一起构成该实体对应的关系模式

答案与解析

平台答案:C。

整理解析

选 C。将实体键与每个多值属性分别建表,可以保留归属关系,同时避免把彼此独立的多值集合交叉组合。例如学号、电话和兴趣不能因各有多个值就任意配对。严格说,4NF要求每个非平凡多值依赖的决定项都是超键;本题结论按各多值属性彼此独立且没有其他违规依赖的通常前提理解,不能宣称任意复杂模式只做这一步就必定满足4NF。

题目 021

来源:知识点练习「数据库系统」第 21 题(原站入口)。

分布式数据库有分片、复制、位置、逻辑等透明性。用户或应用无需知道局部数据库采用何种数据模型,称为(21);无需知道逻辑上访问的表如何分块存储,称为(22)。

请作答:第 21 题。

  • A. 分片透明

  • B. 复制透明

  • C. 位置透明

  • D. 逻辑透明

答案与解析

平台答案:D。

整理解析

选 D。此处逻辑透明指局部映像透明:系统屏蔽各局部数据库模型或操作语言的差异,使用户面对统一接口。它不是位置透明所屏蔽的具体存放站点。

题目 022

来源:知识点练习「数据库系统」第 22、55 题(原站入口)。

分布式数据库有分片、复制、位置、逻辑等透明性。用户或应用无需知道局部数据库采用何种数据模型,称为(21);无需知道逻辑上访问的表如何分块存储,称为(22)。

请作答:第 22 题。

  • A. 分片透明

  • B. 复制透明

  • C. 位置透明

  • D. 逻辑透明

答案与解析

平台答案(来源第 22 题):A。

整理解析(来源第 22 题)

选 A。分片透明使用户仍可操作完整的逻辑关系,由系统把请求转换成对各分片的访问。复制透明隐藏副本,位置透明隐藏存放地点,关注层次不同。

来源第 55 题对照

原题题干

分布式数据库对用户或应用隐藏逻辑表如何分块存储的细节,这称为什么透明性?( )

原题选项对照

原选项内容本页选项
A

逻辑透明

D
B

位置透明

C
C

分片透明

A
D

复制透明

B

原平台答案(来源第 55 题,原题选项):C;对应本页选项:A;本页平台答案:A。

整理解析(来源第 55 题)

隐藏全局关系如何划分为片段,是分片透明,选C。位置透明隐藏数据所在站点,复制透明隐藏副本配置与维护,局部映像透明隐藏局部数据模型等差异。物理存储细节与站点位置不是同一个概念,不能像平台部分表述那样一概归为位置透明。

题目 023

来源:知识点练习「数据库系统」第 23 题(原站入口)。

给定R(A1,A2,A3,A4,A5,A6),函数依赖为F={A1→A2,A1A3→A4,A5A6→A1,A2A5→A6,A3A5→A6}。选择R的一个主键(23),并判断它最高达到的范式(24)。

请作答:第 23 题。

  • A. A1A4

  • B. A2A4

  • C. A3A5

  • D. A4A5

答案与解析

平台答案:C。

整理解析

选 C。A3、A5从不出现在依赖右部,任何候选键都必须含它们。由A3A5推出A6,再由A5A6推出A1,继而得到A2,并由A1A3得到A4,闭包覆盖全部属性。两个单属性闭包均只有自身,所以A3A5是唯一候选键。

题目 024

来源:知识点练习「数据库系统」第 24 题(原站入口)。

给定R(A1,A2,A3,A4,A5,A6),函数依赖为F={A1→A2,A1A3→A4,A5A6→A1,A2A5→A6,A3A5→A6}。选择R的一个主键(23),并判断它最高达到的范式(24)。

请作答:第 24 题。

  • A. 1NF

  • B. 2NF

  • C. 3NF

  • D. BCNF

答案与解析

平台答案:B。

整理解析

选 B。唯一候选键是A3A5,A3和A5各自都推不出任何非主属性,没有部分依赖,按属性值原子的常规前提满足2NF。A1→A2中,A1不是超键,A2也不是主属性,因此不满足3NF。纠错:平台以A1→A6举传递依赖,但A1的闭包只有A1、A2,该箭头不能由题给F推出;使用题中明确的A1→A2即可完成正确论证。

题目 025

来源:知识点练习「数据库系统」第 25 题(原站入口)。

为实现数据的物理独立性和逻辑独立性,分别需要调整哪两级映像( )?

  • A. 外模式与内模式之间的映像、模式与内模式之间的映像

  • B. 外模式与内模式之间的映像、外模式与模式之间的映像

  • C. 外模式与模式之间的映像、模式与内模式之间的映像

  • D. 模式与内模式之间的映像、外模式与模式之间的映像

答案与解析

平台答案:D。

整理解析

选 D。存储组织改变时,通过模式—内模式映像保持逻辑结构不变;逻辑模式改变时,通过外模式—模式映像尽量保持用户视图和应用接口不变。题目先问物理、再问逻辑,顺序不能颠倒。

题目 026

来源:知识点练习「数据库系统」第 26 题(原站入口)。

数据库设计的哪个阶段通常进行关系规范化( )?

  • A. 需求分析

  • B. 概念设计

  • C. 逻辑设计

  • D. 物理设计

答案与解析

平台答案:C。

整理解析

选 C。逻辑设计把概念模型转换成关系模式,并用键、函数依赖和范式分析调整结构。物理设计侧重索引、存储组织等实现安排。

题目 027

来源:知识点练习「数据库系统」第 27 题(原站入口)。

给定关系模式R,属性集U={A,B,C},函数依赖F={AB→C,C→B},原公式见下图。以下关于R的候选键和主属性的说法,哪项成立( )?

题目配图

  • A. 有2个候选关键字AC和BC,并且有3个主属性

  • B. 有2个候选关键字AC和AB,并且有3个主属性

  • C. 只有一个候选关键字AC,并且有1个非主属性和2个主属性

  • D. 只有一个候选关键字AB,并且有1个非主属性和2个主属性

答案与解析

平台答案:B。

整理解析

选 B。A不在任何依赖右部,候选键必须含A。AB由题给依赖推出C;AC先由C→B补出B,因此两者闭包都覆盖ABC。A、B、C各自均不能决定所有属性,BC也得不到A,所以候选键恰为AB、AC;三个属性均属于某个候选键,都是主属性。该属性集及函数依赖均与原题公式图一致。

题目 028

来源:知识点练习「数据库系统」第 28 题(原站入口)。

某公司使用元件关系P(元件号,元件名称,供应商,供应商所在地,库存量),已知F={元件号→元件名称,(元件号,供应商)→库存量,供应商→供应商所在地}。选择主键(28)。为消除冗余以及插入、删除异常,应采用分解(29),分解后可达到(30)范式。

请作答:第 28 题。

  • A. 元件号,元件名称

  • B. 元件号,供应商

  • C. 元件号,供应商所在地

  • D. 供应商,供应商所在地

答案与解析

平台答案:B。

整理解析

选 B。元件号和供应商都未在依赖右部出现,必须一起纳入键。二者分别推出名称与所在地,合在一起又推出库存量,因此其闭包覆盖全部属性;删去任意一项均不够。

题目 029

来源:知识点练习「数据库系统」第 29 题(原站入口)。

某公司使用元件关系P(元件号,元件名称,供应商,供应商所在地,库存量),已知F={元件号→元件名称,(元件号,供应商)→库存量,供应商→供应商所在地}。选择主键(28)。为消除冗余以及插入、删除异常,应采用分解(29),分解后可达到(30)范式。

请作答:第 29 题。

  • A. 元件1(元件号,元件名称,库存量)、元件2(供应商,供应商所在地)

  • B. 元件1(元件号,元件名称)、元件2(供应商,供应商所在地,库存量)

  • C. 元件1(元件号,元件名称)、元件2(元件号,供应商,库存量)、元件3(供应商,供应商所在地)

  • D. 元件1(元件号,元件名称)、元件2(元件号,库存量)、元件3(供应商,供应商所在地)、元件4(供应商所在地,库存量)

答案与解析

平台答案:C。

整理解析

选 C。把元件号决定的名称、供应商决定的所在地分别保存,再用(元件号,供应商,库存量)保留供应联系及库存量,三条原依赖可各自在一张表中检查。按元件号、供应商依次连接又可无损重建原关系。其余分解没有正确保留完整的元件—供应商—库存量对应,不能只因每个属性都出现过就认为分解正确。

题目 030

来源:知识点练习「数据库系统」第 30 题(原站入口)。

某公司使用元件关系P(元件号,元件名称,供应商,供应商所在地,库存量),已知F={元件号→元件名称,(元件号,供应商)→库存量,供应商→供应商所在地}。选择主键(28)。为消除冗余以及插入、删除异常,应采用分解(29),分解后可达到(30)范式。

请作答:第 30 题。

  • A. 1NF

  • B. 2NF

  • C. 3NF

  • D. 4NF

答案与解析

平台答案:C。

整理解析

平台选 C,分解后确实满足3NF。进一步按给出的函数依赖检查,各子表的每个非平凡函数依赖的决定项都是其键,因此实际上也满足BCNF,不能说最高只能到3NF。4NF还要检查完整的非平凡多值依赖;题中只列函数依赖,不能把没有相关分析当成已经证明不满足4NF。

题目 031

来源:知识点练习「数据库系统」第 31 题(原站入口)。

DBA利用DBMS的授权功能,为不同用户配置访问权限,其主要目的是什么( )?

  • A. 正确性

  • B. 安全性

  • C. 一致性

  • D. 完整性

答案与解析

平台答案:B。

整理解析

选 B。授权控制谁能访问哪些对象、执行哪些操作,直接服务于数据库安全性。完整性约束则主要限制数据应满足的合法性规则。

题目 032

来源:知识点练习「数据库系统」第 32 题(原站入口)。

关系模式R(U,F)中,U={A1,A2,A3,A4},F={A1→A2,A1A2→A3,A1→A4,A2→A4}。选择R的主键(32),并指出F中的冗余依赖(33)。

请作答:第 32 题。

  • A. A1

  • B. A1A2

  • C. A1A3

  • D. A1A2A3

答案与解析

平台答案:A。

整理解析

选 A。由A1先得到A2、A4,再利用已有的A1与A2得到A3,闭包为全部四个属性。A1本身不由其他属性推出,且单属性已构成键,因此含A1的更大组合只是非最小的超键。

题目 033

来源:知识点练习「数据库系统」第 33 题(原站入口)。

关系模式R(U,F)中,U={A1,A2,A3,A4},F={A1→A2,A1A2→A3,A1→A4,A2→A4}。选择R的主键(32),并指出F中的冗余依赖(33)。

请作答:第 33 题。

  • A. A1→A2

  • B. A1A2→A3

  • C. A1→A4

  • D. A2→A4

答案与解析

平台答案:C。

整理解析

选 C。删除A1→A4后,仍可由A1→A2和A2→A4推出它,所以这条依赖冗余。A1A2→A3虽可把左部约简成A1,却不能直接整条删除,否则无法推出A3;左部多余属性与冗余依赖是不同问题。

题目 034

来源:知识点练习「数据库系统」第 34 题(原站入口)。

给定R(A,B,C,D)和S(A,C,E,F)。自然连接R⋈S有(34)个属性列;与选择表达式 σ_{R.B>S.E}(R⋈S) 等价的关系代数式是(35)。

请作答:第 34 题。

  • A. 4

  • B. 5

  • C. 6

  • D. 8

答案与解析

平台答案:C。

整理解析

选 C。两个关系各有4列,同名列为A、C,自然连接各保留一份,因此结果有4+4−2=6列,可排列为A、B、C、D、E、F。

题目 035

来源:知识点练习「数据库系统」第 35 题(原站入口)。

给定R(A,B,C,D)和S(A,C,E,F)。自然连接R⋈S有(34)个属性列;与选择表达式 σ_{R.B>S.E}(R⋈S) 等价的关系代数式是(35)。

请作答:第 35 题。

  • A. σ2 > 7(R×S)

  • B. π1,2,3,4,7,8(σ1=5^2 > 7^3=6(R×S))

  • C. σ2 > '7'(R×S)

  • D. π1,2,3,4,7,8(σ1=5^2 > ’7’^3=6(R×S))

答案与解析

平台答案:B。

整理解析

选 B。R×S的8列依次为R.A、R.B、R.C、R.D、S.A、S.C、S.E、S.F;自然连接需1=5且3=6,另加2>7,再投影1、2、3、4、7、8删除重复连接列。题中^按逻辑且理解。A缺连接条件与投影;C、D把7放入引号中,变成常量而不是第7列。

题目 036

来源:知识点练习「数据库系统」第 36 题(原站入口)。

在使用关系R、S的下列表达式中,要求筛选B='大数据'且F='开发平台',最终输出A、B、C、F。按题意选择查询效率最高者( )。

  • A. π1,2,3,8(σ2=‘大数据’ ^ 1=5 ^ 3=6 ^ 8=‘开发平台’(R×S))

  • B. π1,2,3,8(σ1=5 ^ 3=6 ^ 8=‘开发平台’(σ2=‘大数据’(R)×S))

  • C. π1,2,3,8(σ2=‘大数据’ ^ 1=5 ^ 3=6(R×σ4=‘开发平台’(S))

  • D. π1,2,3,8(σ1=5 ^ 3=6(σ2=‘大数据’(R)×σ4=‘开发平台’(S)))

答案与解析

平台答案:D。

整理解析

平台选 D,依据是在两侧尽早筛选,减少连接前的行数。原页已核实,本题没有重列或明确引用R、S的模式,因此不能把相邻题模式直接当成本题已给条件。若仅作为条件性参考沿用Q34—35的R(A,B,C,D)、S(A,C,E,F),B在R第2列、F在S第4列,D的下标可对应所求。原选项C有3个左括号、2个右括号,属原站缺括号,已保留而未补齐。选择下推是逻辑优化原则,实际耗时仍由执行计划、索引和数据分布决定。

题目 037

来源:知识点练习「数据库系统」第 37 题(原站入口)。

当前T1在D1上持有共享锁,T2在D2上、T3在D3上分别持有排他锁。在这些锁未释放时,T1的加锁情况为(37),T2的加锁情况为(38)。

请作答:第 37 题。

  • A. D2、D3加排它锁都成功

  • B. D2、D3加共享锁都成功

  • C. D2加共享锁成功,D3加排它锁失败

  • D. D2、D3加排它锁和共享锁都失败

答案与解析

平台答案:D。

整理解析

选 D。D2、D3分别被其他事务的排他锁占用,均与T1申请的共享锁、排他锁不兼容。因此T1的四种申请都不能立即获准。选项所谓“失败”应按当前不能授予理解,具体DBMS也可能让事务排队等待,并不必然立即报错或中止。

题目 038

来源:知识点练习「数据库系统」第 38 题(原站入口)。

当前T1在D1上持有共享锁,T2在D2上、T3在D3上分别持有排他锁。在这些锁未释放时,T1的加锁情况为(37),T2的加锁情况为(38)。

请作答:第 38 题。

  • A. D1、D3加共享锁都失败

  • B. D1、D3加共享锁都成功

  • C. D1加共享锁成功,D3加排它锁失败

  • D. D1加排它锁成功,D3加共享锁失败

答案与解析

平台答案:C。

整理解析

选 C。T2申请D1共享锁时,与T1已有共享锁相容;申请D3排他锁时,与T3已有排他锁冲突。纠错:本题平台答案字段为C,解析末尾却沿用了第37题的“选D”,该结尾不适用于本小问。

题目 039

来源:知识点练习「数据库系统」第 39 题(原站入口)。

设R(U,F),U={A1,A2,A3},F={A1A3→A2,A1A2→A3}。R的每个候选键中必定含哪个属性( )?

  • A. A1

  • B. A2

  • C. A3

  • D. A2A3

答案与解析

平台答案:A。

整理解析

选 A。A1没有出现在任何依赖右部,不含A1的属性组无法将它推出,故所有候选键都必须含A1。再加A2或A3均可覆盖全部属性,候选键恰为A1A2、A1A3。

题目 040

来源:知识点练习「数据库系统」第 40 题(原站入口)。

企业工程项目数据库有Supp(供应商号,供应商名,地址,电话)、Proj(项目号,项目名,负责人,电话)、Part(零件号,零件名),E-R图见下图。每个供应商可给多个项目供应多种零件,每个项目也可由多个供应商供应多种零件。联系SP_P须独立建表,其联系类型为(40)。

给定SP_P(供应商号,项目号,零件号,数量),查询至少供应3个项目(包括恰好3个)的供应商,输出供应商号和供应数量总和,并按供应商号降序排列:

1
2
3
4
SELECT 供应商号, SUM(数量) FROM (41)
GROUP BY 供应商号
(42)
ORDER BY 供应商号 DESC;

题目配图

请作答:第 40 题。

  • A. *:*:*

  • B. 1:*:*

  • C. 1:1:*

  • D. 1:1:1

答案与解析

平台答案:A。

整理解析

平台选 A,按题目通常意图将供应商、项目、零件建成多对多对多的三元供应联系。已查看原图,它只画了三个实体、SP_P联系和数量属性,没有标注基数。严格的三元基数需考察固定另外两方时第三方有几个实例;只说每一方都可涉及多个实体,并不能排除某一实体对唯一决定第三方。故A按未另加这种唯一性约束的常见场景理解,不把图上不存在的*标记补画进去。

题目 041

来源:知识点练习「数据库系统」第 41 题(原站入口)。

企业工程项目数据库有Supp(供应商号,供应商名,地址,电话)、Proj(项目号,项目名,负责人,电话)、Part(零件号,零件名),E-R图见下图。每个供应商可给多个项目供应多种零件,每个项目也可由多个供应商供应多种零件。联系SP_P须独立建表,其联系类型为(40)。

给定SP_P(供应商号,项目号,零件号,数量),查询至少供应3个项目(包括恰好3个)的供应商,输出供应商号和供应数量总和,并按供应商号降序排列:

1
2
3
4
SELECT 供应商号, SUM(数量) FROM (41)
GROUP BY 供应商号
(42)
ORDER BY 供应商号 DESC;

题目配图

请作答:第 41 题。

  • A. Supp

  • B. Proj

  • C. Part

  • D. SP_P

答案与解析

平台答案:D。

整理解析

选 D。SP_P同时含供应商号、项目号及实际供应数量,才能按供应商汇总数量并统计其项目数。实体表Supp、Proj、Part各自只描述实体本身,无法单独完成这项供应记录统计。

题目 042

来源:知识点练习「数据库系统」第 42 题(原站入口)。

企业工程项目数据库有Supp(供应商号,供应商名,地址,电话)、Proj(项目号,项目名,负责人,电话)、Part(零件号,零件名),E-R图见下图。每个供应商可给多个项目供应多种零件,每个项目也可由多个供应商供应多种零件。联系SP_P须独立建表,其联系类型为(40)。

给定SP_P(供应商号,项目号,零件号,数量),查询至少供应3个项目(包括恰好3个)的供应商,输出供应商号和供应数量总和,并按供应商号降序排列:

1
2
3
4
SELECT 供应商号, SUM(数量) FROM (41)
GROUP BY 供应商号
(42)
ORDER BY 供应商号 DESC;

题目配图

请作答:第 42 题。

  • A. HAVING COUNT(项目号)>2

  • B. WHERE COUNT(项目号)>2

  • C. HAVING COUNT(DISTINCT(项目号))>2

  • D. WHERE COUNT(DISTINCT(项目号))>3

答案与解析

平台答案:C。

整理解析

选 C。同一供应商可能向同一项目提供多种零件,必须COUNT(DISTINCT 项目号)才能得到项目数,而不是供应明细行数。分组后的数量条件放在HAVING中;至少3个等价于>2,不能误写成>3。SUM(数量)仍累计该供应商所有供应记录的数量。

题目 043

来源:知识点练习「数据库系统」第 43、84 题(原站入口)。

数据库采用三级模式和两级映像。对一张表创建聚簇索引时,改变的主要是哪一级模式( )?

  • A. 用户模式

  • B. 外模式

  • C. 模式

  • D. 内模式

答案与解析

平台答案(来源第 43 题):D。

整理解析(来源第 43 题)

选 D。聚簇索引涉及记录的存储组织或访问路径,属于内模式范畴;用户看到的逻辑列定义不因此改变。不同DBMS实现聚簇的方式有所差异,不必将其解释为所有物理文件中的记录永远连续有序。

来源第 84 题对照

原题题干

在数据库三级模式结构下,为表创建聚簇索引,改变的是哪一级模式?( )

原题选项对照

原选项内容本页选项
A

外模式

B
B

模式

C
C

内模式

D
D

用户模式

A

原平台答案(来源第 84 题,原题选项):C;对应本页选项:D;本页平台答案:D。

整理解析(来源第 84 题)

聚簇索引影响记录的存储组织及访问路径,属于内模式,选C。表的概念逻辑结构归模式,用户所见的局部视图归外模式。

题目 044

来源:知识点练习「数据库系统」第 44 题(原站入口)。

培训关系R(培训科目,培训师,学生,成绩,时间,教室)满足F={培训科目→培训师,(学生,培训科目)→成绩,(时间,教室)→培训科目,(时间,培训师)→教室,(时间,学生)→教室}。选择主键(44)及该关系最高达到的范式(45)。

请作答:第 44 题。

  • A. (学生,培训科目)

  • B. (时间,教室)

  • C. (时间,培训师)

  • D. (时间,学生)

答案与解析

平台答案:D。

整理解析

选 D。时间、学生不在任何依赖右部,候选键必须含它们。由二者推出教室,再连同时间推出培训科目,由科目推出培训师,最后连同学生推出成绩,闭包包含所有属性;二者单独都不足,故组成唯一候选键。纠错:推导过程中不能丢掉时间或学生,平台写成“教室→培训科目→成绩”的单列箭头链不成立。

题目 045

来源:知识点练习「数据库系统」第 45 题(原站入口)。

培训关系R(培训科目,培训师,学生,成绩,时间,教室)满足F={培训科目→培训师,(学生,培训科目)→成绩,(时间,教室)→培训科目,(时间,培训师)→教室,(时间,学生)→教室}。选择主键(44)及该关系最高达到的范式(45)。

请作答:第 45 题。

  • A. 1NF

  • B. 2NF

  • C. 3NF

  • D. BCNF

答案与解析

平台答案:B。

整理解析

选 B。唯一候选键为(时间,学生),时间和学生各自都不能推出非主属性,因此不存在对该键的部分依赖,在属性原子的前提下满足2NF。培训科目→培训师的决定项不是超键,培训师也不是主属性,直接违反3NF,故最高为2NF。

题目 046

来源:知识点练习「数据库系统」第 46 题(原站入口)。

设R(U,F),U={A,B,C,D,E},F={A→B,DE→B,CB→E,E→A,B→D}。选择R的候选键(46),以及同时无损连接并保持函数依赖的分解(47)。

请作答:第 46 题。

  • A. AB

  • B. DE

  • C. DB

  • D. CE

答案与解析

平台答案:D。

整理解析

选 D。C不在任何依赖右部,所以必须是每个候选键的组成部分,不能误说C自身就是候选键。CE中由E推出A,再推出B、D,故CE覆盖全部属性且最小。完整计算还可得到AC、BC两个候选键;本空选项中只有CE符合。

题目 047

来源:知识点练习「数据库系统」第 47 题(原站入口)。

设R(U,F),U={A,B,C,D,E},F={A→B,DE→B,CB→E,E→A,B→D}。选择R的候选键(46),以及同时无损连接并保持函数依赖的分解(47)。

请作答:第 47 题。

  • A. ρ={R1(AC),R2(ED),R3(B)}

  • B. ρ={R1(AC),R2(E),R3(DB)}

  • C. ρ={R1(AC),R2(ED),R3(AB)}

  • D. ρ={R1(ABC),R2(ED),R3(ACE)}

答案与解析

平台答案:D。

整理解析

平台答案保留 D,但它只满足无损连接,不满足保持依赖。原页已核实,题干确要求两者同时成立,F确含B→D,D确为{ABC,ED,ACE}且没有其他子模式。无损性可分两步证明:把R分成ABCE和ED,交集E可决定ED;再把ABCE分成ABC和ACE,交集AC可决定两边。然而F投影到ABC、ED、ACE后,联合依赖下B的闭包仍只有{B},推不出B→D。平台追赶表出现全a行仅证明无损,不能证明保持依赖。逐项检查四个选项都不同时满足两项要求,这是已核实原题的矛盾。

题目 048

来源:知识点练习「数据库系统」第 48 题(原站入口)。

对关系模式R(U,F)中的函数依赖应用Armstrong推理规则,以下哪项是伪传递律( )?

  • A. 若X→Y,X→Z,则X→YZ为F所蕴涵

  • B. 若X→Y,WY→Z,则XW→Z为F所蕴涵

  • C. 若X→Y,Y→Z为F所蕴涵,则X→Z为F所蕴涵

  • D. 若Ⅹ→Y为F所蕴涵,且Z⊆U,则XZ→YZ为F所蕴涵

答案与解析

平台答案:B。

整理解析

选 B。由X→Y增广W可得XW→YW,再结合WY→Z,用传递律得到XW→Z。A是合并律,C是传递律,D是增广律;伪传递律是由基本公理推出的规则。

题目 049

来源:知识点练习「数据库系统」第 49 题(原站入口)。

给定R(A,B,C,D,E)和S(B,C,F,G)。将关系代数表达式 π_{2,4,6,7}(σ_{2<7}(R⋈S)) 转成下列SQL,分别选择投影列(49)和条件(50):

SELECT (49) FROM R,S WHERE (50);

请作答:第 49 题。

  • A. R.B,D,F,G

  • B. R.B,E,S.C,F,G

  • C. R.B,R.D,S.C,F

  • D. R.B,R.C,S.C,F

答案与解析

平台答案:A。

整理解析

选 A。自然连接合并同名B、C后,列序为A、B、C、D、E、F、G;第2、4、6、7列就是B、D、F、G。SQL同时列出R和S时,B需写成R.B或S.B以消除歧义。限定:经典关系代数按集合投影去重,SQL默认保留重复;若要求完全一致且不能保证结果唯一,应使用SELECT DISTINCT。本题选项只考列及条件,未给DISTINCT。

题目 050

来源:知识点练习「数据库系统」第 50 题(原站入口)。

给定R(A,B,C,D,E)和S(B,C,F,G)。将关系代数表达式 π_{2,4,6,7}(σ_{2<7}(R⋈S)) 转成下列SQL,分别选择投影列(49)和条件(50):

SELECT (49) FROM R,S WHERE (50);

请作答:第 50 题。

  • A. R.B=S.B OR R.C = S.C OR R.B < S.G

  • B. R.B=S.B OR R.C = S.C OR R.B < S.C

  • C. R.B=S.B AND R.C = S.C AND R.B < S.G

  • D. R.B=S.B AND R.C = S.C AND R.B < S.C

答案与解析

平台答案:C。

整理解析

选 C。自然连接要求R.B=S.B且R.C=S.C;连接结果第2列是B,第7列是G,因此额外筛选为R.B<S.G。三个条件必须同时成立,用AND连接,不能用OR,也不能把第7列错认成S.C。若按经典关系代数要求去重,还需考虑第49题说明的DISTINCT。

题目 051

来源:知识点练习「数据库系统」第 51 题(原站入口)。

教师表Teacher(T_no, T_name, Dept_name, Tel)依次存储教师号、姓名、学院名和电话。下面定义函数Dept_count,传入学院名(varchar(20))并返回该学院的教师人数。补全(51)、(52)。

1
2
3
4
5
6
7
8
9
Create function Dept_count(Dept_name varchar(20))
(51)
begin
  (52)
  select count(*) into d_count
  from Teacher
  where Teacher.Dept_name = Dept_name
  return d_count
end

请作答:第51题。

  • A. returns integer

  • B. returns d_count integer

  • C. declare integer

  • D. declare d_count integer

答案与解析

平台答案:A。

整理解析

函数头在参数表之后声明返回类型,应填returns integer,选A;d_count是在函数体内声明的局部变量。原片段是教材式伪SQL,AS是否需要、分号及参数名解析规则依数据库方言而定,不能把平台“AS可缺省”推广到所有数据库。题中Dept_ name按前述字段名Dept_name理解;实际实现宜将参数改用不同名称,避免与列同名。

题目 052

来源:知识点练习「数据库系统」第 52 题(原站入口)。

教师表Teacher(T_no, T_name, Dept_name, Tel)依次存储教师号、姓名、学院名和电话。下面定义函数Dept_count,传入学院名(varchar(20))并返回该学院的教师人数。补全(51)、(52)。

1
2
3
4
5
6
7
8
9
Create function Dept_count(Dept_name varchar(20))
(51)
begin
  (52)
  select count(*) into d_count
  from Teacher
  where Teacher.Dept_name = Dept_name
  return d_count
end

请作答:第52题。

  • A. returns integer

  • B. returns d_count integer

  • C. declare integer

  • D. declare d_count integer

答案与解析

平台答案:D。

整理解析

需要声明接收COUNT(*)结果的变量d_count及其类型,填declare d_count integer,选D;之后SELECT INTO赋值,RETURN返回计数。Q51选A、Q52选D,平台解析中的“A、D”对应两个小问。题面省略了方言相关的完整语法,Dept_ name按已给字段名整理;实际SQL应消除参数与列同名的歧义。

题目 053

来源:知识点练习「数据库系统」第 53 题(原站入口)。

某集团旗下有多个超市,各店销售数据最终汇入集团数据仓库。高管要按时间、地区、商品种类三个维度分析某家电商品的销售数据,最适合使用哪项技术?( )

  • A. Data Extraction

  • B. OLAP

  • C. OLTP

  • D. ETL

答案与解析

平台答案:B。

整理解析

按多个维度交互分析销售汇总属于联机分析处理OLAP,选B。Data Extraction只负责抽取,ETL负责抽取、转换和加载,OLTP主要处理日常交易;它们都不直接对应本题的多维分析目标。

题目 054

来源:知识点练习「数据库系统」第 54 题(原站入口)。

数据库的视图、存储文件、基本表,按此顺序分别属于三级模式结构的哪一层?( )

  • A. 模式、内模式和外模式

  • B. 外模式、模式和内模式

  • C. 模式、外模式和内模式

  • D. 外模式、内模式和模式

答案与解析

平台答案:D。

整理解析

视图提供用户所见的外部表示,对应外模式;存储文件涉及物理组织,对应内模式;基本表属于全局逻辑结构,对应模式。因此顺序为外模式、内模式、模式,选D。

题目 056

来源:知识点练习「数据库系统」第 56 题(原站入口)。

关系模式R(A1,A2,A3,A4,A5,A6),函数依赖集F={A1→A3,A1A2→A4,A5A6→A1,A3A5→A6,A2A5→A6}。第(56)空选择R的一个主键,第(57)空选择由F可得出的范式结论。

请作答:第56题。

  • A. A1A4

  • B. A2A5

  • C. A3A4

  • D. A4A5

答案与解析

平台答案:B。

整理解析

依赖右端从未出现A2和A5,两者都必须包含在任何候选键中。由A2A5先推出A6,再由A5A6推出A1,继而推出A3、A4,故其闭包包含全部六个属性,且不能删去任一属性。唯一候选键为A2A5,可选作主键,选B。平台说“唯一入度为0的是A2”遗漏了A5。

题目 057

来源:知识点练习「数据库系统」第 57 题(原站入口)。

关系模式R(A1,A2,A3,A4,A5,A6),函数依赖集F={A1→A3,A1A2→A4,A5A6→A1,A3A5→A6,A2A5→A6}。第(56)空选择R的一个主键,第(57)空选择由F可得出的范式结论。

请作答:第57题。

  • A. 不存在传递依赖,故R为1NF

  • B. 不存在传递依赖,故R为2NF

  • C. 存在传递依赖,故R为3NF

  • D. 每个非主属性完全函数依赖于主键,故R为2NF

答案与解析

平台答案:D。

整理解析

唯一候选键为A2A5;单独A2或A5的闭包都只有自身,非主属性不存在对候选键真子集的依赖,故在属性原子的通常前提下达到2NF,选D。但A1→A3中A1不是超键,A3也不是主属性,所以不满足3NF。2NF允许传递依赖。平台“只有A2入度为0”还漏掉了同样必在候选键内的A5。

题目 058

来源:知识点练习「数据库系统」第 58 题(原站入口)。

已知R(A,B,C,D)、S(C,D,E)。R与S自然连接后的属性列数为(58);关系代数式π1,4(σ2=5(R⋈S))与第(59)空哪一选项等价?

请作答:第58题。

  • A. 4

  • B. 5

  • C. 6

  • D. 7

答案与解析

平台答案:B。

整理解析

自然连接要求同名属性C、D分别相等,并合并重复的同名列,结果为A、B、C、D、E,共4+3−2=5列,选B。本空计算独立成立;同材料第59题的备选式都遗漏连接条件,不能照搬为自然连接。

题目 059

来源:知识点练习「数据库系统」第 59 题(原站入口)。

已知R(A,B,C,D)、S(C,D,E)。R与S自然连接后的属性列数为(58);关系代数式π1,4(σ2=5(R⋈S))与第(59)空哪一选项等价?

请作答:第59题。

  • A. πA,D(σC=D(R×S))

  • B. πR.A,R.D(σR.B=S.C(R×S))

  • C. πA,R.D(σR.C=S.D(R×S))

  • D. πR.A,R.D(σR.B=S.E(R×S))

答案与解析

平台答案:D。

整理解析

平台答案D保留,但四个选项均不与原式严格等价,平台解析也承认这一点。自然连接后的第2、5列分别是B、E,第1、4列为A、D;若改用笛卡尔积,正确表达式应为πR.A,R.D(σR.B=S.E ∧ R.C=S.C ∧ R.D=S.D(R×S))。D只保留B=E,漏掉两个同名列相等条件。例如R={(1,9,3,4)}、S={(8,7,9)}时,自然连接为空,D却得到{(1,4)},因此只能说D最接近题意,不能称其等价。

题目 060

来源:知识点练习「数据库系统」第 60 题(原站入口)。

已知R(A,B,C,D,E)和S(A,C,E,F,G),进行自然连接R⋈S后,结果保留哪些属性列?( )

  • A. R.A,R.C,R.E,S.A,S.C,S.E

  • B. R.A,R.B,R.C,R.D,R.E,S.F,S.G

  • C. R.A,R.B,R.C,R.D,R.E,S.A,S.C,S.E

  • D. R.A,R.B,R.C,R.D,R.E,S.A,S.C,S.E,S.F,S.G

答案与解析

平台答案:B。

整理解析

共同属性为A、C、E,自然连接在这三列上匹配,并各保留一份。因此可表示为R的A、B、C、D、E加S的F、G,合计7列,选B。此处以前一个关系的列标记同名列只是表示习惯,不是说自然连接只按左表数据保留行。

题目 061

来源:知识点练习「数据库系统」第 61 题(原站入口)。

关系R的属性集U={A1,A2,A3,A4},函数依赖集F={A1A3→A2,A1A2→A3,A2→A4}。候选键情况为(61),每个候选键都必须包含的属性及主属性分类见(62)。

请作答:第61题。

  • A. 有1个候选关键字A2A3

  • B. 有1个候选关键字A2A4

  • C. 有2个候选关键字A1A2和A1A3

  • D. 有2个候选关键字A1A2和A2A3

答案与解析

平台答案:C。

整理解析

A1未出现在任何依赖右端,所以候选键都必须含它。(A1A2)+和(A1A3)+都包含全部四个属性,且各自删去任一属性后不能覆盖U;只含A1A4则无法推出A2、A3。故恰有A1A2和A1A3两个候选键,选C。

题目 062

来源:知识点练习「数据库系统」第 62 题(原站入口)。

关系R的属性集U={A1,A2,A3,A4},函数依赖集F={A1A3→A2,A1A2→A3,A2→A4}。候选键情况为(61),每个候选键都必须包含的属性及主属性分类见(62)。

请作答:第62题。

  • A. A1,其中A1A2A3为主属性,A4为非主属性

  • B. A2,其中A2A3A4为主属性,A1为非主属性

  • C. A2A3,其中A2A3为主属性,A1A4为非主属性

  • D. A2A4,其中A2A4为主属性,A1A3为非主属性

答案与解析

平台答案:A。

整理解析

两个候选键分别是A1A2、A1A3,交集为必含属性A1;候选键的并集A1、A2、A3为主属性,只有A4是非主属性,选A。“主属性”指属于任一候选键,并不要求出现在每个候选键中。

题目 063

来源:知识点练习「数据库系统」第 63 题(原站入口)。

把Dept表name列的UPDATE权限授予Ming,并允许Ming继续把该权限授予其他用户,应补入什么子句?

GRANT UPDATE(name) ON TABLE Dept TO Ming ( );
  • A. FOR ALL

  • B. CASCADE

  • C. WITH GRANT OPTION

  • D. WITH CHECK OPTION

答案与解析

平台答案:C。

整理解析

WITH GRANT OPTION使受权者可以把所获权限继续授予他人,选C。WITH CHECK OPTION用于约束通过视图进行的更新,CASCADE用于某些撤销或删除操作的级联处理,不表示允许转授权。

题目 064

来源:知识点练习「数据库系统」第 64 题(原站入口)。

事务T1已对D1加共享锁,T2、T3分别对D2、D3加排它锁。在这些锁仍持有时,以下加锁结果哪项正确?( )

  • A. T1对数据D2D3加排它锁都成功,T2T3对数据D1加共享锁成功

  • B. T1对数据D2D3加排它锁都失败,T2T3对数据D1加排它锁成功

  • C. T1对数据D2D3加共享锁都成功,T2T3对数据D1加共享锁成功

  • D. T1对数据D2D3加共享锁都失败,T2T3对数据D1加共享锁成功

答案与解析

平台答案:D。

整理解析

共享锁之间兼容,排它锁与其他事务的共享锁、排它锁都不兼容。因此T1不能立即获得D2、D3上的共享锁,而T2、T3可在D1已有共享锁时再加共享锁,选D。选项“失败”表示当前不能获准,实际系统通常可让请求等待。

题目 065

来源:知识点练习「数据库系统」第 65、76 题(原站入口)。

分布式数据库某个场地发生故障时,可使用其他场地的副本继续工作,避免整个系统瘫痪。这体现哪项特性?( )

  • A. 共享性

  • B. 自治性

  • C. 可用性

  • D. 分布性

答案与解析

平台答案(来源第 65 题):C。

整理解析(来源第 65 题)

局部故障后仍能通过其他副本提供服务,体现可用性,选C。自治性关注站点管理本地数据,分布性关注数据分散存放,共享性关注跨站点访问数据。

来源第 76 题对照

原题题干

企业采用分布式数据库:当一处场地失效,系统仍可使用其他场地上的副本,避免全系统停摆。这属于哪项特性?( )

原题选项对照

原选项内容本页选项
A

共享性

A
B

自治性

B
C

可用性

C
D

分布性

D

原平台答案(来源第 76 题,原题选项):C;对应本页选项:C;本页平台答案:C。

整理解析(来源第 76 题)

故障后仍能利用其他副本持续提供服务,是可用性,选C。共享性描述数据共享,自治性描述站点对本地数据的管理,分布性描述跨场地存储。

题目 066

来源:知识点练习「数据库系统」第 66 题(原站入口)。

R的属性为{A,B,C,D},依赖集Fr={A→BC,B→D};S的属性为{A,C,E},依赖集Fs={A→C,C→E}。R、S的主键分别为(66);关于这两个依赖集的正确说法为(67)。

请作答:第66题。

  • A. A、A

  • B. AB、A

  • C. A、AC

  • D. AB、AC

答案与解析

平台答案:A。

整理解析

在R中,A先决定B、C,再通过B决定D,A+={A,B,C,D};在S中,A→C→E,A+={A,C,E}。A都未出现在依赖右端,且单属性键不可再约简,故两个关系都以A为唯一候选键,可作为主键,选A。AB或AC即使覆盖全部属性,也因不最小而不是候选键。

题目 067

来源:知识点练习「数据库系统」第 67 题(原站入口)。

R的属性为{A,B,C,D},依赖集Fr={A→BC,B→D};S的属性为{A,C,E},依赖集Fs={A→C,C→E}。R、S的主键分别为(66);关于这两个依赖集的正确说法为(67)。

请作答:第67题。

  • A. Fr蕴含A→B、A→C,但Fr不存在传递依赖

  • B. Fs蕴含A→E,Fs存在传递依赖,但Fr不存在传递依赖

  • C. Fr、Fs分别蕴含A→D,A→E,故Fr、Fs都存在传递依赖

  • D. Fr蕴含A→D,Fr存在传递依赖,但是Fs不存在传递依赖

答案与解析

平台答案:C。

整理解析

由分解规则A→BC可得A→B,再结合B→D得A→D;S中由A→C与C→E得A→E。这里B、C分别不是相应关系的超键,D、E是非主属性,确实构成对键的传递依赖,选C。

题目 068

来源:知识点练习「数据库系统」第 68 题(原站入口)。

已知R(A,B,C,D)与S(B,C,E,F),要把π1,5,7(σ2=5(R×S))写成下列SQL,补全(68)、(69)。

SELECT (68)
FROM R, S (69);

请作答:第68题。

  • A. R.A,R.B,S.F

  • B. R.A,S.B,S.E

  • C. R.A,S.E,S.F

  • D. R.A,S.B,S.F

答案与解析

平台答案:B。

整理解析

笛卡尔积按R后S排列为R.A、R.B、R.C、R.D、S.B、S.C、S.E、S.F,第1、5、7列是R.A、S.B、S.E,选B。注意经典关系代数投影会去重,SQL默认保留重复行;若要求严格的集合语义等价,完整查询应写SELECT DISTINCT。题面未给保证投影唯一的条件,平台省略了这一差别。

题目 069

来源:知识点练习「数据库系统」第 69 题(原站入口)。

已知R(A,B,C,D)与S(B,C,E,F),要把π1,5,7(σ2=5(R×S))写成下列SQL,补全(68)、(69)。

SELECT (68)
FROM R, S (69);

请作答:第69题。

  • A. WHERE R.B=S.B

  • B. HAVING R.B=S.B

  • C. WHERE R.B=S.E

  • D. HAVING R.B=S.E

答案与解析

平台答案:A。

整理解析

笛卡尔积第2列是R.B,第5列是S.B,因此筛选条件为WHERE R.B=S.B,选A。这里仅对B做等值连接,不能自行增加C列相等条件。严格对应集合语义的关系代数还需在SELECT后加DISTINCT,以消除投影产生的重复行。

题目 070

来源:知识点练习「数据库系统」第 70 题(原站入口)。

事务已COMMIT,但更新的数据页可能仍在服务器磁盘缓冲区、尚未写入磁盘;此后即使系统故障,已提交结果仍应保留。这是哪项事务性质?( )

  • A. 原子性

  • B. 一致性

  • C. 隔离性

  • D. 持久性

答案与解析

平台答案:D。

整理解析

提交后的结果能够在故障恢复后保留,属于持久性,选D。数据页可稍后刷盘,但提交前必须依赖已持久化的日志或其他可靠机制保存恢复所需信息,仅留在易失缓冲区并不能保证持久性。平台把提交前修改始终对其他事务不可见当作通用隔离定义也过于绝对,具体可见性取决于隔离级别。

题目 071

来源:知识点练习「数据库系统」第 71 题(原站入口)。

某高校合并各部门的分E-R图。人力部门将职工定义为(职工号、姓名、性别、出生日期),教学部门将教师定义为(教师号、姓名、职称)。这种差异属于(71),合并时拟采用(72)处理。

请作答:第71题。

  • A. 属性冲突

  • B. 命名冲突

  • C. 结构冲突

  • D. 实体冲突

答案与解析

平台答案:C。

整理解析

按题目把两者看作同一类人员的局部表示时,属性集合不同属于结构冲突,选C。属性冲突通常指同一属性的类型、范围或单位不一致;命名冲突指同名异义或异名同义。此处职工与教师的名称及标识还须统一,且教师是否仅是职工子集应由业务规则决定。

题目 072

来源:知识点练习「数据库系统」第 72 题(原站入口)。

某高校合并各部门的分E-R图。人力部门将职工定义为(职工号、姓名、性别、出生日期),教学部门将教师定义为(教师号、姓名、职称)。这种差异属于(71),合并时拟采用(72)处理。

请作答:第72题。

  • A. 职工和教师实体保持各自属性不变

  • B. 职工实体中加入职称属性,删除教师实体

  • C. 教师也是学校的职工,故直接将教师实体删除

  • D. 将教师实体所有属性并入职工实体,删除教师实体

答案与解析

平台答案:B。

整理解析

平台答案B:保留职工实体并增加职称,按其意图还需统一教师号与职工号。该方案隐含两个编号可等同或已有映射、可将教师特有属性并入职工的假设;若编号各有含义,直接删除教师实体可能丢失信息。平台称D必然重复记录姓名也不充分,属性集合合并可以消除同名项。因此B应作为题设教材口径,不能当作无需业务约束的唯一合并规则。

题目 073

来源:知识点练习「数据库系统」第 73 题(原站入口)。

关系R的属性集U={A,B,C,D},函数依赖集F={A→BC,AC→D,B→D}。关于候选键与传递依赖,哪项正确?( )

  • A. 不存在传递依赖,候选关键字A

  • B. 不存在传递依赖,候选关键字AC

  • C. 存在传递依赖A→D,候选关键字A

  • D. 存在传递依赖B→D,候选关键字C

答案与解析

平台答案:C。

整理解析

A→BC,且B→D,所以A+={A,B,C,D};A未出现于右端,故唯一候选键为A。经A→B→D可得到非主属性D对键A的传递依赖,选C。AC虽能决定全部属性,却含有多余属性C,不是候选键;AC→D也可从其余依赖推出。

题目 074

来源:知识点练习「数据库系统」第 74 题(原站入口)。

关系R、S的数据如下表。第(74)空选择自然连接R⋈S的结果;第(75)空依次求两者的左外连接、右外连接、完全外连接的元组数。

题目配图

请作答:第74题。

  • A. { (2,1,4),(3,4,4)}

  • B. { (2,1,4,8),(3,4,4,4)}

  • C. { (1.4.2,1.8),(3.4.4.3,4,4)}

  • D. { (1,2,3,1,9,1),(2,1,4,2,1,8),(3,4,4,3,4,4).(4,6,7.4,8,3)}

答案与解析

平台答案:B。

整理解析

两表共同属性是A1、A2,必须同时匹配。只有(2,1)和(3,4)两组匹配,将R中的A3与S中的A4接在共同列后,得到{(2,1,4,8),(3,4,4,4)},选B。不能仅按A1相等进行连接。

题目 075

来源:知识点练习「数据库系统」第 75 题(原站入口)。

关系R、S的数据如下表。第(74)空选择自然连接R⋈S的结果;第(75)空依次求两者的左外连接、右外连接、完全外连接的元组数。

题目配图

请作答:第75题。

  • A. 2,2,4

  • B. 2,2,6

  • C. 4,4,4

  • D. 4,4,6

答案与解析

平台答案:D。

整理解析

自然连接有2个匹配元组;R另有(1,2,3)、(4,6,7)两个未匹配元组,S另有(1,9,1)、(4,8,3)两个未匹配元组。左外连接补上R侧两行,得4行;右外连接补上S侧两行,得4行;完全外连接保留两侧未匹配行,得2+2+2=6行,选D。缺失的对侧属性用NULL补齐,共同属性仍保留原值。

题目 077

来源:知识点练习「数据库系统」第 77 题(原站入口)。

关于数据库三级模式之间的两级映像,哪项表述正确?( )

  • A. 模式/内模式映像实现了外模式到内模式之间的相互转换

  • B. 模式/内模式映像实现了概念模式到内模式之间的相互转换

  • C. 外模式/模式的映像实现了概念模式到内模式之间的相互转换

  • D. 外模式/内模式的映像实现了外模式到内模式之间的相互转换

答案与解析

平台答案:B。

整理解析

模式/内模式映像连接概念层与内部存储层,选B,并支持物理数据独立性。外模式/模式映像连接用户视图与概念层,支持逻辑数据独立性;标准的两级映像不另设直接的外模式/内模式映像。

题目 078

来源:知识点练习「数据库系统」第 78 题(原站入口)。

下图中实体R1与R2通过联系E关联。当E具有什么基数时,必须把该联系单独转换成关系模式?( )

题目配图

  • A. 1:1

  • B. 1:*

  • C. *:1

  • D. *:*

答案与解析

平台答案:D。

整理解析

多对多联系(:)需建立独立关系,包含两侧实体键及联系自身的属性,选D。1:1通常可在适当一侧加入外键,1:或:1可在多端保存一端的键,因此这些联系不一定需要独立表。

题目 079

来源:知识点练习「数据库系统」第 79 题(原站入口)。

关系R(U,F),U={A,B,C,D,E,H},F={A→B,B→DH,A→H,C→E}。候选码情况为(79);传递依赖与冗余依赖情况为(80)。

请作答:第79题。

  • A. 1个候选码A

  • B. 2个候选码A、B

  • C. 1个候选码AC

  • D. 2个候选码A、C

答案与解析

平台答案:C。

整理解析

A、C都没有出现在依赖右端,所有候选码必须包含AC。A可推出B、D、H,C可推出E,因此(AC)+=U;去掉A或C都不能覆盖U,故只有一个候选码AC,选C。A和C各自都不是候选码。

题目 080

来源:知识点练习「数据库系统」第 80 题(原站入口)。

关系R(U,F),U={A,B,C,D,E,H},F={A→B,B→DH,A→H,C→E}。候选码情况为(79);传递依赖与冗余依赖情况为(80)。

请作答:第80题。

  • A. 不存在传递依赖,但存在冗余函数依赖

  • B. 既不存在传递依赖,也不存在冗余函数依赖

  • C. 存在传递依赖A→D和A→H,但不存在冗余函数依赖

  • D. 存在传递依赖A→D和A→H,并且还存在冗余函数依赖

答案与解析

平台答案:D。

整理解析

由A→B和B→DH可推出A→D、A→H,且B不能反推A,存在题目所指的传递依赖。即使从F删除显式的A→H,该依赖仍可沿A→B→H推出,所以A→H是冗余依赖,选D。A本身不是整个关系的候选码,这里讨论的是属性间传递依赖;不能把A误当作第79题的键。

题目 081

来源:知识点练习「数据库系统」第 81 题(原站入口)。

销售公司有员工表E(工号、姓名、部门名、电话、住址)、商品表C(商品号、商品名、库存数)、销售表EC(工号、商品号、销售数、销售日期)。要求查询销售部1在2020年11月11日售出“HUWEI Mate40”的员工工号、姓名、部门名,以及商品名和销售数,补全表达式:

π1,2,3,7,8((81)⋈((82)⋈(83)))。

请作答:第81题。

  • A. σ3=销售部1(E)

  • B. σ3=销售部1(C)

  • C. σ3=‘销售部1’(E)

  • D. σ3=‘销售部1’(C)

答案与解析

平台答案:C。

整理解析

部门名是E的第3列,因此应在员工表上筛选3=‘销售部1’,选C。按本题常量记号约定,部门名作为字符串需要引号。C表的第3列为库存数,不是部门名;商品名HUWEI Mate40按题面拼写保留。

题目 082

来源:知识点练习「数据库系统」第 82 题(原站入口)。

销售公司有员工表E(工号、姓名、部门名、电话、住址)、商品表C(商品号、商品名、库存数)、销售表EC(工号、商品号、销售数、销售日期)。要求查询销售部1在2020年11月11日售出“HUWEI Mate40”的员工工号、姓名、部门名,以及商品名和销售数,补全表达式:

π1,2,3,7,8((81)⋈((82)⋈(83)))。

请作答:第82题。

  • A. π2,3(σ2=‘HUWEI Mate40’(C))

  • B. π1,2(σ2=‘HUWEI Mate40’(C))

  • C. π2,3(σ2=‘HUWEI Mate40’(EC))

  • D. π1,2(σ2=‘HUWEI Mate40’(EC))

答案与解析

平台答案:B。

整理解析

商品名在C的第2列,先筛选‘HUWEI Mate40’,再保留第1、2列的商品号与商品名,选B。商品号用于与EC连接,商品名用于最终输出;A丢掉连接所需的商品号。按题面列序完成两次自然连接后,第7、8列确为商品名与销售数。

题目 083

来源:知识点练习「数据库系统」第 83 题(原站入口)。

销售公司有员工表E(工号、姓名、部门名、电话、住址)、商品表C(商品号、商品名、库存数)、销售表EC(工号、商品号、销售数、销售日期)。要求查询销售部1在2020年11月11日售出“HUWEI Mate40”的员工工号、姓名、部门名,以及商品名和销售数,补全表达式:

π1,2,3,7,8((81)⋈((82)⋈(83)))。

请作答:第83题。

  • A. σ4=‘2020年11月11日’(C)

  • B. σ3=‘2020年11月11日’(C)

  • C. σ4=‘2020年11月11日’(EC)

  • D. σ3=‘2020年11月11日’(EC)

答案与解析

平台答案:C。

整理解析

销售日期在EC的第4列,故应使用σ4=‘2020年11月11日’(EC),选C。EC第3列是销售数;C没有销售日期且只有三列,不能在C上使用日期条件。

题目 085

来源:知识点练习「数据库系统」第 85 题(原站入口)。

关系R(U,F),U={A1,A2,A3,A4},F={A1→A2,A1→A3,A2→A4}。第(85)空选择候选码,第(86)空选择错误结论。

请作答:第85题。

  • A. A1

  • B. A2

  • C. A1A2

  • D. A1A3

答案与解析

平台答案:A。

整理解析

A1先推出A2、A3,再经A2推出A4,其闭包覆盖U;它也未出现在任何依赖右端,故唯一候选码为A1,选A。A1A2、A1A3不是最小超键。

题目 086

来源:知识点练习「数据库系统」第 86 题(原站入口)。

关系R(U,F),U={A1,A2,A3,A4},F={A1→A2,A1→A3,A2→A4}。第(85)空选择候选码,第(86)空选择错误结论。

请作答:第86题。

  • A. A1→A2A3为F所蕴涵

  • B. A1→A4为F所蕴涵

  • C. A1A2→A4为F所蕴涵

  • D. A2→A3为F所蕴涵

答案与解析

平台答案:D。

整理解析

A2的闭包只有{A2,A4},推不出A3,所以D错误。A可由合并规则得到,B由传递律得到;C由A2→A4在左侧增加A1即可得到,不必先证明A1也决定A4。

题目 087

来源:知识点练习「数据库系统」第 87 题(原站入口)。

学生关系S(学号、姓名、学院名、电话、家庭住址)、课程关系C(课程号、课程名、选修课程号)、选课关系SC(学号、课程号、成绩)。查询“张晋”选修“市场营销”课程的学号、学生名、学院名、成绩,题面表达式为:

π1,2,3,7(π1,2,3(87)∞(88))。

请作答:第87题。

  • A. σ2=张晋(S)

  • B. σ2='张晋'(S)

  • C. σ2=张晋(SC)

  • D. σ2='张晋'(SC)

答案与解析

平台答案:B。

整理解析

姓名是S的第2列,先筛选2='张晋',再投影学号、姓名、学院名,平台答案B。原站可见页面已核实:连接符确以∞显示,外层投影确为1,2,3,7,关系与选项没有缺失。按平台解析的自然连接语义并填入第88题C,两层连接最终只有6列,成绩是第6列,第7列不存在。这是原题错误,题面保留原式,不改平台答案。

题目 088

来源:知识点练习「数据库系统」第 88 题(原站入口)。

学生关系S(学号、姓名、学院名、电话、家庭住址)、课程关系C(课程号、课程名、选修课程号)、选课关系SC(学号、课程号、成绩)。查询“张晋”选修“市场营销”课程的学号、学生名、学院名、成绩,题面表达式为:

π1,2,3,7(π1,2,3(87)∞(88))。

请作答:第88题。

  • A. π2,3(σ2='市场营销'(C))∞SC

  • B. π2,3(σ2=市场营销(SC))∞C

  • C. π1,2(σ2='市场营销'(C))∞SC

  • D. π1,2(σ2=市场营销(SC))∞C

答案与解析

平台答案:C。

整理解析

按平台的自然连接意图,先在C第2列筛选课程名,再投影课程号、课程名,并与SC按课程号连接,应选C。共享解析末尾“答案选B”属于第87题。原站可见页面已核实题干及选项的∞字形和外层投影第7列,未丢失条件;按自然连接最终为学号、姓名、学院名、课程号、课程名、成绩,共6列,因此原式第7列错误。正确意图可用属性名投影成绩或第6列表示,源式及平台答案仍保留。

题目 089

来源:知识点练习「数据库系统」第 89 题(原站入口)。

为第三方开发者提供可调用的数据更新接口,题目要求由此保证数据库关系模式不被第三方获取,应采用哪项机制?( )

  • A. 触发器

  • B. 存储过程

  • C. 视图

  • D. 索引

答案与解析

平台答案:B。

整理解析

存储过程可封装更新操作,对外提供调用接口,选B;要隐藏表结构还需配合执行权限、表权限及元数据访问控制,单独创建过程并不自动保证保密。平台称视图不能更新有误,满足数据库可更新条件的视图可以支持INSERT、UPDATE或DELETE。触发器通常由指定事件自动触发,不是这里供外部主动调用的接口。

题目 090

来源:知识点练习「数据库系统」第 90 题(原站入口)。

视图是虚拟表。基于user表创建名为user1的视图后,数据字典保存什么?( )

  • A. user1查询语句

  • B. user1视图定义

  • C. user1查询结果

  • D. 所引用的基本表

答案与解析

平台答案:B。

整理解析

保存的是user1的视图定义,选B,其中包含定义视图的查询及相关元数据。普通视图不会因此把每次查询结果另存一份;这里也不是保存用户每次查询user1所提交的语句。物化视图另有结果存储机制,不属于本题的普通虚拟视图。

题目 091

来源:知识点练习「数据库系统」第 91 题(原站入口)。

给定R(A,B,C,D)与S(A,D,E,F)。自然连接R▷◁S的结果含(91)个属性;σR.B>S.F(R▷◁S)与第(92)空哪一式等价?

请作答:第91题。

  • A. 4

  • B. 5

  • C. 6

  • D. 8

答案与解析

平台答案:C。

整理解析

两个关系各有4列,同名属性为A、D,自然连接合并这两列,得到A、B、C、D、E、F,共4+4−2=6列,选C。

题目 092

来源:知识点练习「数据库系统」第 92 题(原站入口)。

给定R(A,B,C,D)与S(A,D,E,F)。自然连接R▷◁S的结果含(91)个属性;σR.B>S.F(R▷◁S)与第(92)空哪一式等价?

请作答:第92题。

  • A. σ2>8(RxS)

  • B. π1,2,3,4,7,8(σ1=5 ∧ 2>8 ∧ 4=6(R×S))

  • C. σ”2">"8"(RxS)

  • D. π1,2,3,4,7,8(σ1=5 ∧ "2">"8" ∧ 4=6(RxS))

答案与解析

平台答案:B。

整理解析

在R×S中列序为R.A、R.B、R.C、R.D、S.A、S.D、S.E、S.F。自然连接需1=5且4=6,再筛选2>8,最后投影1、2、3、4、7、8去掉重复同名列,故B等价。A遗漏自然连接条件与合并重复列的投影;C、D把列号加引号后变成字面量比较,不是比较第2、8列。

题目 093

来源:知识点练习「数据库系统」第 93 题(原站入口)。

把E-R模型转成关系模型时,实体E1与E2之间的多对多联系R需建立独立关系。按通常转换规则,该关系的关键字由什么组成?( )

  • A. 联系R的属性

  • B. E1或E2的关键字

  • C. E1和E2的关键字

  • D. E1和E2的关键字加上R的属性

答案与解析

平台答案:C。

整理解析

通常由E1、E2各自的键组合而成,选C;组合键标识一对相联系的实体,联系自身的描述属性随该键确定。若业务允许同一实体对发生多次不同联系,还须额外建模事件或序号,不能无条件套用简单二元联系的规则。

题目 094

来源:知识点练习「数据库系统」第 94 题(原站入口)。

高校人力资源数据库的教师关系为T(教师号、姓名、部门号、岗位、联系地址、薪资),F={教师号→(姓名、部门号、岗位、联系地址),岗位→薪资}。第(94)空选择主键及异常情况,第(95)空选择依赖和最高范式结论。

请作答:第94题。

  • A. 教师号,T存在冗余以及插入异常和删除异常的问题

  • B. 教师号,T不存在冗余以及插入异常和删除异常的问题

  • C. (教师号,岗位),T存在冗余以及插入异常和删除异常的问题

  • D. (教师号,岗位),T不存在冗余以及插入异常和删除异常的问题

答案与解析

平台答案:A。

整理解析

教师号直接确定姓名、部门号、岗位、联系地址,再经岗位确定薪资,因此单独教师号就是候选键,可作为主键。多个教师共享岗位时会重复存储该岗位薪资;没有教师便不便单独登记岗位薪资,删除该岗位最后一位教师也可能丢失薪资信息。存在这些冗余与异常风险,选A。

题目 095

来源:知识点练习「数据库系统」第 95 题(原站入口)。

高校人力资源数据库的教师关系为T(教师号、姓名、部门号、岗位、联系地址、薪资),F={教师号→(姓名、部门号、岗位、联系地址),岗位→薪资}。第(94)空选择主键及异常情况,第(95)空选择依赖和最高范式结论。

请作答:第95题。

  • A. 存在传递依赖,故关系模式T最高达到1NF

  • B. 存在传递依赖,故关系模式T最高达到2NF

  • C. 不存在传递依赖,故关系模式T最高达到3NF

  • D. 不存在传递依赖,故关系模式T最高达到4NF

答案与解析

平台答案:B。

整理解析

教师号是唯一单属性候选键,在属性原子的通常前提下不存在部分依赖,达到2NF。教师号→岗位→薪资是非主属性对键的传递依赖;岗位不是超键,薪资也不是主属性,违反3NF,因此最高为2NF,选B。可将岗位与薪资分离到独立关系以消除此项冗余。

题目 096

来源:知识点练习「数据库系统」第 96 题(原站入口)。

事务程序A计算表达式x/y;已知y=0会使该表达式计算失败,这属于哪类故障?( )

  • A. 系统故障

  • B. 事务故障

  • C. 介质故障

  • D. 死机

答案与解析

平台答案:B。

整理解析

这是事务内部计算引起的事务故障,选B,通常需中止并回滚该事务。平台把错误称为“被除数为0”写反了:y是除数,问题是除数为0;被除数x为0且除数非零并不会因此出错。

题目 097

来源:知识点练习「数据库系统」第 97 题(原站入口)。

员工关系E(员工号、员工名、部门名、电话、家庭住址)、工程关系P(工程号、工程名、前期工程号)、参与关系EP(员工号、工程号、工作量)。查询员工“005”参与“虎头山隧道”工程时的员工名、部门名、工程名、工作量,补全下式:

π2,3,5,6(π1,2,3((97))⋈((98)))。

请作答:第97题。

  • A. 𝜎2=‘005’(E)

  • B. 𝜎1=‘005’(E)

  • C. 𝜎2=‘005’(P)

  • D. 𝜎1=‘005’(P)

答案与解析

平台答案:B。

整理解析

员工号为E的第1列,需在E上选择1=‘005’,故选B。保留引号可明确005是带前导零的标识符;E第2列是员工名,P中也没有员工号。

题目 098

来源:知识点练习「数据库系统」第 98 题(原站入口)。

员工关系E(员工号、员工名、部门名、电话、家庭住址)、工程关系P(工程号、工程名、前期工程号)、参与关系EP(员工号、工程号、工作量)。查询员工“005”参与“虎头山隧道”工程时的员工名、部门名、工程名、工作量,补全下式:

π2,3,5,6(π1,2,3((97))⋈((98)))。

请作答:第98题。

  • A. π2,3(σ2=’虎头山隧道’(P)) ⋈ EP

  • B. π2,3(σ2=’虎头山隧道’(EP)) ⋈ P

  • C. π1,2(σ2=’虎头山隧道’(EP)) ⋈ P

  • D. π1,2(σ2=’虎头山隧道’(P)) ⋈ EP

答案与解析

平台答案:D。

整理解析

在P第2列筛选工程名,投影第1、2列以保留工程号、工程名,再按工程号与EP自然连接,选D。不能先丢掉工程号,也不能在EP里按工程名筛选。与E的前三列连接后,列序为员工号、员工名、部门名、工程号、工程名、工作量,外层投影2、3、5、6恰好得到所需结果。

历年真题:2026年5月(考生回忆版)

本节收录本卷归入本模块的 4 题;题号沿用试卷编号;同材料的不同小问分别保留。

2026-05 Q021

来源:2026年5月软件设计师综合知识真题(考生回忆版)第 21 题(原站试卷目录)。

比较下列SQL事务隔离级别,哪一级提供最强的隔离保障(原题称“安全性最高”)?

  • A. SERIALIZABLE

  • B. REPEATABLE READ

  • C. READ COMMITTED

  • D. READ UNCOMMITTED

答案与解析

平台答案:A。

整理解析

SERIALIZABLE要求并发事务的结果等效于某一种串行执行顺序,是这些SQL隔离级别中最强的一档,选A。这不要求事务实际逐个运行,也不等于仅使用MVCC就自动实现可串行化。

补充与纠错

MySQL/InnoDB的可重复读中,普通一致性读主要依靠快照,锁定读/范围操作可能依靠间隙锁或next-key锁,不能笼统说所有读都靠间隙锁避免幻读。MVCC也须配合相应并发控制,才可能提供可串行化保障。

2026-05 Q023

来源:2026年5月软件设计师综合知识真题(考生回忆版)第 23 题(原站试卷目录)。

对于关系模式R,已知每个非主属性都完全函数依赖于其主键。题目据此要求判断R满足哪一种范式。

  • A. 3NF

  • B. 2NF

  • C. 1NE(保留来源选项的拼写)

  • D. BCNF

答案与解析

平台答案:B。

整理解析

平台按经典2NF考点选B,但严谨判定还要先满足1NF,并检查非主属性对每一个候选键都没有部分依赖,而不能只检查任选的主键。题干省略这些条件,宜作为简化的复习题理解。来源C项“1NE”不是常用范式名称,未据此猜改原选项。

补充与纠错

原解析用“消除主属性对主键的部分、传递依赖”描述BCNF不够严谨。BCNF要求每个非平凡函数依赖X→Y的决定因素X都是超键;3NF对单属性右部X→A则允许X是超键,或A是主属性。判定时须考虑全部候选键及函数依赖。

2026-05 Q024

来源:2026年5月软件设计师综合知识真题(考生回忆版)第 24 题(原站试卷目录)。

在数据库表上建立索引,首要目标是什么?

  • A. 确保数据完整性

  • B. 加快查询

  • C. 使表结构更简单

  • D. 减少存储占用

答案与解析

平台答案:B。

整理解析

索引提供额外的检索入口,使适合使用索引的查询减少扫描工作,因此主要目的为B。它会带来存储及更新维护成本,并非所有查询都会因新增索引而更快。

2026-05 Q055

来源:2026年5月软件设计师综合知识真题(考生回忆版)第 55 题(原站试卷目录)。

关系数据库的实体完整性要求主键( )。

  • A. 不重复且不为空

  • B. 可为空但不重复

  • C. 可为空且可重复

  • D. 可重复但不为空

答案与解析

平台答案:A。

整理解析

选 A。主键用来唯一标识元组,必须唯一且非空。若由多个属性组成复合主键,每个组成属性都不能取 NULL。

2025年下半年软件设计师考试基础知识真题(考生回忆版)

本节已整理 4 条来源记录;题号沿用来源,答案与解析默认收起。

2025-11 Q010

来源:第 10 题(原站入口)。

SQL查询中,哪一子句用于筛选分组后的数据( )?

  • A.

    GROUP BY

  • B.

    HAVING

  • C.

    ORDER BY

  • D.

    WHEREB

答案与解析

平台答案:B。

整理解析

选B。HAVING对分组及其聚合结果施加条件;GROUP BY形成分组,ORDER BY负责排序,WHERE通常在分组前筛选输入行。

补充与纠错

原题拼写错误已核实:原站截图确认D选项确为WHEREB,此处按原题保留。标准SQL子句为WHERE,用于在分组前筛选行;这项说明仅作解析,不改动D选项。

2025-11 Q013

来源:第 13 题(原站入口)。

关系代数中,从一张表取出部分列属于哪种操作( )?

  • A.

    笛卡尔积

  • B.

    投影

  • C.

    选择

  • D.

    连接

答案与解析

平台答案:B。

整理解析

选B。投影保留指定属性列,关系代数采用集合语义时还会去除相同结果元组。选择按谓词筛选行;笛卡尔积和连接用于组合关系中的元组。

2025-11 Q021

来源:第 21 题(原站入口)。

数据库建立索引的主要目的是什么( )?

  • A.

    提高数据查询速度

  • B.

    简化数据备份

  • C.

    保证数据完整性

  • D.

    减少数据存储空间

答案与解析

平台答案:A。

整理解析

选A。索引提供额外的访问路径,可减少满足条件的查询所需扫描的数据。它通常占用额外存储并增加写入维护成本;唯一索引可参与实施唯一性约束,但“保证数据完整性”不是所有索引的普遍主目的。

2025-11 Q026

来源:第 26 题(原站入口)。

某关系模式的全部属性都是不可再分的简单属性。题目问:该模式“最高”满足第几范式( )?

  • A.

    第三

  • B.

    第四

  • C.

    第一

  • D.

    第二

答案与解析

平台答案:C。

整理解析

平台答案为C,所考定义是第一范式:属性值具有原子性。但原题的“最高”无法由已知条件推出;满足第一范式的关系也可能满足第二、第三乃至更高范式。还需给定候选键以及函数依赖、多值依赖等,才能判断最高范式。

补充与纠错

平台解析把“符合1NF定义”直接当作“最高仅为1NF”,推理不足。第4范式也不是消除一切多值依赖,而是要求每个非平凡多值依赖的决定因素为超键。保留原问法、四个选项及平台C,在此说明缺少条件。

2025年上半年软件设计师考试基础知识真题(考生回忆版)

本节已整理 1 条来源记录;题号沿用来源,答案与解析默认收起。

2025-05 Q020

来源:第 20 题(原站入口)。

关系数据库设计中,第三范式主要针对哪类问题( )?

  • A.

    多值依赖

  • B.

    传递依赖

  • C.

    外键冗余

  • D.

    主键冗余

答案与解析

平台答案:B。

整理解析

选B。常见教学表述是:在2NF基础上,避免非主属性通过其他非主属性传递依赖于候选键,从而减少冗余和更新异常。多值依赖主要由4NF处理;外键冗余和主键冗余不是3NF的这项定义。

补充与纠错

严格定义是:对每个非平凡函数依赖X→A,X是超键,或A是主属性。不能简化成消除所有传递依赖;候选键也不应只说成选定的那一个主键。

2024年下半年软件设计师基础知识真题(学员版)

本节已整理 6 条来源记录;题号沿用来源,答案与解析默认收起。

2024-11-student Q010

来源:第 10 题(原站入口)。

函数依赖集F与G等价,应满足下列哪一关系( )?

  • A.

    F→G

  • B.

    F+=G+

  • C.

    G→F

  • D.

    F=G

答案与解析

平台答案:B。

整理解析

选B。F+与G+分别是两个依赖集能逻辑推出的全部函数依赖;两者相等,才能保证表达同一组约束。等价依赖集的具体写法可以不同,因此不要求F与G字面相同。

格式整理说明

B:函数依赖集的闭包用右上标“+”表示;符号与选项含义保留。

2024-11-student Q018

来源:第 18 题(原站入口)。

关系数据库通过哪项实现参考完整性约束( )?

  • A.

    主码

  • B.

    候选码

  • C.

    超码

  • D.

    外码

答案与解析

平台答案:D。

整理解析

选D。外码约束把引用方属性与被引用键联系起来,要求非空引用值能够找到对应的被引用记录,从而维持参照关系。外码可以与本表主码重合,也可引用本表,不能按平台解析理解成必定不是本表主码、必定只连向另一表。

2024-11-student Q025

来源:第 25 题(原站入口)。

SQL访问控制中,用哪项操作授予权限( )?

  • A.

    DELETE

  • B.

    GRANT

  • C.

    REVOKE

  • D.

    DROP

答案与解析

平台答案:B。

整理解析

选B。GRANT授予数据库访问权限,REVOKE撤销权限;DELETE删除数据行,DROP删除表等数据库对象。常见教学分类把GRANT与REVOKE归为数据控制语言DCL,平台将GRANT直接称为DDL不符合这一分类口径。

2024-11-student Q037

来源:第 37 题(原站入口)。

SQL中,要把数据库查询结果分组,应使用哪一子句( )?

  • A.

    GROUP BY

  • B.

    HAVING

  • C.

    WHERE

  • D.

    ORDER BY

答案与解析

平台答案:A。

整理解析

选A。GROUP BY按指定字段形成分组,HAVING筛选分组结果,WHERE筛选分组前的行,ORDER BY指定结果排序。分组通常结合聚合函数进行统计。

2024-11-student Q040

来源:第 40 题(原站入口)。

数据库执行恢复操作,主要依靠下列哪一属性( )?

  • A.

    约束

  • B.

    冗余

  • C.

    加密

  • D.

    存取控制

答案与解析

平台答案:B。

整理解析

选B。恢复需要数据库备份、日志等额外保留的信息,以重建丢失数据或撤销/重做事务。这是为恢复而有意保存的冗余,并非范式讨论中应减少的无谓重复。

2024-11-student Q051

来源:第 51 题(原站入口)。

关于函数依赖,以下推断中不正确的是( )。

  • A.

    若A→B,B→C,则A→AC

  • B.

    若A→B,B→C,则A→ABC

  • C.

    若A→BC,则A→B,B→C

  • D.

    若A→BC,则A→AB,A→AC

答案与解析

平台答案:C。

整理解析

选C。A→BC按分解规则只能直接推出A→B和A→C,不能推出B→C。例如关系中只有(1,x,p)、(2,x,q)两行时,A决定B、C,但同一个B值x对应两个C值,故B→C不成立。A、B可由传递性与合并规则得到,D由分解、反身性与合并规则得到。

2024年下半年软件设计师案例分析真题:案例题

本节收录 1 组案例。

2024-11-case Q004

铁路货运订单数据库的概念与逻辑设计

(四)(15分)

【说明】

为响应国家一带一路战略,某贸易公司开通运行中欧班列铁路货运。为规范货物收发流程,便于查询客户订单情况,需要开发一个信息系统。请根据下述需求描述完成该系统的数据库设计。

【需求描述】

(1)记录货物的信息,包括货物编号和货物名称。

(2)记录班列信息,包括班列编号、起点和终点信息。

(3)记录托运信息,一个班列可以托运不同的货物,同一批货物也可以用不同的班列托运。

(4)记录客户信息,包括客户姓名和手机号码。

(5)记录订单信息,包括订单编号、客户手机号码、班列编号、货物编号、数量和日期。同一个订单的货物可能装载在不同的班列。

【概念模型设计】

根据需求阶段收集的信息,设计的实体联系图(不完整)如图1所示。

图1 实体联系图

【逻辑结构设计】

根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整;下划线按原页保留):

货物(货物编号,名称)

班列(班列编号,起点和终点)

托运(货物编号,(a),日期)

客户(姓名,手机号码)

订单(订单编号,客户手机号码,(b),货物编号,数量,日期)

01(6分)
根据问题描述,补充图1的实体联系图。
02(4分)
补充逻辑结构设计结果中的(a)、(b)两处空缺及完整性约束关系。
03(5分)
若公司还代办客户委托签证业务,签证信息包括签证编号、签证国别和日期。
(1)在图1中补充新增加的“签证”实体,以及客户实体和签证实体之间的“委托”联系。
(2)给出“签证”的关系模式。

答案与解析

平台参考答案(原意保留)

平台参考答案(以下保留其建模表述与键定义,问题见下方解析):

  1. 为“订单”联系增加“数量”和“日期”属性。平台写道:“订单和班列之间是多,订单和货物之间是多,订单和客户之间是1,订单和托运之间是多。”
  2. (a)班列编号。托运的主键为(货物编号,班列编号);外键为货物编号、班列编号。(b)班列编号。订单的主键为(订单编号,客户手机号,班列编号,货物编号);外键为客户手机号、班列编号、货物编号。
  3. 签证实体增加签证编号、签证国别、日期三个属性;“签证和委托之间是多,客户和委托之间是1”。关系模式:签证(签证编号,客户手机号码,签证国别,日期)。

平台解析补充:“同一个订单的货物可能装载在不同的班列”据以判断订单与班列为1对多,并将订单与货物也表述为1对多。

解析与纠错

解析与纠错:

(1)先区分图中已经出现的事实与需要补充的假设。

  • 图片已核:货物、班列、客户使用实体矩形;托运、订单使用联系菱形。“托运”已连接货物和班列,两端均为 *,并有日期属性;“订单”目前只连接订单编号属性,尚未连接参与实体。货物编号、班列编号、手机号码、订单编号在图片中有下划线。原页已确认逻辑模式的下划线:托运仅货物编号带下划线;订单中的订单编号、客户手机号码、货物编号带下划线;(a)(b)和托运日期均不带下划线。下划线是来源记载,不代表认定其键设定合理。
  • (a)与(b)均应补“班列编号”,由需求和关系模式可以直接确定。订单还需数量、日期属性,这一部分无争议。
  • 平台要求把订单与托运两个联系直接相连,但普通 E-R 模型中的联系连接实体;若要把一个联系整体作为另一个联系的参与对象,需要明确采用聚集抽象,或者把托运实体化。给定图没有聚集框或托运实体化说明,不能据平台的一句话擅自补出两菱形直连线。
  • 若按当前图补订单这一多元联系,参与者可识别为客户、班列、货物。不过多元联系端的 1 不是“每张订单一位客户”的简单同义词:在通常三元联系的基数语义中,客户端为1意味着固定另外两端的组合后至多一位客户,会限制多位客户在同一班列托运同种货物。加之重复订单如何区分也未说明,不能把平台的“1/多”标记直接当作已证明正确的概念模型。
  • “一个订单可以包含多个班列”只说明订单这一端的可扩展性,不能推出“每个班列只对应一个订单”;题目并未禁止同一班列承运不同订单。同理,不能仅凭一句话就把订单与货物的整体关系确定为1:N。采用订单实体、订单明细还是带标识属性的多元联系,会影响补图和基数解释;题干未明确这种建模约定,现有条件不能确定唯一补图。

(2)键与函数依赖需要满足业务条件。

  • 货物以货物编号标识,班列以班列编号标识,客户按图中的手机号码标识。托运中的货物编号应引用货物,班列编号应引用班列;订单中的客户手机号码引用客户,货物编号引用货物,班列编号引用班列。引用列须对应被引用关系的候选键/唯一键,外键值应满足参照完整性;作为主键的属性不得为空且键值唯一。数量的类型、是否允许零、日期范围等细则题干未给出,不冒充已有约束。
  • 平台把托运主键定为(货物编号,班列编号),隐含“一对货物—班列只记录一次托运”,从而有 (货物编号, 班列编号) → 日期。题干提到“同一批货物”,却没有独立批次号,也没有明确同一组合能否在不同日期重复托运,因此该主键只能作为附带条件的简化设计。若允许重复,必须重新确定运次/批次标识或其他足够的唯一性约束;不能无依据断言加入日期就必然唯一。
  • 按通常“一张订单属于一位客户”的业务语义,有 订单编号 → 客户手机号码。因此平台的四属性订单主键包含冗余的客户手机号码,不满足候选键的最小性。SQL 即使接受声明这个组合为 PRIMARY KEY,也不能证明它是关系理论上的候选键;这个声明本身还不能阻止同一订单编号对应多个客户。
  • 因为同一订单的货物可分装到不同班列,订单编号不能单独标识这种展开后的明细行。如果另外约定“同一订单、班列、货物组合至多一条明细”,并且没有进一步减少键的函数依赖,才可以选择 (订单编号, 班列编号, 货物编号) 作为明细键;该唯一性条件并未完整写在题干中,不能把它宣布为无条件唯一答案。
  • 若明细必须引用一条已经登记的托运,仅有两个分别指向货物、班列的外键还不能验证二者构成有效托运组合;在托运确实以二者为键的简化模型下,可另加 (货物编号, 班列编号) → 托运(货物编号, 班列编号) 的复合外键。这里是引用约束写法,不是新增函数依赖。

(3)签证与委托。

按平台隐含的“每份签证委托归属一位客户、一位客户可有多份签证”假设,客户与签证为1:N,可设计 签证(签证编号, 客户手机号码, 签证国别, 日期),签证编号为主键,客户手机号码为引用客户手机号码的外键;非空规则由是否必须存在委托客户决定。若需求允许一份签证记录关联多位客户等其他情况,则须另建委托关系,题干没有这类条件,不能自行代入。

本题能确定字段空缺及基本引用方向,下划线已按原页确认。原页托运仅下划货物编号、订单未下划(b),又与平台答案后续列出的联合键不一致;结合多班列托运需求,不能把原版下划线直接等同于已证明合理的主键。订单/托运的建模方式及业务唯一性条件仍不足以支持一个完全确定的标准补图与全部候选键。下方给出带条件的建模示例,作为条件化示例,不代表唯一答案。

补充与完整修正示例

有条件的建模示例:

为避免把订单编号与展开后的行混为一谈,可将订单实体化,并拆分订单头和订单明细。采用以下显式假设:一单一客户;同一货物与班列只登记一条托运;同一订单、班列、货物组合至多一条明细。若这些假设不成立,需重新选择键。

1
2
3
4
5
6
7
货物(货物编号 PK, 名称)
班列(班列编号 PK, 起点和终点)
客户(手机号码 PK, 姓名)
托运(货物编号 PK/FK, 班列编号 PK/FK, 日期)
订单头(订单编号 PK, 客户手机号码 FK)
订单明细(订单编号 PK/FK, 班列编号 PK/FK, 货物编号 PK/FK, 数量, 日期)
签证(签证编号 PK, 客户手机号码 FK, 签证国别, 日期)

“PK”在同一行有多列时表示联合主键。日期在订单明细中保留题干的位置;只有确认日期属于订单整体且满足 订单编号 → 日期 后,才应移至订单头。

概念联系为:客户1:N订单头,订单头1:N订单明细,班列1:N订单明细,货物1:N订单明细;托运关联货物和班列,客户1:N签证。若要求订单明细必须基于已登记托运,可让其复合外键 (货物编号, 班列编号) 引用托运,而不是在基本 E-R 图中直接把两个联系菱形相连。这里的基数只表述最大数量,题目未给出的最小参与数不额外设定。

2024年上半年软件设计师考试综合知识(专业解析+参考答案)

本节已整理 4 条来源记录;题号沿用来源,答案与解析默认收起。

2024-05 Q003

来源:第 3 题(原站入口)。

【考生回忆版】以下哪项不属于函数依赖的Armstrong公理系统( )?

  • A.

    自反规则

  • B.

    传递规则

  • C.

    合并规则

  • D.

    增广规律

答案与解析

平台答案:C。

整理解析

选C。Armstrong的三条基本公理是自反律、增广律和传递律。合并规则X→Y且X→Z可得X→YZ,是由这些基本公理推导出的规则,因此不属于三条基本公理之一。

补充与纠错

平台称合并规则“本质上不属于定理”不正确:它正是可由基本公理证明的推导规则。题干“公理系统”措辞也较宽,本题按“三条基本公理”的考试口径理解,不能说合并规则不属于该系统可推导的结论。

2024-05 Q025

来源:第 25 题(原站入口)。

【考生回忆版】在关系表中取出若干属性列,形成一个新关系表,应使用( )操作。

  • A.

    投影

  • B.

    笛卡儿积

  • C.

    选择

  • D.

    差

答案与解析

平台答案:A。

整理解析

选A。投影指定要保留的属性列;选择按条件保留元组,笛卡儿积组合两关系的元组,差求一个关系中不属于另一个关系的元组。

补充与纠错

经典关系代数按集合处理,投影会消除重复元组;SQL的普通SELECT默认可保留重复行,需要去重时使用DISTINCT,不能混淆两种语义。

2024-05 Q029

来源:第 29 题(原站入口)。

【考生回忆版】在SQL中,收回访问控制权限应使用( )操作。

  • A.

    GRANT

  • B.

    DELETE

  • C.

    REVOKE

  • D.

    DROP

答案与解析

平台答案:C。

整理解析

选C。REVOKE撤销权限,GRANT授予权限;DELETE删除表中数据行,DROP删除数据库对象。收回访问权限不等于删除数据或删表。

2024-05 Q062

来源:第 62 题(原站入口)。

哪一范式的定义使用了多值依赖( )?

  • A.

    1NF

  • B.

    4NF

  • C.

    2NF

  • D.

    3NF

答案与解析

平台答案:B。

整理解析

选B。第四范式要求:关系中每个非平凡多值依赖X↠Y的决定因素X都是超键,从而避免独立多值事实组合产生的冗余。

补充与纠错

平台的“BCNF在BCNF基础上”是循环表述;BCNF的准确条件是每个非平凡函数依赖的左部均为超键。4NF也不是简单禁止一切“非函数依赖的多值依赖”,仍须看依赖是否非平凡以及决定因素是否为超键。

2024年上半年软件设计师应用技术真题(专业解析+参考答案):案例题

本节保留 1 条来源:1 组完整,0 组不完整。

2024-05-case Q004

球队、球员与球迷数据库设计

阅读下列说明,回答问题。
【说明】
某数据库记录球队、球员和球迷的信息。球队包括名称、多个球员等信息。球员包括名字、出生年月、入队时间等信息。球迷包括名字、性别、喜欢的球员、关注的球队等信息。一个球队有一个教练指导,教练也是球队的球员。

01(6分)
请列出数据库设计过程的6个阶段。

02(5分)
将图1所示的E-R图补充完整。

03(4分)
现要求在数据库中存储球员在球队的比赛记录信息,得到如图2所示E-R图。比赛记录包括比赛场次编号、比赛球队名称、上场时间等信息。将图2补充完整。

答案与解析

平台参考答案(原意保留)

平台参考答案:

  1. 数据库设计的六个阶段:需求分析、概念设计、逻辑设计、物理设计、实施、运行和维护。
  2. (1)入队时间;(2)1;(3)1;(4)m;(5)n。其中(4)(5)可交换。
  3. 平台称应补充“球队和比赛之间同一实体的二元联系,分为主队和客队,呈现多比多关系”,并给出下图;(6)场次编号;(7)上场时间,两者可交换。

解析与纠错

解析与纠错:

  • 六个设计阶段的顺序正确:需求分析明确业务与数据要求;概念设计形成E-R等概念模型;逻辑设计映射到关系模式并检查依赖;物理设计确定存储与访问结构;实施建立数据库、装载数据并测试;运行维护持续管理和优化。
  • 图1已经给定“球队—组成—球员”的1:m关系,按该模型每名球员属于一个球队。题干要求每队一个教练,且教练也是本队球员,因此“指导”联系两端的最大基数可为1。这里不意味着每名球员都必须指导球队;球队端要求恰好一位教练,普通球员可不担任教练。
  • “教练属于被指导的同一球队”是跨联系约束:指导联系应是组成联系中球队—球员配对的子集。单独在指导两端标1并不能表达这一点,需要附加约束。喜欢关系按平台采用的多对多语义填m、n;题干未明确最小参与数,不应额外要求每位球迷或球员必须参与喜欢关系。
  • 图1的(1)连接在球员实体上,因此可填入队时间。若进一步支持球员转会、重复入队或历史效力记录,则入队时间应随球员与球队的效力记录保存;这些扩展没有写在当前题干中。
  • 图2的(6)(7)都是“比赛记录”联系的属性,填场次编号和上场时间可互换。比赛球队名称可通过与球队实体的联系取得,但“比赛记录”还需要连接实际参赛的球员与相应比赛/球队。
  • 平台答案图只有“球队”实体集到“比赛”联系的主队、客队两个角色,表达球队之间的自联系。这能描述哪些球队交手,却没有连接球员,也不能单独表示某位球员的上场时间。它并未完整覆盖“球员在球队的比赛记录”这一要求;题干也没有明确必须采用主客场制。
  • 更完整的一种方案是增加以场次编号标识的比赛实体,由球员通过“出场”联系参与比赛,在该联系上记录上场时间和代表球队。若只使用原图中的球队、球员两个实体,则至少应把比赛记录与它们相连,并说明如何用场次编号区分同一球员和球队的多次比赛记录。具体采用联系实体化还是附带场次标识的联系,需要明确建模约定;现有题面不足以确定所有基数及唯一的补图。

2023年下半年软件设计师案例真题(考生回忆版):案例题

本节保留 1 条来源,答案与解析默认收起。

2023-11-case Q001

汽车维修子系统的关系与实体联系设计

【考生回忆版】

某汽车生产企业要在信息管理平台中增加汽车维修管理子系统。请依据以下需求完成数据库设计。

  1. 车辆记录车牌号、客户号、车型、颜色;车牌号唯一标识一辆车,每位客户至少有一辆车。
  2. 客户记录客户号、客户名称、客户性质、折扣率、联系人、联系电话;客户号唯一,客户性质分单位和个人。
  3. 员工记录员工号、员工名、部门号、岗位、电话、家庭住址;员工号唯一。岗位分业务员、维修主管、维修工。业务员检查车辆、分析故障,与客户协商故障现象和维修范围后填写维修单。
  4. 维修单记录维修单号、车牌号、故障类型、结算方式、维修主管、业务员;维修单号唯一。结算方式分自付、三包、索赔。每张维修单只对应一名维修主管,一名主管可负责多张维修单,并可把多个维修单任务分配给多名维修工。

图1为尚未补全的实体联系图。

图1 实体联系图

由概念模型得到以下未完整的关系模式:

1
2
3
4
车辆(车牌号,客户号,车型,颜色)
客户(客户号,客户名称,客户性质,(a),联系人,联系电话)
员工((b),员工号,员工名,部门号,电话,家庭住址)
维修单(维修单号,车牌号,故障类型,结算方式,业务员,(c))

【问题1】(4分)补全关系模式中的属性(a)~©。

【问题2】(4分)图1缺少两个联系,请补出联系及其类型。联系名称可用“联系1”“联系2”,也可自行命名。

【问题3】(3分)维修单的主键为(d),外键为(e)。

【问题4】(4分)客户若购买了多份车辆保险单,须说明相关情况。结算维修单对应车辆的维修费用时,还要考虑保险单的理赔比率。为此增加“保险单”实体,请在图中补充所需联系及其类型。

答案与解析

平台参考答案(原文保留)

【问题1】

a、折扣率
b、岗位
c、维修主管、维修工

【问题2】

业务员与车辆之间有1-n的检查关系。
业务员与维修单之间有1-n的填写关系。

【问题3】
维修单主键:(d) 维修单号
维修单外键:(e) 车牌号、业务员、维修主管、维修工

【问题4】
车辆和保险单之间有1-n的投保关系。

解析与纠错

平台答案按原文保留;其中把多维修工直接塞入维修单的做法有建模问题。

  1. (a)为折扣率,(b)为岗位,均可由需求列出的属性与现有模式相减得到。维修单已含业务员、未含维修主管,所以©至少需要维修主管对应的员工号。平台还填入维修工,不能据此把同一维修单的多名维修工存成一个标量外键或一格列表。
  2. 图中已有“客户—拥有—车辆”“车辆—故障—维修单”及“维修单、维修主管、维修工—分配”三元联系。平台补的两条联系是业务员检查车辆、业务员填写维修单。填写联系按题中单个“业务员”字段可取业务员1对维修单多。检查联系的1对多是平台采用的简化口径;若保留同一车辆多次到店、由不同业务员检查的历史,需求没有保证每辆车只对应一名业务员,不能把该基数当成普遍事实。
  3. (d)为维修单号。车牌号引用车辆;业务员和维修主管应保存相应员工标识并引用员工,而非直接把姓名或岗位当键。平台(e)还列维修工,是沿用其单表答案。按图中维修单与维修工两端的“多”,更稳妥的关系设计是把参与维修的对应关系单列,此时维修工外键放在分配关系中。
  4. 按一份车辆保险单归属一辆车的通常题设模型,车辆与保险单是1对多,符合平台答案;车辆在未投保时可对应0份,多份保单与理赔比率需要在结算时一并考虑。题文未给保单编号、险种、叠加赔付算法或具体比率,不补造这些数值或唯一结算公式。

补充说明

关系映射说明(独立改进方案,不替换平台答案):

若一张维修单可分给多名维修工,可保留维修单(...,业务员,维修主管),另建分配(维修单号,维修工号);在“同一维修单与维修工只保留一条分配”的简化条件下,联合键可取两者。维修主管已由维修单号唯一决定,无须在每个分配记录中重复保存。若需区分工序、分派批次或历史记录,还需要题目未给出的标识,不能据现题断言两列一定是生产系统的完整主键。

原图的分配是三元联系,维修主管端为1、维修单和维修工端为多;“维修单只对应一名维修主管”的文字条件比一般三元联系中一个端的1更强。建表时须同时满足这条函数依赖,不能只机械照搬图上的三个数字。

2023年下半年软件设计师考试基础知识(专业解析+参考答案)

本节已整理 7 条来源记录;题号沿用来源,答案与解析默认收起。

2023-11 Q003

来源:第 3 题(原站入口)。

【考生回忆版】给定关系R(A,B,C,D,E)和S(A,B,C,F,G)。与关系代数表达式π1,2,4,6,7(σ2 < 7(R⋈S))对应的SQL语句为:

SELECT( 3 )FROM R,S WHERE( 4 )。

请作答:第3题。

  • A.

    R.A,R.B,D,S.C,F

  • B.

    R.A,R.B,D,S.C,G

  • C.

    R.A,R.B,D,F,G

  • D.

    R.A,R.B,R.E,S.C,G

答案与解析

平台答案:C。

整理解析

选C。自然连接把同名A、B、C列合并,结果列顺序为A、B、C、D、E、F、G。投影1、2、4、6、7对应A、B、D、F、G,故SELECT列表应为R.A,R.B,D,F,G。这里共有5列,平台写成“四列”是计数笔误。

补充与纠错

严格关系代数采用集合语义,投影会去重;原SQL框架未写DISTINCT,SQL通常可能保留重复行,所以两者未必完全等价。本题按列名和连接谓词的对应关系保留平台C;若要求严格集合结果,还需去重或相应唯一性条件。此解释以无NULL的经典关系模型为前提。

2023-11 Q004

来源:第 4 题(原站入口)。

【考生回忆版】给定关系R(A,B,C,D,E)和S(A,B,C,F,G)。与关系代数表达式π1,2,4,6,7(σ2 < 7(R⋈S))对应的SQL语句为:

SELECT( 3 )FROM R,S WHERE( 4 )。

请作答:第4题。

  • A.

    R.A=S.A AND R.B=S.B AND R.C=S.C AND R.B<S.G

  • B.

    R.A=S.A OR R.B=S.B OR R.C=S.C OR R.B<S.B

  • C.

    R.A=S.A OR R.B=S.B OR R.C=S.C OR R.B<S.G

  • D.

    R.A=S.A AND R.B=S.B AND R.C=S.C AND R.B<S.B

答案与解析

平台答案:A。

整理解析

选A。自然连接要求共同属性A、B、C分别相等,三个连接条件都必须用AND连接;合并后第2列是B、第7列是G,所以还须加R.B<S.G。OR无法保证所有公共属性同时相等,R.B<S.B也不是题设的筛选条件。

补充与纠错

原SQL框架未写DISTINCT,在投影产生重复行时与集合关系代数不同;A只是给出的四个WHERE选项中正确表达连接及筛选条件的一项,不能因此断言整条SQL在任意数据上都与关系代数完全等价。

2023-11 Q041

来源:第 41 题(原站入口)。

在数据库系统中,为保持数据的物理独立性、逻辑独立性,依次应调整哪两组模式之间的映像?

  • A.

    外模式/内模式和模式/内模式

  • B.

    模式/内模式和外模式/模式

  • C.

    外模式/内模式和外模式/模式

  • D.

    外模式/模式和模式/内模式

答案与解析

平台答案:B。

同题对照:标准题。来源选项→标准题选项:A→A,B→D,C→B,D→C。

映射后平台答案:D。

重复判断依据

两题均依次问物理独立性和逻辑独立性的两级映像,斜线与“之间的映像”语义一致,模式及先后次序逐项相同。

2023-11 Q044

来源:第 44 题(原站入口)。

设关系模式 R(U,F),题面将属性集记为 U(X,Y,Z,W),F 为其上的函数依赖集。以下哪条规则是 Armstrong 体系中可推出的伪传递律?

  • A.

    若Y⊆X⊆ U,则X→Y

  • B.

    若X→Y,Y→Z,则X→Z

  • C.

    若X→Y,X→Z,则X→YZ

  • D.

    若X→Y,WY→Z,则XW→Z

答案与解析

平台答案:D。

整理解析

由 X→Y 增广得到 XW→YW,再与 YW→Z 使用传递律,即得 XW→Z,选D。A是自反律,B是传递律,C是合并规则。伪传递律属于由基本公理推导出的规则。

2023-11 Q059

来源:第 59 题(原站入口)。

数据库中的基本表、存储文件、视图的结构,依次对应哪一组视图层次?

  • A.

    用户视图、内部视图和概念视图

  • B.

    用户视图、概念视图和内部视图

  • C.

    概念视图、用户视图和内部视图

  • D.

    概念视图、内部视图和用户视图

答案与解析

平台答案:D。

整理解析

基本表描述数据库的整体逻辑结构,对应概念视图(模式);存储文件描述物理组织,对应内部视图(内模式);面向用户的视图对应用户视图(外模式)。按题目顺序选D。

2023-11 Q061

来源:第 61 题(原站入口)。

题面称 SQL 可使用 COMMTT 和 ROLLBACK 结束事务。对于事务 T,下列关于执行这些语句后果的陈述,哪一项正确?

  • A.

    ROLLBACK语句,则可将Ti对数据库的更新撤销

  • B.

    ROLLBACK语句,则可将Ti对数据库的更新写入数据库

  • C.

    COMMIT语句,则Ti对数据库影响可用ROLLBACK语句来撤销

  • D.

    ROLLBACK语句,则表示Ti已正确地执行完毕

答案与解析

平台答案:A。

整理解析

ROLLBACK撤销当前尚未提交事务对数据库的更新,符合原子性要求,因此选A。COMMIT提交后,普通ROLLBACK不能再撤销该已提交事务;后续修正需另行执行补偿更新或恢复操作。

补充与纠错

原页已核实:题干确写COMMTT(两个T、缺I),正确SQL关键字是COMMIT,选项C已写COMMIT;题干错字保留。四个选项中i均是T的小下标,已据截图恢复为Ti,平台A不变。回滚所撤销的是事务性数据库更新,不能概括为撤销所有外部副作用。

格式整理说明

A:仅恢复已核实的上下标或保留原字符的数学排版,未改变选项含义或原顺序。

B:仅恢复已核实的上下标或保留原字符的数学排版,未改变选项含义或原顺序。

C:仅恢复已核实的上下标或保留原字符的数学排版,未改变选项含义或原顺序。

D:仅恢复已核实的上下标或保留原字符的数学排版,未改变选项含义或原顺序。

2023-11 Q070

来源:第 70 题(原站入口)。

数据库概念结构设计包含下列四步,应按什么顺序执行?

①设计局部视图;②抽象数据;③修改重构消除冗余;④合并取消冲突。

  • A.

    ①→②→④→③

  • B.

    ①→②→③→④

  • C.

    ②→①→③→④

  • D.

    ②→①→④→③

答案与解析

平台答案:D。

整理解析

先从需求中抽象实体、属性和联系(②),再分别形成局部视图(①);随后合并视图并处理命名、结构等冲突(④),最后修改重构、消除冗余(③)。顺序②→①→④→③,选D。

2023年上半年软件设计师应用技术:案例题

本节保留 1 组案例。

2023-05-case Q002

汽车零件采购与门店销售

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

某新能源汽车公司为了提升效率,需要开发一个汽车零件采购系统。请根据下述需求描述完成该系统的数据库设计。
【需求描述】
(1)记录供应商的信息,包括供应商的名称、地址和一个电话。
(2)记录零件的信息,包括零件的编码、名称和价格。
(3)记录车型信息,包括车型的编号、名称和规格。
(4)记录零件采购信息。某个车型的某种零件可以从多家供应商采购,某种零件也可以被多个车型采用,某家供应商也可以供应多种零件;还包括采购数量和采购日期。
【概念结构设计】

根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1所示。

图2-1 实体联系图

【逻辑结构设计】

根据概念结构设计阶段完成的实体联系图,得出如下关系模式(不完整):

供应商(名称,地址,电话)

零件(编码,名称,价格)

车型(编号,名称,规格)

采购(车型编号,供应商名称,(a),(b),采购日期)

下划线按原页保留。

【问题1】(5分)

根据问题描述,补充图2-1的实体联系图(不增加新的实体)。
【问题2】(3分)

补充逻辑结构设计结果中的(a)、(b)两处空缺,并标注主键和外键完整性约束。
【问题3】(7分)

该汽车公司现新增如下需求:记录车型在全国门店的销售情况。门店信息包括门店的编号、地址和电话;销售包括销售数量和销售日期等。
对原有设计进行以下修改以实现该需求:
(1)在图2-1中体现门店信息及其车型销售情况,并标明新增的实体和联系,及其必要属性。
(2)给出新增加的关系模式,并标注主键和外键完整性约束。

注:

(1)本题为学员回忆版本,题干、问题、分值、答案、解析等内容都仅供参考。

(2)本题完整性约束,建议主键用实线下划线,外键用虚线下划线。因为编辑方式的影响,本题答案以文字形式进行说明。

答案与解析

平台参考答案(原意保留)

【问题1】(5分)

注:三元联系每条边以及多重度记1分,2个属性每个1分。
【问题2】(3分)
(1)

a:零件编码

b:采购数量
(2)

主键(车型编号,供应商名称,零件编号,采购日期)

外键(车型编号,供应商名称,零件编号)

注:关系模式补充每个1分,多写全扣;主键、外键每个0.5分,多写、少写、错写全扣。

【问题3】(7分)

(1)

注:二元联系及多重度1分,实体属性1.5分,联系属性1分,少写每个属性扣除0.5分,多写、错写全扣。
(2)
门店(编号,地址,电话);主键:门店编号;外键:无。
销售(门店编号,车型编号,销售数量,销售日期);主键(门店编号,车型编号,销售日期);外键(门店编号,车型编号)。

注:门店关系模式1分,主键0.5分;销售关系模式1分,主键、外键各0.5分。多写、错写、少写全扣。

解析与纠错

三元联系。 “采购”把车型、供应商、零件同时联系起来,采购数量和采购日期是这次采购的属性。按平台采用的多对多对多模型补三条联系边即可;三个独立二元联系不能保存“哪家供应商向哪款车型供应哪种零件”的完整组合。题干没有给出固定两个参与者便唯一确定第三个的限制,采用一般的三元模型较稳妥,不应自行加入唯一供货商等条件。

属性与完整性。 原页已确认:所示下划线均为实线,采购日期有下划线,(a)(b)未划线。题目要求补全缺项及键约束;(a)是零件编码,(b)是采购数量,补全主键时仍需结合零件编码判断,不能把未填空处没有划线理解为最终键已完整。平台主键文字用了“零件编号”,应与模式统一为“零件编码”。采购中的车型编号、供应商名称、零件编码分别引用车型(编号)、供应商(名称)、零件(编码):这是三个独立外键,不是引用某一个三列父表键的单个复合外键。销售中的门店编号与车型编号同理是两个外键。

日期与候选键。 平台参考答案把采购日期纳入采购主键、把销售日期纳入销售主键;平台解析却分别说仅组合三个实体的键、仅组合车型和门店的键,二者矛盾。若同一车型—供应商—零件组合在不同日期可重复采购,前三列不足以唯一标识记录;若同一门店可在不同日期反复销售同一车型,门店与车型两列也不足以唯一标识销售记录。

即使加上日期,仍需“相同组合每天至多一条记录(或已按日汇总)”的业务约束才能唯一确定数量。题干未规定同一天能否出现多笔采购或销售,因此不能无条件宣称这些日期组合键必然成立。若保存逐笔明细,应另设计交易标识或序号;这属于扩展设计,不作为原题缺失内容补入可见题干。

新增销售模型。 增加门店实体(编号、地址、电话),门店与车型之间设置多对多“销售”联系,属性为销售数量和销售日期。可得到门店(编号,地址,电话)及销售(门店编号,车型编号,销售数量,销售日期);前者以编号为键,后者按上述日汇总假设取(门店编号,车型编号,销售日期)为键。采购也按同一假设取(车型编号,供应商名称,零件编码,采购日期)。这些假设应与关系模式一起说明。

2023年上半年软件设计师考试基础知识(专业解析+参考答案)

本节已整理 6 条来源记录;题号沿用来源,答案与解析默认收起。

2023-05 Q051

来源:第 51 题(原站入口)。

数据库应用通过视图层、逻辑层和物理层三个抽象层次屏蔽复杂性,简化用户交互。下列关于层次高低的描述,哪项错误?

  • A.

    视图层是最高层次的抽象

  • B.

    逻辑层是比视图层更低一层的抽象

  • C.

    物理层是最低层次的抽象

  • D.

    物理层是比逻辑层更高一层的抽象

答案与解析

平台答案:D。

整理解析

从面向用户的抽象到具体存储,依次是视图层、逻辑层、物理层;物理层低于逻辑层,因此D将高低关系写反。

2023-05 Q052

来源:第 52 题(原站入口)。

给定关系模式 R〈U,F〉,其中U是属性集,F是一组定义在U上的函数依赖。以下哪一项表述Armstrong公理系统的自反律?

  • A.

    若Y⊆ X⊆ U,则X→ Y为F所蕴涵

  • B.

    X→ Y,Y→ Z、则X→ Y为F所蕴涵

  • C.

    若X→ Y,Z⊆ Y,则X→ Z为F所蕴涵

  • D.

    若X→ Y,X→ Z,则X→ YZ为F所蕴涵

答案与解析

平台答案:A。

整理解析

若Y是X的子集,那么确定X的取值也就确定了Y的取值,故X→Y成立,选A。C由X→Y进一步取Y的子集,是分解规则;D是合并规则。

补充与纠错

原页已核实:B确为“X→ Y,Y→ Z、则X→ Y为F所蕴涵”,末尾是Y而非Z,原公式与标点保留。B的结论只是重复其一个前提,并非通常表述的传递律;真正的传递律由X→Y及Y→Z推出X→Z。本题所问自反律仍对应A。

2023-05 Q053

来源:第 53 题(原站入口)。

关系模式 R(U,F) 的属性集 U={A,B,C,D},函数依赖集 F={AB→C,CD→B}。该关系模式的候选关键字情况是(53);主属性、非主属性的个数依次是(54)。

请作答:第53题。

  • A.

    只有1个候选关键字ACB

  • B.

    只有1个候选关键字BCD

  • C.

    有2个候选关键字ABD和ACD

  • D.

    有2个候选关键字ACB和BCD

答案与解析

平台答案:C。

整理解析

A、D从未出现在依赖右端,所以任何候选键都必须包含A和D。AD本身不能推出其他属性;加入B可由AB→C补全,加入C可由CD→B补全。因此最小的超键恰有ABD、ACD两个,选C。

2023-05 Q054

来源:第 54 题(原站入口)。

关系模式 R(U,F) 的属性集 U={A,B,C,D},函数依赖集 F={AB→C,CD→B}。该关系模式的候选关键字情况是(53);主属性、非主属性的个数依次是(54)。

请作答:第54题。

  • A.

    4和0

  • B.

    3和1

  • C.

    2和2

  • D.

    1和3

答案与解析

平台答案:A。

整理解析

候选键为ABD、ACD。属于任意一个候选键的属性都是主属性;二者的并集是A、B、C、D,所以主属性4个,非主属性0个,选A。不能只看选作主键的某一个候选键来统计。

2023-05 Q055

来源:第 55 题(原站入口)。

要把 Students 表的插入权限授予 User1,并允许 User1 再把该权限授予其他用户,请补全语句的两处空白:

GRANT (55) TABLE Students TO User1 (56)

请作答:第55题。

  • A.

    INSERT

  • B.

    INSERT ON

  • C.

    UPDATE

  • D.

    UPDATE ON

答案与解析

平台答案:B。

整理解析

要授予插入权限,权限名用INSERT;随后必须用ON引出授权对象。题面空55后已有TABLE Students,所以此空填INSERT ON,选B。

2023-05 Q056

来源:第 56 题(原站入口)。

要把 Students 表的插入权限授予 User1,并允许 User1 再把该权限授予其他用户,请补全语句的两处空白:

GRANT (55) TABLE Students TO User1 (56)

请作答:第56题。

  • A.

    FOR ALL

  • B.

    PUBLIC

  • C.

    WITH GRANT OPTION

  • D.

    WITH CHECK OPTION

答案与解析

平台答案:C。

整理解析

WITH GRANT OPTION允许受权用户把取得的权限再授予他人,因此选C。PUBLIC表示授权对象范围,WITH CHECK OPTION用于视图修改条件,均不是这里的权限转授子句。

2022年下半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2022-11-case Q002

分公司与专卖店的数据库设计

某营销公司拟建立业务管理系统,管理各地分公司和专卖店。根据以下需求完成数据库设计。

  1. 分公司记录分公司编号、分公司名、地址、电话;分公司编号唯一。一个分公司拥有多家专卖店,每家专卖店仅属于一个分公司。
  2. 专卖店记录专卖店号、专卖店名、店长、分公司编号、地址、电话;专卖店号唯一。每店只有一位负责各项业务的店长,每名店长只负责一家店。每店有多名职员,每名职员只属于一家店。
  3. 职员记录职员号、职员名、专卖店号、岗位、电话、薪资;职员号唯一。岗位包括店长、营业员等。

图2-1为未完成的实体联系图。

图2-1 实体联系图

未完成的关系模式如下:

1
2
3
分公司(分公司编号,分公司名,地址,电话)
专卖店(专卖店号,专卖店名,___(a)__,地址,电话)
职员(职员号,职员名,____(b)___,岗位,电话,薪资)

【问题1】(6分)补出图2-1中缺少的三个联系及联系类型。联系名可用“联系1、联系2、联系3”,也可按题意命名。

【问题2】(6分)

(1)补全关系模式中(a)、(b)的属性。

(2)专卖店关系的主键为____(c),外键为(d);职员关系的主键为(e),外键为(f)。

【问题3】(3分)为在紧急情况下及时联系职员家人,专卖店要求每位职员至少要填写位紧急联系人的姓名、与本人关系和联系电话。图2-1还需增加的实体为____(g),职员与该实体的联系类型为(h)__。

(3)给出新增实体的关系模式。

答案与解析

平台参考答案(原文保留)

【问题1】

【问题2】

(1)

(a) 店长,分公司编号

(b) 专卖店号

(2)

(c) 专卖店号

(d) 店长,分公司编号

(e) 职员号

(f) 专卖店号

【问题3】

(1)

(g) 紧急联系人

(h) 1对多

(2)紧急联系人(联系人编号,职员号,紧急联系人姓名,关系,联系电话)

注:此处可以缺少紧急联系人编号。

解析与纠错

三个联系分别为:分公司—专卖店1:n、专卖店—店长1:1、专卖店—职员1:n。店长是职员中的一种岗位,不应另把店长姓名当成唯一标识。

(a)店长、分公司编号;(b)专卖店号;(c)专卖店号;(d)店长、分公司编号;(e)职员号;(f)专卖店号。其中“店长”字段应保存职员号,引用职员关系;分公司编号引用分公司,职员的专卖店号引用专卖店。1:1任职还需限制同一职员号不能担任多店店长,并保证其岗位及所属专卖店一致;单有外键并不能表达这些业务约束。

(g)紧急联系人;平台(h)为1:n,可把每条联系人记录视作属于某位职员的紧急联系记录。关系可设为紧急联系人(联系人编号,职员号,姓名,与本人关系,联系电话),联系人编号为主键,职员号为外键。若省略独立编号,就必须另确定能唯一标识联系记录的键;不能无条件假定姓名或电话唯一,也不能只以职员号为键而同时允许多个联系人。现实中同一自然人可以是多位职员的联系人,此时可进一步拆分联系人实体及关联关系,但这不是原题要求新增的事实。

原站可见页面已核实:原句为“专卖店要求每位职员至少要填写位紧急联系人的姓名、与本人关系和联系电话”,“填写”与“位”之间确实缺少数字。原题没有给出明确的最少人数,不能擅自补成“一位”或其他数量。平台1:n答案原样保留;它表达该建模方案可容纳多条联系人记录,不能据此确定题面未写明的最低人数。

2022年上半年软件设计师应用技术:案例题

本节保留 1 组案例。

2022-05-case Q002

疫苗接种与检测记录

按照下列图表,填写答题纸的对应栏内。 【说明】 为了提高接种工作的效率,并为了抗击疫情提供疫苗接种数据支撑,需要开发一个信息系统,根据下述需求完成该系统的数据库设计。 (1)记录疫苗供应商的信息,包括供应商名称,地址和一个电话。 (2)记录接种医院的信息,包括医院名称、地址和一个电话。 (3)记录接种者个人信息,包括姓名、身份证号和一个电话。 (4)记录接种者疫苗接种信息,包括接种医院信息,被接种者信息,疫苗供应商名称和接种日期,为了提高免疫力,接种者可能需要进行多次疫苗接种,(每天最多接种一次,每次都可以在全市任意一家医院进行疫苗接种)。 【概念模型设计】 根据需求分析阶段收集的信息,设计的实体联系图(不完整)如图2-1所示。

图2-1 E-R图

【逻辑结构设计】 根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整) 供应商(供应商名称、地址、电话) 医院(医院名称、地址、电话) 供货(供应商名称、(a)、供货内容) 被接种者(姓名、身份证号、电话) 接种(接种者身份证号、(b)、医院名称、供应商名称)

【问题1】(4分) 根据问题描述,补充图2-1的实体联系图(不增加新的实体)。 【问题2】(4分) 补充逻辑结构设计结果中的(a)(b)两处空缺,并标注主键和外键完整性约束。 【问题3】(7分) 若医院还兼有核酸检测的业务,检测时可能需要进行多次核酸检测(每天最多检测一次),但每次都可以在全市任意一家医院进行检测。请在图2-1中增加“被检测者”实体及相应的属性,医院与被检测者之间的“检测”联系及必要的属性,并给出新增加的关系模式。 “被检测者”实体包括姓名、身份证号、地址和一个电话。“检测”联系需要包括检测日期和检测结果等。

答案与解析

平台参考答案(原意保留)

【问题1】(4分)

【问题2】(4分)

(a)医院名称

(b)接种时间

【问题3】

新增关系模式

被检测者(身份证号,姓名,地址,电话)

检测(被检测者身份证号,医院名称,检测日期,检测结果)

解析与纠错

概念模型。 供应商、医院、被接种者通过三元“接种”联系记录同一次接种,日期是联系属性。题图已有供应商与医院的多对多“供货”联系及供货内容,不要再把它误作待新增实体。接种涉及三个实体,不宜拆成互不约束的“人—医院”“人—供应商”两张关系后丢失同一次接种的组合。

填空与键。 已回看原页确认:五个关系模式均未标注主键实线或外键虚线,不能从原题排版推断已指定的键。(a)医院名称;(b)接种日期,平台称“接种时间”。供应商以供应商名称、医院以医院名称、被接种者以身份证号标识。供货以(供应商名称,医院名称)作为该供货关系的键,两个属性分别引用供应商和医院;这描述的是题给供货关系,不自动表示可区分多批历史供货。

本题明确规定:同一个人每天最多接种一次,而且可以在不同医院接种。因此有函数依赖“(接种者身份证号,接种日期)→医院名称、供应商名称”,日期不相同才允许该人出现下一条接种记录。接种的候选键是(接种者身份证号,接种日期);医院名称、供应商名称不能为了照套三元联系模板而全部放进最小键。若仅使用(身份证号,医院名称,日期)作为唯一约束,还会错误地允许同一个人同一天在不同医院出现两条记录。

接种中的身份证号、医院名称、供应商名称分别引用被接种者、医院、供应商,是三个独立外键。平台答案图的二列接种主键是符合“每天最多一次”条件的;若“接种时间”保存到时分秒,还应落实按日的唯一性,不能让不同时间戳绕过同日限制。

新增检测模型。 增加被检测者(身份证号,姓名,地址,电话),主键为身份证号;医院与被检测者之间增加多对多“检测”联系,属性为检测日期、检测结果。关系模式为检测(被检测者身份证号,医院名称,检测日期,检测结果),主键为(被检测者身份证号,检测日期),分别以被检测者身份证号和医院名称引用两个实体。这里同样由题定“每天最多检测一次”排除医院名称进入最小键。不能把“每天最多一次”误解成每家医院各一次。

平台解析把接种时间称为需要补充的“实体属性”不准确,它是一次接种联系的属性;平台答案图中的位置已画在接种联系上。新增被检测者实体是题目明确要求,不因现实中可能与被接种者重合而自行合并掉该实体。

补充与完整参考实现

平台解析附图(原图保留):

2021年下半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2021-11-case Q002

汽车维修系统的数据库设计

某汽车维修公司拟建立汽车维修管理系统,需求如下。

  1. 客户记录包含客户号、客户名、客户性质、折扣率、联系人、联系电话。客户性质为个人或单位;客户号唯一标识每个客户元组。
  2. 车辆记录包含车牌号、车型、颜色、车辆类别。一个客户至少拥有一辆车,每辆车只属于一个客户。
  3. 员工记录包含员工号、员工名、岗位、电话、家庭住址。员工号唯一标识每个员工元组;岗位有业务员、维修工、主管。业务员依据车辆故障填写维修单。
  4. 部门记录包含部门号、名称、主管、电话。部门号唯一确定每个部门元组;每个部门只有一名主管,并有多名员工,每名员工只属于一个部门。
  5. 维修单记录包含维修单号、车牌号、维修内容、工时、维修员工号。维修单号唯一标识每个维修单元组;一个维修工可接多张维修单,一张维修单只对应一个维修工。

图2-1为尚未补全的实体联系图。

根据概念模型得到以下待补全的关系模式:

  • 客户(客户号,客户名,(a),折扣率,联系人,联系电话)
  • 车辆(车牌号,(b),车型,颜色,车辆类别)
  • 员工(员工号,员工名,岗位,©,电话,家庭住址)
  • 部门(部门号,名称,主管,电话)
  • 维修单(维修单号,(d),维修内容,工时)

【问题1】(6分)补充3个联系,完善图2-1。联系名可写为联系1、联系2、联系3;联系类型用1:1、1:n、m:n(或1:1、1:、.*)表示。

【问题2】(4分)填写关系模式空(a)~(d)中的属性。

【问题3】(2分)分别给出车辆关系与维修单关系的主键、外键。

【问题4】(3分)若一张维修单包含多项维修内容,需要多个维修工处理,哪个联系的类型会怎样变化?如何解决?

答案与解析

平台参考答案(原文保留)

【问题1】(6分) 联系1:客户和车辆:1:n 联系2:部门和员工:1:n 联系3:维修工和维修单:1:n 【问题2】(4分) a:客户性质 b:客户号 c:部门号 d:车牌号,维修员工号 【问题3】(2分) 车辆关系的主键:车牌号 外键:客户号 维修单关系的主键:维修单号 外键:车牌号,维修员工号 【问题4】(3分) 维修工和维修单之间的联系类型会发生变化,从1:n变成m:n。 对应的需要增加维修关系,m:n关系不能归并,需要将其单独加入一个联系中,将维修单的属性员工号(维修工)删掉,新建一个关系模式维修。 维修(员工号(维修工),维修单号,维修地点,维修时间)

解析与纠错

三条待补联系分别是客户1—n车辆、部门1—n员工、维修工1—n维修单。图中已有车辆、维修单、业务员之间的“故障”联系,以及部门与主管的管理联系,不要重复补画。

空(a)为客户性质;空(b)为客户号;空©为部门号;空(d)为车牌号、维修员工号。把1:n联系转换为关系模式时,将1端主键放入n端作为外键,因此车辆引用客户号,员工引用部门号,维修单引用车牌号和维修员工号。平台长解析把(b)写成“车辆号”是笔误,平台答案中的“客户号”与题意一致。

车辆的主键为车牌号,外键为客户号;维修单的主键为维修单号,外键为车牌号、维修员工号,分别引用车辆及维修工对应的员工记录。

若一单可由多名维修工处理,维修工与维修单由1:n变为m:n。应从维修单移出单值维修员工号,建立关联关系“维修(维修员工号,维修单号)”;在每位维修工对每张维修单至多记一条关联的前提下,两属性组成主键并各作外键。平台答案额外加入“维修地点、维修时间”,原需求没有规定这两个属性,不能据此认定它们是必填条件。若还要按维修项目分派人员、登记工时,应依据新增业务规则设计维修明细,不能让一列存放多个员工号。

2021年上半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2021-05-case Q002

社区蔬菜团购的数据库设计

某社区蔬菜团购网站需要信息系统,以规范商品收发并查询客户订单。数据库需求如下。

  1. 蔬菜供应商记录包括供应商编号、地址和一个电话。
  2. 社区团购点记录包括团购点编号、地址和一个电话。
  3. 客户记录包括客户姓名和一个电话。客户可以向不同社区团购点下订单,不直接与蔬菜供应商联系。
  4. 订单记录包括订单编号、团购点编号、客户电话、订单内容和日期。

图2-1给出未补全的实体联系图。

由概念模型得到以下尚未补全的关系模式:

  • 蔬菜供货商(供货商编号,地址,电话)
  • 社区团购点(团购点编号,地址,电话)
  • 供货(供货商编号,(a))
  • 客户(姓名,客户电话)
  • 订单(订单编号,团购点编号,订单内容,日期,(b))

【问题1】(6分)按需求补充图2-1的实体联系图。

【问题2】(4分)填写关系模式的(a)、(b),并补充完整性约束关系。

【问题3】(5分)若网站兼营代收快递,增加“快递”实体及其与客户之间的“收取”联系,补充图2-1。“快递”关系模式包含快递编号、客户电话、日期。

答案与解析

平台参考答案(原文保留)

【问题1】

【问题2】
(a):团购点编号。主键为:(供货商编号,团购点编号),外键为:供货商编号,团购点编号。
(b):客户电话。 主键为:订单编号,外键为:团购点编号,客户电话。
【问题3】
若社区蔬菜团购网站还兼有代收快递的业务,请增加新的“快递”实体,并给出客户实体和快递实体之间的“收取”联系,对图2-1进行补充。“快递” 关系模式包括快递编号、客户电话和日期。

图2-1 实体联系图

解析与纠错

图中供应商与团购点的“供货”已是多对多联系,缺少的是团购点与客户之间的“订单”联系及订单内容、日期属性。客户可向多个团购点下单,每个团购点也可服务多个客户,因此两端均为多。订单编号、订单内容、日期属于每次订单,而非客户或团购点的固有属性。

(a)为团购点编号。供货表以(供货商编号,团购点编号)为联合主键,两列分别引用蔬菜供货商与社区团购点;(b)为客户电话。订单表以订单编号为主键,团购点编号引用社区团购点,客户电话引用客户。各主键应唯一且非空;非空外键必须匹配被引用记录。客户电话作为标识由原题图中的下划线给出,不能仅凭“一人一个电话”的文字自行推出全体客户电话号码唯一。

若同一客户可多次向同一团购点下单,不能将“客户电话+团购点编号”当作订单主键;应保留订单编号,把订单视作可重复发生的关联实体,这也与平台逻辑模式一致。

新增快递后,客户1—n快递,联系名为“收取”。快递(快递编号,客户电话,日期)以快递编号为主键、客户电话为外键;客户电话不能作快递表的唯一键,否则一名客户只能有一件快递。

2020年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2020-case Q002

分公司与职员信息的数据库设计

M集团有多个分公司,拟建设信息平台管理各分公司的职员和业务。需求如下。

  1. 分公司记录分公司编号、名称、经理号、联系地址、电话;分公司编号唯一标识一个元组。每个分公司只有一名经理。各分公司下设仅为本分公司服务的多个业务部,例如研发部、财务部、采购部、销售部。
  2. 业务部记录业务部编号、名称、主管号、电话、分公司编号;业务部编号唯一标识一个元组。每个业务部只有一名主管,并有多名职员;每名职员只能隶属一个业务部。
  3. 职员记录职员号、姓名、所属业务部编号、岗位、电话、家庭成员姓名、成员关系;职员号唯一标识一个元组。岗位包括经理、主管、研发员、业务员等。

图2-1给出未补全的实体联系图。

待补全的关系模式按以下顺序列出:

  • 分公司(分公司编号、名称、(a)、联系地址)
  • 业务部(业务部编号、名称、(b)、电话)
  • 职员(职员号、姓名、岗位、©、电话、家庭成员姓名、成员关系)

【问题1】(4分)补充4个联系,使图2-1完整;联系名可用联系1~联系4,类型从1:1、1:n、m:n(也可写1:1、1:、:*)中选择。

【问题2】(3分)填写关系模式中的(a)~©属性。

【问题3】(4分)(1)说明分公司关系模式的主键、外键;(2)说明业务部关系模式的主键、外键。

【问题4】(4分)若每名职员有多名家庭成员,现有职员关系模式存在什么问题?如何解决?

答案与解析

平台参考答案(原文保留)

【问题1】

【问题2】

(a)经理号,电话

(b)分公司编号,主管号

(c)所属业务部编号

【问题3】

【问题4】

在职员关系中,如果每个职员有多名家庭成员,会重复记录多条职员信息及对应家庭成员,为了区分各条记录,职员关系的主键需要设定为(职员号,家庭成员姓名),会产生数据冗余、插入异常、更新异常、删除异常等问题。

处理方式:

对职员关系模式进行拆分,职员1(职员号、姓名、岗位、所属业务部编号,电话);职员2(职员号,家庭成员姓名,关系)。

解析与纠错

按平台图,联系1是分公司1:n业务部,联系2是分公司1:1经理,联系3是业务部1:n职员,联系4是业务部1:1主管。题意明确每个分公司一个经理、每个业务部一个主管;平台的1:1画法还采用了经理、主管各只负责一个对应组织的建模约定。若实际允许兼管多个组织,反向基数需要另行规定,不能把单向“只有一名”普遍当成双向一对一。

对照完整需求与所给模式:(a)补经理号、电话;(b)补分公司编号、主管号;©补所属业务部编号。分公司主键为分公司编号,经理号是引用职员号的外键;业务部主键为业务部编号,外键有分公司编号和主管号,分别引用分公司与职员。还应以业务约束保证经理号、主管号指向相应岗位;一般外键本身不能检查岗位值。

若一行把多个家庭成员塞进同一字段,会出现非原子取值;若每个家庭成员各占一行,原来“职员号唯一”的约束便不再成立,并会反复保存职员姓名、岗位、部门、电话,产生冗余及插入、更新、删除异常。可以拆为职员(职员号、姓名、岗位、所属业务部编号、电话)和家庭成员(职员号、家庭成员姓名、成员关系),后表以职员号引用前表。

平台提出的(职员号,家庭成员姓名)作为后表主键,需要同一职员的家庭成员不同名这一额外前提;原题未保证这一点。若允许同名,应增加家庭成员编号,再用(职员号,家庭成员编号)或独立编号标识。该补充不改变平台原答案。

2019年下半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2019-11-case Q002

新员工培训的数据库设计

公司计划开发新入职员工技能培训管理系统,使新员工快速胜任岗位。需求如下。

  1. 部门信息包括部门号、名称、部门负责人、电话等;部门号唯一标识部门元组。一个部门有多个员工,每名员工只属于一个部门;每个部门只有一名负责人,负责部门工作。
  2. 员工信息包括员工号、姓名、部门号、岗位、基本工资、电话、家庭住址等;员工号唯一标识员工元组。岗位有新入职员工、培训师、部门负责人等,不同岗位设置不同的基本工资。新入职员工选择多门课程培训,并通过考试取得课程成绩。一名培训师可讲授多门课程,一门课程可由多名培训师讲授。
  3. 课程信息包括课程号、课程名称、学时等;课程号唯一标识课程元组。

图2-1给出实体联系图。

关系模式按原顺序列出:

  • 部门(部门号,部门名,部门负责人,电话)
  • 员工(员工号,姓名,部门号,d,电话,家庭住址)
  • 课程(e,课程名称,学时)
  • 讲授(课程号,培训师,培训地点)
  • 培训(课程号,(f))

【问题1】(5分)(1)补充图2-1中的空(a)~(c);(2)判断是否缺少联系,若有,说明联系及其类型。

【问题2】(3分)填写关系模式的空(d)~(f)。

【问题3】(5分)员工关系模式的主键为(g),外键为(h);讲授关系模式的主键为(i),外键为(j)。

【问题4】(2分)员工关系是否存在传递依赖?用100字以内说明理由。

答案与解析

平台参考答案(原文保留)

【问题1】

(1)(a)部门负责人;(b)培训师;(c)新入职员工

(2)存在缺失联系:员工与部门之间隶属关系,联系类型*:1。

(或,存在缺失联系:部门与员工之间隶属关系,联系类型1:*)。

【问题2】

(d)岗位,基本工资;(e)课程号;(f)新入职员工/新入职员工工号,课程成绩

【问题3】

【问题4】
存在传递函数依赖。
在员工关系中,员工的岗位有新入职员工,培训师,部门负责人,不同岗位设置不同的基本工资,即存在传递函数依赖,员工号→岗位,岗位→基本工资。

解析与纠错

图中的员工按岗位分化:与部门有“负责”联系的是(a)部门负责人,与课程“讲授”的是(b)培训师,与课程“培训”的是©新入职员工。还应补部门1:*员工的隶属联系,反向为员工*:1部门。

(d)补岗位、基本工资,(e)补课程号;培训是新员工与课程的多对多关系,(f)要补新入职员工工号和课程成绩。员工主键(g)为员工号,外键(h)为部门号,引用部门关系。讲授按原图的一般联系模型,用(培训师,课程号)作为主键(i);(j)包含培训师、课程号两个外键,分别引用相应人员与课程。

平台另允许把培训地点加入讲授主键,这依赖“同一培训师可在不同地点讲同一课程、且三者足以区分记录”的业务约定,题目没有明确这些规则。若(培训师,课程号)已唯一,加入地点只是非最小超键;不能同时断言二者都是候选键。

问题4的100字以内作答可为:“存在。员工号决定岗位,岗位决定基本工资;岗位不是员工关系的候选键,因此基本工资对员工号存在经岗位的传递依赖。”分解时可另设岗位(岗位,基本工资),员工只保存岗位。原题问题3、问题4分值为5分、2分,平台长解析的预估4分、3分不替代题面分值。

2019年上半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2019-05-case Q002

创业项目投资的数据库设计

某创业孵化基地管理多家孵化公司和创业公司,拟建立信息系统规范创业项目投资业务。需求如下。

  1. 孵化公司保存公司代码、公司名称、法人代表名称、注册地址、一个电话;创业公司保存公司代码、公司名称、一个电话。两类公司的公司代码编码不同。
  2. 两类公司的员工统一管理,保存工号、身份证号、姓名、性别、所属公司代码、一个手机号;工号唯一标识员工。
  3. 投资方保存投资方编号、投资方名称、一个电话。
  4. 孵化公司为投资方与创业公司牵线建立创业项目合作关系,由孵化公司的一位员工具体协调投资方和创业公司的一个创业项目。一个项目只属于一个创业公司,但可接受多个投资方投资。项目信息含项目编号、创业公司代码、投资方编号、孵化公司员工工号。

图2-1是尚未完成的实体联系图。

由概念模型得到的关系模式如下,保留原有标记及顺序:

孵化公司(公司代码,公司名称,法人代表名称,注册地址,电话) 创业公司(公司代码,公司名称,电话) 员工(工号,身份证号,姓名,性别, (a),手机号) 投资方(投资方编号、投资方名称,电话) 项目(项目编号,创业公司代码#,(b),孵化公司员工工号#)

【问题1】(5分)根据需求补充图2-1实体联系图。

【问题2】(4分)补充关系模式中的(a)、(b),并补充完整性约束关系。

【问题3】(6分)若还要记录投资额和投资时间:(1)是否需要增加实体?(2)若需要,给出新实体关系模式并补图;若不需要,将这两个属性连到图2-1的合适对象,并修改发生变化的关系模式。

答案与解析

平台参考答案(原文保留)

【问题1】(5分)

【问题2】(4分)

(a)所属公司代码

(b)投资方编号

完整性约束关系

员工-外键:所属公司代码 项目-主键:(项目编号、投资方编号)组合主键 项目-外键: 投资方编号,题干已给出外键创业公司编号、孵化公司员工工号

【问题3】(6分) (1)不需要 (2)关系模式:项目(项目编号,创业公司代码,投资方编号,孵化公司员工工号,投资额,投资时间)

解析与纠错

补创业公司1:*员工的管理联系;平台还把项目画成员工、投资方、创业公司的三元联系,端点依次为1、*、1。(a)为所属公司代码,(b)为投资方编号。员工主键工号;项目按平台采用(项目编号,投资方编号)组合主键,创业公司代码、投资方编号、孵化公司员工工号作为引用字段。

原页AX与截图已核实五行关系模式均无下划线,项目行两处#保留;平台长解析称主键“题目已经用下划线标出”与当前可见题面不符,不能据此给题干补提示。

“所属公司代码”在业务上可指两类公司的任一家,不能在常规SQL中同时给它加两条分别引用两表的外键来表达“二选一”:两条外键会要求该值同时存在于两表。可引入统一的公司父表供员工引用,再记录公司类型及子类专有属性;也可分开建员工隶属关系并另约束唯一归属。项目协调工号还须确实属于孵化公司员工,仅引用普通员工工号不足以检查这一岗位归属。

平台1:*:1的三元图是按每个项目一个创业公司、一个协调员工的意图给出的,但三元联系的“1”通常是固定其他两端时的唯一性,不等同于“每个项目只有一个”。若同一投资方与同一创业公司有多个项目或不同协调员工,三元端点可能产生额外限制。以项目编号标识项目,并明确项目、投资方之间的投资关系,更容易表达这些规则。不能仅凭每个项目归属唯一,就宣称任意三元联系必为1:*:1。

问题3按题目当前粒度不必增加实体:投资额、投资时间可作为“项目”联系的属性,关系改为项目(项目编号,创业公司代码,投资方编号,孵化公司员工工号,投资额,投资时间)。这默认每对(项目编号,投资方编号)只记录一笔投资;若同一方对同一项目分多次投资,就需投资记录编号或足以区分记录的键,不能仍让这个二元键唯一而覆盖历史。

2018年下半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2018-11-case Q002

分公司部门与任职历史的数据库设计

某集团拥有多个分公司,拟开发业务管理信息系统。需求如下。

  1. 分公司记录分公司编号、名称、经理、联系地址、电话;编号唯一标识分公司元组。每个分公司仅有一名经理负责管理,并下设多个只为本分公司服务的业务部门,如研发部、财务部、采购部、销售部。
  2. 部门记录部门号、部门名称、主管号、电话、分公司编号;部门号唯一标识部门元组。每个部门仅有一名主管负责管理,并有多名员工;每名员工只能隶属一个部门。
  3. 员工记录员工号、姓名、隶属部门、岗位、电话、基本工资;员工号唯一标识员工元组。岗位包括经理、主管、研发员、业务员等。

图2-1给出尚未完成的实体联系图。

关系模式保持原有顺序与写法:

分公司(分公司编号,名称,(a),联系地址,电话)
部门(部门号,部门名称,(b),电话)
员工(员工号,姓名(c),电话,基本工资)

【问题1】(4分)补充4个联系完善图2-1。名称可写联系1~联系4;联系类型为1:1、1:n、m:n,也可用1:1、1:*、*:*表示。

【问题2】(5分)补全关系模式空(a)~©。

【问题3】(4分)写出“部门”“员工”关系模式的主键及外键。

【问题4】(2分)若要记录部门历任主管的任职时间和任职年限,数据库设计是否需增设实体?说明理由。

答案与解析

平台参考答案(原文保留)

【问题1】

联系1:分公司:经理,1:1

联系2:分公司:部门,1:*

联系3:部门:主管,1:1

联系4:部门:员工,1:*

【问题2】
(a)经理工号
(b)分公司编号,主管号
(c)隶属部门,岗位
【问题3】
部门
主键:部门号;外键:分公司编号,主管号
员工
主键:员工号;外键:隶属部门

【问题4】

不需要增加新的实体,对于任职情况,可以将任职时间和任职年限放入联系的属性即可,将部门与主管的联系单独形成关系模式,任职(部门号,主管工号,任职时间,任职年限)。

解析与纠错

四个联系依次可取分公司—经理1:1、分公司—部门1:*、部门—主管1:1、部门—员工1:*。其中经理、主管的双向一对一是平台采用的岗位建模约定;单凭“每个组织只有一名负责人”本身不能证明同一人一定不兼管多个组织。

(a)补经理工号;(b)补分公司编号、主管号;©补隶属部门、岗位。部门主键为部门号,分公司编号引用分公司,主管号引用员工;员工主键为员工号,隶属部门引用部门号。还需通过业务规则保证主管号对应适任员工,仅普通外键不检查岗位。

问题4按平台无需另设独立业务实体,可给“部门—主管”的任职联系增加任职时间、任职年限,并单独映射为任职(部门号,主管工号,任职时间,任职年限)。不新增概念实体不等于无需新增关系表:当前部门行只存一个主管号,不能独自保存历任记录。

若同一主管可重复任职,不能仅以(部门号,主管工号)唯一标识全部任期,可增加任职起点或任职编号。历史上同一部门会对应多位主管,但“同一时刻只有一位”仍应约束任期不重叠;这区别于当前任职的一对一联系。

2018年上半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2018-05-case Q002

海外代购与顾客地址的数据库设计

某海外代购公司拟开发信息化管理系统,业务需求如下。

  1. 员工分代购员、配送员;记录工号、身份证号、姓名、性别和一个手机号,工号唯一标识员工。
  2. 商品记录名称、所在超市名称、采购价格、销售价格及介绍;内部用商品条码唯一标识商品,每种商品只在一家超市代购。
  3. 顾客记录真实姓名、用于清关缴税的身份证号、一个手机号及一个收货地址;系统生成唯一顾客编号。
  4. 托运公司记录名称、电话、地址;系统生成唯一托运公司编号。
  5. 顾客登录后下订单,支付成功后记录唯一支付凭证编号;订单指定空运或海运。
  6. 代购员按订单到超市采购;一份订单含多个商品,可能由多名代购员从不同超市采购。
  7. 配送员按顾客订单将已采购商品组合装箱,交托运公司。托运公司核对订单商品名称及数量,按顾客地址运送。

图2-1为尚未完成的实体联系图。

逻辑结构设计的关系模式如下,保留字段、空位和原有#标记:

员工(工号,身份证号,姓名,性别,手机号)

商品(条码,商品名称,所在超市名称,采购价格,销售价格,商品介绍)

顾客(编号,姓名,身份证号,手机号,收货地址)

托运公司(托运公司编号,托运公司名称,电话,地址)

订单(订单ID,(a),商品数量,运送方式,支付凭证编号)

代购(代购ID,代购员工号#,(b))

运送(运送ID,配送员工号#,托运公司编号#,订单ID#,发运时间)

【问题1】(3分)根据说明补充图2-1。

【问题2】(6分)补充关系模式中的(a)、(b)。

【问题3】(6分)现允许顾客保存多组收货地址;增加“顾客地址”弱实体,补充图2-1,并修改“运送”关系模式。

答案与解析

平台参考答案(原文保留)

【问题1】

【问题2】

(a)商品条码#,顾客编号#

(b)订单ID#,商品条码#

【问题3】

新增一个弱实体顾客地址,新增一个联系客户收货地址,连接顾客实体和顾客地址类型为1:*;弱实体用双矩型表示。
运送关系模式增加属性:顾客地址
运送(运送ID,配送员工号#,托运公司编号#,订单ID#,顾客地址#,发运时间)

解析与纠错

问题1把“运送”连接到配送员、托运公司和顾客—商品的订单聚合,平台采用三元多对多联系;不要拆成三条彼此独立的二元联系后丢失“谁把哪张订单交给哪家公司”的组合信息。

(a)补商品条码#、顾客编号#,使订单关联所购商品及下单者;(b)补订单ID#、商品条码#,使代购记录能定位代购员负责的订单商品。#按原题表示引用字段,不能据此把所有这些字段都当作主键。

需区分“整张顾客订单”与“订单中的商品行”:说明允许同一订单有多个商品,若订单ID唯一标识整张订单,原关系中一个商品条码和商品数量不能容纳全部商品。规范实现可分订单头与明细,明细以(订单ID,商品条码)或订单行号标识,代购再引用相应明细;这是对原设计粒度的说明,不替换平台填空。原页截图已核实并保留工号、条码、编号、托运公司编号、订单ID、订单(a)、代购(b)、运送ID的下划线;代购ID没有下划线。(a)/(b)是空位本身带下划线,不能据此断言填入的全部字段都属于主键。

新增的顾客地址依赖顾客存在,图用双矩形弱实体和识别联系,顾客到地址为一对多。平台在运送中加顾客地址#;实现时必须说明这个引用如何唯一识别地址。例如以(顾客编号,地址序号)作弱实体键时,引用也须能确定这两个分量,并保证地址属于该订单顾客。仅在文字上写一个没有键定义的“顾客地址#”,不足以说明完整参照约束。答案图保留原画法,学习时留意弱实体的全参与也应表达。

2017年下半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2017-11-case Q002

会议策划业务的数据库设计

M公司拟构建基于网络的会议策划系统,便于开展、管理业务,并提高知名度与影响力。需求如下。

  1. 公司设业务部、策划部及其他部门。部门记录部门号、部门名、主管、联系电话、邮箱号;每部门只有一位只管理本部门的主管,主管引用员工号。部门有多名员工,每名员工仅属于一个部门。
  2. 员工记录员工号、姓名、职位、联系方式、薪资,职位包括主管、业务员、策划员等。业务员受理用户申请并设置受理标志;一人可受理多份申请,每份申请仅由一位业务员受理。
  3. 用户记录用户号、用户名、银行账号、电话、联系地址,用户号唯一标识元组。
  4. 用户申请记录申请号、用户号、会议日期、天数、参会人数、地点、预算、受理标志;申请号唯一。一名用户可提交多份申请,每份申请只对应一名用户。
  5. 策划部主管为已受理申请制定策划任务;任务记录申请号、任务明细、要求完成时间,申请号唯一标识任务。每个任务对应一个已受理申请;任务可由多名策划员执行,每名策划员也可执行多项任务。

图2-1为尚未完成的实体联系图。

关系模式保持字段、空位及顺序:

部门(部门号,部门名,部门主管,联系电话,邮箱号)

员工(员工号,姓名,(a),联系方式,薪资)

用户(用户名,(b),电话,联系地址)

用户申请(申请号,用户号,会议日期,天数,参会人数,地点,受理标志,(c))

策划任务(申请号,任务明细,(d))

执行(申请号,策划员,实际完成时间,用户评价)

【问题1】(5分)补充五个联系完善图2-1;可命名为联系1~联系5,类型为1:1、1:n、m:n,也可写作1:1、1:*、*:*。

【问题2】(4分)填写关系模式空(a)~(d)。

【问题3】(4分)写出“用户申请”和“策划任务”的主键、外键。

【问题4】(2分)“执行关系模式的主键为全码”的说法是否正确?说明理由。

答案与解析

平台参考答案(原文保留)

【问题1】 1.联系1:部门和员工,1:n 2.联系2:业务员和用户申请,1:n 3.联系3:用户和用户申请,1:n 4.联系4:策划员和策划任务,n:m 5.联系5:策划任务和用户申请,1:1 或(联系5:部门和主管,1:1) 【问题2】 a.职位,部门号 b.用户号,银行账号 c.预算费用,业务员(员工号) d.要求完成时间,主管号 【问题3】 用户申请:主键:申请号 外键:用户号,业务员 策划任务:主键:申请号 外键:申请号,主管号 【问题4】 不正确 All-key关系模型的所有属性组成该关系模式的候选码,称为全码。即所有属性当作一个码。若关系中只有一个候选码,且这个候选码中包含全部属性,则该候选码为全码。 实际完成时间和用户评价为非主属性。

解析与纠错

一对多联系将引用字段放在多端:员工补职位、部门号;用户补用户号、银行账号;用户申请补预算费用和受理业务员;任务补要求完成时间与制定任务的主管号。业务员、主管最终引用的是员工的身份,仍需额外业务约束保证职位及所属部门合适。

五个联系按平台可取部门—员工、业务员—用户申请、用户—用户申请的1:n,策划员—任务的m:n,以及任务—申请的1:1。平台还允许第五个写部门—主管的1:1。原图已有主管、策划任务、用户申请的“制定”三元联系;补图时保留它,说明每个已建立任务对应其申请。题意并未要求未受理申请也必有任务,1:1是最大对应数量,不能据此增加强制参与条件。

用户申请以申请号为主键,用户号和业务员为外键;任务以申请号为主键,它同时引用用户申请,主管号引用员工。主键和外键可以是同一属性,不应因为是主键就排除它作为外键的作用。

按题中每位策划员对同一任务记录一次执行的粒度,执行的标识为(申请号,策划员),实际完成时间和用户评价是该次执行的描述。因此全体属性不是最小候选码,不能称为全码。若另行扩展为同一人多次执行同一任务,应增加执行编号或轮次,不能把扩展条件冒充原题。原页截图已核实六行关系模式的字段和空位均没有下划线,按原样保留。

2017年上半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2017-05-case Q002

公寓租赁的数据库设计

房屋租赁公司拟用系统管理自有房屋、租客及员工,数据库需求如下。

  1. 公司拥有多幢公寓楼,每楼有唯一楼编号和地址。楼内有多套公寓,公寓号只在本楼内唯一,不同楼可重号;每套记录卧室数、卫生间数。
  2. 员工编号、租客编号分别唯一标识员工和租客。
  3. 租客记录姓名、多个联系电话、一个用于自动扣租的银行账号,以及一位紧急联系人的姓名、电话。
  4. 员工记录姓名、一个联系电话、月工资。类别可为经理、维修工,也可兼任。经理可管理多楼,每楼必须由一个经理管理;维修工需记录水暖维修、电工、木工等业务技能。
  5. 租赁须签合同,一份合同通常由一个或多个合租租客与该楼经理签订;一位租客也可租多套公寓。合同记录签订日期、开始时间、租期、押金和月租金。

未完成的实体联系图如图2-1。

逻辑结构设计给出以下关系模式,保留原字段与空位顺序:

联系电话(电话号码,租客编号) 租客(租客编号,姓名,银行账号,联系人姓名,联系人电话) 员工(员工编号,姓名,联系电话,类别,月工资, (a)) 公寓楼((b),地址,经理编号) 公寓(楼编号,公寓号,卧室数,卫生间数) 合同(合同编号,租客编号,楼编号,公寓号,经理编号,签订日期,起始日期,租期,(c) ,押金)

【问题1】(4.5分)为图2-1的“签约”补充关联实体及联系类型。

【问题2】(4.5分)填写逻辑结构中的(a)、(b)、(c)。

【问题3】(6分)租期内公寓设施发生故障,租客在系统登记故障描述,系统为每项故障生成唯一故障编号;公司派维修工处理,系统记录每次维修日期、维修内容。补充图2-1,并把所补ER图内容转换为一个关系模式,写出该模式。

答案与解析

平台参考答案(原文保留)

问题1

问题2

(a)业务技能

(b)楼编号

(c)月租金

问题3

新增维修关系,维修工维修公寓,关系模式为维修情况。 维修情况(故障编号,租客编号,楼编号,公寓号,员工编号,维修日期,维修内容)

或者:

解析与纠错

公寓由(楼编号,公寓号)共同识别,不能只用公寓号。经理—公寓楼为1:n,每楼必须恰有一名经理;经理和维修工可由同一员工兼任,不能将类别解释成互斥二选一。租客多个电话号码独立放在联系电话关系中。

平台图把租客—公寓的“租赁”聚集为整体,再由经理以1:n“签约”连接:一个经理可对应多项租赁,具体租赁归相应楼经理负责。题干还允许多人合租;若落地实现,应区分合同主体及合同租客明细,不能一面用合同编号单独作每一行的唯一键,一面要求同一合同的多个租客各占一行。这里保留给定关系模式及平台聚集图,未把额外设计要求塞进原空。

(a)业务技能、(b)楼编号、©月租金,分别补足维修工资格、公寓楼标识和合同租金。平台的故障维修图有聚集联系与三元联系两种表达,全部保留。

平台维修关系漏了题目明确要求的“故障描述”。同一故障也可能发生多次维修,故障编号本身不足以区分每次记录;题目没有保证一天只能修一次,不能无条件以(故障编号,维修日期)作键。若按一条维修记录对应一位维修工的粒度,可整理为:维修情况(维修记录编号,故障编号,故障描述,租客编号,楼编号,公寓号,员工编号,维修日期,维修内容)。新增维修记录编号是补全建模建议,用于区分维修事件,原平台答案仍按原文保留。当前关系模式未显示下划线,不自行补加。

原站可见页面截图已核实,全部六行关系模式的字段和空位(a)、(b)、©均没有下划线。题面按普通字样保留,不把推导得到的主键标识补入原题。

2016年下半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2016-11-case Q002

宾馆预订与入住的数据库设计

宾馆拟建设客房管理及预订系统,以利用客房资源、满足不同客户需求。需求如下。

  1. 有多个部门,部门记录部门号、部门名称、电话、经理。每部门可有多名员工,每员工仅属一个部门;每部门恰有一名经理,负责本部门。
  2. 员工记录员工号、姓名、岗位、电话、工资;员工号唯一标识元组,岗位包括经理、业务员。
  3. 客房记录客房号(如1301、1302)、客房类型、收费标准、入住状态(已入住/未入住);客房号唯一,不同客房类型的收费标准不同。
  4. 客户记录客户号、单位名称、联系人、联系电话、联系地址;客户号唯一标识元组。
  5. 预订需提交申请,记录申请号、客户号、入住时间、入住天数、客房类型、客房数量;申请号唯一。一位客户可有多份申请,每份仅对应一位客户。
  6. 入住时业务员据申请安排客房。安排记录客房号、姓名、性别、身份证号、入住时间、天数、电话;客房号、身份证号、入住时间共同唯一标识一次安排。一位业务员可安排多份申请,每份申请只由一位业务员安排,并可安排多间同类型客房。

图2-1为初步实体联系图。

给定关系模式如下,字段、空位及顺序保留:

部门(部门号,部门名称,经理,电话)

员工(员工号,

(a)

,姓名,岗位,电话,工资)

客户(

(b)

,联系人,联系电话,联系地址)

客房(客房号,客房类型,收费标准,入住状态)

预订申请(

(c)

,入住时间,天数,客房类型,客房数量)

安排(申请号,客房号,姓名,性别,

(d)

,天数,电话,业务员)

【问题1】(4分)补充四个联系完善图2-1,可命名为联系1~联系4;联系类型采用1:1、1:n、m:n,也可用1:1、1:*、*:*。

【问题2】(8分)

  1. 补全关系模式中的(a)~(d)。
  2. 写出“预订申请”“安排”的主键和外键。

【问题3】(3分)“客房”关系是否存在规范性问题?用100字以内解释;若有问题,说明如何修改该关系。

答案与解析

平台参考答案(原文保留)

【问题1】

1、经理与部门 之间 存在1:1的联系。

2、部门与员工 之间 存在1:n的联系。

3、客户与预订申请 之间 存在 1:n的联系。

4、业务员、客房、预订申请 之间存在1:m:n的联系。

【问题2】

(a)部门号。

(b)客户号、单位名称。

(c)申请号、客户号。

(d)身份证号、入住时间。

”预订申请“关系模式中的主键是申请号,外键是客户号。

”安排“关系模式中的主键是:(客房号、身份证号、入住时间),外键是:申请号、客房号、业务员。

【问题3】

根据试题中的描述,客房信息中客房号是唯一标识客房关系的一个元组,即可以作为唯一的主键。在客房关系模式中,不存在其他部分依赖关系,但客房号→类型→收费标准,存在传递函数依赖,所以冗余,添加异常,修改异常,删除异常均存在。

可以对客房关系进行分解,具体如下:

客房1(客房号,客房类型,入住状态);

客房2(客房类型,收费标准)。

解析与纠错

部门—员工为1:n,经理—部门为1:1,客户—预订申请为1:n。安排连接业务员、客房、预订申请,平台以1:m:n三元联系表达;还要按文字保证同一份申请由同一业务员负责,三元图上的多重性不能代替全部业务约束。

(a)放部门号,作为多端员工对部门的引用;(b)补客户号、单位名称;©补申请号、客户号;(d)补身份证号、入住时间。预订申请主键是申请号,客户号为外键。安排按题中明确粒度以(客房号,身份证号,入住时间)为主键,申请号、客房号、业务员为外键;业务员引用员工号,岗位资格需另行约束。姓名和电话只是描述信息,不加入题已给定的组合键。

按题意收费标准由客房类型决定,客房号→客房类型→收费标准,形成非主属性对键的传递依赖。单属性键不存在部分依赖,但这不能保证达到3NF。分为客房1(客房号,客房类型,入住状态)和客房2(客房类型,收费标准),公共属性客房类型是客房2的键,分解无损且保留相关依赖。

问题3的100字内答法:存在传递依赖“客房号→客房类型→收费标准”,可能造成重复及更新异常。分为客房1(客房号,客房类型,入住状态)与客房2(客房类型,收费标准)。

关系模式中的四处下划线只标示待填空位,不将推导键值补标进原题。

原站可见页面截图已核实,六行模式的已给字段全部没有下划线,只有(a)、(b)、©、(d)四个空位带下划线。下划线用于标示待填位置,不表示这些空中所有字段都是主键。

补充说明

平台解析另附的同一联系补全图,原样保留:

2016年上半年软件设计师案例真题:案例题

本节保留 1 条来源,答案与解析默认收起。

2016-05-case Q002

网购与实体店配送的数据库设计

一家销售公司现以商城实体店销售为主,拟增加网络销售并建设信息化管理系统。数据库需求如下(共15分)。

  1. 记录所有员工的工号、身份证号、姓名、性别、出生日期、电话;每人只登记一部电话。
  2. 记录所有商品的商品名称、生产厂家、销售价格、商品介绍;系统用商品条码唯一区别每种商品。
  3. 记录所有顾客的姓名、身份证号、登录名、登录密码、电话号码;每位顾客只提供一个电话号码,系统生成唯一顾客编号。
  4. 顾客登录后可在网上商城选购,将商品放入虚拟购物车长期保存;在购物车选择商品、修改数量后生成网购订单。顾客从系统备选第三方支付平台中选择电子支付,成功后记录唯一支付凭证编号,再按订单线下配送。
  5. 配送商品统一从仓库出库。每位顾客可登记多组收货地址、收货人和联系电话。一份订单可含多个商品,由多名分拣员依商品所在仓库信息分拣,再交配送员按配送单地址配送。
  6. 同时记录实体店每笔销售的营业员、顾客、所售商品及数量。

概念模型如下,图尚未补全。

给定逻辑关系模式如下,字段、空位及顺序保留:

根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整): 员工(工号,身份证号,姓名,性别,出生日期,电话) 商品(商品条码,商品名称,生产厂家,销售价格,商品介绍, (a) ) 顾客(顾客编号,姓名,身份证号,登录名,登录密码,电话) 收货地点(收货ID,顾客编号,收货地址,收货人,联系电话) 购物车(顾客编号,商品条码,商品数量) 订单(订单ID,顾客编号,商品条码,商品数量, (b) ) 分拣(分拣ID,分拣员工号, (c) ,分拣时间) 配送(配送ID,分拣ID,配送员工号,收货ID,配送时间,签收时间,签收快照) 销售(销售ID,营业员工号,顾客编号,商品条码,商品数量)

【问题1】(4分)补充图中“配送”联系关联的对象及联系类型。

【问题2】(6分)补全关系模式(a)、(b)、(c)。

【问题3】(5分)若实体店增加送货上门,由营业员按销售结果在系统下订单,并与网购订单统一管理后续业务,应怎样补图并修改订单关系模式?

答案与解析

平台参考答案(原文保留)

【问题1】

补充内容如图中虚线所示:

【问题2】

(a)所在仓库

(b)支付凭证

(c)订单ID,商品条码

【问题3】

补充内容如图中虚线所示:

关系模式:订单( 订单ID,顾客编号(FK),商品条码(FK),商品数量,销售ID(FK),支付凭证)。

注:用FK标注外键。

解析与纠错

“配送”联系的对象包括配送员、收货地点以及一次分拣活动;平台将分拣员—分拣—订单聚合为一个可参与新联系的整体,再与配送员、地点连接。答案图三端都标为多,保留该图的表达,不把分拣活动误作商品实体,也不把配送限定为只连接订单和配送员。

(a)为所在仓库,(b)为支付凭证,©为订单ID、商品条码。分拣表既需定位订单,又需区分该订单的具体商品;分拣员工号和时间已经给出,不应重复填写。支付凭证按题意记录支付成功后取得的唯一编号。

平台解析把“一个商品只存放一个仓库”当作推导依据,但需求文字并未明确规定;题给商品表只留一个所在仓库属性,答案实际采用了这一简化。若业务允许同一商品分布多个仓库,则需另建商品—仓库存储关系,不能把该限制说成已明确给定。

问题3将营业员—销售—商品—顾客的销售活动聚合,按平台图与订单建立1:1联系,并在订单关系加入销售ID外键。原网购关联及配送补全仍保留。新增销售关联的1:1是一次销售与其配送订单的业务对应,不等于每个网购订单都必须关联实体店销售;网购场景的该外键如何允许空值需另作实现约定。

题目已说明一份订单可含多个商品,给定关系又把商品条码、数量放在订单中,因而不能无条件宣称每行都由订单ID单独唯一标识。实际规范化设计通常分订单头和明细;这里按原模式填空,不暗改原关系结构或擅自补主键下划线。

原站可见页面已核实:九行关系模式的字段和(a)(b)(c)空位均无下划线,按原样保留;不将推导出的主键标注补入题面。

2015年上半年软件设计师案例真题:案例题

本节收录 1 道案例,答案与解析默认收起。

2015-05-case Q002

足球联赛的信息模型

某省拟为每年的足球联赛建设信息管理系统,管理球队、球员、主教练、主裁判与比赛。

  • 球队信息:球队编号、名称、成立时间、人数、主场地址、球队主教练。
  • 球员信息:姓名、身份证号、出生日期、身高、家庭住址。
  • 主教练信息:姓名、身份证号、出生日期、资格证书号、级别。
  • 主裁判信息:姓名、身份证号、出生日期、资格证书号、获取证书时间、级别。

每队有一名主教练和若干球员;每名主教练只能受聘于一队,每名球员只能效力于一队。各队有唯一的主场场地,场地不能共用。联赛采取主客场循环制,每周一轮,同轮全部比赛同时进行。

每场比赛恰有两队,分别作为主队、客队,且只能有一名主裁判;每场有唯一比赛编码,记录比分和日期。图2-1为尚未完成的实体联系图。

由概念设计得到的关系模式尚有空缺:

  • 球队(球队编号,名称,成立时间,人数,主场地址)
  • 球员(姓名,身份证号,出生日期,身高,家庭住址,(1))
  • 主教练(姓名,身份证号,出生日期,资格证书号,级别,(2))
  • 主裁判(姓名,身份证号,出生日期,资格证书号,获取证书时间,级别)
  • 比赛(比赛编码,主队编号#,客队编号#,主裁判身份证号#,比分,日期)

【问题1】(6分)补出图2-1的联系和联系类型;列出“比赛”联系应有的属性。

【问题2】(4分)补全关系模式中的(1)~(2)。

【问题3】(5分)新增赞助商,记录名称和编号。赞助商可赞助球队:一队只能有一个赞助商,一个赞助商可赞助多队;也可单独赞助球员,一名球员可为多个赞助商代言。画出新增或修改的实体联系及联系类型。

答案与解析

平台参考答案(原文保留)

【问题1】

比赛联系应具有的属性包括:比赛编码,比分,日期。

【问题2】

(1)球队编号# (2)球队编号#

【问题3】

解析与纠错

球队与球员的“效力”为1对多:球员端为多,球队端为1。球队与主教练的“聘任”为1对1。“比赛”同时连接两个不同角色的球队以及主裁判:一场由一支主队、一支客队和一名主裁判参加,各队和裁判可以参与多场比赛。比赛自身记录比赛编码、比分、日期。

两处填空均为球队编号#。球员表的外键表达所属球队;主教练表的球队编号除了引用球队,还应有唯一性约束,才能体现一队最多聘用一名主教练。若要求每队必须有一名主教练,还需检查反向存在约束。

新增赞助商后,赞助商→球队为1对多;赞助商与球员为多对多。后者可另建包含赞助商编号、球员身份证号的关联表,不能让球队的单一赞助商约束覆盖球员的个人代言关系。

补充说明

订正与约束:原解析末句把球员个人代言的多对多关系写成“球队和赞助商”,应为“球员和赞助商”。球队与赞助商仍是多对一。图中多重联系描述整个联赛期间可发生多次关联,不应理解为一场比赛可以有多名主裁判。

比赛编码区分具体场次;不能只用主队、客队、裁判三者作为场次标识。同轮比赛同时举行意味着同一裁判或球队不能同时参与多场,主客队也不能相同;主场唯一且不共用需结合球队与地址约束落实,这些规则不单靠外键就能全部表达。

原题关系模式中,球队编号、三类人员各自的身份证号、比赛编码均带下划线;两处待填空也带下划线。填空下划线用于标示位置,不能据此把补入的球队编号与身份证号直接当作联合主键;球队归属与主教练唯一性仍须分别约束。

评论