1.9 KiB
1.9 KiB
数据库完整性
数据库完整性是指数据的正确性和相容性。
完整性约束 实体完整性 参照完整性 用户定义的完整性
实体完整性
若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。所谓空值就是“不知道” “不存在” 或者“无意义”的值。
关系模型的实体完整性在 create table 中用primary key定义。
实体完整性检查和违约处理
(1)检查主码值是否唯一,如果不唯一则拒绝插入和修改
(2)检查主码的各个属性是否为空,只要有一个为空就拒绝插入和修改。
参照完整性
设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码,并称基本关系R为参照系,基本关系S为被参照系。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中的每个元组在F上的值必须
或者取空值
或者等于S中某个原则的主码值
参照完整性检查和违约处理
1 拒绝执行(一般设置为默认策略)
2 级联(cascade)操作
3 设置为空值
用户定义完整性
用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
在create table 中定义属性的同时,可以根据应用要求定义属性上的约束条件,即属性值限制,包括: 列值非空(not null),列值唯一(unique),用check短语指定列值应该满足的条件。
完整性约束命名子句
constraint 完整性约束条件名 完整性约束条件
要求 用check短语写约束条件 和外键约束必须掌握
定义触发器
练习 第四上机内容。文件在群里。