用户自定义完整性指针对某一具体
关系数据库的
约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
用户自定义完整性是针对某一具体
关系数据库的
约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。主要包括非空约束、
唯一约束、
检查约束、
主键约束、
外键约束。
某个属性必须取唯一值、某个非主属性也不能取空值的,如图1职工关系中必须给出职工的姓名,就可以要求职工姓名不能取空值,某个属性只能在某范围内取值(如性别的取值只能取自“男”和“女”)。
要求“考查”课的分数以60分或40分计,在用户输入“考查”课的成绩时,要进行检查,以确保满足特定的约束要求。再如年龄属性,如果属于某一个学生主体,则可能要求年龄在17岁到25岁之间,而如果年轻属性属于某一个公司员工主体,则可能要求年龄在18岁到40岁之间等。
关系模型应提供定义和检验这一类完整性的机制,以便用统一的系统的方法处理它们,而不是由
应用程序来承担这一功能。在早期的
RDBMS中没有提供定义和检验这些完整性的机制,因此需要应用开发人员在应用系统的程序中进行检查。而SQL server提供的统一
完整性控制机制来实现约束,可降低应用程序
复杂度。
实体完整性将行定义为特定表的唯一实体。实体完整性通过 UNIQUE 索引、UNIQUE 约束或 PRIMARY KEY 约束,强制表的
标识符列或
主键的完整性。