第4讲 实现数据完整性
- 格式:ppt
- 大小:525.50 KB
- 文档页数:49
数据库中数据完整性的保证与维护数据完整性是指数据库中的数据符合事先定义的一系列约束和规则,能够满足应用程序或用户的需求,并且在数据的创建、更新和删除过程中能够保持数据的正确性和一致性。
为了保证数据的完整性,数据库中需要采取一系列措施来进行数据的验证、限制和修复。
首先,数据库必须定义一组严格的约束规则,包括实体完整性、域完整性、参照完整性和用户自定义完整性。
实体完整性定义了每一行数据都必须有主键,保证了每一行数据的唯一性。
域完整性规定了每个字段的数据类型、长度和取值范围,确保了数据的有效性。
参照完整性要求任何外键值必须是源表中的主键值,保证了数据之间的一致性。
用户自定义完整性允许用户根据具体需求定义自己的约束规则。
这些约束规则可以通过数据库管理系统来创建和维护,以保证数据的完整性。
其次,数据库应用程序需要实施一系列的数据验证机制,如输入数据合法性验证和业务逻辑验证。
输入数据合法性验证要求用户输入数据符合字段的数据类型和格式要求,防止非法数据进入数据库。
业务逻辑验证是根据具体业务规则对数据进行验证,确保数据的正确性和一致性。
此外,数据验证还可以利用触发器、约束和存储过程等数据库功能来完成,这样可以确保在数据操作过程中对数据进行预定义的检查和约束,提高数据完整性的保证。
另外,数据库还需要采取一些措施来防止数据的非法修改或删除,以保持数据的完整性。
首先,可以采用权限管理和访问控制来限制用户对数据的操作权限,只有经过授权的用户才能对数据进行修改和删除。
其次,数据库可以记录数据的修改日志,以便在需要时进行审计和验证数据的完整性。
此外,还可以定期备份和恢复数据库,以防止数据的不可逆性损坏和丢失。
维护数据完整性还包括数据的清洗和修复。
数据清洗是针对已存在的数据进行的操作,用于修复或删除数据库中的脏数据、重复数据和无效数据等。
数据清洗可通过数据清理工具、脚本和人工干预来完成。
修复数据的有效性可以借助数据库的批处理操作、触发器和存储过程等功能来实现。
数据完整性数据完整性1.什么是数据完整性?存储在数据库中的数据能够正确的反映实际情况,规定数据的输⼊数据不能是⽆效值,错误值和乱码等。
2.数据完整性的类型(1)实体完整性:标识符或主键的完整性,使其值唯⼀(2)域完整性:限制类型,格式和取值范围(3)引⽤完整性:保持原表和引⽤表数据⼀致性(4)⽤户⾃定义完整性:根据⽤户的要求⾃定义业务规则3.数据完整性的实现⽅式实体完整性:主键约束、唯⼀的约束域完整性:检查约束、默认值约束、外键约束引⽤完整性:外键约束⽤户⾃定义完整性:以上所有约束⾃由组合4.什么是约束?通过创建表来限制属性或表中数据的完整性,也可以通过修改语句修改约束条件。
约束⼜分为⾏级约束和表级约束,⾏级约束和表级约束本质上是⼀样的,只是约束范围不同。
⾮空约束、主键约束⼀般为⾏级约束,外键约束(联合主键)是表级约束;检查约束(check)随意⼆、⾮空约束确保当前约束的属性不为空置,⾏级约束⾮空约束的关键字: not null三、唯⼀约束指定某⼀列或某⼏列的数据不能重复唯⼀约束关键字:unique可以通过constaint给约束取名,⽅便根据名称删除约束;同时设定⾮空和唯⼀默认为主键创建复合唯⼀约束(表级约束)对多个列进⾏唯⼀约束,约束两个以上的字段(属性)不能同时⼀致。
constraint uni_tno_tname unqiue(t_no,t_name)这⾥教师编号与教师名称可以允许其中⼀个是相同的,但不能同时相同。
四、主键约束⾮空约束+唯⼀约束,且每个表只能有⼀个主键约束(表级),在多列联合的主键约束时,联合主键的值不能重复。
主键约束关键字:primaty key。
如果数据表的属性列中存在重复或者null值,就⽆法以此属性为主键1.在创建表时设置主键约束设置单列主键s_no int primaty key,设置多个属性为联合主键constraint pri_tno_tname primary key(t_no,t_name)2.添加主键约束alter table teacher add constraint pri_tno_tnameprimaty key(t_no);3.删除主键约束alter table teacher drop primary key;4.⾃增列在插⼊数据时,如果不规定属性的值,其值就会根据上⼀个属性的值⾃动加1。