步骤11:检查、设置完整性约束
完整性约束是为了防止数据模型不一致而强加的限制,标识完完整性约束之后,就可以得到一个完整而准确的描述视图的局部逻辑数据模型。在此主要考虑下面五种类型的完整性约束:
(1)必需的数据某些属性必须包含某些值,即不允许为空。例如:每个机构都必须有机构名称。
(2)值域约束每个属性都有一个值域。已经在步骤4设置了属性的值域。
(3)实体完整性实体完整性是指实体的主键不能为空。
(4)参照完整性参照完整性是指子实体的外键值必须与父实体的主键值相同或为空。
要实现参照完整性,需要定义一些约束,定义主键和外键在什么条件下可以插入、更新或删除,以及这些操作的结果。
一般有以下三种关于参照完整性的约束(Oracle支持这三种约束):Restrict、Cascade、None(Oracle用NULL)。
(5)业务规则 最后,还要考虑业务规则的约束。数据库要被现实世界的业务要求约束。例如:对机构的领导干部编制有限制,一级分行机构最多只能有100个干部编制。
通常业务规则有两种实现方法:一是通过属性的检查约束( Check)实现,如上面的例子就可以通过检查约束实现;二是通过触发器来实现,这一步需要在物理设计时完成。
这五种约束已经在步骤3到步骤5中设置,此处加以检查与修改。