数据库能防止存储垃圾数据,而我们所使用的RDBMS实现该功能主要是通过维护数据完整性来实现。那么,根据数据完整性实施的方法,我们可以分为哪几类呢?
实体完整性,在某种意义上,实体的存在是独立于数据库的,一个表中的一行如果与它所代表的实体完全一致,我们就说该表具有实体完整性。实体完整性强制表的标识列或主键的完整性,它可以通过在表中设置主键约束、唯一约束或标识列属性来实现。域完整性,是指给定列的输入有效性,可通过限制类型(数据类型)、格式(检查约束)或可能值的范围(外键约束、检查约束、默认值定义、非空约束)。引用完整性,我们必须在右关联关系的表中,确保一个表的外键的值来源于另一个表中的主键值,其一般通过外键约束来实现。还有就是用户自定义完整性,我们可以定义不属于其他任何完整性分类的特定业务规则,我们在此不做深究。
除了用户自定义完整性外,其余三种我们都可以通过约束来定义,但具体如何实施呢?
第一,创建非空约束。如果我们想在列中不允许接受NULL值,就必须在定义列时加上一个NOT NULL关键词,来定义一个非空约束。
第二,设置主键约束。关系型数据库中的每一个表都必须有一个主键来唯一标识表的每一行,这个主键可以是右一个列组成,也可以由多个列来组成一个复合主键。主键约束是应用于表的列的一个约束,而对于复合主键,我们只需要列出用逗号分隔的参与复合主键的所有列即可。
第三,设置唯一约束。也就是说,给定列的所有值必须是唯一的。
第四,指定默认值。
第五,设置检查约束。
第六,使用自动编号列。