某数据库中有员工关系E(员工号,姓名,部门,职称,月薪);产品关系P(产品号,产品名称,型号,尺寸,颜色);仓库关系W(仓库号,仓库名称,地址,负责人);库存关系I(仓库号,产品号,产品数量)。a.若数据库设计中要求:①仓库关系W中的"负责人"引用员工关系的员工号。②库存关系I中的"仓库号,产品号"唯一标识I中的每一个记录。③员工关系E中的职称为"工程师"的月薪不能低于3500元。则①②③依次要满足的完整性约束是(1)。b.若需得到每种产品的名称和该产品的总库存量,则对应的查询语句为:SELELCT产品名称,SUM(产品数量)FROMP,IWHEREP.产品号=I.产品号(2)空白(1)处应选择()
- AA.实体完整性、参照完整性、用户定义完整性
- B参照完整性、实体完整性、用户定义完整性
- C用户定义完整性、实体完整性、参照完整性
- D实体完整性、用户定义完整性、参照完整性
参考解析:本题考查关系的完整性约束和SQL的基本知识及应用。第(1)空考查数据库完整性约束。首先需要了解实体完整性、参照完整性和用户定义完整性的概念。实体完整性:实体完整性要求主键中的任一属性不能为空,所谓空值是"不知道"或"无意义"的值。之所以要保证实体完整性,主要是因为在关系中,每个元组的区分是依据主键值的不同,若主键值取空值,则不能标明该元组的存在。例如,对于学生关系S(Sno,Sname,Ssex),其主键为Sno,在插入某个元组时,就必须要求Sno不能为空。更加严格的DBMS,则还要求Sno不能与已经存在的某个元组的Sno相同。参照完整性:若基本关系R中含有与另一基本关系S的主键PK相对应的属性组FK(FK称为R的外键),则参照完整性要求,对R中的每个元组在FK上的值必须是S中某个元组的PK值,或者为空值。参照完整性的合理性在于,R中的外键只能对S中的主键引用,不能是S中主键没有的值。例如,对于学生关系S(Sno,Sname,Ssex)和选课关系C(Sno,Cno,Grade)两个关系,C中的Sno是外键,它是S的主键,若C中出现了某个S中没有的Sno,即某个学生还没有注册,却已有了选课记录,这显然是不合理的。用户定义的完整性:实体完整性和参照完整性适用于任何关系型DBMS。除此之外,不同的数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。从以上概念说明可以看出"仓库关系W中的"负责人"引用员工关系的员工号"属于参照完整性,"库存关系I中的"仓库号,产品号"唯一标识I中的每一个记录"属于实体完整性,"员工关系E中的职称为"工程师"的月薪不能低于3500元"属于用户自定义完整性。第(2)空要求"得到每种产品的名称和该产品的总库存量",要达到该效果需要对数据表的数据进行分组统计。由于现在是要根据产品名称来统计库存量,所以分组的依据应是产品名称,所以应使用"GROUPBY产品名称"。
分类:数据库系统题库,高级系统架构师题库