需求分析

教务管理系统中涉及对学生、教师和课程之间关系的管理
系统可以记录学生的选课和教师的授课以及教师、学生和课程的基本信息

概念结构设计

对于这个教务管理系统,课程的存在较为核心学生与课程的关系是通过学生选课发生联系的教师与课程的关系是通过教师授课发生联系的。
由于一名学生可以选修多门课程,且一门课程可以被多个学生选修。所以,学生和课程之间是多对多的关系。又因为一门课程可以由多名教师讲授,并且一名教师可以讲授多门课程。所以,教师和课程之间也是多对多的关系。

逻辑结构设计



“学生”、“课程”、“教师”、“授课”、“选课”五个关系中,都不存在部分依赖和传递依赖的关系,因此都属于第三范式。

具体创建

--表1-学生表
CREATE TABLE 学生表 (学号   char(8) PRIMARY KEY,姓名   char(8),性别   char(2) CHECK( 性别 IN ('男', '女') ),所在系 char(20),专业   char(20),班号   char(6)
)

--表2-课程表
CREATE TABLE 课程表 (课程编号 char(8) PRIMARY KEY,课程名称 char(30),  学分     int CHECK( 学分 BETWEEN 1 AND 8 ),课程时长 int ,考核形式 char(30)
)

--表3-教师表
CREATE TABLE 教师表 (教师编号 char(10) PRIMARY KEY,教师姓名 char(8) NOT NULL,性别     char(2) CHECK( 性别 IN ('男', '女') ),职称     char(6),学历     char(6) CHECK( 学历 IN ('本科','硕士','博士','博士后') ),所属部门 char (20)
)

--表4-选课表
CREATE TABLE 选课表 (学号     char(8) NOT NULL,课程编号   char(8) NOT NULL,PRIMARY  KEY(学号, 课程编号),FOREIGN  KEY(学号) REFERENCES 学生表(学号),FOREIGN  KEY(课程编号) REFERENCES 课程表(课程编号)
)

--表5-成绩表
CREATE TABLE 成绩表 (学号       char(8) NOT NULL,课程编号 char(8) NOT NULL,考试成绩 int CHECK( 考试成绩 BETWEEN 0 AND 100)
)

--表6-授课表
CREATE TABLE 授课表 (课程编号 char(8) NOT NULL,课程名称 char(30) NOT NULL, 教师编号 char(10) NOT NULL,课程时长 int,PRIMARY KEY(课程编号, 教师编号, 课程名称),FOREIGN KEY(课程编号) REFERENCES 课程表(课程编号),FOREIGN KEY(教师编号) REFERENCES 教师表(教师编号)
)


添加表中数据时的代码

