数据库系统原理:第6章-数据安全与完整性保障

需积分: 15 14 下载量 113 浏览量 更新于2024-07-15 收藏 1.12MB PPTX 举报
本资源是关于数据库系统原理课程的第6章——数据库安全与保护部分,主要讲解了数据库完整性约束的相关概念和实现方法。章节内容分为三个部分: 1. **列级约束**:这部分介绍了不同类型的数据约束,包括对数据类型、格式、取值范围或集合以及空值的控制。例如,列被要求必须符合特定的数据类型,如VARCHAR(20)限制了字符串的最大长度,不允许NULL值作为主键的一部分等。 2. **实体完整性**: - **主键约束**:强调一个表只能有一个主键,主键的值必须唯一标识表中的每一行,并且不能为NULL。创建主键的SQL语句示例如下: - 单字段主键:`CREATE TABLE IF NOT EXISTS VIPuser1 (id INT PRIMARY KEY, username VARCHAR(20))` - 复合主键:`CREATE TABLE IF NOT EXISTS VIPuser2 (id INT, username VARCHAR(20), card CHAR(18), PRIMARY KEY (id,card))` - **候选键约束**:虽然只能有一个主键,但可以有多个候选键,它们的区别在于主键会自动创建primarykey索引,而候选键创建unique索引。例如,`CREATE TABLE IF NOT EXISTS VIPuser9 (id TINYINT UNSIGNED KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL UNIQUE, card CHAR(18) UNIQUE)`。 3. **参照完整性**:这是确保数据一致性的重要部分,通过`FOREIGN KEY`关键字实现。它规定了引用关系,比如外键引用主键,设置了`ON DELETE`行为,如`restrict`防止删除引用记录,`cascade`让关联记录自动删除,或者`setnull`设置外键为NULL。 通过学习这些内容,学生可以理解如何在设计数据库表结构时实施有效的完整性约束,以确保数据的一致性和准确性,从而提高数据库系统的可靠性和安全性。同时,理解并掌握SQL语句的使用对于实际操作数据库管理系统至关重要。