基于角色访问的数据库课程设计实验报告.docx

上传人:b****6 文档编号:8116357 上传时间:2023-01-28 格式:DOCX 页数:34 大小:295.20KB
下载 相关 举报
基于角色访问的数据库课程设计实验报告.docx_第1页
第1页 / 共34页
基于角色访问的数据库课程设计实验报告.docx_第2页
第2页 / 共34页
基于角色访问的数据库课程设计实验报告.docx_第3页
第3页 / 共34页
基于角色访问的数据库课程设计实验报告.docx_第4页
第4页 / 共34页
基于角色访问的数据库课程设计实验报告.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

基于角色访问的数据库课程设计实验报告.docx

《基于角色访问的数据库课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《基于角色访问的数据库课程设计实验报告.docx(34页珍藏版)》请在冰豆网上搜索。

基于角色访问的数据库课程设计实验报告.docx

基于角色访问的数据库课程设计实验报告

目录

1、实验内容………………………………………………………3

2、问题描述………………………………………………………5

3、需求分析………………………………………………………5

4、系统设计………………………………………………………6

5、系统实现………………………………………………………13

6、场景描述………………………………………………………24

7、实验总结………………………………………………………28

8、心得体会………………………………………………………29

9、参考文献………………………………………………………29

 

实验课题大学评教系统

一实验内容

1.实验目标

●掌握如何在真实数据库系统中实现基于角色访问控制(RBAC)模型

●掌握如何在特定软件系统中基于RBAC模型访问和操控数据库。

2.实验目标

●在真实数据库系统中实现RBAC模型

●开发应用演示界面,演示如何基于RBAC访问某数据库

●演示界面最好是可实际操作的可视化界面,要能演示。

●如果未可视化,必须演示代码运行过程及结果。

●数据库依据应用系统的需求而定,应用系统从如下列表中选择。

题目列表

1.图书出版管理系统

2.大学教学管理系统

3.大学学生成绩管理系统

4.大学教工管理系统

5.大学评课系统【实验选题】

6.大学贵重仪器管理系统

7.大学后勤管理系统

8.科研会议管理系统

9.课外培训管理系统

原理:

RBAC简介

基于角色访问控制(RBAC)是当前主流的数据库访问控制技术。

RBAC的一般模型如下:

RBAC参考模型通过四个RBAC模型组件来进行定义——核心RBAC﹑角色层次RBAC﹑静态职责分离关系﹑动态职责分离关系。

核心RBAC定义了能够完整地实现一个RBAC系统所必需的元素﹑元素集和关系的最小集合,其中包括最基本的用户/角色分配和权限/角色分配关系。

此外,它还引入了角色激活的概念作为计算机系统中用户会话的一个组成部分。

核心RBAC对于任何RBAC系统而言都是必需的,其它RBAC组件彼此相互独立并且可以被独立地实现。

角色层次RBAC组件支持角色层次。

角色层次从数学上讲是一个定义角色之间级别关系的偏序,高级别的角色获得低级别角色的权限,低级别角色获得高级别角色的用户成员。

此外,层次RBAC还引入了角色的授权用户和授权权限的概念。

静态职责分离针对用户/角色分配定义了角色间的互斥关系。

由于可能与角色继承产生不一致,静态职责分离关系组件在没有角色层次和存在角色层次的情况下分别进行了定义。

动态职责分离关系针对用户会话中可以激活的角色定义了互斥关系。

每个模型组件都由下列子组件来定义:

a)一些基本元素集;

b)一些基于上述基本元素集的RBAC关系;

c)一些映射函数,在给定来自某个元素集的实例元素的情况下能够得到另一个元素集的某些实例元素。

RBAC参考模型给出了一种RBAC特征的分类,可以基于这些分类的特征构建一系列RBAC特征包。

本标准的主要目的不是试图定义RBAC特征的全集,而是致力于提供一组标准的术语来定义已有的模型和商业产品中最主要的RBAC特征。

核心RBAC的元素集和关系在图1中进行了定义。

核心RBAC包含了5个基本的数据元素:

用户集(USERS)﹑角色集(ROLES)﹑对象集(OBJS)﹑操作集(OPS)﹑权限集(PRMS)。

权限被分配给角色,角色被分配给用户,这是RBAC的基本思想。

角色命名了用户和权限之间的多对多的关系。

此外,核心RBAC中还包含了用户会话集,会话是从用户到该用户的角色集的某个激活角色子集的映射。

角色是组织上下文中的一个工作职能,被授予了角色的用户将具有相应的权威和责任。

权限是对某个或某些受RBAC保护的对象执行操作的许可。

操作是一个程序的可执行映像,被调用时能为用户执行某些功能。

