1 / 15
文档名称:

chap5数据库完整性.ppt

格式:ppt   大小:219KB   页数:15页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

chap5数据库完整性.ppt

上传人:JZZQ12 2019/10/10 文件大小:219 KB

下载得到文件列表

chap5数据库完整性.ppt

相关文档

文档介绍

文档介绍:Lecture5数据库完整性邯郸学院计算机张延军ZhangYan-puter,HandanCollege前言数据的完整性和安全性是两个不同概念。:防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。防范对象:不合语义的、不正确的数据。:保护数据库防止恶意的破坏和非法的存取防范对象:非法用户和非法操作为维护数据库的完整性,DBMS必须:*:CREATETABLE中用PRIMARYKEY定义。插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:,,只要有一个为空就拒绝插入或修改。。参照完整性检查和违约处理:被参照表(例如Student)参照表(例如SC)违约处理可能破坏参照完整性插入元组拒绝可能破坏参照完整性修改外码值拒绝删除元组可能破坏参照完整性拒绝/级连删除/设置为空值修改主码值可能破坏参照完整性拒绝/级连修改/(NOACTION)执行:默认策略。(CASCADE)(SETNULL)对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值。(NOTNULL)(UNIQUE)(CHECK)插入元组或修改属性的值时,RDBMS检查属性上的约束条件是否被满足,如果不满足则操作被拒绝执行。在CREATETABLE时可以用CHECK短语定义元组上的约束条件,即元组级的限制同属性值限制相比,元组级的限制可以设置不同属性之间的取值的相互约束条件CHECK(Ssex='女'ORSnameNOTLIKE'Ms.%')Oracle的约束(Constraint)Oracle的约束(Constraint)约束来防止无效数据输入到表中。约束一般在创建表的同时被创建,表创建后也可通过Alter语句来添加约束,约束也可被允许和禁用。约束的作用:多个表之间的具体关系,比如两个表之间的主外键关系。表在插入、更新行或者删除行的时候强制表中的数据遵循约束规则。对于成功的操作,约束条件是必须被满足的。如果表之间有依赖关系,使用约束可以防止表或表中相关数据的删除。Oracle中的约束类型:NotNull指定列不能包含空值Unique指定列的值或者列的组合的值对于表中所有的行必须是唯一的PrimaryKey表的每行的唯一性标识ForeignKey在列和引用表的一个列建立并且强制的列之间关系Check指定一个必须为真的条件Oracle的约束(Constraint)约束命名原则:所有的约束定义存储在数据字典中。如果给约束一个有意义的名字,约束易于维护,约束命名必须遵守标准的对象命名规则。如果没有给约束命名,产生一个名字,这里n是一个唯一的整数,来保证名称的唯一性。建议至少应该给表的主、外键按照命名原则来命名,如可以采用这样的原则来命名,表名_字段名_约束类型。约束可以在两个级别上定义,表级约束与列级约束。表级约束指对于约束涉及一个或多个列,一般来说在所有列定义之后,定义表级约束。列级约束只涉及单独一列,能够定义完整性约束的任何类型。除了NOTNULL之外,能够定义完整性约束的任何类型。,而不可以指定为表级约束。:唯一性约束条件确保所在的字段或者字段组合不出现重复值唯一性约束条件的字段允许出现空值Oracle将为唯一性约束条件创建对应的唯一性索引Oracle的约束(Constraint):(实体完整性)主键从功能上看相当于非空(NotNull)且唯一(Unique)。一个表中只允许一个主键。主键是表中能够唯一确定一个行数据的字段。主键字段可以是单字段或者是多字段的组合。Oracle为主键创建对应的唯一性索引。:(参照完整性)外键确保了相关的两个字段的两个关系:子表外键列的值必须在主表参照列值的范围内,或者为空外键参照的是主表的主键或者唯一键。主表外键值被子表参照时,主表记录不允许被删除。ONDELETECASCADE指出当父表中的行被删除时,子表中相依赖的行也将