OpenGauss实验:创建表并实现完整性约束-查找借书情况

需积分: 0 0 下载量 137 浏览量 更新于2024-08-05 收藏 457KB PDF 举报
在同济大学数据库系统原理实验报告中,学生庄镇华针对openGauss数据库环境进行了一次上机实验。本次实验的主要任务围绕三个关键部分展开: 1. 表结构设计与完整性约束: 实验的第一步是创建三个相关的表,分别是`Card`, `Books`, 和 `Borrow`。`Card`表用于存储读者信息,包括卡号(eno)、姓名(name)和班级(class)。`Books`表存储书籍信息,包含书号(bno)、书名(bname)、作者(author)、单价(price)以及库存册数(quantity)。`Borrow`表则记录了借阅行为,包括卡号、书号以及还书日期(rdate)。 在创建表的过程中,庄镇华特别强调了完整性约束的设置。对于`Borrow`表,他添加了主码完整性约束(borrow_pk),确保每条记录都有唯一的卡号和书号组合。同时,他还添加了引用完整性约束(borrow_fk_eno 和 borrow_fk_bno),分别确保eno引用了`Card`表中的eno,bno引用了`Books`表中的bno,从而维护数据的一致性。 2. 数据操作与查询: - 借书超过5本的读者查询:这个任务要求找出那些借阅图书超过5本的读者,输出他们的卡号和所借图书的数量。这涉及到了`Borrow`表的关联查询和聚合函数,可能需要使用SQL的GROUP BY和HAVING子句来实现。 - 查询特定书籍:实验还涉及到查找借阅了名为“随便什么”(这里可能是文本错误或虚构的书名)的书籍的情况。为了完成这个查询,学生需要编写SQL语句来匹配`Books`表中的书名字段。 3. 实验环境与截图: 实验是在VMware虚拟机上的Red Hat 5系统环境下,使用Oracle数据库技术进行的。报告包含了实验的具体步骤和结果截图,但这些截图未在提供的部分内容中展示。 通过这次实验,学生不仅锻炼了数据库设计和SQL查询的能力,也加深了对主码和引用完整性约束的理解。实际操作中,他们可能需要编写复杂的SQL语句来满足实验要求,同时理解如何优化查询性能并确保数据的一致性和准确性。