完整性约束条件是指数据库中的数据应该满足的语义约束条件。可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。
静态列级约束是对一个列的取值域的说明,包括以下几个方面: ( l )对数据类型的约束(2)对数据格式的约束(3)对取值范围或取值集(白度)合的约束(4)对空值的约束(5)其他约束。
静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。
常见的静态关系约束有:(l)实体完整性约束(2)参照完整性约束(3)函数依赖约束。
动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面(l)修改列定义时的约束(2)修改列值时的约束。
动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。
动态关系约束是加在关系变化前后状态上的限制条件
DBMS 的完整性控制机制应具有哪些功能?
答:DBMS的完整性控制机制具有三个方面的功能:(l)定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;(3)违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
RDBMS 在实现参照完整性时需要考虑哪些方面?
答 RDBMs 在实现参照完整性时要考虑以下几个方面:(l)外码是否可以接受空值。(2)除被参照关系的元组时的考虑,这时系统可能采取的作法有三种:l)级联删除; 2)受限删除; 3)置空值删除。
(3)在参照关系中插入元组时的问题,这时系统可能采取的作法有:l)受限插入;2)递归插入。
(4)修改关系中主码的问题。一般是不能用UPDATE语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。
只要理解 约束 就可以了