学生信息管理系统(数据库)

这篇具有很好参考价值的文章主要介绍了学生信息管理系统(数据库)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

要求实现功能:

(1)学生、课程、教师等信息的录入和维护,一门课只由一位教师上,一位教师可上多门课

(2)学生进行选课,一学期约20学分

(3)教师在每门课结束后给出学生成绩,不及格则补考后记录补考成绩

(4)能明细查询某学生的选课情况及某课程的选修学生情况

(5)能统计查询出某学生的成绩单(总成绩、平均成绩、不及格门数等)及某门课的选课人数、最高分、最低分、平均成绩等统计信息

目录

一、引言

1.1课题背景

1.2课程设计目的

1.3课程设计任务

二、需求分析

三、统数据库设计

3.1 概念结构设计

3.1.1学生E-R图

3.1.2教师E-R图

3.1.3课程E-R图

3.1.4选课E-R图

3.1.5整体E-R图

3.2 逻辑结构设计

3.2.1 将总体概念结构E-R图转化成关系模型

3.2.2数据模型的优化

3.3 物理结构设计

四、数据库实现

4.1创建数据库

4.2数据库表的创建

4.2.1创建学生信息表

4.2.2创建教师信息表

4.2.3创建课程信息表

4.2.4创建选课信息表

4.3关系图如下

4.4插入数据

4.5数据更新

4.5.1向学生表添加一个学生信息

4.5.2修改陈畅的手机号

4.5.3删除陈畅的个人信息

4.6数据查询

4.6.1简单查询

4.6.2嵌套查询

4.6.3模糊查询

4.6.4连接查询

4.6.5分组查询

4.6.6查询的排序

4.6.7聚合函数

4.7视图

4.7.1 创建一个关于补考信息的成绩表,包含所有列

4.7.2 创建一个仅包含专业基础课的课程信息表

五、总结

一、引言

1.1课题背景

    随着信息化时代的到来,计算机技术也得到了广泛应用,为高等院校的管理提供了更加先进、方便和高效的方法。针对大学教务管理的问题,开发一个学生信息管理系统已经成为一项十分重要和必要的工作。而数据库实验学生信息管理系统就是基于数据库技术开发的一种高校管理软件。

   该系统的主要目的是管理学生的基本信息、课程信息、成绩信息、选课信息等。在学生信息管理系统中,可以对学生基本信息进行统一管理,如姓名、学号、性别、出生日期、籍贯、联系方式等,以及学生成绩和选课情况的管理。同时,该系统具备权限控制功能,能够有效防止信息被盗取或修改。通过该系统,可实现对学生进行全面细致的管理,大大提高了工作效率,减少了人力资源的投入。

1.2课程设计目的

(1)实践使用数据库技术:学生信息管理系统作为一个基础型数据库应用,操作基本,涉及的表和字段不多,但是很实用,让学生能够快速上手操作数据库软件,了解数据库的常见概念和基本功能。

(2)学习数据库的设计与实现:学生信息管理系统涉及多张关联表的设计,通过学习系统的设计和实现,使学生了解到数据库设计的方法和技巧,包括实体和关系建模、表的设计、属性的定义、索引的设置以及语法的使用等。

(3)培养学生信息管理能力:学生信息管理系统的功能比较全面,可以使学生通过信息的录入、查询、管理等方面,学习信息管理的基本方法和技巧,提高信息管理能力。

(4)提高学生综合应用能力:学生信息管理系统的设计和实现需要涉及到多个学科的知识,如数据结构、算法、数据库技术等,通过实践能够提高学生的综合应用能力。

1.3课程设计任务

1. 需求分析:明确学生信息管理系统的使用、功能、性能和质量等方面的需求,制定相应的产品需求规格说明书。

2. 概念设计:根据需求规格说明书,进行实体和关系的建模,设计ER图和表结构,明确数据库的存储要求。

3. 逻辑设计:设计系统的逻辑架构,包括数据库的建模、SQL语句和数据字典的编写等。

4. 物理设计:设计系统的物理架构,包括数据库、表和索引的创建、存储和管理等。

