高校学籍管理系统 SQL Servre 数据库系统

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

高校学籍管理系统

**

一、课程设计的教学目的

**
1、使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容;
2、使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现
3、把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力。
基本功能要求:
实现学生信息、班级、院系、专业等的管理;
实现课程、学生成绩信息管理;
实现学生的奖惩信息管理;
创建规则用于限制性别项只能输入“男”或“女”;
创建视图查询各个学生的学号、姓名、班级、专业、院系;
创建存储过程查询指定学生的成绩单;
创建触发器当增加、删除学生和修改学生班级信息时自动修改相应班级学生人数;
建立数据库相关表之间的参照完整性约束。

1.1:需求分析

随着信息化时代的到来,人们的生活发生了巨大的变化,信息化时代带给了人们更多的处理数据的方式。学生学籍管理是一个非常繁琐且复杂的工作,其中的原因就是涉及到大量的学生学籍数据信息,这样庞大的一个数据群管理起来就想当麻烦,在传统的数据信息管理模式下,工作效率不仅低下,而且数据在存储、更新、删改等操作上会出现错误。基于以上出现的问题,开发一个学籍管理系统就显得很重要。

1.2:功能要求

该高校学籍管理系统主要是实现对大学在校生的学籍信息的系统化管理,具体的功能涉及实现对学生的基本信息、班级、专业、院系等的查询、修改和删除等功能,同时也会实现课程、学生成绩信息管理、实现学生的奖惩信息管理。
同时该高校学籍管理系统要创建学生信息视图,具体实现如下:
1.2.1创建学生基本信息视图,实现查询各个学生的学号、姓名、班级、专业、院系。
1.2.2该高校学籍管理系统要创建触发器当增加、删除学生和修改学生班级信息时自动修改相应班级学生人数。
1.2.3该高校学籍管理系统要创建存储过程查询指定学生的成绩单
1.2.4创建存储过程查询指定学生的成绩单;
该学籍管理系统会对学生信息进行系统化管理,在数据和数据之间实现关联性,较大程度的满足用户需求。

1.3:系统功能解决的问题

1.3.1提高管理人员的工作效率。
1.3.2对大量的数据信息进行统筹规划
1.3.3降低处理数据信息时出现的错误率。
1.3.4方便系统的后期维护。

**

二:数据库概念结构设计(E-R图)

**
根据需求分析结果,学生、教师、课程、题目、班级、专业、课程成绩、奖惩可建模为基本实体集。

2.1:关系数据模式

各基本实体集的属性定义如下:
(1)学生实体集。其属性有:(学号,姓名,性别,班级编号,院系编号,民族,年龄,出生日期,家庭地址,入学时间)
(2)班级实体集。其属性有:(班级编号,专业编号,班级名称,人数)
(3)专业实体集。其属性有:(专业编号,院系编号,专业名称)
(4)院系实体集。其属性有:(院系编号,院系名称)
(5)课程实体集。其属性有:(课程号,课程名,学分,学时)
(6)课程成绩实体集。其属性有:(课程号,学号,成绩)
(7)奖惩实体集。其属性有:(奖惩号,学号,奖惩名称,奖惩方案)

2.2:定义联系集及属性:

  1. 选课联系集:它是学生实体集与课程实体集的多对多联系集,其描述属性有:成绩,课程编号,学生编号
  2. 获得联系集:它是学生实体集与奖惩实体集的一对多联系集,没有联系属性。
  3. 共有联系集:它是院系实体集与学生实体集的一对多联系集,没有联系属性。
  4. 隶属联系集:它是班级实体集与学生实体集的一对多联系集,没有联系属性。
  5. 含有联系集:它是专业实体集和班级实体集的一对多联系集,没有联系属性。
  6. 包含联系集:它是院系实体集与专业实体集的一对多联系集,没有联系属性。

2.3:E-R图

