学生信息管理系统的设计

本文详细介绍了学生信息管理系统的设计,包括业务分析、系统功能、数据模型构建和表格设计。系统针对学生和教师提供不同功能,如学生选课、教师查询和管理学生信息。通过E-R图转换为关系模式,减少了数据冗余。最后,展示了如何使用SQL语句创建表格并插入数据,以及维护数据的各种操作,如查询、修改和删除。
摘要由CSDN通过智能技术生成

1.分析

1.1----业务分析

         主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化自动化,其主要任务是用计算机对学生各种信息进行日常管理 。

1.2----分析系统:系统面向的用户、系统的功能

       本系统面向的对象主要是在校学生和教师,面对不同的用户,系统提供的功能是不一样的

1.2.1 学生端

        其中若是学生用户登录那么只能够看到自己的学籍信息、一些考试成绩等,考虑到一些选修课程来说还提供了选课操作;

1.2.2 教师端

        若是教师端登录,那么他所拥有的权限就比学生要多一些,一些最基本的功能,能查询自己的工作数据,然后还能够对自己管理的班级的学生表中的学生信息进行查询修改增加删除 。

2.构建模型

2.1 概念模型:ERP模型

        学生管理系统 主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化自动化,其主要任务是用计算机对学生各种信息进行日常管理,如 查询、修改、增加、删除等功能,当然为了方便学生还添加了学生选课功能。因此该系统面向的实体主要有 学生、教师、教室、宿舍、课程、成绩、职务等实体。

        该系统的一些实体联系模型大概就如下图所示(E-R图):

 

2.2 数据模型:设计表格

2.2.1 将ERP模型转化为关系模式eg:

按照将E-R图转换为关系模式的规则,将上图所示E-R图转换,得到的关系模式为:

        学生(学号,姓名,年龄,性别,成绩,班主任,院系,宿舍号,联系方式)

        教师(教师编号,姓名,性别,年龄,职位,教授课程编号,所属院系,职务编号)

        课程(课程编号,课程名称,课程成绩,任课教师)

        宿舍(所属宿舍群,宿舍编号)

        教室(所属教室群,教室编号)

        职务(职务编号,职务名称)

        由于只有单独的实体而这些实体之间的联系并不明显,因此需要添加中间表来连接不同的表。

        学生与课程之间存在着选课关系,但是学生与课程之间的联系在之前的关系模型中体现不出来,需要建立一个选课表来连接两个表,由于单独在学生表中建立成绩每个人都会出现许多多余的数据因此,将成绩存储在一个中间表中能减少许多冗余数据,将学生和课程中的成绩属性剔除

建立一个新的关系模式: 选课(学号,课程编号,教师编号,教室编号,成绩,选课日期)

        教师中的职务编号和职位在职务关系模式中出现了,并且如果保留的是职位的话,存在很多汉字,冗余,将其改为职务表中的编号后会减少职务及其信息在教师信息表中出现的冗余程度

        教师的关系模式中,教授的课程编号相当与是冗余的数据,因为在选课关系中可以体现出每每个教师的教授科目。也需要剔除课程关系模式中的任课教师

因此新的修改后的关系模式为:

        学生(学号,姓名,年龄,性别,班主任,院系,宿舍号,联系方式)

        选课(学号,课程编号,教师编号,教室编号,成绩,选课日期)

        课程(课程编号,课程名称)

        教师(教师编号,姓名,性别,年龄,所属院系,职务编号)  

        宿舍(所属宿舍群,宿舍号)

        教室(所属教室群,教室编号)

        职务(职务编号,职务名称)

//由于宿舍 教室 职务 中都存在许多汉字,如果将他们加入到表中改成名字,即每一个与之关联的关系模式都会多次出现相同的字段,即出现数据大量冗余的情况,若是将其改变成id来辨识他们就会大大减少汉字的冗余,减少存储的难度。

2.2.2 设计表格

设计几个关系模式的表格

学生student表(学号,姓名,年龄,性别,班主任,院系,宿舍号,联系方式)

字段名

数据类型

长度

是否主键

是否可为空

说明

stu_id

int

14

学生表主键

stu_name

varchar

20

stu_age

int

14

stu_sex

varchar

10

t_id

int

14

stu_faculties

varchar

10

dm_dormitory

Int

14

stu_contact

varchar

14

  选课sc表(学号,课程编号,教师编号,教室编号,成绩,选课日期)

字段名

数据类型

长度

是否主键

是否为空

说明

stu_id

int

14

学生表主键

cs_id

varchar

14

t_id

int

14

r_id

int

14

sc_score

int

14

sc_data

varchar

20

 课程course表(课程编号,课程名称)

字段名

数据类型

长度

是否主键

是否为空

说明

cs_id

varchar

14

课程表主键

cs_name

varchar

20

 教师teacher表(教师编号,姓名,年龄,所属院系,职务编号) 

字段名

数据类型

长度

是否主键

是否可为空

说明

t_id

int

14

教师表主键

t_name

varchar

20

t_age

int

14

t_faculties

varchar

20

emp_id

varchar

14

 宿舍dormitory表(所属宿舍群,宿舍号)

字段名

数据类型

长度

是否主键

是否可为空

说明

dm_id

int

14

宿舍表主键

dm_name

varchar

20

 教室room表(所属教室群,教室编号)

字段名

数据类型

长度