5. 实现与测试:根据设计要求,实现并测试学生信息管理系统的各项功能,包括记录的增加、修改、删除、查询以及数据的统计和报表分析等。

二、需求分析

本系统的用户是学生公寓管理人员和负责老师,他们在日常公寓管理的主要工作有:入住学生信息的查询与管理、寝室分配及调整、来访登记等。根据上述需求进行分析,本系统在实现上应该具有如下功能:

◎ 学生基本信息管理:学生基本信息添加、修改、查询、删除;

◎ 教师基本信息管理:教师基本信息添加、修改、查询、删除;

◎ 课程基本信息管理:课程基本信息添加、修改、查询、删除;

◎ 选课成绩基本信息管理:选课信息和成绩的添加、修改、查询、删除,以及补考成绩录入。

根据上述分析,可以设计出此系统的系统体系结构图

学生信息管理系统,数据库

                                           图2.1学生信息费管理系统功能模块示意图

三、统数据库设计

3.1 概念结构设计

根据需求分析抽象出信息结构,可得该系统的E-R图。

部分E-R图

3.1.1学生E-R图

学生信息管理系统,数据库

                                                                图3.11学生E-R图

3.1.2教师E-R图

学生信息管理系统,数据库

                                                               图3.1.2教师E-R图

3.1.3课程E-R图

学生信息管理系统,数据库

                                                               图 3.1.3课程E-R图

3.1.4选课E-R图

学生信息管理系统,数据库

                                                               图3.1.4选课E-R图

3.1.5整体E-R图

学生信息管理系统,数据库

                                                             图3.1.5整体E-R图

3.2 逻辑结构设计

3.2.1 将总体概念结构E-R图转化成关系模型

关系模型:

