![preview](https://dl-preview.csdnimg.cn/86278441/0001-42141abcc7b508f8d72633d04f09d76c_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
《SQL 数据完整性在数据库系统中的实践》 SQL 数据完整性是数据库管理中至关重要的概念,它确保了数据库中的数据准确、一致且有效。本实验以数据库系统原理为基础,通过 SQL 语句实现数据完整性控制,包括实体完整性、参照完整性和校验完整性,并利用触发器和断言进一步增强数据保护。 首先,实体完整性由主键(primary key)维护,确保每个表的每一行都有唯一的标识。在实验中,我们创建了三个表:book、card 和 borrow,分别代表图书、读者卡和借阅记录。book 表的主键是 bno,card 表的主键是 cno,borrow 表的外键 bno 和 cno 分别引用 book 和 card 的主键,以此确保数据的唯一性。当我们尝试插入主键已存在的数据时,SQL 会抛出错误,防止数据冗余。 其次,参照完整性由外键(foreign key)和其关联的 on delete 和 on update 子句控制。在 borrow 表中,bno 和 cno 是外键,与 book 和 card 表的主键关联。当尝试删除被引用的主键数据时,on delete cascade 会自动删除所有关联的外键数据,如实验所示。同样,更新主键时,on update cascade 会同步更新所有关联的外键,保持数据的一致性。 此外,虽然 MySQL 不直接支持 check 子句,但可以通过 enum 类型模拟校验完整性。在 card 表中,type 字段用 enum 代替 check 来限制可选值。当尝试插入非法类型时,MySQL 会拒绝操作,确保数据符合预设规则。 实验还涉及了断言(assertion)和触发器(trigger)。断言是一种全局性的完整性约束,用于定义更复杂的业务规则。例如,定义一个触发器来防止同一借书证同时借阅超过三本书,这样当尝试违反此规则时,触发器会阻止插入新的借阅记录,从而维护了业务逻辑的正确性。 总的来说,SQL 数据完整性控制是数据库设计的核心,它通过主键、外键、check 子句、断言和触发器等手段确保数据的准确性和一致性。在实际应用中,理解并熟练掌握这些工具,能有效地防止数据错误,提高数据库系统的可靠性和安全性。通过本次实验,学生刘轩铭对 SQL 数据完整性的理解和运用有了更深入的认识,为今后的软件工程实践打下了坚实的基础。
![](https://csdnimg.cn/release/download_crawler_static/86278441/bg1.jpg)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![avatar](https://profile-avatar.csdnimg.cn/21ae62be29bc4890a6eec52865498801_weixin_35825858.jpg!1)
- 粉丝: 33
- 资源: 302
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0