【数据库原理】实体完整性

实体完整性

定义

实体完整性是数据库完整性的重要组成部分,用于保证数据库表中每一行(即每个实体)是唯一可辨识的,不能出现重复或不明确的记录。实体完整性通过主键约束(Primary Key Constraint)实现。

 

核心要求

    1.    唯一性(Uniqueness): 表中的每一行记录必须有唯一标识的主键值,不能重复。

    2.    非空性(Non-Null): 主键值不能为空。

 

主键(Primary Key)

主键是表中的一列或多列,用于唯一标识表中的每一行。主键是实体完整性的核心。

 

主键的特点:

    •    主键列中的值必须唯一。

    •    主键列中的值不能为 NULL。

    •    每个表只能有一个主键。

 

实体完整性的重要性

    1.    确保数据库中记录的唯一性和准确性。

    2.    防止重复记录或无效记录的插入。

    3.    提供关联性:主键通常被其他表引用,形成外键关系。

 

实现实体完整性

实体完整性通常通过主键约束来实现。

SQL语法:

CREATE TABLE Students (

    StudentID INT PRIMARY KEY,  -- 定义主键

    Name VARCHAR(50),

    Age INT

);

    •    StudentID 列是主键,确保每个学生的编号是唯一且非空的。

 

实体完整性检查

    1.    插入操作:

    •    当插入数据时,系统会检查主键值是否重复或是否为空。

    •    如果违反主键约束,系统会拒绝插入。

示例:

INSERT INTO Students VALUES (1, '张三', 20);  -- 成功

INSERT INTO Students VALUES (1, '李四', 21);  -- 失败:主键重复

INSERT INTO Students VALUES (NULL, '王五', 22);  -- 失败:主键为 NULL

 

    2.    更新操作:

    •    修改主键值时,系统会检查新值是否满足唯一性和非空性要求。

主键的多列实现

在某些情况下,主键可能由多列组成。这种情况下,称为复合主键。

示例:班级学生表

CREATE TABLE ClassStudents (

    ClassID INT,

    StudentID INT,

    PRIMARY KEY (ClassID, StudentID)  -- 复合主键

);

    •    每个班级的学生编号是唯一的,但不同班级中可能有相同的学生编号。

 

实体完整性的违约处理

    1.    违约情形:

    •    插入或更新数据时主键值重复。

    •    插入或更新数据时主键值为 NULL。

    2.    违约处理:

    •    数据库管理系统(DBMS)会拒绝执行违规操作,并抛出错误提示。

实例分析

学生管理系统:

    •    学生表中,每个学生的学号(StudentID)是主键,满足实体完整性。

    •    示例数据:

| StudentID | Name  | Age |

|—————|———–|———|

| 1             | 张三       | 20      |

| 2             | 李四       | 21      |

    •    违约操作:

INSERT INTO Students VALUES (1, '王五', 23);  -- 失败:主键重复

 

总结

实体完整性是数据库完整性的基础,它通过主键约束确保表中每一行数据的唯一性和有效性。理解实体完整性及其实现方式是学习数据库的关键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值