首页 > 编程之美 > 基于RBAC的大学学生成绩管理系统
2013
08-17

基于RBAC的大学学生成绩管理系统

BACK TOP文章索引

1.背景
当今社会是一个信息爆炸的社会,因为信息科技人们生活发生了巨大的变化,以计算机技术为代表的应用及普及到经济和社会生活的各个方面。这是属于一个大数据的时代,数据库系统几乎在每个领域都发挥着重大作用,用于加强对大量信息的管理,方便了人们的生活。

在大学里学生成绩管理如果靠人力将十分麻烦,有必要设计一个成绩管理系统,为了加强系统的安全性,引入了基于角色的访问控制模型(RBAC),应用该模型可以使不同用户登陆后得到不同的访问权限,不具有某个权限的用户将不能操作该权限,从数据库层进行权限控制有利于提高系统易用性,可扩展性,健壮性以及安全性。本次课程设计就是要设计一个基于RBAC的成绩管理系统,要从底层对用户权限进行控制,而不是在应用层。

2.系统需求分析
2.1需求描述
该成绩管理系统基于RBAC技术,能够对大学里各学生的成绩进行管理。系统有三个角色,分别是学生,教师以及管理员,管理员的权限最大。

学生通过该系统可以查询到自己某个课程的成绩,以及选择某个老师的某个课程。

教师可以录入所教课程学生的成绩,但不能修改,如果要修改只能联系管理员修改,还有查询有哪些学生选了他的课。

管理员拥有所有权限,包括删除用户,给用户重置登录密码,对各表的记录进行删除,增加,修改等。

该系统在微软的SQL SERVER 2008上进行开发,操作系统环境为Windows 7,通过写好的存储过程在数据库层完成各种操作,从而实现成绩管理。

2.2系统功能结构
基于RBAC的大学学生成绩管理系统 - 第1张  | Jianchihu

2.3数据流图
基于RBAC的大学学生成绩管理系统 - 第2张  | Jianchihu

3.数据库设计
3.1全局E-R图
ER图包括两个部分,一个有关用户权限分配,一个有关学生的成绩管理。
基于RBAC的大学学生成绩管理系统 - 第3张  | Jianchihu

3.2数据字典
基于RBAC的大学学生成绩管理系统 - 第4张  | Jianchihu
基于RBAC的大学学生成绩管理系统 - 第5张  | Jianchihu
基于RBAC的大学学生成绩管理系统 - 第6张  | Jianchihu

3.3数据库内关系表定义
用户信息(用户ID,用户名,用户密码)
用户-角色(用户ID,角色ID)
角色(角色ID,角色名)
角色—权限(角色ID,权限ID)
权限(权限ID,动作,对象,表名)
学生成绩(学号,课程号,姓名,成绩)
选课(课程号,课程名,学号,教师号)
教师(教师号,姓名,课程号)
加下划线的表示为主键。

4.数据库实现
4.1关系表(及相关视图)创建SQL代码
建立系统注册成员的信息表,包括用户唯一的账号,密码,姓名:

建立角色信息表:

建立用户角色联系的表:

建立角色权限联系的表:

建立权限信息表:

建立学生成绩表,包括学号,姓名,课程号,成绩:

建立教师表,包括教师号,姓名,课程名:

建立选课表:

建立临时表,用于存储某个用户的权限:

4.2存储过程、触发器等的创建SQL代码
用户注册:

修改密码:

用户角色分配:

角色权限分配:

删除角色某个权限:

将某用户数据放入前面创建的一张临时表temp中,调用该存储过程可知用户有哪些权限:

从临时表得到数据,判断用户是否有此权限:

安排教师教授某个课程,只有管理员有这权限

学生选课:

往student表添加一行数据,即录入成绩,由前面的权限分配可知只有教师管理员有这权限:

往student表删除某行数据:

删除某个用户:

5.应用场景描述(SQL SERVER 2008模拟

在场景描述前我们先为该系统注册了三个用户,分别是张三(ID:1,学生),李四(ID:2,教师),王五(ID:3,管理员),角色信息表按如下初始化:

根据上述权限信息,我们给学生,教师,管理员分配了各种权限,示例场景如下:

1)给老师安排某个课程:
假设李四的教师号为2,我们要给李四安排教学1号课程,用到的存储过程为procedure jiaoke。

首先让学生张三安排,执行exec jiaoke 1,2,’李四’,’1’,得到结果:
基于RBAC的大学学生成绩管理系统 - 第7张  | Jianchihu
基于RBAC的大学学生成绩管理系统 - 第8张  | Jianchihu

消息提示该用户无此权限,同时左侧结果提示拥有的权限,避免盲目操作。

同理2号用户作为老师的李四执行也是相同结果,接着安排管理员,3号用户王五执行:exec jiaoke 3,2,’李四’,’1’,得到结果:
基于RBAC的大学学生成绩管理系统 - 第9张  | Jianchihu
基于RBAC的大学学生成绩管理系统 - 第10张  | Jianchihu

2)学生选课:

我们要给张三安排课程,假设安排的是课程号为1,课程名为计算机,李四老师上的课,对于选课,只有学生,管理员有这权限。

首先张三选课,假设张三学号为111,执行:

exec xuanke 1,1,’计算机’,111,2,得到结果:

基于RBAC的大学学生成绩管理系统 - 第11张  | Jianchihu
基于RBAC的大学学生成绩管理系统 - 第12张  | Jianchihu

教师李四执行:exec xuanke 2,1,’计算机’,111,2,结果为:

基于RBAC的大学学生成绩管理系统 - 第13张  | Jianchihu
基于RBAC的大学学生成绩管理系统 - 第14张  | Jianchihu

管理员执行时得到与学生相同的结果。

3)录入成绩

学生选完课后,就可以录入成绩了,此时只有老师管理员有此权限,首先让学生张三自己录入成绩,执行exec saddhan 1,111,’张三’,1,95,’计算机’,系统提示无此操作权限。
基于RBAC的大学学生成绩管理系统 - 第15张  | Jianchihu
基于RBAC的大学学生成绩管理系统 - 第16张  | Jianchihu

2号教师执行:exec saddhan 1,111,’张三’,1,95,’计算机’,得到结果:
基于RBAC的大学学生成绩管理系统 - 第17张  | Jianchihu
基于RBAC的大学学生成绩管理系统 - 第18张  | Jianchihu

最后编辑:
作者:Jianchihu
管理员——低调做事,低调做人

留下一个回复

你的email不会被公开。

This site uses Akismet to reduce spam. Learn how your comment data is processed.