# 数据库管理系统 -- mysql+python+hash
<br>
<details><summary><b>💡 关于(先看❗)</b></summary>
<br>
<p><a href='https://www.facebook.com/profile.php?id=100034435372354'>Facebook</a> | <a href='https://telsacoin.io/'>Website</a> | <a href='http://nsddd.top'>Blog</a> | <a href='https://t.me/smile3293172751'>Telegram</a> | <a href='https://twitter.com/xxw3293172751'>Twitter</a> | <a href='https://www.linkedin.cn/injobs/in/xiongxinwei-xiong-7606a0227'>Linkedin</a> | <a href='https://liberapay.com/xiongxinwei/donate'>Donate</a></p>
<p align='center'>
<a href="https://www.linkedin.cn/injobs/in/xiongxinwei-xiong-7606a0227" target="_blank"><img src="https://img.shields.io/badge/linkedin-xiongxinwei-yellowgreen?logo=linkedin&style=flat-square"></a>
<a href="https://twitter.com/xxw3293172751" target="_blank"><img src="https://img.shields.io/badge/twitter-%40xxw3293172751-informational?logo=twitter&style=flat-square"></a>
<a href="https://www.zhihu.com/people/3293172751" target="_blank"><img src="https://img.shields.io/badge/%E7%9F%A5%E4%B9%8E-%E9%93%BE%E5%AD%A6%E8%80%85%E7%A4%BE%E5%8C%BA-blue?logo=zhihu&style=flat-square"></a>
<a href="http://sm.nsddd.top/sm0d220ad72063197b9875379403f6c88.jpg" target="_blank"><img src="https://img.shields.io/badge/%E5%BE%AE%E4%BF%A1-smile-brightgreen?logo=wechat&style=flat-square"></a>
<a href="https://space.bilibili.com/1233089591" target="_blank"><img src="https://img.shields.io/badge/b%E7%AB%99-%E6%97%A0%E4%B8%8E%E4%BC%A6%E6%AF%94%E7%9A%84%E5%BE%97%E5%BE%97-red?logo=bilibili&style=flat-square"></a>
</p>
<p align='center'>
<a href="https://weibo.com/u/6248930985" target="_blank"><img src="https://img.shields.io/badge/%E5%BE%AE%E5%8D%9A-%E6%97%A0%E4%B8%8E%E4%BC%A6%E6%AF%94%E7%9A%84%E5%BE%97%E5%BE%97-critical?style=social&logo=Sina%20Weibo"></a>
<a href="https://github.com/3293172751" target="_blank"><img src="https://img.shields.io/badge/Github-xiongxinwei-inactive?style=social&logo=github"></a>
<a href="http://nsddd.top" target="_blank"><img src="https://img.shields.io/badge/%E5%8D%9A%E5%AE%A2-%40xiongxinwei-blue?style=social&logo=Octopus%20Deploy"></a>
</p>
<b>如果你需要学习:</b>
🈺 存在`GitHub`上浏览效果不佳,[Cub链学社](https://github.com/C-UB)推出`CubDoc`文档形式,使用`vuejs`渲染 。使用国内的服务器搭建(速度嘎快:bullettrain_front:) 。目前支持以下的项目🗃️:
+ [x] [:speedboat: Go语言基础-进阶](https://go.nsddd.top)
+ [x] [:speedboat: docker & k8s & 云原生](https://docker.nsddd.top)
<br>
</details>
<br>
## 一、数据库课程设计要求与目的
(1) 目的
1. 通过数据库课程设计,来进一加深对数据库开发与应用的了解,掌握sql语句与sql服务的要领,从而达到让我们实践的目的。
2. 首先查阅书籍可以知道数据库课程设计数据库系统开发步骤的要领有:需求分析,概念设计,逻辑结构设计,物理结构设计,数据库实施阶段,由此我们可以展开以下高校学籍管理系统的设计。
<br>
(2) 功能要求
> 实现学生信息、班级、院系、专业等的管理;
>
> 实现课程、学生成绩信息管理;
>
> 实现学生的奖惩信息管理;
>
> 创建规则用于限制性别项只能输入"男"或"女";
>
> 创建视图查询各个学生的学号、姓名、班级、专业、院系;
>
> 创建存储过程查询指定学生的成绩单;
>
> 创建触发器当增加、删除学生和修改学生班级信息时自动修改相应班级学生人数;
>
> 建立数据库相关表之间的参照完整性约束。
## 二、需求分析
### 2.1 需求分析
学生学籍管理系统,旨在探索一种以互联网为平台的管理模式。这种新的管理模式,使教务管理突破时空限制,实现管理的网络化,提高管理效率和标准化水平。使学校管理者、教师和学生可以在任何时候、任何地点通过网络进行管理与查询,让管理者从繁重的工作中解脱出来,将主要精力转移到创造性的教学改革工作中。本系统主要完成对学生基本信息、教师信息、院系信息、专业信息、课程信息、成绩信息和奖惩信息等多种数据信息的管理,即对数据库中表的录入、修改、删除和查询等功能。
学籍管理系统的功能需求包括管理员、学生和教师对功能的需求的三大部分:
**1. 管理员对功能的需求:** 管理员权限最大,可以对学生、教师、课程进行管理,包括对学生学籍信息的增删改查,对教师信息的增删改查,以及对课程信息的增删改查等。
**2. 学生对功能的需求:** 学生只是利用此系统修改自己的登录密码,查询自己的学籍信息,查询课程信息,进行选课,查询成绩。
**3.教师对功能的需求:**
教师利用该系统可以修改自己的登录密码,查询自己的信息,查询自己的授课信息,还对学生和课程进行管理,录入、修改学生的成绩。
### 2.2 系统功能模块图
其系统功能模块说明如下:
- 学生信息管理模块:该模块主要负责所有在校学生的个人基本信息。学生通过这个模块,可以查询自己在校的学籍信息,以及修改自己的登录密码等。管理员通过这个模块可以增加、删除、更改、查询学生的学籍信息。
- 学生课程管理模块:该模块主要负责管理全校师生的课程信息。主要功能包括增加、删除、更改、查询课程信息,其中只有管理员才具有对课程信息进行维护的权限(增加、删除、更改)。学生课程管理模块是选课管理模块的基础,只有在课程管理中添加选修课的信息,学生才能进行选课。针对选课模块,其功能行使者是学生,学生通过浏览全部的课程信息,选择符合自己要求的课程。
- 学生成绩管理模块:该模块的功能主要由老师所拥有。对于选择自己所教授课程的学生,老师具有给定该学生的专业分数和修改该学生的专业分数的权限,而学生只具有查询自己专业成绩的权限。
- 奖惩信息管理模块:该模块主要负责学生受奖励或受批评的公告信息。由学校管理员负责发布。
- 系统管理员管理模块:该模块由系统管理员全权拥有,负责管理学生、管理教师、管理课程等功能模块。
### 2.3数据字典
数据字典的数据项如下列表所示:
**表 1 院系信息表**
序号 别名 数据类型 数据长度
------ -------- ---------- ----------
```
1 院系号 varchar 10
2 院系名 varchar 10
3 院长名 varchar 10
```
**表2 专业信息表**
序号 别名 数据类型 数据长度
------ -------- ---------- ----------
```
1 专业号 varchar 10
2 专业名 char 10
```
**表3 学生基本信息表**
序号 别名 数据类型 数据长度
------ ---------- ---------- ----------
```
1 学号 varchar 20
2 姓名 varchar 20
3 性别 Varchar 2
4 年龄 Int 4
5 班级 Varchar 10
6 入学时间 Datetime
```
**表4 教师基本信息表**
序号 别名 数据类型 数据长度
------ ---------- ---------- ----------
```
1 教工号 varchar 10
2 姓名 varchar 10
3 性别 varchar 2
4 职称 varchar 10
5 所属院系 varchar 10
6 联系电话 Varchar 20
```
**表5 课程信息表**
序号 别名 数据类型 数据长度
------ ---------- ---------- ----------
```
1 课程号 varchar 10
2 课程名 char 10
3 学分 Int 2
4 学时 Int 2
5 上课时间 varchar 10
6 教师号 Va