--表1-学生表
INSERT INTO 学生表 VALUES('60200000', '张一', '女', '计算机系', '云计算', '1班');
INSERT INTO 学生表 VALUES('60200001', '张二', '女', '计算机系', '云计算', '1班');
INSERT INTO 学生表 VALUES('60200002', '张三', '男', '计算机系', '云计算', '1班');
INSERT INTO 学生表 VALUES('60200003', '张四', '男', '计算机系', '云计算', '2班');
INSERT INTO 学生表 VALUES('60200004', '张五', '男', '计算机系', '云计算', '3班');
INSERT INTO 学生表 VALUES('60200005', '张六', '男', '计算机系', '云计算', '4班');
INSERT INTO 学生表 VALUES('60200006', '张七', '女', '计算机系', '云计算', '5班');
INSERT INTO 学生表 VALUES('60200007', '王一', '女', '计算机系', '大数据', '2班');
INSERT INTO 学生表 VALUES('60200008', '王二', '女', '计算机系', '大数据', '2班');
INSERT INTO 学生表 VALUES('60200009', '王二', '女', '计算机系', '大数据', '3班');
INSERT INTO 学生表 VALUES('60200010', '王二', '女', '计算机系', '大数据', '3班');
INSERT INTO 学生表 VALUES('60200011', '李一', '女', '计算机系', '物联网', '3班');
INSERT INTO 学生表 VALUES('60200012', '李二', '女', '计算机系', '物联网', '3班');
INSERT INTO 学生表 VALUES('60200013', '李三', '女', '计算机系', '物联网', '2班');
INSERT INTO 学生表 VALUES('60200014', '李四', '男', '计算机系', '物联网', '3班');--表2-课程表
INSERT INTO 课程表 VALUES('a001', 'Java',  '2','46', '线上');
INSERT INTO 课程表 VALUES('a002', 'Mysql', '2','52', '线上');
INSERT INTO 课程表 VALUES('a003', 'C++',   '4','46', '小项目');
INSERT INTO 课程表 VALUES('a004', 'Css',   '2', '42', '小项目');
INSERT INTO 课程表 VALUES('a005', 'HTML',  '2', '46', '线下');
INSERT INTO 课程表 VALUES('a006', 'C#',    '2', '52', '线下');
INSERT INTO 课程表 VALUES('a007', 'Python','4','46', '线下');
INSERT INTO 课程表 VALUES('a008', 'Go',    '2', '33', '实验报告');
INSERT INTO 课程表 VALUES('a009', 'JavaScript', '2', '33', '实验报告');
INSERT INTO 课程表 VALUES('a010', 'C',     '2','33', '线下');
INSERT INTO 课程表 VALUES('a011', 'Vue',   '2', '42', '小项目');--表3-教师表
INSERT INTO 教师表 VALUES('6001', '鹿晨辉', '男', '教授', '本科',  '计算机');
INSERT INTO 教师表 VALUES('6002', '李鸿萧', '男', '助教', '博士', '计算机');
INSERT INTO 教师表 VALUES('6003', '昆图斯', '男', '讲师', '硕士', '计算机');
INSERT INTO 教师表 VALUES('6004', '耿浩伦', '男', '助教', '博士', '计算机');
INSERT INTO 教师表 VALUES('6005', '西兰花', '女', '讲师', '博士', '计算机');
INSERT INTO 教师表 VALUES('6006', '麦寇',   '男', '教授', '博士', '计算机');
INSERT INTO 教师表 VALUES('6007', '小萝卜', '男', '助教', '本科', '计算机');
INSERT INTO 教师表 VALUES('6008', '明代尔', '男', '教授', '硕士', '计算机');
INSERT INTO 教师表 VALUES('6009', '李义海', '男', '讲师', '博士', '计算机');
INSERT INTO 教师表 VALUES('6010', '鲁军一', '男', '教授', '博士', '计算机');--表4-选课表
INSERT INTO 选课表 VALUES('60200000', 'a001');
INSERT INTO 选课表 VALUES('60200000', 'a002');
INSERT INTO 选课表 VALUES('60200000', 'a003');
INSERT INTO 选课表 VALUES('60200000', 'a004');
INSERT INTO 选课表 VALUES('60200005', 'a005');
INSERT INTO 选课表 VALUES('60200005', 'a006');
INSERT INTO 选课表 VALUES('60200005', 'a007');
INSERT INTO 选课表 VALUES('60200005', 'a008');
INSERT INTO 选课表 VALUES('60200005', 'a009');--表5-成绩表
INSERT INTO 成绩表 VALUES('60200000', 'a001', 'Java', '99');
INSERT INTO 成绩表 VALUES('60200000', 'a002', 'Mysql', '87');
INSERT INTO 成绩表 VALUES('60200000', 'a003', 'C++', '88');
INSERT INTO 成绩表 VALUES('60200000', 'a004', 'Css', '99');
INSERT INTO 成绩表 VALUES('60200005', 'a005', 'HTML', '33');
INSERT INTO 成绩表 VALUES('60200005', 'a006', 'C#', '99');
INSERT INTO 成绩表 VALUES('60200005', 'a007', 'Python', '91');
INSERT INTO 成绩表 VALUES('60200005', 'a008', 'Go', '92');
INSERT INTO 成绩表 VALUES('60200005', 'a009', 'JavaScript', '93');--表6-授课表
INSERT INTO 授课表 VALUES('a001', 'Java',  '6001', 46);
INSERT INTO 授课表 VALUES('a002', 'Mysql', '6002', 52);
INSERT INTO 授课表 VALUES('a003', 'C++',   '6003', 46);
INSERT INTO 授课表 VALUES('a004', 'Css',   '6004', 42);
INSERT INTO 授课表 VALUES('a005', 'HTML',  '6005', 46);
INSERT INTO 授课表 VALUES('a006', 'C#',    '6006', 52);
INSERT INTO 授课表 VALUES('a007', 'Python','6007', 46);
INSERT INTO 授课表 VALUES('a008', 'Go',    '6009', 33);

