一、概述
1.1 课程设计的目的
《数据库原理及应用》课程设计是计算机专业的重要实践性教学环节,是《数据库原理及应用》课程的后续辅助教学课程。通过该课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。具体掌握的基本能力有以下几个方面:
- 学习和巩固《数据库原理及应用》的基本知识。
- 关系数据库管理系统的基本使用方法。
- 熟悉SQL语言的主要功能及SQL语句的使用操作。
- 熟悉数据库管理系统的设计过程,培养解决实际问题的能力。
- 小型数据库应用系统的设计方法。
1.2 课程设计的内容
1、课程设计内容:
(1)主要的数据表
学生基本情况数据表,学生成绩数据表,课程表等等。
(2)主要功能模块
- 实现学生基本情况的录入、修改、删除等基本操作。
- 对学生基本信息提供灵活的查询方式。
- 完成一个班级的学期选课功能。
- 实现学生成绩的录入、修改、删除等基本操作。
- 能方便的对学生的各学期成绩进行查询。
- 具有成绩统计、排名等功能。
- 具有留级、休学等特殊情况的处理功能。
- 具有数据备份和数据恢复功能。
2、系统要求:
(1)学生成绩表的设计,要考虑到不同年级的教学计划的变化情况。
(2)对于新生班级,应该首先进行基本情况录入、选课、然后才能进行成绩录入。
1.3 课程设计的要求
1、根据该题查找一系列资料及调研,写出数据库系统的需求分析报告;
2、根据需求分析,设计系统的功能结构,画出系统的功能结构图,设计的功能要全面、正确,能解决现实世界各类用户的实际需要;
3、根据需求分析,确定所设计的系统涉及到的实体、各实体的属性以及各实体之间的联系,用E-R图完成系统的概念模型设计,设计的概念模型要能全面、真实的反应现实世界,能满足系统功能的需要;
4、根据E-R图转换为DBMS支持的关系模型,作出数据库系统的逻辑模型:
1)数据库的关系模式(使用关系模型规范化理论进行优化,要求各关系至少达到3NF);
2)确定各关系属性的域;
3)确定各关系的主码、必要的约束、关系之间的参照完整性等。
5、适当的选择设计各类用户的子模式;
6、根据逻辑模型、系统环境和用户需求,设计数据库的物理结构。
7、使用PB、VFP、VB、VC、VB.NET、C#、Java、DELPHI、ASP、JSP、PHP或ASP.NET等程序设计语言,进行相应前台主要模块和菜单的设计,采用B/S或C/S模式,数据库作为后台服务器。
8、设计一组数据库表的测试实例,对各项功能进行简单的测试并写出测试结果。
二、需求分析
2.1 系统需求
根据提供的信息,可以得出以下需求分析:
1. 数据表设计:
a. 学生基本情况数据表:包含学生的基本信息,如学号、姓名、性别、出生日期、所属院系、专业、年级、联系方式等。
b. 课程表:记录每个班级的教学计划,包含课程名称、课程号、任课教师等。
c. 学生选课表:记录每个学生的选课信息,包含学生的学号,课程名,课程号,成绩等。
2. 功能模块:
a. 学生基本信息管理:
- 录入学生基本信息:能够录入学生的基本信息,并为每个学生分配一个唯一的学号。
- 修改学生基本信息:允许对已录入的学生基本信息进行修改,如姓名、联系方式等。
- 删除学生基本信息:能够删除不需要记录的学生基本信息,如学生毕业或转学等情况。
b. 学生信息查询:
- 灵活的查询方式:提供灵活的查询功能,可以按学号、姓名、年级等条件进行查询学生基本信息。
c. 班级选课管理:
- 学期选课功能:实现学生在每个学期的选课,根据教学计划进行选课操作。
d. 学生成绩管理:
- 录入学生成绩:能够录入学生的成绩信息,包括学号、课程名称、成绩等。
- 修改学生成绩:允许对已录入的学生成绩进行修改,如重新计算或更正错误成绩。
- 删除学生成绩:能够删除不需要记录的学生成绩,如数据错误或成绩无效等情况。
e. 学生成绩查询与统计:
- 学期成绩查询:能够方便地查询学生的各学期成绩,按学号或姓名等条件进行查询。
- 成绩统计与排名:具备成绩统计功能,可以计算学生在每个学期的总分、平均分,并按照成绩进行排名。
f. 特殊情况处理:
- 留级、休学处理:能够处理学生留级和休学等特殊情况,包括更新学生年级、选课状态等信息。
g. 数据备份与恢复:
- 数据备份功能:提供数据备份功能,可以定期备份系统数据以防止数据丢失。
- 数据恢复功能:能够从备份中恢复数据,以便在需要时恢复系统到之前的状态。
2.2 数据字典
1、学生基本情况数据表(student表):
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
允许空 |
默认值 |
字段说明 |
1 |
student_id |