学生(学号#,姓名,性别,联系方式)

教师(教师编号#,姓名,性别,联系方式)

课程(课程号#教师编号,课程名,学分)

选课(课程编号#学号#成绩类型#,成绩

3.2.2数据模型的优化

  •  确定数据依赖

1. 学生(学号#,姓名,性别,联系方式)

第三范式:学号 ->(姓名,性别,联系方式)

2. 教师(教师编号#,姓名,性别,联系方式)

第三范式:教师编号->(姓名,性别,联系方式)

3. 课程(课程号#教师编号,课程名,学分)

第三范式:课程号->(教师编号,课程名,学分)

4. 选课(课程编号#学号#成绩类型#,成绩

第三范式:(课程编号,学号,成绩类型)->(成绩

  • 各关系模式间数据依赖进行极小化处理,消除冗余

通过分析发现其关系中都没有数据的冗余:学生关系中学号Sno决定学生的信息;教师关系中教师编号作为主键;课程关系中课程号作为主键;选课关系中,需要用(课程编号,学号,成绩类型)共同作为主键来唯一确定一个考试成绩,因为存在补考,所以需要使用成绩类型加以区分,成绩类习惯可选为正常或补考。

3.3 物理结构设计

3.3.1学生信息表的结构

编号

字符名称

数据类型

长度

说明

1

学号

char

10

学生学号,主键

2

姓名

varchar

20

不允许空

3

性别

char

2

不允许空

check约束

4

联系方式

char

11

允许空

5

生日

Date

允许空

3.3.2教师信息表的结构

编号

字符名称

数据类型

长度

说明

1

教师编号

char

10

教师编号,主键

2

姓名

varchar

20

不允许空

3

性别

char

2

不允许空

check约束

4

联系方式

char

11

允许空

3.3.3课程信息表的结构

编号

字段名称

数据类型

长度

说明

1

课程号

char

10

主键

2

课程名

varchar

20

不允许空

3

教师编号

char

10

教师编号,外键

4

学分

tinyint

非空

Check约束

3.3.4选课成绩信息表的结构

 编号

字段名称

数据类型

长度

说明

1

学号

char

10

主键,外键

2

课程号

char

10

主键,外键

3

成绩类型

char

2

主键

Check约束

4

分数

tinyint

非空

Check约束

四、数据库实现

4.1创建数据库

create database sms

on primary

(

name=sms,

filename='D:\SQLSERVER_DB\sms.mdf',

size=20MB,

MAXsize=unlimited,

filegrowth=10MB

)

  log on

(

name=sms_log,

filename='D:\SQLSERVER_DB\sms_log.ldf',

size=2mb,

maxsize=10mb,

filegrowth=10%

)

4.2数据库表的创建

4.2.1创建学生信息表

create table student(

sno char(10) primary key,

[name] varchar(20) not null,

sex char(2) not null check(sex='男' or sex='女'),

tel char(11)

)

4.2.2创建教师信息表

create table teacher(

sno char(10) primary key,

[name] varchar(20) not null,

sex char(2) not null check(sex='男' or sex='女'),

tel char(11)

)

4.2.3创建课程信息表

create table course(

cno char(10) primary key,

[cname] varchar(20) not null,

tno char(10),

credit tinyint check(credit between 1 and 2), --学分

constraint FK_teacher_tno foreign key(tno) references teacher(tno)

)

4.2.4创建选课信息表

create table grade(

cno char(10),

sno char(10),

gtype char(2) check(gtype in ('zc','bk')), --成绩类型,zc正常,bk补考

credit tinyint check(credit between 0 and 100),--成绩分数

constraint PK_cno_tno_gtype primary key(cno,sno,gtype),--联合主键

constraint FK_course_cno foreign key(cno) references course(cno), --外键

constraint FK_student_sno foreign key(sno) references student(sno) --外键

)

4.3关系图如下

学生信息管理系统,数据库

4.4插入数据

--插入学生信息

insert into student values('1932101101','赵庆','男','15170000001','2000-11-10');

insert into student values('1932101102','尹遥','男','15170000002','2001-10-10');

insert into student values('1932101103','余军','男','15170000003','2002-06-10');

insert into student values('1932101104','辉夜','女','15170000004','2003-11-10');

insert into student values('1932101105','晨晨','女','15170000005','2004-11-10');

--插入教师信息

insert into teacher values('1000000001','王欣','女','19170000001');

insert into teacher values('1000000002','邓丁','男','19170000002');

insert into teacher values('1000000003','李涛','男','19170000003');

--插入课程信息

insert into course values('zyjc000001','数据库原理','1000000001',2);

insert into course values('zyjc000002','Java程序设计','1000000001',2);

insert into course values('zyhx000003','操作系统','1000000002',1);

insert into course values('zyhx000004','计算机网络','1000000002',2);

insert into course values('zyjc000005','计算机组成原理','1000000003',1);

insert into course values('zyjc000006','高等数学','1000000003',2);

--插入选课信息

insert into grade values('zyjc000001','1932101101','zc',85);

insert into grade values('zyjc000001','1932101102','zc',75);

insert into grade values('zyjc000001','1932101103','zc',65);

insert into grade values('zyjc000001','1932101104','zc',95);

insert into grade values('zyjc000001','1932101105','zc',70);

insert into grade values('zyjc000002','1932101101','zc',85);

insert into grade values('zyjc000002','1932101102','zc',80);

insert into grade values('zyjc000002','1932101103','zc',70);

insert into grade values('zyhx000003','1932101101','zc',85);

insert into grade values('zyhx000003','1932101102','zc',80);

insert into grade values('zyhx000003','1932101103','zc',75);

insert into grade values('zyhx000003','1932101104','zc',70);

insert into grade values('zyhx000003','1932101105','zc',65);

insert into grade values('zyhx000004','1932101101','zc',85);

insert into grade values('zyhx000004','1932101102','zc',70);

insert into grade values('zyhx000004','1932101103','zc',60);

insert into grade values('zyhx000003','1932101104','bk',99);

insert into grade values('zyhx000003','1932101105','bk',94);


4.5数据更新

4.5.1向学生表添加一个学生信息

insert into student

values('1932101106','陈畅','女','15170000006');

学生信息管理系统,数据库

                                                                     数据的插入

4.5.2修改陈畅的手机号

update student set tel='15170000016' where sno='1932101106';

学生信息管理系统,数据库

   数据的修改

4.5.3删除陈畅的个人信息

delete from student where sno='1932101106';

学生信息管理系统,数据库

                                                                     数据的删除

4.6数据查询

4.6.1简单查询

查询学生表信息

select * from student;

学生信息管理系统,数据库

 4.6.2嵌套查询

查询年龄最大的学生信息

select * from student where birth=(select min(birth) from student);

学生信息管理系统,数据库

4.6.3模糊查询

查询所有姓辉的学生的信息

select * from student where sname like '辉%';

学生信息管理系统,数据库

4.6.4连接查询

查询课程名和教授的老师

select c.cname,t.tname

from course c,teacher t

where c.tno=t.tno;

学生信息管理系统,数据库

查询学号为1932101104选课情况

select * from grade g

left join course c on c.cno=g.cno

where g.sno='1932101104';

学生信息管理系统,数据库

4.6.5分组查询

查询每个老师教授课程数量

select COUNT(*) as count,tno from course group by tno;

学生信息管理系统,数据库

查询某课程的选修学生的人数情况

select COUNT(*) as count,c.cno

from course c

left join grade g on c.cno=g.cno

group by c.cno

having c.cno='zyhx000004'

学生信息管理系统,数据库

4.6.6查询的排序

按照成绩由大到小查询课程号为zyjc000001的成绩信息

select * from grade

where cno='zyjc000001'

order by credit desc;

 学生信息管理系统,数据库

4.6.7聚合函数

统计某学生的成绩单(总成绩,平均成绩,不及格门数)

select

sno,

SUM(credit) sum,

AVG(credit) avg,

COUNT(CASE WHEN credit<60 THEN 1 END) as count

from grade

where sno='1932101104'

group by sno;

学生信息管理系统,数据库

统计某门课的选课人数、最高分、最低分、平均成绩

select

c.cno,

COUNT(g.sno) count,

MAX(g.credit) max,

MIN(g.credit) min,

AVG(g.credit) avg

from course c

left join grade g on g.cno=c.cno

where c.cno='zyhx000003'

group by c.cno;

学生信息管理系统,数据库

4.7视图

4.7.1 创建一个关于补考信息的成绩表,包含所有列

create view v_grade_bk

as

select * from grade where gtype='bk';

select * from v_grade_bk;

学生信息管理系统,数据库

4.7.2 创建一个仅包含专业基础课的课程信息表

create view v_course_zyjc

as

select * from course where cno like 'zyjc%';

select * from v_course_zyjc;

学生信息管理系统,数据库

五、总结

本次数据库课程设计学生信息管理系统的实验,让我更加深入地了解了数据库的概念和应用。在实验过程中,我通过设计和实现一个学生信息管理系统,了解到了数据库的具体操作,并且明确了数据库的优缺点和应用场景。同时,我也发现在实验中出现了很多问题,包括数据库设计的不够合理、应用场景不够清晰等方面,需要在今后的学习和实践中继续完善。在概念设计、逻辑设计和物理设计等各个方面都有了实际操作和实践。在实验过程中,我遇到了很多困难和问题,如表的设计不够合理、索引的设置不够合理,SQL语句的编写不够熟练、索引的设计不够准确等,但是通过一步一步的解决,我最终设计实现了一个稳定、高效的学生信息管理系统。让我更加深入了解了数据库在信息管理与应用中的重要性和必要性,同时也提高了我在实际操作中的能力和技巧。在接下来的学习和实践中,我将会继续提升我的数据库技能,不断改进和挑战自己。文章来源地址https://www.toymoban.com/news/detail-770403.html

到了这里,关于学生信息管理系统(数据库)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学生信息及成绩管理系统(Python+Sqlite)数据库版

    目录 功能模块: 运行功能演示:  具体代码实现过程: 创建sqlite 数据库  Python代码 引入os和sqlite3包: 初始化数据库: 连接数据库: 关闭并提交数据到数据库: 查询数据并显示: 添加并插入数据到数据库: 更新数据到数据库: 删除数据并更新数据库:  导入和导出数据

    2024年02月04日
    浏览(47)
  • [Python+Django]Web学生信息管理系统数据库设计及系统实现

    本文我们完成数据的设计,并通过Django框架完成数据库构建同时利用Django框架模式实现学生信息管理系统的功能。 简单的包装下毕设应该没问题了。 Python,Mysql,Pycharm的安装本文就不做特别介绍了,有需要的同学请参考如下博文。 Python + Django4 搭建个人博客(二):准备开

    2024年02月03日
    浏览(64)
  • 学生信息管理系统 Java+SQL Server 数据库原理课程

    该项目实现了图形化界面的数据库的登录,以及对数据库中表的增删查改。 正好老师布置了相关作业,通过Java 连接 SQL Server 数据库,就写一个学生管理系统。 jdk8 数据库连接通过sqljdbc6.0 图形化界面用swing 目录 1、Java 连接SQL Server数据库 2、准备数据库 3、登录界面 要求:

    2024年02月09日
    浏览(69)
  • 数据库课程设计——学生信息管理系统C#,SQL Sever

    目录 利用SQL Sever和 VS C#实现 一、程序流程图 二、具体实现:利用SQL Sever和 VS实现,使用C#连接数据库 1、新建一个名为MySchool的数据库​​​​​​​ 2、C#连接数据库,并实现对MySchool数据库的增、删、改、查操作 (1)主界面  (2)学生登录页面 (3)个人主页 (4)注册页

    2024年01月18日
    浏览(52)
  • 数据库课程设计——学生信息管理系统(Sqlserver,C#,Winform)

    目录 需求分析 一.登录功能 二.注册功能 三.管理员登录后跳转到功能页面: 四.学生信息管理(主界面,删除功能在主界面代码中) 五.学生信息添加和修改(设计在一个页面上,修改需要选中行) 六.课程信息管理(删除功能在主界面中)  七.课程信息添加和修改  八.成绩

    2024年02月02日
    浏览(53)
  • python 实现学生信息管理系统+MySql 数据库,包含源码及相关实现说明~

    1、系统说明 python 编写的学生信息管理系统+MySQL数据库,实现了增删改查的基本功能。 2、数据库说明 本人使用的是 MySQL8.0 版本 数据库端口号为:3306 数据库用户名是:root 数据库名称是:practice 建立的表是:students 3、系统功能 增加学生信息 删除学生信息 修改学生信息 查

    2024年02月11日
    浏览(54)
  • 【JAVA】Eclipse+MYSQL数据库+JSP+基础Servlet开发JavaWeb学生信息管理系统

    目录 前言 一、搭建环境  二、功能实现、 1、   登陆界面 注册按钮 2、学生信息管理系统主界面 3、dao包  4、用户的信息展示,添加,删除,修改功能(只展示添加代码) 5、学生的信息展示,添加,删除,修改功能(只展示添加代码) 6、成绩的信息展示,添加,删除,修

    2024年02月05日
    浏览(65)
  • (解析+源码)基于JAVA Swing+MySQL实现学生信息管理系统(增、删、改、查)数据库/文件存储

    本文适合 有一定JAVA编程基础(听过一点课的同学) 的同学“食用”,源代码都在文末 源代码(点击跳转) ,第四部分是各个模块的实现,新建一个工程把下面代码添加进去,然后在数据库里按id-username-password和id-name-sex-telephone-number-birthday-note创建两个表,在Connect.java里面将us

    2024年02月04日
    浏览(53)
  • java 学生信息管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

    一、源码特点     java 学生信息管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java 学生信息管理系统 二、

    2024年02月09日
    浏览(56)
  • 数据库系统实现 大学生宿舍管理系统

    目录 目录 第一章绪论 1.1项目研究的背景 第二章可行性分析与需求分析 2.1可行性分析 2.1.1操作可行性 2.1.2技术可行性 2.1.3设计可行性 2.2需求分析 2.2.1处理对象分析 2.2.2功能需求分析 2.2.3安全性与完整性分析 第三章系统设计 3.1系统架构图 3.2 E-R图 3.3 数据结构 3.3.1 用户信息结

    2024年02月06日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包