北大自考数据库系统原理上机试题及解答

4星 · 超过85%的资源 需积分: 9 85 下载量 160 浏览量 更新于2024-08-01 4 收藏 104KB DOC 举报
"这份资源是关于北京大学自学考试数据库系统原理的上机考试题目,包含了数据库设计、数据录入、数据修改和查询编程四个部分。" 这篇资料主要涉及数据库管理系统的基础知识,特别是针对关系数据库的设计、操作和查询。以下是详细的知识点解析: 1. **数据库设计**: - **E-R模型**:题目中提到了学生-课程的关系是M:N联系,即多对多关系,这通常需要通过创建一个关联表(如选修表)来实现。 - **表结构设计**:要求根据语义和查询需求定义字段名字、数据类型和长度,这涉及到数据库规范化设计,如1NF(第一范式),确保每个字段都是原子性的。 - **索引建立**:索引可以加速查询速度,根据题目需要,可能需要在特定字段上创建索引。 2. **数据录入**: - **数据录入方法**:这里需要向各表录入适量数据,确保数据的有效性和合理性,以符合查询要求。这涉及到对数据库操作的基本熟练度,包括INSERT语句的使用。 3. **数据修改程序**: - **记录定位**:通过学号和课号定位选修表中的记录,这需要使用到数据库的查找功能,如 SEEK 或者 SQL 的 WHERE 子句。 - **记录修改**:允许用户修改成绩,但不允许修改其他字段,这需要在程序逻辑中进行控制,确保数据安全。 4. **查询编程**: - **查询编写**:题目要求使用FoxPro语言或SQL语言进行编程,以下是四道查询题的解析: - **查询1**:列出所有学生信息,并计算女生的平均年龄。这需要使用到SELECT语句,以及GROUP BY和HAVING子句,以及可能的CASE语句来区分性别。 - **查询2**:按学分分组,统计每类学分的课程数量,并计算总课程数。这需要用到GROUP BY和COUNT函数。 - **查询3**:检索选修课号为C2的学生的姓名、课程名和成绩,按成绩降序排序。使用SELECT和ORDER BY语句。 - **查询4**:找出与指定学生ZANG同龄的其他学生信息。这需要使用到JOIN操作和年龄比较。 这些题目覆盖了数据库系统基础的多个方面,包括数据库设计、数据操作和SQL查询,对于备考北大自考数据库系统原理的考生来说,是很好的练习材料。通过解决这些问题,考生能够深入理解数据库的工作原理,提高实际操作能力。