是否主键

是否可为空

说明

r_id

int

14

教师表主键

r_name

varchar

20

 职务emp表(职务编号,职务名称)

字段名

数据类型

长度

是否主键

是否可为空

说明

emp_id

varchar

14

职务表主键

emp_name

varchar

20

3.创建表格

利用sql语句按照上述构建的模型创建表格

#创建各个表格
create table student (
	stu_id int(14) primary key not null AUTO_INCREMENT,
	stu_name Varchar(20),
	stu_age int(14),
	stu_sex varchar(10),
	t_id int(14),
	stu_faculities varchar(10),
	dm_dormitory int(14),
	stu_contact varchar(14));
	
	
create table sc(
	stu_id int(14) ,
	cs_id varchar(14),
	t_id int(14),
	r_id int(14),
	sc_score int(14),
	sc_data varchar(20),
	PRIMARY KEY(stu_id,cs_id) );
	
create table course(
	cs_id varchar(14) primary key not null,
	cs_name varchar(20));
	
create table teacher(
	t_id int(14) primary key not null,
	t_name varchar(20),
	t_age int(14),
	t_faculties varchar(20),
	emp_id varchar(14));
	
create table dorimitory(
	dm_id int(14) primary key not null,
	dm_name varchar(20));
	
create table room(
	r_id int(14) primary key not null,
	r_name varchar(20));
	
create table emp(
	emp_id varchar(14) primary key not null,
	emp_name varchar(20));
	

 创建表格的语句,运行成功后会出现以下提示

 

将上述代码执行成功后刷新表会出现所创建的表格

也可以在命令行中使用show tables; 查看数据库中表格是否创建成功

4.插入数据

给各个表中插入数据

insert into student VALUES
			('060101','钟文辉','18','男','10001','计算机','1001','18355645632'),
			('060102','吴细文','19','女','10003','信息管理','1002','18355645633'),
			('060103','吴朝西','20','女','10003','信息管理','1003','18355645634'),
			('070101','王冲瑞','21','男','10002','大数据','2002','18355645635'),
			('070102','林滔滔','18','男','10002','大数据','2003','18355645636'),
			('070103','李修雨','19','女','10004','计算机科学','2001','18355645637'),
			('070301','李奇','18','女','10005','软件工程','1002','18355645638')
			
insert into sc VALUES
			('060101','C01','10001','99001','88','2022-08-02'),
			('060101','C03','10002','99003','78','2022-07-28'),
			('060101','C04','10003','99004','85','2022-08-01'),
			('060101','C05','10004','99005','94','2022-08-06'),
			('060102','C02','10002','99002','58','2022-08-03'),
			('060102','C03','10002','99003','86','2022-07-28'),
			('060102','C04','10003','99004','79','2022-08-01'),
			('070101','C01','10001','99001','68','2022-08-02'),
			('070101','C03','10002','99003','92','2022-07-28'),
			('070101','C04','10003','99004','72','2022-08-01'),
			('070101','C05','10004','99005','81','2022-08-06'),
			('070103','C04','10003','99004','78','2022-08-01'),
			('070103','C06','10005','99006','85','2022-08-05'),
			('070301','C03','10002','99003','86','2022-07-28'),
			('070301','C04','10003','99004','88','2022-08-01')
			
			
insert into course VALUES
	   ('C01','高等数学'),
       ('C02','程序设计'),
       ('C03','数据结构'),
       ('C04','数据库原理'),
       ('C05','分布式数据库'),
       ('C06','计算机组成原理'),
       ('C07','计算机网络')
			
insert into teacher VALUES
	    ('10001','张权','39','计算机科学与工程学院','E005'),
       ('10002','王虎','35','电子信息工程学院','E004'),
       ('10003','李涵','37','计算机科学与工程学院','E005'),
       ('10004','刘宇','41','计算机科学与工程学院','E002'),
       ('10005','程玉虎','34','计算机科学与工程学院','E004')
			 
insert into dorimitory VALUES
	   ('1001','邱和楼1001'),
       ('1002','邱和楼1002'),
       ('1003','邱和楼1003'),
       ('2001','海心阁2001'),
       ('2002','海心阁2002'),
       ('2003','海心阁2003'),
       ('2004','海心阁2004')	 
			 
 insert into room VALUES
	   ('99001','太极楼001'),
       ('99002','太极楼002'),
       ('99003','太极楼003'),
       ('99004','太极楼004'),
       ('99005','太极楼005'),
       ('99006','太极楼006'),
       ('95001','清风楼001')
			 
insert into emp VALUES
	   ('E001','主任'),
       ('E002','副主任'),
       ('E003','书记'),
       ('E004','副书记'),
	   ('E005','高级讲师'),
	   ('E006','中级讲师'),
	   ('E007','初级讲师')

5.维护数据:

5.1 查询学生所有信息

5.2 查询老师所有信息

 

5.3 查询选课了XX科目的学生信息

5.4 对应科目的老师信息

 

5.5 修改学生信息

 

 

5.6 删除学号为xx的学生信息

 

5.7 学号为xx的学生选择xx课程

选课前

 选课后

 

 

5.8 查询年龄大于20岁的学生信息

5.9 学号为xx的学生修改其电话号码

学生电话号码修改前的信息 

学生电话号码修改后的信息 

 

……..

…….

…….

……

……..

  • 6
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值