数据库数据完整性(Data Integrity)是指数据库中数据的正确性、一致性和有效性,确保数据在存储、更新和删除过程中遵循预定义的规则和约束,防止出现错误或无效的数据。它是数据库设计的核心目标之一,用于保障数据的可靠性和业务逻辑的正确性。
@符号)。数据库通常通过约束(Constraints)、规则或触发器来实现数据完整性,主要分为以下四类:
确保数据库中每一行数据(记录)是唯一的,且能唯一标识该实体。
确保表之间的关联关系有效,防止出现“孤立数据”(即子表中引用了父表不存在的记录)。
NULL(若允许)。ON DELETE CASCADE:删除父表记录时,自动删除子表中关联的记录;ON UPDATE CASCADE:更新父表主键时,自动更新子表外键)。确保表中字段的值符合预定义的规则(如数据类型、范围、格式等)。
INT(整数)、VARCHAR(50)(最长50的字符串)、DATE(日期)等,限制字段存储的数据类型。年龄 INT CHECK (年龄 >= 0 AND 年龄 <= 120);性别 CHAR(1) CHECK (性别 IN ('男', '女')))。注册时间 DATETIME DEFAULT CURRENT_TIMESTAMP)。针对特定业务规则的完整性约束,是上述三类完整性无法覆盖的业务逻辑要求。
以“学生表”和“成绩表”为例:
-- 学生表(父表)
CREATE TABLE 学生 (
学号 INT PRIMARY KEY, -- 实体完整性:主键唯一非空
姓名 VARCHAR(20) NOT NULL, -- 域完整性:非空
年龄 INT CHECK (年龄 >= 10 AND 年龄 <= 30), -- 域完整性:检查约束
邮箱 VARCHAR(50) UNIQUE -- 域完整性:唯一约束(允许为空)
);
-- 成绩表(子表)
CREATE TABLE 成绩 (
成绩ID INT PRIMARY KEY,
学号 INT,
课程名 VARCHAR(30) NOT NULL,
分数 INT CHECK (分数 >= 0 AND 分数 <= 100),
-- 参照完整性:外键引用学生表的主键
FOREIGN KEY (学号) REFERENCES 学生(学号) ON DELETE CASCADE
);
总结:数据完整性是数据库可靠性的基石,通过实体、参照、域和用户定义四类完整性,结合约束、触发器等机制,确保数据始终符合预期规则。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。