数据库大作业教务管理系统相关推荐

  1. MySQL数据库大作业——学生管理系统GUI

    MySQL数据库大作业--学生管理系统GUI 原程序链接: https://www.bbsmax.com/A/kmzL3WQBdG/ 为了完成数据库大作业, 我在其基础上进行了一定的修改和扩充. 如果 ...

  2. mysql数据库大作业学籍管理系统_数据库大作业学籍管理系统代码和报告

    [实例简介] 此为大学数据库大作业的报告以及源代码及打包程序.数据库使用MySQL设计,管理界面采用java编写,附带完整报告. [实例截图] [核心代码] 15180210013康辉数据库报告 └─ ...

  3. C# 数据库大作业-学生管理系统

    文章目录 C# 学生管理系统 概览 C#代码 1.LoginForm(登录界面) 2.Reg(注册界面) 3.ResetP(重设密码界面) 4.MainForm(主界面,包括了选课和查询界面) 5.P ...

  4. 数据库大作业-电影院管理系统

    3.2.1 消费者信息表 字段名 字段类型 字段大小 备注 customer_id int 60 primary key customer_name VARCHAR 30 not null custo ...

  5. Java大作业-考试管理系统(GUI)无数据库-Java课程设计

    Java课程设计-Java大作业-考试管理系统(GUI)无数据库 题目要求 开发环境 : 程序总功能模块 程序详细设计 使用情况 第一次写这东西有不少错误的地方,题目要求的功能也没有完全实现,以上内容 ...

  6. 数据库大作业 openGauss程序设计

    本文最终实现一个Web在线考试管理系统,可作为Python Web,Django的练手项目. 摘要 本系统实现学生在线考试管理的基本功能,包括学生登录.查看自己的个人信息及考试信息:提供了在线考试的界 ...

  7. 专科mysql数据库大作业_数据库大作业整理·总

    能找到这里的小同学,我们可能是校友哦. 这个不正经的帖子来整理一下我们用pyqt5+eric6+mysql开发天气管理系统(17地市)的所有走过的路,尤其是我走弯路后的修正路线. 因为找了一些资料,看 ...

  8. C6软件测试大乐,软件测试大作业——社团管理系统

    <软件测试大作业--社团管理系统>由会员分享,可在线阅读,更多相关<软件测试大作业--社团管理系统(19页珍藏版)>请在人人文库网上搜索. 1.山东科技大学软件测试技术与工具课 ...

  9. java大作业用jsp数据库java_JSP数据库大作业 - 不是太阳也要发光的个人页面 - OSCHINA - 中文开源技术交流社区...

    本人QQ:240814476  欢迎大家提问,共同学习,共同进步. 最近做了一个数据库大作业啊,想用JSP做,发现代码量好大,在做前台的时候感觉手忙脚乱,没时间. 可能是本人拖了太久的原因吧 . 做的 ...

最新文章

  1. Ajax应用开发:实践者指南
  2. iOS高级面试之NSNotificationCenter是同步操作还是异步操作
  3. python pcl学习入门
  4. A+B (带有,的数字)
  5. 深入理解PHP的运行模式
  6. Windows下用命令行导出导入MySQL数据库
  7. java 绑定微信号开发_Java开发中的更多常见危险信号
  8. 微机计算机原理姚向华课后答案,微型计算机操作系统
  9. Android SharedPreferences总结及优化
  10. 面试中遇到这 3 个SQL问题,最容易掉坑里!
  11. .NET下的验证码控件John.Controls.ValidateCode2V for .NET beta1
  12. 强力推荐几种多媒体播放器方案(jQuery、Flash、HTML5)
  13. Java 算法 字串统计
  14. github使用指南_GitHub 上的 12 个骚操作
  15. jquery发送ajax请求返回数据格式
  16. 两个json对象合并为一个json对象
  17. Windows server 2003 伪静态配置方法
  18. JavaScript学习指南
  19. Storage System
  20. P4643 [国家集训队]阿狸和桃子的游戏

热门文章

  1. 顺丰新财报:迎来上市来最好Q4业绩,强大修复能力下的新长跑
  2. 浅谈Word中文档标题及编号的设置
  3. iOS Run Loop
  4. php emoji 保存 显示,PHP开发中涉及到emoji表情的几种处理方法
  5. 如果将计算机网络划分为,计算机网络:如果将192.12.66.128/25划分为三个子网,其中子网1可以容纳50台计算机,...
  6. 球半,NBA总决赛:凯尔特人VS勇士 6月11日
  7. android面试题2020!年末阿里百度等大厂技术面试题汇总,社招面试心得
  8. MATLAB绘图与图形处理(2)
  9. 计蒜客--弹簧板 DP--动态规划入门
  10. 基于车路协同功能的路侧及车载智能设备研究