操作和对象的类型依赖于具体系统,例如在一个文件系统中,操作可以包含读﹑写﹑执行;在数据库管理系统中,操作包含select、insert﹑delete﹑update等。

访问控制机制的核心功能是保护系统资源。

与以前的访问控制模型一致,RBAC模型中的对象是包含或接收信息的实体。

对一个实现RBAC的系统,对象可以代表信息容器(如操作系统中的文件和目录或数据库中的表﹑视图﹑字段),或者诸如打印机﹑磁盘空间﹑CPU周期等可耗尽的系统资源。

RBAC覆盖的对象包括所有在分配给角色的权限中出现的对象。

角色层次通常被作为RBAC模型的重要部分,并且经常在RBAC商业产品中得以实现。

角色层次可以有效地反映组织内权威和责任的结构。

角色层次定义了角色间的继承关系。

继承通常是从权限的角度来说的,例如,如果角色r1“继承”角色r2,角色r2的所有权限都同时为角色r1所拥有。

在某些分布式RBAC实现中,角色层次是集中管理的,而权限/角色分配却是非集中管理的。

对这些系统,角色层次的管理主要是从用户成员包含关系的角度进行的:

如果角色r1的所有用户都隐含地成为角色r2的用户,则称角色r1“包含”角色r2。

这种用户成员包含关系隐含了这样一个事实:

角色r1的用户将拥有角色r2的所有权限。

然而角色r1和角色r2之间的权限继承关系并不对它们的用户分配做任何假设。

2、问题描述

本实验课题为“大学评教系统”,用来实现大学教师学生的相互评价,从评分结果来判断教学质量以及学生的学习态度、学习状况等。

教学工作是学校工作的重中之重,教师在教学过程中发挥着主导作用。

科学地评价教师的教学行为,对教师自身发展和学校办学质量的提高有着极为重要的意义。

但在相当长的时期内,教育行政部门和学校总是将教学成绩作为最重要的评价指标,而且往往以这种片面的教师绩效评价代替对教师教学行为的评价。

但是,教师不仅要让学生掌握知识,更要让学生学会做人,加之不同的学生有着不同的基础、潜力和成长环境,而且处于不断的变化之中,所以,完全用教学成绩来衡量教师的教学水平,是有很大不足的。

所以,我们应该给学生更多的空间来评价这个老师的教学质量。

大学评教系统能够实现这个功能。

同时,评价一个学生,往往从他的期末考试成绩出发,评定这个学生的好坏。

如果一个学生学习状态很好,但期末考试由于一些原因不是很理想,但从期末考试成绩来评价,对这个学生也是很不公平的。

而且对于一个学生的评价,也应该包括思想品质,学习态度等人格方面的认定。

所以,大学评教系统给了老师一个权力,可以给自己所教授的学生一个客观公正的素质评价。

这样就避免了单一从末考成绩判定学生的片面性。

大学评教系统提供了一个教师和学生之间的交流平台,有利于学生更改自己的不足之处,同时也给教师提供建议,提高教学质量。

对教师和学生的评价更加公平,有利于教学质量和学生成长的健康发展。

三、需求分析

3.1系统功能要求设计

(1)通过用户名和密码登陆系统,查询课程和用户的基本信息

(2)老师通过用户名和密码登陆系统,查询所选学生的成绩,并且可以进行相关修改。

同时,也可以查看学生给自己的评分

(3)学生通过用户名和密码登陆系统,查询授课考试的评分,并且可进行相关修改。

同时,也可以查看教师给自己的评分。

(4)管理员通过用户名和密码登陆,可以查询和修改评分信息,可以修改角色权限,可以查看更新用户信息和密码。

3.2系统功能流图

系统设计以前,要对系统需求进行归纳分析,查找出所有的业务主角,确定业务主角后,每个主角的相关活动及流程应清晰地制定出来,最终设计出逻辑视图、用户界面示意图。

在进行业务流程设计,需要注意以下事项:

 

1,调查用户网络环境和配置,使系统能够具有合理可行的系统架构; 

2,调查用户偏好和技能水平,这将直接影响到项目开发的深度和用户界面的设计; 

3,预测并制定系统的性能指标,为编写测试计划提供依据。

 

经过对系统功能的分析,调查,研究,可以对该系统绘制业务流程图,如图2.2所示:

(其中图2.1是业务流程图图例)

图2.1

图2.2

 

四、系统设计

4.1系统的性能需求及可行性分析

系统的性能需求:

操作简单:

本系统应该适用于不同水平的使用者,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。

使用简便:

用户操作简洁明了,使用简单方便。

代码可读性好:

文中的代码将尽可能简洁,易懂。

便于修改和维护。

4.2大学评教系统具体功能结构图

图3.1大学评教系统结构图

4.3系统功能详细设计

