数据完整性是指存储在数据库中的数据应该保持一致性和可靠性。关系模型允许定义四类数据约束,分别是:实体完整性、参照完整性、用户定义完整性约束以及域完整性约束。前两个和最后一个完整性约束由关系数据库系统自动支持。
create table person(
id int not null auto_increment primary key comment '主键',
name varchar(30) comment '姓名',
id_number varchar(18) unique comment '身份编号'
);
常用的约束方法包括:唯一性约束、主键约束和标识列。 2. 参照完整性 主要是表与表之间的关系,可以通过外键foregin key来实现。要求关系中不允许引用不存在实体。例如我们有学生表和成绩表,学生表的主键学号字段为成绩表的外键,那么如果我们在成绩表里插入数据的学号在学成表里不存在将无法插入。定义外键的方法如下::
#学生表
create table student(
stu__no int not null primary key comment '学号',
stu_name varchar(30) comment '姓名'
);
#成绩表
create table sc(
id int not null auto_increment primary key comment '主键',
stu_no int not null comment '学号',
course varchar(30) commenr '课程',
grade int comment '成绩',
foreign key(stu_no) references stu(stu_no) #定义外键字段
)
约束方法为:外键约束。 3. 用户定义完整性 需要借助存储过程和触发器实现。主要针对某一具体关系数据库的约束条件,反映莫伊具体应用所涉及的数据必须满足语义要求。例如学生表中出生日期不能为1990年以前的日期,当我们插入的数据的出生日期为1990年以前的日期时将无法插入。约束方法为:规则、存储过程和触发器。 4. 域完整性约束 域完整性主要是对列的输入有要求,通过限制列的数据类型、格式或值的范围来实现。是针对某一具体关系数据库的约束条件,它保证表中的某些列不能输入无效值。 例如在学生表中,学号字段定义长度为9位,当插入数据的学号不是9位时就插不进去了。约束方法包括:限制数据类型、检查约束、默认值和非空约束。