某高校的学籍管理系统   部门、专业、班级等基本信息的管理;,数据库,数据库,sql,java,mysql,后端
某高校的学籍管理系统   部门、专业、班级等基本信息的管理;,数据库,数据库,sql,java,mysql,后端某高校的学籍管理系统   部门、专业、班级等基本信息的管理;,数据库,数据库,sql,java,mysql,后端

某高校的学籍管理系统   部门、专业、班级等基本信息的管理;,数据库,数据库,sql,java,mysql,后端

**

三:数据库逻辑结构设计

**
(下划线加粗代表主码,斜体加粗代表外码 )

(1)学生Student表:由学生关系实体集转化而来。
学生(学号,姓名,性别,班级编号,院系编号,民族,年龄,出生日期,家庭地址,入学时间;)

属性名称 数据类型 属性描述 约束条件
Sno char(16) 学号 primary key
Sname varchar(16) 姓名 not null
Ssex char(2) 性别 not null
Sage int 年龄 not null
Sbirth Datet 出生日期 not null
Slocation varchar(50) 籍贯 not null
Snation varchar(10) 民族 not null
Sadmission Date 入学日期 not null
Cno char(8) 班级编号 foreign key
Dno char(8) 院系编号 foreign key

(2)院系(Depart)表:由院系实体集转化而来。
院系(院系编号,院系名称)

属性名称 数据类型 属性描述 约束条件
Dno char(8) 院系编号 not null
Dname varchar(30) 院系名称 not null

(3)班级Class表:由班级实体集转化而来。
班级(班级编号,院系编号,班级名称,人数)

属性名称 数据类型 属性描述 约束条件
Cno char(8) 班级编号 primary key
Cname varchar(50) 班级名称 not null
Cnumber Int 班级人数 not null
Mno char(8) 专业编号 foreign key

(4)专业Major表:由专业实体集转化而来。
专业(专业编号,院系编号,专业名称);

属性名称 数据类型 属性描述 约束条件
Mno char(8) 专业编号 primary key
Mname varchar(30) 专业名称 not null
Dno char(8) 院系编号 foreign key

(5)课程Course表:由课程实体集转化而来。
课程(课程号,课程名,学分,学时)

属性名称 数据类型 属性描述 约束条件
Kno char(8) 课程编号 primary key
Kname char(20) 课程名称 not null
Kperiod smallint 学时 not null
Kcredit smallint 学分 not null

(6)成绩Grade表:由成绩实体集转化而来。
课程成绩(课程号,学号,成绩)

属性名称 数据类型 属性描述 约束条件
Kno char(8) 课程编号 primary key(foreign key)
Sno char(16) 学号 primary key(foreign key)
Ggrade int 成绩

(7)奖惩(Award_punish) 表: 奖惩实体集转化的关系模式。
奖惩(奖惩号,学号,等级,奖惩名称,奖惩方案)

属性名称 数据类型 属性描述 约束条件
APno char(16) 学号 foreign key
APlevel varchar(30) 等级 not null
APname varchar(30) 奖惩名 not null
APproject varchar(100) 奖惩方案 not null

四:模式求解

(1)学生(学号,姓名,性别,班级编号,专业编号,院系编号,民族,年龄,出生日期,家庭地址,入学时间)
分析Student关系模式得函数依赖关系为:
学号–>{姓名,性别,班级编号,专业编号,院系编号,民族,年龄,出生日期,家庭地址,入学时间}
满足BCNF范式。
(2)班级(班级编号,专业编号,院系编号,班级名称,人数)
分析班级关系模式得函数依赖关系为:
班级编号–>{专业编号,院系编号,班级名称,人数}
满足BCNF范式。
(3)课程(课程号,课程名,学分,学时)
分析课程关系模式得函数依赖关系为:
课程号–>{课程名,学分,学时}
满足BCNF范式。
(4)专业(专业编号,院系编号,专业名称)
分析专业关系模式得函数依赖关系为:
专业编号–>{院系编号,专业名称}
满足BCNF范式。
(5)院系(院系编号,院系名称)
分析院系关系模式得函数依赖关系为:
院系编号–>{院系名称}
满足BCNF范式。
(6) 课程成绩(课程号,学号,成绩)
分析课程成绩关系模式得函数依赖关系为:
(课程号,学号)–>{ 成绩}
满足BCNF范式。
(7)奖惩(奖惩号,学号,等级,奖惩名称,奖惩方案)
分析奖惩关系模式得函数依赖关系为:
奖惩号–>{学号,等级,奖惩名称,奖惩方案}
满足BCNF范式。

