# 数据库设计与应用开发
## 数据库设计
1.需求分析
本次实验面向选课系统进行设计,分别有院系、教师、学生、课程四个对象,每个对象都有一个ID,作为唯一标识(主关键字);一个名称,便于用户的使用。除此之外,每个学生、课程都有所属院系,用来限制其(被)选课的范围。
上述中ID为INT类型,名称为TEXT类型。
数据给出输入后,将会将其转换为对应的格式,并在不符合对应格式的要求时报错。
2.概念数据库设计
设计的ER图如下:
![](https://www.writebug.com/myres/static/uploads/2022/6/13/01d51904197608e994df4e3e6751698e.writebug)
3.逻辑数据库设计
对于学生属于院系,将院系号并入学生的关系中。
对于课程属于院系,将院系号并入课程的关系中。
对于教师开设课程,将教工号并入课程的关系中。
对于学生选择课程,新建关系记录对应的学号和课号。
综上所述,得到以下五个关系:
| 关系名 |关系实例 |
|----|----|
| 院系(COLLEGE) | ![1](image/1.png) |
| 教师(TEACHER) | ![2](image/2.png) |
| 学生(STUDENT) | ![3](image/3.png) |
| 课程(COURSE) | ![4](image/4.png) |
| 选课单(SCHEDULE) | ![5](image/5.png) |
4.物理数据库设计
除课单外,其他关系的主键均为ID。
学生关系中,所属院系为对应院系关系的外键。
课程关系中,所属院系为对应院系关系的外键。
课单关系中,选课学生为对应学生关系的外键,被选课程为对应课程关系的外键。
5.数据库建立
所用DBMS为SQLite。
所用数据库可见data/data.db。
5.1 概念模式
各关系的逻辑结构和特征如下所示:
![](https://www.writebug.com/myres/static/uploads/2022/6/13/e6b4864d9df9edf1907fbea9acaf06e9.writebug)
5.2 外模式
提供三种外模式。
1. 管理员模式:可以向COLLEGE中添加新的院系、教师和学生。
2. 教师模式:可以向COURSE中添加新的课程,由于添加课程需要院系的信息(新课程的所属院系需已经存在),故为此创建视图,定义为”CREATE VIEW college_info AS SELECT id, name FROM college”。
3. 学生模式:可以从COURSE中选择课程,由于选课需要课程的信息,故为此创建视图,定义为”CREATE VIEW course_info AS SELECT id, name, college_id FROM course”。
## 数据库应用开发
数据库开发采用Python的sqlite3包。
前端开发采用Python的PyQt包。
具体代码见src文件夹。
## 实验结果
1.主界面
![](https://www.writebug.com/myres/static/uploads/2022/6/13/2113304117aa20c6631813e4d46f9616.writebug)
各功能如图所示。
2.添加院系
![](https://www.writebug.com/myres/static/uploads/2022/6/13/fa7c627bed1d79eed4685fc9c9a7b2f4.writebug)
在输入合法的院系名和院系号后,会向数据库添加该条对象,并提示添加成功。
![](https://www.writebug.com/myres/static/uploads/2022/6/13/bd5a7018e26b59ca52274b662f039c62.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/13/1116c2b3af1b97e41c615e2de201adea.writebug)
若输入不合法,则会提示相应的错误信息。
以下各操作与之类似,不再赘述。
3.添加教师
![](https://www.writebug.com/myres/static/uploads/2022/6/13/74757a1cd46ebce1bd89512aea99cf63.writebug)
4.添加学生
![](https://www.writebug.com/myres/static/uploads/2022/6/13/9f0b7e1bf31b1c168f4649ce7aa531f5.writebug)
5.新增课程
![](https://www.writebug.com/myres/static/uploads/2022/6/13/dc1d2b2c547999cb3bda3c96ab606f55.writebug)
6.选课
![](https://www.writebug.com/myres/static/uploads/2022/6/13/cf513dcc8477bd604c052ca22e5cac29.writebug)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源包含文件:设计报告word+任务书+源码及数据 本次实验面向选课系统进行设计,分别有院系、教师、学生、课程四个对象,每个对象都有一个ID,作为唯一标识(主关键字);一个名称,便于用户的使用。除此之外,每个学生、课程都有所属院系,用来限制其(被)选课的范围。 上述中ID为INT类型,名称为TEXT类型。 数据给出输入后,将会将其转换为对应的格式,并在不符合对应格式的要求时报错。 详细介绍参考:https://blog.csdn.net/newlw/article/details/125275632
资源推荐
资源详情
资源评论
收起资源包目录
基于PythonGUI实现的学生选课管理系统.zip (23个子文件)
README.md 4KB
任务书.docx 19KB
image
5.png 4KB
3.png 5KB
4.png 12KB
1.png 7KB
2.png 3KB
LICENSE 1KB
src
add_student.py 4KB
add_teacher.py 3KB
add_course.py 5KB
main.py 2KB
add_college.py 3KB
main_window.py 3KB
select_course.py 4KB
ui
main_window.ui 2KB
add_course.ui 3KB
add_student.ui 2KB
add_teacher.ui 2KB
add_college.ui 2KB
select_course.ui 2KB
设计报告.docx 327KB
data
data.db 44KB
共 23 条
- 1
shejizuopin
- 粉丝: 9263
- 资源: 1288
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页