资源下载地址:https://download.csdn.net/download/sheziqiong/85637590
数据库设计与应用开发
数据库设计
1.需求分析
本次实验面向选课系统进行设计,分别有院系、教师、学生、课程四个对象,每个对象都有一个ID,作为唯一标识(主关键字);一个名称,便于用户的使用。除此之外,每个学生、课程都有所属院系,用来限制其(被)选课的范围。
上述中ID为INT类型,名称为TEXT类型。
数据给出输入后,将会将其转换为对应的格式,并在不符合对应格式的要求时报错。
2.概念数据库设计
设计的ER图如下:
3.逻辑数据库设计
对于学生属于院系,将院系号并入学生的关系中。
对于课程属于院系,将院系号并入课程的关系中。
![](/qrcode.jpg)
对于教师开设课程,将教工号并入课程的关系中。
对于学生选择课程,新建关系记录对应的学号和课号。
综上所述,得到以下五个关系:
关系名 | 关系实例 |
---|---|
院系(COLLEGE) | [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ppDp9ZJN-1655179584851)(image/1.png)] |
教师(TEACHER) | [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EGypdkWt-1655179584852)(image/2.png)] |
学生(STUDENT) | [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VeDUeBGJ-1655179584852)(image/3.png)] |
课程(COURSE) | [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KEo17HLN-1655179584852)(image/4.png)] |
选课单(SCHEDULE) | [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hKU3FpJA-1655179584853)(image/5.png)] |
4.物理数据库设计
除课单外,其他关系的主键均为ID。
学生关系中,所属院系为对应院系关系的外键。
课程关系中,所属院系为对应院系关系的外键。
课单关系中,选课学生为对应学生关系的外键,被选课程为对应课程关系的外键。
5.数据库建立
所用DBMS为SQLite。
所用数据库可见data/data.db。
5.1 概念模式
各关系的逻辑结构和特征如下所示:
5.2 外模式
提供三种外模式。
- 管理员模式:可以向COLLEGE中添加新的院系、教师和学生。
- 教师模式:可以向COURSE中添加新的课程,由于添加课程需要院系的信息(新课程的所属院系需已经存在),故为此创建视图,定义为”CREATE VIEW college_info AS SELECT id, name FROM college”。
- 学生模式:可以从COURSE中选择课程,由于选课需要课程的信息,故为此创建视图,定义为”CREATE VIEW course_info AS SELECT id, name, college_id FROM course”。
数据库应用开发
数据库开发采用Python的sqlite3包。
前端开发采用Python的PyQt包。
具体代码见src文件夹。
实验结果
1.主界面
各功能如图所示。
2.添加院系
在输入合法的院系名和院系号后,会向数据库添加该条对象,并提示添加成功。
若输入不合法,则会提示相应的错误信息。
以下各操作与之类似,不再赘述。
3.添加教师
4.添加学生
5.新增课程
6.选课
资源下载地址:https://download.csdn.net/download/sheziqiong/85637590