通过对本系统的分析,该系统主要实现的功能有:

管理员后台管理模块、学生登录模块、教师登录模块。

下面针对各模块的详细设计进行说明。

4.4.1管理员后台管理模块

该模块主要是对人员信息、课程评比信息、系统管理信息。

其中对人员信息管理主要包括对学生信息管理、教师信息管理、教师学生课程对应关心管理;课程评比管理模块主要实现的是查看评比结果、修改对应评比结果;系统管理模块包括对评比项目管理、用户账户管理模块。

对角色权限的管理包括添加角色、添加权限、更新角色权限等;对学生信息管理模块主要实现对学生信息进行添加、查看、修改、删除和查询等操作。

对教师信息管理模块主要实现对教师信息进行添加、查看、修改、删除和查询等操作。

专业课程模块实现的是对专业进行评分。

管理员登录系统后,可对评教信息按照课程或教师进行评比情况查询和修改。

评比项目管理模块主要实现的是对评比项目进行添加、查看、查询、修改、删除。

账号管理模块主要实现的是对账户的添加、删除、密码信息修改等操作。

4.4.2学生登录管理模块

学生登录模块主要实现的是对评教课程信息的查看和对其进行评教以及对自己的课程评分的查看。

学生评教管理模块的流程图如图3.2所示。

图3.2学生评教管理模块流程图

4.4.3评教查询信息管理模块

教师登录模块实现的是查询评比结果、查询更新所教学生评分。

在该模块中,教师进行登录,在登录的时候需要输入教师的用户名和密码,经过身份验证后,实现登录。

然后,教师可以根据教师的姓名或编号进行查询评教的信息,也可以根据课程查询评比结果的情况。

同时也可以对所教课学生的课程进行评分、查看修改学生课程评分。

4.5概念设计

在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。

然后再把概念模式转换成逻辑模式。

将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。

利用ER方法进行数据库的概念设计,可分成三步进行:

首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。

ER图是识别功能模型与数据模型间关联关系的,在主题数据库的抽取和规范化的过程中,采用的是简化的E-R图表示方法,从而避免过繁过细的E-R图表示影响规划的直观和可用性。

系统建模阶段的重要工作主要包括主题数据库的抽取、建立,基本表的登记和数据元素的规范化等。

在规划工具包中也提供专门的ER图绘制软件,并且与相应的ERWIN、POWERDESIGN等软件有接口,保证数据的可用性和系统的开放性,利于实施阶段的成果展现和使用。

构成E-R图的基本要素是实体型、属性以及联系,其表示方法为:

实体型:

用矩形表示,矩形框内写明实体名;

属性:

用椭圆形表示,并用无向边将其与相应的实体连接起来;

联系:

用菱形表示,菱形框内写明联系名。

局部E-R图

 

根据系统的特点,可绘制如图4.1所示的系统总体E-R图。

图4.1全局E-R图

 

4.6数据字典

数据字典是对流程图加以补充说明的工具,为系统管理员提供了数据项的综合信息。

下面将列出管理系统中的几个重要数据元素。

(1)用户信息管理模块数据字典部分数据条目

①外部实体定义:

名称:

用户总编号:

1-001

说明:

用户信息查看人员编号:

001

输入数据流:

教师分数

输出数据流:

教师分数

名称:

管理员总编号:

1-002

说明:

系统管理用户信息人员编号:

002

输入数据流:

用户信息

输出数据流:

用户信息

②处理过程定义:

名称:

管理用户信息总编号:

2-001

说明:

编号:

P3

输入数据流:

用户信息

输出数据流:

用户信息

名称:

查看用户信息总编号:

2-002

说明:

用户对个人信息进行查看编号:

P4

输入数据流:

用户信息

输出数据流:

用户信息

③数据存储定义:

名称:

学生信息总编号:

3-001

别名:

已增加的学生信息编号:

D2

数据流来源:

学生编号姓名等

关键字:

学生编号

(2)评分信息管理模块数据字典部分数据条目

①外部实体定义:

名称:

学生总编号:

1-001

说明:

评分人员编号:

001

输入数据流:

评比信息

输出数据流:

评比信息

名称:

管理员总编号:

1-002

说明:

评比信息查看人员编号:

002

输入数据流:

评比信息

输出数据流:

评比信息

名称:

教师总编号:

1-002

说明:

评分人员编号:

002

输入数据流:

评比信息

输出数据流:

评比信息

②处理过程定义:

名称:

查看评比信息总编号:

2-001

说明:

管理员查看评比信息编号:

P7

输入数据流:

评比信息

输出数据流:

评比信息

名称:

评比总编号:

2-001

说明:

老师对评比项目进行评分编号:

P8

输入数据流:

评比信息

