第十章 数据库完整性
1. 什么是数据库的完整性?
正确答案: 数据库的完整性是指数据的正确性和相容性。
2. 数据库的完整性概念与数据库的安全性概念有什么区别和联系?
正确答案: 数据的完整性和安全性是两个不同的概念,但是有一定的联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。 后者是保护数据库防止恶意的破坏和非法的存取。 也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
3. 什么是数据库的完整性约束条件?可分为哪几类?
正确答案: 完整性约束条件是指数据库中的数据应该满足的语义约束条件。 一般可以分为六类: 静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。 静态列级约束是对一个列的取值域的说明,包括以下几方面: 1. 对数据类型的约束,包括数据的类型、长度、单位、精度等 2. 对数据格式的约束 3. 对取值范围或取值集合的约束。 4. 对空值的约束 5. 其他约束 静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。 静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有: 1. 实体完整性约束。 2. 参照完整性约束。 3. 函数依赖约束。 动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面: 1. 修改列定义时的约束 2. 修改列值时的约束 动态元组约束是指修改某个元