五:表的设计

(1) 学生实体集。其属性有:(学号,姓名,性别,班级编号,院系编号,民族,年龄,出生日期,家庭地址,入学时间)

 create table Student(
Sno char(16) primary key,
Sname varchar(16) not null,
Ssex char(2) not null,check(Ssex='男' or Ssex='女'),
Sage int not null, 
Snation varchar(20) not null,
Sbirth date not null,
Slocation varchar(50) not null,
Sadmission date not null,
Dno char(8) not null, 
Cno char(8) not null, 
foreign key (Dno) references Major(Dno),
foreign key (Cno) references Class(Cno));

(2) 班级实体集。其属性有:(班级编号,专业编号,班级名称,人数)

   create table Class(
Cno char(8) not null primary key,
Cname varchar(50) not null,
Cnumber int not null,
Mno char(8) not null,
foreign key (Mno) references Major(Mno));

(3)专业实体集。其属性有:(专业编号,院系编号,专业名称)

 create table Major(
Mno char(8) primary key,
Mname varchar(30) not null,
Dno char(8) not null, 
foreign key (Dno) references Depart(Dno));

(4)院系实体集。其属性有:(院系编号,院系名称)

create table Depart(
Dno char(8) not null primary key, 
Dname varchar(30)   not null);

(5) 课程实体集。其属性有:(课程号,课程名,学分,学时)

create table Course(
Kno char(8) not null primary key,
Kname varchar(20) not null,    
Kperiod smallint not null,
Kcredit smallint not null);
 

(6)课程成绩实体集。其属性有:(课程号,学号,成绩)

create table Grade(
Kno  char(8) not null,
Sno  char(16) not null,
Ggrade int,
primary key(Sno,Kno),
foreign key(Sno) references Student(Sno),
foreign key(Kno) references Course(Kno));

(7)奖惩实体集。其属性有:(奖惩号,学号,奖惩名称,奖惩方案)

create table Award_Punish(
APno char(8) not null  primary key,
APname  varchar(30) not null,
APproject varchar(100) not null,
APlevel varchar(30) not null,
Sno char(16) not null, 
foreign key (Sno) references Student(Sno));

六:功能设计

1、 创建视图查询各个学生的学号、姓名、班级、专业、院系;

create view A_Student(Sno,Sname,Cname,Mname,Dname)
as
select Sno,Sname,Cname,Mname,Dname
from Student,Class,Major,Depart
where Class.Cno=Student.Cno
and Class.Mno=Major.Mno
and Student.Dno = Depart.Dno;

2、 创建存储过程查询指定学生的成绩单;

create procedure pro_Ggrade
@Sno char(16)=null,
@Sname varchar(16)=null
 as
    if(@Sno is null or @Sname is null )
    begin 
      print '请输入学号与姓名!'
    end
    else if(
        (select Sname from Student where Sno = @Sno) != @Sname 
    or (select Sno from Student where Sname = @Sname) != @Sno 
    )
     begin
      print '输入有误!'
     end
    else
    begin
      select Student.Sno,Sname,Kname,Ggrade
      from Student,Grade,Course
      where Student.Sno = Grade.Sno
      and Grade.Kno = Course.Kno
      and Sname = @Sname
    end
 go

检验

use StudentManagement
exec pro_Ggrade '20204091102','内马尔'

3、 创建触发器当增加、删除学生和修改学生班级信息时自动修改相应班级学生人数;

