数据库课程设计报告书主要涉及了数据库系统的基本概念、需求分析、数据表设计、关系模式的规范化理论、视图与索引的创建、数据库权限管理以及软件功能设计等多个方面。以下是对这些知识点的详细阐述:
1. **项目背景与编写目的**:
- 项目背景:该设计基于数据库原理课程,旨在设计一个学生信息管理系统。
- 编写目的:通过实践,加深对数据库设计原理的理解,掌握相关工具如PowerBuilder 9.0的使用。
2. **需求分析**:
- 系统应实现学生信息的高效管理,包括学生档案信息、成绩信息的录入、修改、查询和输出,同时支持按不同条件进行统计和报表输出。
3. **数据表设计**:
- 设计了三个核心数据表:`info`(学生基本信息)、`course`(课程信息)和`exam`(考试成绩)。
- `info`表包含学号、姓名、性别、年龄、院系、奖励、家庭信息、健康状况、年级、班级和其他信息。
- `course`表包含课程号、课程名和教师信息。
- `exam`表记录学生的学号、课程号和成绩。
4. **关系模式规范化**:
- 对于`info`表,由于学号和姓名具有唯一性,因此有两个候选键,满足第3范式(BCNF)。
- `course`表的课程号是唯一决定因素,符合BCNF。
- `exam`表的学号和课程号构成两个候选键,也满足BCNF。
5. **视图与索引**:
- 创建视图`temp`,将学生、课程和成绩关联,方便查询。
- 创建唯一索引`STUSNO`在`info`表的学号字段上,提高查询速度。
- 公共用户被授予对`exam`表的查询权限。
6. **软件功能设计**:
- 包括系统维护(含系统退出)、信息录入(学生基本信息和成绩)、信息查询(学生基本信息和成绩查询,后者带星号表示为重点)、报表功能(按年级和班级输出成绩报表)。
7. **程序代码示例**:
- 启动封面的Open事件代码涉及到数据库连接配置,如数据库管理系统(DBMS)、数据库名、用户名、密码等。
通过这个课程设计,学生能够全面理解和应用数据库系统的核心概念,包括数据建模、规范化理论、数据库安全性和性能优化。这为未来实际的数据库开发工作打下了坚实的基础。