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

2024-06-29 1691阅读

要求实现功能:

(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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]