IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 高校学籍管理系统(SQL Server数据库课程设计) -> 正文阅读

[大数据]高校学籍管理系统(SQL Server数据库课程设计)

1.概述

1.1数据库设计选题背景

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

1.2功能要求

??????一:实现学生信息、班级、院系、专业等的管理;

??????二:实现课程、学生成绩信息管理;

??????三:实现学生的奖惩信息管理;

??????四:建立数据库相关表之间的参照完整性约束。

??????五:创建规则用于限制性别项只能输入“男”或“女”;

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

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

??????八:创建存储过程查询指定学生的成绩单;

1.3系统功能解决的问题

??????一:提高管理人员的工作效率。

??????二:对大量的数据信息进行统筹规划

??????三:降低处理数据信息时出现的错误率。

??????四:方便系统的后期维护。

2.需求分析

???????该高校学籍管理系统主要是实现对大学在校生的学籍信息的系统化管理,具体的功能涉及实现对学生的基本信息、班级、专业、院系等的查询、修改和删除等功能,同时也会实现课程、学生成绩信息管理、实现学生的奖惩信息管理。

???????同时该高校学籍管理系统要创建学生信息视图,具体实现如下:

?????????一:创建学生基本信息视图,实现查询各个学生的学号、姓名、班级、专业、院系。

?????????二:创建学生成绩视图,实现查询各个学生的学号、姓名、课程、成绩。

?????????三:创建学生奖惩视图,实现查询各个学生的学号、姓名、班级、专业、院系、奖惩号、奖惩名、奖惩方案。

???????该高校学籍管理系统要创建触发器当增加、删除学生和修改学生班级信息时自动修改相应班级学生人数。

???????最后,该高校学籍管理系统要创建存储过程查询指定学生的成绩单

???????该学籍管理系统会对学生信息进行系统化管理,在数据和数据之间实现关联性,较大程度的满足用户需求。

3.概念结构设计

3.1抽象出系统的实体

根据设计学生管理系统的需要,可以抽象出以下实体:
???????? (1)学生信息
???????? (2)班级信息
???????? (3)专业信息
???????? (4)院系信息
???????? (5)课程信息
???????? (6)课程成绩信息
???????? (7)奖惩信息

3.2设计实体属性图

(1).学生实体属性图
学生实体属性图
(2).班级实体属性图
在这里插入图片描述
(3).专业实体属性图
在这里插入图片描述
(4).院系实体属性图
在这里插入图片描述

(5).课程实体属性图
在这里插入图片描述
(6).课程成绩实体属性图
在这里插入图片描述

(7).奖惩实体属性图
在这里插入图片描述

3.3全局E-R图

全局E-R图

4.逻辑结构设计

关系数据模式
(1)学生(学号,姓名,性别,班级编号,专业编号,院系编号,民族,年龄,出生日期,家庭地址,入学时间)
(2)班级(班级编号,专业编号,院系编号,班级名称,人数)
(3)专业(专业编号,院系编号,专业名称)
(4)院系(院系编号,院系名称)
(5)课程(课程号,课程名,学分,学时)
(6)课程成绩(课程号学号,成绩)
(7)奖惩(奖惩号,学号,专业编号,院系编号,奖惩名称,奖惩方案)

5.数据库物理设计与实施

5.1数据库关系图

????????根据概念结构设计和逻辑结构的内容,可以将此学籍管理系统设计出7个表,分别为“Student表”、“Class表”、“Major表”、“Department表”、“Course表”、“Grader表”和“Award_punish表”。具体如下:
这7张表的数据库关系图如下:
在这里插入图片描述

5.2表的创建

1.Department表 (院系表)

列名数据类型约束说明
Didvarchar(30)primary key院系编号
Dnamevarchar(30)not null院系名称

2.Major表 (专业表)

列名数据类型约束说明
Midvarchar(30)primary key专业编号
Didvarchar(30)foreign key 院系编号
Mnamevarchar(30)not null专业名称

3.Class表 (班级表)

