第五章数据库完整性数据库的完整性:指数据的正确性和相容性完整性和安全性的区别:完整性:为了防止数据库中存在不符合语义的数据安全性:,由于主码唯一标识一个元组,使得该字段组的值不会重复,因而整个元组不会重复。一般地,创建一张表时,会要求指定主码,从而保证实体完整性设置主码的SQL语句Createtablestudent(snochar(9),Snamechar(10),ssexchar(2),ssdeptchar(10),Primarykey(sno))主码一旦设置后,不能更改,除非删除表建立course表的主码建立sc表的主码实体完整性违约处理两个检查唯一性检查:是否存在重复空值检查:主属性是否为空检查方法:B+:定义sc表的参照完整性CREATETABLESC(SnoCHAR(9)oCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(o),FOREIGNKEY(Sno)REFERENCESStudent(Sno),o)o));,其sno不属于student修改sc表中的一个sno值,其值不属于student从student表中删除一个sno,使sc表无法找到参照对象在student表中修改一个sno,使sc表无法找到参照对象违约的处理处理策略的设置默认情况下,设置为”拒绝”可以显式地设置处理策略CREATETABLESC(SnoCHAR(9),CnoCHAR(4),GradeSMALLINT,PRIMARYKEY(o),FOREIGNKEY(Sno)REFERENCESStudent(Sno) ONDELETECASCADEONUPDATECASCADE,o)o) ONDELETENOACTION ONUPDATECASCADE );(snochar(9)ochar(9)notnull,gradesmallint)注:若该字段设置了主码,则不能取空值若设置为unique,则可以取一次null
数据库完整性 数据库系统概论课件 来自淘豆网m.daumloan.com转载请标明出处.