四、数据完整性

简介: 数据完整性是指存储在数据库中的数据应该保持一致性和可靠性。关系模型允许定义四类数据约束,分别是:实体完整性、参照完整性、用户定义完整性约束以及域完整性约束。前两个和最后一个完整性约束由关系数据库系统自动支持。

一、什么是数据完整性

数据完整性是指存储在数据库中的数据应该保持一致性和可靠性。关系模型允许定义四类数据约束,分别是:实体完整性、参照完整性、用户定义完整性约束以及域完整性约束。前两个和最后一个完整性约束由关系数据库系统自动支持。


1.实体完整性

实体是现实世界中的某个对象,在RDBMS中一行数据代表一个实体。实体完整性就是保证每个实体都能被区别。要求每张表都有一个唯一标识符,这个唯一标识符常用的就是主键约束(将某个字段设置为主键),主键字段和不能为空并且不能重复。例如在学生表中学号作为主键,那么我们在插入数据的时候,如果插入的数据的学号和数据表中已存在数据的学号重复的话,将无法插入。对于不是主键字段但是也需要唯一性约束的,我们可以在定义表字段的时候在需要唯一性约束的字段后面加上unique。例如:

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位时就插不进去了。约束方法包括:限制数据类型、检查约束、默认值和非空约束。


目录
相关文章
|
29天前
|
存储 监控 算法
确保大文件上传数据完整性和准确性的方法
【10月更文挑战第17天】通过以上多种方法的综合运用,可以有效地确保大文件上传数据的完整性和准确性,为用户提供可靠的上传体验。同时,随着技术的不断发展,还需要不断地探索和创新,以适应不断变化的需求和挑战。
|
4月前
|
存储 SQL 关系型数据库
数据库事务:确保数据完整性的关键20
【7月更文挑战第20天】事务是数据库操作的基本逻辑单位,确保数据一致性。ACID原则包括:原子性(操作全成或全败),一致性(事务前后数据合法性),隔离性(并发操作互不影响),持久性(提交后更改永久保存)。MySQL的InnoDB引擎支持事务,通过undo log实现回滚,redo log确保数据持久化。开启事务可使用`BEGIN`或`START TRANSACTION`,提交`COMMIT`,回滚`ROLLBACK`。
176 70
|
6月前
|
关系型数据库 数据库 数据安全/隐私保护
关系型数据库的数据完整性保障
【5月更文挑战第9天】关系型数据库的数据完整性保障
142 1
|
3月前
|
数据采集 存储 安全
数据完整性详解
【8月更文挑战第31天】
359 0
|
6月前
|
存储 关系型数据库 数据库
关系型数据库的数据一致性和完整性
【5月更文挑战第1天】关系型数据库的数据一致性和完整性是数据库设计中的两个重要概念,它们共同保证了数据库中数据的准确性和可靠性。
239 2
关系型数据库的数据一致性和完整性
|
6月前
|
数据库 数据库管理
理解数据库的ACID原则:确保数据完整性与一致性的基石
【5月更文挑战第20天】ACID原则是数据库事务处理的核心,包括原子性、一致性、隔离性和持久性。原子性保证事务操作全完成或全不完成,保持数据完整;一致性确保事务前后数据库保持一致性状态,不破坏完整性约束;隔离性防止并发事务相互影响,通过锁等技术实现;持久性则保证事务提交后的修改永久保存,即使系统故障也能恢复。这些原则确保了数据的可靠性和安全性。
|
6月前
|
监控 安全 关系型数据库
关系型数据库数据完整性保障
【5月更文挑战第10天】关系型数据库数据完整性保障
82 4
|
6月前
|
关系型数据库 数据库 数据库管理
关系型数据库数据一致性和完整性
【5月更文挑战第8天】关系型数据库数据一致性和完整性
159 4
|
6月前
|
监控 安全 网络协议
中间件数据传输数据完整性
中间件保障数据完整性,采用加密防止篡改,加校验码检测准确性,启用重传机制应对丢失,记录日志便于追踪,备份数据以防丢失,通过可靠协议如TCP纠错,及定期安全审计与监控,确保系统稳定可靠。综合运用这些策略,可适应不同业务需求,优化数据传输安全性。
75 2
|
6月前
|
SQL 数据采集 数据库
数据完整性和约束
数据完整性和约束