单选题
某数据库中有员工关系E(员工号,姓名,部门,职称,月薪);产品关系P(产品号,产品名称,型号,尺寸,颜色);仓库关系W(仓库号,仓库名称,地址,负责人);库存关系I(仓库号,产品号,产品数量)。
单选题
a. 若数据库设计中要求:
①仓库关系W中的“负责人”引用员工关系的员工号
②库存关系I中的“仓库号,产品号”唯一标识I中的每一个记录
③员工关系E中的职称为“工程师”的月薪不能低于3500元
则①②③依次要满足的完整性约束是______。
- A.实体完整性、参照完整性、用户定义完整性
- B.参照完整性、实体完整性、用户定义完整性
- C.用户定义完整性、实体完整性、参照完整性
- D.实体完整性、用户定义完整性、参照完整性
单选题
b. 若需要得到每种产品的名称和该产品的总库存量,则对应的查询语句为:
SELELCT产品名称,SUM(产品数量)
FROM P,I
WHERE
P.产品号=I.产品号______;
- A.ORDER BY产品名称
- B.ORDER BY产品数量
- C.GROUP BY产品名称
- D.GROUP BY产品数量
【正确答案】
C
【答案解析】[解析] 完整性约束包括3类:实体完整性、参照完整性和用户定义完整性。实体完整性规则:要求关系中组成主键的属性上不能有空值,关系模型中以主码作为唯一性标识。依题意,“②库存关系I中的‘仓库号,产品号’唯一标识I中的每一个记录”应满足实体完整性约束。
参照完整性规则:若属性(或属性组)A是关系R上的主键,B是关系S上的外键,A与B相对应(来自相同的域),则B取值为空或者来自于R上的某个A的值。该规则的实质是“不允许引用不存在的实体”。依题意,“①仓库关系W中的‘负责人’引用员工关系的员工号”应满足参照完整性约束。
用户定义完整性规则:由具体应用环境决定,系统提供定义和检验这类完整性的机制。它是针对具体的数据库应用而定义的,反映该应用所涉及的数据必须满足用户定义的语义要求。依题意,“③员工关系E中的职称为‘工程师’的月薪不能低于3500元”是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求,因此应满足用户定义完整性约束。
依题意,若需得到每种产品的名称和该产品的总库存量,则需要对查询结果进行分组,即具有相同名称的产品的元组为一组,然后计算每组的库存数量。因此,该SQL查询语句中需要添加分组语句“GROUP BY产品名称”。