列名数据类型约束说明
Cidvarchar(30)primary key班级编号
Midvarchar(30)foreign key 专业编号
Didvarchar(30)foreign key院系编号
Cnamevarchar(30)not null班级名称
Cnumberintnot null班级人数
4.Student表 (学生表)
列名数据类型约束说明
idvarchar(30)primary key学号
namevarchar(30)not null 姓名
sexchar(2)not null性别
Cidvarchar(30)foreign key班级编号
Midvarchar(30)foreign key专业编号
Didvarchar(30)foreign key院系编号
nationvarchar(20)not null民族
ageintnot null年龄
birthdaydatenot null出生日期
locationvarchar(20)not null家庭地址
enrolldatenot null入学时间

5.Course表 (课程表)

列名数据类型约束说明
kidvarchar(30)primary key课程编号
Knamevarchar(30)not null课程名称
Kcreditintnot null学分
Kperiodintnot null学时

6.Grade表 (课程成绩表)

列名数据类型约束说明
Kidvarchar(30)primary key课程编号
idvarchar(20)primary key学号
Ggradeintnot null成绩
7.Award_punish表 (奖惩表)
列名数据类型约束说明
Aidvarchar(20)primary key奖惩号
idvarchar(20)foreign key学号
Midvarchar(30)foreign key专业编号
Didvarchar(30)foreign key院系编号
Anamevarchar(30)not null奖惩名
Aprojectvarchar(100)not null奖惩方案

6.数据操作要求及实现

6.1数据查询

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

  select * from Student where age < 20

???????? 查询结果如下图所示。
在这里插入图片描述
2.查询班级为“软工一班”,且家庭住址的省会为“河南”的学生基本信息,SQL语句如下:

 select * from Student where Cid = 'RG1' and location like '河南%'

???????? 查询结果如下图所示。
在这里插入图片描述

3.查询选修了“SJK3”课程的学生的学号、姓名、成绩,其中按照成绩从大到小的顺序排列,SQL语句如下:

select Student.id,name,Ggrade from Student,Grade
where Student.id = Grade.id and Grade.Kid = 'SJK3' 
order by Ggrade desc

???????? 查询结果如下图所示。
在这里插入图片描述

4.查询选修“大学英语”课程所有学生的平均成绩,SQL语句如下:

select avg(Ggrade) 平均成绩 from Grade,Course 
where Grade.Kid = Course.Kid 
and Course.Kname = '大学英语'

???????? 查询结果如下图所示。
在这里插入图片描述

5.查询获得“三好学生”称号的学生的学号、姓名、专业编号、院系编号,SQL语句如下:

select Student.id 学号,name 姓名,Mname 专业名称,Dname 院系名称
from Student,Major,Department,Award_punish 
where Student.id = Award_punish.id
and Major.Mid = Award_punish.Mid
and Department.Did = Award_punish.Did 
and Aname = '三好学生'

???????? 查询结果如下图所示。
在这里插入图片描述

6.将家庭地址为“江苏南京”的学生的家庭地址更改为“河南郑州”,SQL语句如下:

update Student set location = '河南郑州' where location = '江苏南京'

???????? 更改结果如下图所示。
???????? ???????? 更改前:
在这里插入图片描述
???????? ???????? 更改后:
在这里插入图片描述

7.将课程“大学英语"的学时更改为68,SQL语句如下:

update Course set Kperiod = 68 where Kname = '大学英语'

???????? 更改结果如下图所示。
???????? ???????? 更改前:
在这里插入图片描述
???????? ???????? 更改后:
在这里插入图片描述

8.删除学号为“”学生的奖惩信息,SQL语句如下:

delete from Award_punish where id = '201130321'

???????? 删除结果如下图所示。

???????? ???????? 删除前:
在这里插入图片描述

???????? ???????? 删除后:
在这里插入图片描述

6.2视图

1:创建学生基本信息视图,实现查询各个学生的学号、姓名、班级编号、专业编号、院系编号,SQL语句如下:

create view A_Student(id,name,Cname,Mname,Dname)
as
select id,name,Cname,Mname,Dname
from Student,Class,Major,Department
where Class.Did = Department.Did
and Class.Mid = Major.Mid
and Student.Did = Department.Did
and Student.Mid = Major.Mid
with check option

