数据库大作业教务管理系统

需求分析

教务管理系统中涉及对学生、教师和课程之间关系的管理
系统可以记录学生的选课和教师的授课以及教师、学生和课程的基本信息
在这里插入图片描述

概念结构设计

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

逻辑结构设计

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

具体创建

--表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);
  • 19
    点赞
  • 180
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值