SQL数据完整性实验:主键与外键控制

需积分: 0 0 下载量 190 浏览量 更新于2024-08-05 收藏 331KB PDF 举报
在本篇数据库系统 Lab 031 实验报告中,学生刘轩铭(软件工程专业,学号3180106071)于2020年4月2日在指导老师周波的指导下进行了关于 SQL 数据完整性的实验。实验的主要目的是让学生熟悉通过 SQL 实现数据完整性控制的各种方法,包括实体完整性、参照完整性、校验完整性以及触发器在维护数据一致性中的作用。 实验内容涵盖了以下几个关键部分: 1. **数据完整性控制**:实验首先介绍了通过 SQL 定义数据完整性的重要性,包括 primary key (主键)、foreign key (外键) 和 check constraints (校验约束)。这些概念确保了数据的一致性和可靠性。 2. **实体完整性**:通过在 Library 数据库中插入记录,学生实践了 primary key 对于表中唯一标识每个实体的作用。主键 bno 在 book 表中是不可重复的,确保了书的唯一性。 3. **参照完整性**:实验通过删除 card 表中的引用了 book 表的记录,展示了 foreign key 的 ondelete 子句在处理删除引用记录时的行为,例如设置为 CASCADE 可以自动删除相关联的 book 记录。 4. **更新完整性**:学生还学习了 onupdate 子句,当 card 表中的 primary key 发生变化时,它如何确保引用的 book 表数据的一致性。 5. **校验完整性**:通过修改或插入表中的数据,检查 check constraint 的有效性,确保数据满足预设的条件,比如价格不能为负数。 6. **数据断言与触发器**:定义 assertion (断言) 和 trigger (触发器) 来监控数据的变化,断言用于静态验证,而触发器则在数据操作后自动执行某些操作,如更新其他表的相关记录。 7. **实验平台**:实验在 Windows 操作系统环境下,使用 MySQL 数据库管理系统进行。 在整个实验过程中,学生不仅掌握了 SQL 的基本操作,还深入理解了数据完整性控制在实际应用中的重要性,提升了他们在软件工程领域中的实践能力。通过编写实验报告,学生将理论知识与实践经验相结合,对数据库系统原理有了更深的理解。