输出数据流:

评比信息

名称:

评比总编号:

2-001

说明:

学生对评比项目进行评分编号:

P9

输入数据流:

评比信息

输出数据流:

评比信息

名称:

查看评比信息总编号:

2-001

说明:

学生查看评比结果编号:

P10

输入数据流:

评比信息

输出数据流:

评比信息

名称:

查看评比信息总编号:

2-001

说明:

教师查看评比结果编号:

P11

输入数据流:

评比信息

输出数据流:

评比信息

③数据存储定义:

名称:

评分信息总编号:

3-001

别名:

学生对评比项目的打分情况编号:

D4

数据流来源:

评比编号、学生编号、教师编号等

关键字:

评比信息编号

 

4.7数据库基本表单信息

数据库表名

关系模式名称

备注

users

用户

用户信息表

role

角色

用户角色表

authority

权限

用户权限表

roleuser

用户角色信息

角色用户映射表

roleauthority

角色权限信息

角色权限映射表

studentcourse

学生上课信息表

学生所修课程信息表

course

课程信息

课程信息表

teachercourse

教师教授课程

教师教授课程信息表

 

用户信息表(users)基本情况:

字段名

字段类型

说明

uid

Char

用户编号

uname

char

用户姓名

studentNo

char

学生学号

teacherNo

char

教师编号

course基本情况数据表:

字段名

字段类型

说明

cid

Char

课程号

cname

char

课程名

teacherNo

char

任课教师

score

char

学分

studentcourse基本情况数据表:

字段名

字段类型

说明

scid

Char

学生修习课程编号

cid

char

课程编号

teacherNo

char

任课教师

studentNo

char

学生学号

itemscore

char

学生得分

titemscore

char

教师得分

五、系统实现

5.1数据库SQL源代码

建表源代码:

ifexists(select1

fromsysobjects

whereid=object_id('course')

andtype='U')

droptablecourse

go

/*==============================================================*/

/*Table:

course*/

/*==============================================================*/

createtablecourse(

cidchar

(2)notnull,

cnamechar(20),

scorechar(10),

tidchar

(2),

constraintPK_COURSEprimarykey(cid)

go

/*==============================================================*/

/*Table:

users*/

/*==============================================================*/

createtableusers(

uidchar

(2)notnull,

userNamevarchar(20)null,

passwordchar(6)null,

ridchar

(2)null,

studentNochar(6)null,

teacherNochar(6)null,

constraintPK_USERprimarykey(uid)

go

/*==============================================================*/

/*Table:

authority*/

/*==============================================================*/

createtableauthority(

aidchar

(2)notnull,

anamechar(20)null,

actionchar(10)null,

targetchar(20)null,

constraintPK_AUTHORITYprimarykey(aid)

go

 

/*==============================================================*/

/*Table:

roleuser*/

/*==============================================================*/

createtableroleuser(

ridchar

(2)notnull,

uidchar

(2)notnull

Go

/*==============================================================*/

/*Table:

roleauthority*/

/*==============================================================*/

createtableroleauthority(

ridchar

(2)notnull,

aidchar

(2)null

go

 

/*==============================================================*/

/*Table:

role*/

/*=============================================================*/

createtablerole(

ridchar

(2)notnull,

rnamechar(20)null,

constraintPK_ROLEprimarykey(rid)

go

 

/*==============================================================*/

/*Table:

studentcourse*/

/*==============================================================*/

createtablestudentcourse(

scidchar

(2)notnull,

cidchar

(2)notnull,

studentNochar

(2)notnull,

teacherNochar

(2)notnull,

Itemscorechar(10),

Titemscorechar(10),

constraintPK_STUDENTCOURSEprimarykey(scid)

go

/*==============================================================*/

/*Table:

teachercourse*/

/*=============================================================*/

createtableteachercourse(

tcidchar

(2)notnull,

cidchar

(2)notnull,

teacherNochar

(2)notnull,

constraintPK_ROLEprimarykey(rid)

go

5.2创建存储过程源代码

1、用户登录

USE[大学评教系统]

GO

/******Object:

StoredProcedure[dbo].[userlogin]ScriptDate:

07/09/201322:

06:

17******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

ALTERPROCEDURE[dbo].[userlogin]

@uidchar

(2)output,@passwdchar(6)

--,output,@outchar(10)output,@outidchar

(2)output,@checkintoutput

as

declare@ridchar

(2),@rolechar(20)

declare@outchar(10)

declare@outidchar

(2)

declare@checkint

if(selectpasswordfromuserswhereuid=@uid)=@passwd

begin

set@rid=(selectmin(rid)fromroleuser

whereuid=@uid)

set@out=

case@rid

when1then'管理员'

when2then'教师'

when3then'学生'

end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1