a.创建触发器,当增加学生班级信息时自动修改相应班级学生人数

create trigger insert_stu
on Student for insert
as
 begin
  declare @cno char(8)
  select @cno=Cno from inserted
  update Class set Cnumber = Cnumber + 1 where Cno = @cno
end

在Student表中插入一条数据:

insert into Student values('20204091106','灏川','男',20,'汉族','2001-02-03','河南安阳','2020-09-30','2020401','01' )

b.创建触发器,当删除学生班级信息时自动修改相应班级学生人数

create trigger delete_stu
on Student for delete
as
 begin
  declare @cno char(8)
  select @cno=Cno from deleted
  update Class set Cnumber = Cnumber - 1 where Cno = @cno
 end

在Student表中删除一条数据

delete from Student where Sname = '灏川'
c.创建触发器,当修改学生班级信息时自动修改相应班级学生人数
create trigger update_stu
on Student for update
as
 begin
  declare @cno1 char(8)
  declare @cno2 char(8)

–存放更新前的数据

  select @cno1=Cno from deleted

–存放更新后的数据

  select @cno2=Cno from inserted
  update Class set Cnumber = Cnumber - 1 where Cno = @cno1
  update Class set Cnumber = Cnumber + 1 where Cno = @cno2
 end

在Student表中更改一条数据,将灏川的班级“01”更改为“02”

update Student set Cno = '02' where Sname = '灏川'

4、 用户创建不同的登录名,对应不同的用户名,给予不同的权限

登陆名 密码 用户 权限
Teacher 111 T1 查看,插入,修改
student 111 S1 查看

a.创建老师登录名,对应T1用户及授予的权限

create login teacher with password = '111'
create user T1 for login teacher
use StudentManagement
grant select,update,insert      
On class
to T1 
grant select,update,insert      
On Depart
to T1 
grant select,update,insert      
On Award_Punish
to T1 
grant select,update,insert      
On Major
to T1 
grant select,update,insert      
On Grade
to T1

b. 创建学生登录名,对应S1用户及授予的权限

create login student with password = '111'
create user S1 for login student
use StudentManagement
grant select   
On class
to S1 
grant select   
On Depart
to S1 
grant select      
On Award_Punish
to S1 
grant select     
On Major
to S1
grant select     
On Grade
to S1 
grant select     
On course
to S1

5、 完成如下功能
(1)查看某位学生的基本信息

select * from student where Sno='20204010116';

(2)查询年龄小于20的学生的基本信息,SQL语句如下:

select * from Student where Sage < 20

(3)查询选修了“数据库系统”课程的学生的学号、姓名、成绩,其中按照成绩从大到小的顺序排列

select Student.Sno,Sname,Ggrade 
from Student,Grade
where Student.Sno = Grade.Sno and Grade.Kno = 'L01' 
order by Ggrade desc

(4).查询选修“数据库系统”课程所有学生的平均成绩

select Course.Kname 课程名称,avg(Ggrade) 平均成绩 
from Grade,Course 
where Grade.Kno = Course.Kno 
and Course.Kname = '数据库系统'
GROUP BY Course.Kname

(5)将家庭地址为“河南”的学生的家庭地址更改为“江苏”

update Student set Slocation = '江苏' where Slocation = '河南'

(6) 删除学号为“”学生的奖惩信息

delete from Award_punish where Sno = '20204092106'

七:总结

经过一周的课程设计,我学到了很多知识,个人的能力有了很大的提高,
通过此次课程设计,使我更加扎实的掌握了有关数据库方面的知识,在设计过程中虽然遇到了一些问题,但经过不断的思考和检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。这次的课程设计使我学习到很多课堂上没有学习到的知识。也使我对常用画图软件、文档编辑等知识掌握得更加熟练。虽然课设已经完成,但是本系统还存在着不足,如系统十分简单,安全性问题没有很好的解决等。所以在今后的学习中我会继续努力完善自我,同学的帮助、指导老师的用心辅导和学校的精心安排使这个课题能够顺利进行。但是,由于时间仓促以及本人水平有限,本系统还有很多不完善之处,希望在此后的学习中可以不断将其优化。文章来源地址https://www.toymoban.com/news/detail-777899.html

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

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

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