???????? 视图的执行结果如下:
在这里插入图片描述

2:创建学生成绩视图,实现查询各个学生的学号、姓名、课程、成绩,SQL语句如下:

create view B_Grade(id,name,Kname,Ggrade)
as
select Student.id,name,Kname,Ggrade
from Student,Grade,Course
where Student.id = Grade.id
and Grade.Kid = Course.Kid
with check option

???????? 视图的执行结果如下:
在这里插入图片描述

3:创建学生奖惩视图,实现查询各个学生的学号、姓名、班级、专业、院系、奖惩号、奖惩名、奖惩方案,SQL语句如下:

create view C_Award_punish
(id,name,Cname,Mname,Dname,Aid,Aname,Aproject)
as
select Student.id,name,Cname,Mname,Dname,Aid,Aname,Aproject
from Student,Class,Major,Department,Award_punish
where Student.id = Award_punish.id
and Award_punish.Mid = Major.Mid
and Award_punish.Did = Department.Did
and Class.Did = Department.Did
and Class.Mid = Major.Mid
with check option

???????? 视图的执行结果如下:
在这里插入图片描述

6.3触发器

1.创建触发器,当增加学生班级信息时自动修改相应班级学生人数,SQL语句如下:

create trigger insert_stu
on Student for insert
as
 begin
  declare @cid varchar(30)
  select @cid=Cid from inserted
  update Class set Cnumber = Cnumber + 1 where Cid = @cid
end

????????在Student表中插入一条数据:

insert into Student values('201130332','陈思宇','男','RG1','RJ11','RJ111','汉族',20,'2001-02-03','海南文昌','2020-09-30')

????????执行结果如下:
在这里插入图片描述

2.创建触发器,当删除学生班级信息时自动修改相应班级学生人数,SQL语句如下:

create trigger delete_stu
on Student for delete
as
 begin
  declare @cid varchar(30)
  select @cid=Cid from deleted
  update Class set Cnumber = Cnumber - 1 where Cid = @cid
 end

????????在Student表中删除一条数据:

 delete from Student where name = '陈思宇'

????????执行结果如下:
在这里插入图片描述

3.创建触发器,当修改学生班级信息时自动修改相应班级学生人数,SQL语句如下:

create trigger update_stu
on Student for update
as
 begin
  declare @cid1 varchar(30)
  declare @cid2 varchar(30)
  --存放更新前的数据
  select @cid1=Cid from deleted
  --存放更新后的数据
  select @cid2=Cid from inserted
  update Class set Cnumber = Cnumber - 1 where Cid = @cid1
  update Class set Cnumber = Cnumber + 1 where Cid = @cid2
 end

????????在Student表中更改一条数据,将王小虎的班级“RG1”更改为“YY1”

update Student set Cid = 'YY1' where name = '王小虎'

????????执行结果如下:
???????? 更改前:
在这里插入图片描述

????????更改后:
在这里插入图片描述

6.4存储过程

1.创建存储过程查询指定学生的成绩单,SQL语句如下:

create procedure pro_grade
@id varchar(30)=null,
@name varchar(30)=null
 as
    if(@id is null or @name is null )
    begin 
      print '请输入学号与姓名!'
    end
    else if(
        (select name from Student where id = @id) != @name 
    or (select id from Student where name = @name) != @id 
    )
     begin
      print '输入有误!'
     end
    else
    begin
      select Student.id,name,Kname,Ggrade
      from Student,Grade,Course
      where Student.id = Grade.id
      and Grade.Kid = Course.Kid
      and name = @name
    end
 go

???????? 执行结果如下:
????????1.当未输入学号或姓名时,提示“请输入学号与姓名!”
在这里插入图片描述

???????? 2.当输入信息有误时,提示“输入有误!”
在这里插入图片描述

????????3.当输入正确的学号和姓名时,打印出该学生的成绩单。
在这里插入图片描述
完整课程设计报告可加我Q:2533694604

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 15:49:12  更:2021-12-23 15:49:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:09:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码