单选题4.7 安全架构14 / 18
正在加载题目…
系统集成项目管理工程师 · 第三版 · 第4章 信息系统架构
结束日期不能早于开始日期,属于哪类完整性约束?
18 道章节练习题
答案与解析
正确答案 D
用两个方向判断:它比较同一条记录的两个字段,所以是元组级;只看当前记录就能判断,不需要更新前的旧记录,所以是静态。合起来选D。字段名称里有“开始、结束”,并不意味着动态约束。
开始日期是9月10日,结束日期是9月9日,即使两个字段各自都是合法日期,这一行仍然不合规则。这说明仅检查单列类型还不够,需要约束同一行的字段关系。反过来,若规则改成“本次修改不得把结束日期提前到上次值之前”,才需要比较更新前后状态。实际写检查条件时还要考虑空值,本题已经明确两个日期均非空,避免把空值处理和静态、动态分类混在一起。
选项分析
- A
- 单独看任意一个日期都可能合法,必须比较同一行的两个字段才能判断,不能只归为单列取值限制。
- B
- 题干没有要求比较不同记录或整张关系中的记录集合,规则直接落在同一个元组内部。
- C
- 元组范围判断正确,但没有引用更新前状态或变化过程;涉及日期不等于涉及动态约束。
- D
- 同时符合两个特点:检查同一元组的字段关系,并且只需当前状态即可完成判断。
容易混淆的地方
一看到日期、先后或更新操作就选动态约束,没有检查规则是否真正需要前后两个状态。
再巩固一步
- 先问比较一列、一行还是记录集合,再问要不要旧状态;这是两个分类维度,分开判断。
原创章节练习题 · 第三版 · 《系统集成项目管理工程师教程》第3版 · 4.7.5 · 纸书第186页查看完整题目与详解