相关文章

  • 数据库系统课程设计(高校成绩管理数据库系统的设计与实现)

    目录 1、需求分析 1 1.1 数据需求描述 1 1.2 系统功能需求 3 1.3 其他性能需求 4 2、概念结构设计 4 2.1 局部E-R图 4 2.2 全局E-R图 5 2.3 优化E-R图 6 3、逻辑结构设计 6 3.1 关系模式设计 6 3.2 数据类型定义 6 3.3 关系模式的优化 8 4、物理结构设计 9 4.1 聚簇设计 9 4.2 索引设计 9 4.3 分区设

    2024年02月03日
    浏览(53)
  • 基于NET+SQL SERVER的高校一卡通管理系统

    末尾获取源码 随着网络科技的不断发展以及人们经济水平的逐步提高,计算机如今已成为人们生活中不可缺少的一部分,为了高校方便实行一卡通管理,基于NET技术设计与实现了一款简洁、轻便的高校一卡通管理系统。本系统解决了高校一卡通管理中的主要问题,包括系统首

    2024年01月17日
    浏览(32)
  • asp毕业设计——基于asp+sqlserver的学籍管理系统设计与实现(毕业论文+程序源码)——学籍管理系统

    大家好,今天给大家介绍基于asp+sqlserver的学籍管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦 文章目录: 本文是在Microsoft AS

    2024年02月06日
    浏览(36)
  • 程序设计课程设计——学生学籍管理系统

    通过设计一个小型的应用系统,使学生进一步掌握面向对象的程序设计方法,运用C++中的类与对象的概念结合面向对象程序设计的思想,独立完成应用系统的设计,并养成良好的编程习惯。通过这个实践教学平台,培养学生对计算机应用系统的综合设计能力,培养学生正确分

    2024年02月09日
    浏览(36)
  • 基于java的学籍管理系统设计与实现

    基于java的学籍管理系统设计与实现 研究背景: 随着教育信息化的不断推进,学生的学籍管理成为高校和教育机构的一项重要工作。传统的学籍管理方式存在着很多问题,如信息共享性差、数据处理效率低、信息准确度不高、查询和统计困难等。为了解决这些问题,基于Jav

    2024年02月02日
    浏览(29)
  • C语言程序设计——学生学籍管理系统

    一、题目设计及其要求 1、题目:学生学籍管理系统 用数据文件存放学生的学籍,可对学生学籍进行注册、修改、查找、统计、学籍变化等操作。(用文件保存) 2、功能要求: (1)系统以菜单方式工作; (2)登记学生的学号,姓名,性别,年龄,籍贯,学院,专业,班级

    2024年02月11日
    浏览(34)
  • asp.net高校食谱管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

    一、源码特点         asp.net高校食谱管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net高校食谱管理系统VS开发sqlserver数据 二、功能介绍 (1)用户管理:对用户信

    2024年02月09日
    浏览(35)
  • 基于Java的学籍管理系统 毕业设计开题报告

     博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月04日
    浏览(32)
  • IDEA+SpringBoot+mybatis+SSM+layui+Mysql学生学籍管理系统

    本系统实现了学生学籍管理系统,管理端实现了管理员登录、 专业管理、 班级管理、 学生管理、 老师管理、 公告管理、 课程管理、 开课管理、 用户管理,还有老师端和学生端 JDK版本:1.8 Mysql:5.7 账号:admin 密码:123456 点击以下链接获取源码。 IDEA+SpringBoot+mybatis+SSM+layui+Mysq

    2024年02月12日
    浏览(55)
  • JSP学生学籍管理系统(源代码+论文+开题报告+外文翻译+答辩PPT)

    随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。 本文采用JSP和MS SQ

    2024年02月06日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包