版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上目 录 1、 实验内容32、 问题描述53、 需求分析54、 系统设计65、 系统实现136、 场景描述247、 实验总结288、 心得体会299、 参考文献29 实验课题 大学评教系统一 实验内容1. 实验目标l 掌握如何在真实数据库系统中实现基于角色访问控制(RBAC)模型l 掌握如何在特定软件系统中基于RBAC模型访问和操控数据库。2.实验目标l 在真实数据库系统中实现RBAC模型l 开发应用演示界面,演示如何基于RBAC访问某数据库l 演示界面最好是可实际操作的可视化界面,要能演示。l 如果未可视化,必须演示代码运行过程及结果。l 数据库依据应用系统的需求而定
2、,应用系统从如下列表中选择。题目列表1. 图书出版管理系统2. 大学教学管理系统3. 大学学生成绩管理系统4. 大学教工管理系统5. 大学评课系统 【实验选题】6. 大学贵重仪器管理系统7. 大学后勤管理系统8. 科研会议管理系统9. 课外培训管理系统原理:RBAC简介基于角色访问控制(RBAC)是当前主流的数据库访问控制技术。RBAC的一般模型如下:RBAC参考模型通过四个RBAC模型组件来进行定义核心RBAC角色层次RBAC静态职责分离关系动态职责分离关系。核心RBAC定义了能够完整地实现一个RBAC系统所必需的元素元素集和关系的最小集合,其中包括最基本的用户/角色分配和权限/角色分配关系
3、。此外,它还引入了角色激活的概念作为计算机系统中用户会话的一个组成部分。核心RBAC对于任何RBAC系统而言都是必需的,其它RBAC组件彼此相互独立并且可以被独立地实现。角色层次RBAC组件支持角色层次。角色层次从数学上讲是一个定义角色之间级别关系的偏序,高级别的角色获得低级别角色的权限,低级别角色获得高级别角色的用户成员。此外,层次RBAC还引入了角色的授权用户和授权权限的概念。静态职责分离针对用户/角色分配定义了角色间的互斥关系。由于可能与角色继承产生不一致,静态职责分离关系组件在没有角色层次和存在角色层次的情况下分别进行了定义。动态职责分离关系针对用户会话中可以激活的角色定义了互斥关系。
4、每个模型组件都由下列子组件来定义:a) 一些基本元素集;b) 一些基于上述基本元素集的RBAC关系;c) 一些映射函数,在给定来自某个元素集的实例元素的情况下能够得到另一个元素集的某些实例元素。RBAC参考模型给出了一种RBAC特征的分类,可以基于这些分类的特征构建一系列RBAC特征包。本标准的主要目的不是试图定义RBAC特征的全集,而是致力于提供一组标准的术语来定义已有的模型和商业产品中最主要的RBAC特征。核心RBAC的元素集和关系在Error! Reference source not found.中进行了定义。核心RBAC包含了5个基本的数据元素:用户集(USERS)角色集(ROLES
5、)对象集(OBJS)操作集(OPS)权限集(PRMS)。权限被分配给角色,角色被分配给用户,这是RBAC的基本思想。角色命名了用户和权限之间的多对多的关系。此外,核心RBAC中还包含了用户会话集,会话是从用户到该用户的角色集的某个激活角色子集的映射。角色是组织上下文中的一个工作职能,被授予了角色的用户将具有相应的权威和责任。权限是对某个或某些受RBAC保护的对象执行操作的许可。操作是一个程序的可执行映像,被调用时能为用户执行某些功能。操作和对象的类型依赖于具体系统,例如在一个文件系统中,操作可以包含读写执行;在数据库管理系统中,操作包含select、insertdeleteupdate等。访问
6、控制机制的核心功能是保护系统资源。与以前的访问控制模型一致,RBAC模型中的对象是包含或接收信息的实体。对一个实现RBAC的系统,对象可以代表信息容器(如操作系统中的文件和目录或数据库中的表视图字段),或者诸如打印机磁盘空间CPU周期等可耗尽的系统资源。RBAC覆盖的对象包括所有在分配给角色的权限中出现的对象。角色层次通常被作为RBAC模型的重要部分,并且经常在RBAC商业产品中得以实现。角色层次可以有效地反映组织内权威和责任的结构。角色层次定义了角色间的继承关系。继承通常是从权限的角度来说的,例如,如果角色r1“继承”角色r2,角色r2的所有权限都同时为角色r1所拥有。在某些分布式RBAC实
7、现中,角色层次是集中管理的,而权限/角色分配却是非集中管理的。对这些系统,角色层次的管理主要是从用户成员包含关系的角度进行的:如果角色r1的所有用户都隐含地成为角色r2的用户,则称角色r1“包含”角色r2。这种用户成员包含关系隐含了这样一个事实:角色r1的用户将拥有角色r2的所有权限。然而角色r1和角色r2之间的权限继承关系并不对它们的用户分配做任何假设。2、 问题描述本实验课题为“大学评教系统”,用来实现大学教师学生的相互评价,从评分结果来判断教学质量以及学生的学习态度、学习状况等。 教学工作是学校工作的重中之重,教师在教学过程中发挥着主导作用。科学地评价教师的教学行为,对教师自身发展和学校
8、办学质量的提高有着极为重要的意义。但在相当长的时期内,教育行政部门和学校总是将教学成绩作为最重要的评价指标,而且往往以这种片面的教师绩效评价代替对教师教学行为的评价。但是,教师不仅要让学生掌握知识,更要让学生学会做人,加之不同的学生有着不同的基础、潜力和成长环境,而且处于不断的变化之中,所以,完全用教学成绩来衡量教师的教学水平,是有很大不足的。所以,我们应该给学生更多的空间来评价这个老师的教学质量。大学评教系统能够实现这个功能。 同时,评价一个学生,往往从他的期末考试成绩出发,评定这个学生的好坏。如果一个学生学习状态很好,但期末考试由于一些原因不是很理想,但从期末考试成绩来评价,对这个学生也是
9、很不公平的。而且对于一个学生的评价,也应该包括思想品质,学习态度等人格方面的认定。所以,大学评教系统给了老师一个权力,可以给自己所教授的学生一个客观公正的素质评价。这样就避免了单一从末考成绩判定学生的片面性。 大学评教系统提供了一个教师和学生之间的交流平台,有利于学生更改自己的不足之处,同时也给教师提供建议,提高教学质量。对教师和学生的评价更加公平,有利于教学质量和学生成长的健康发展。三、需求分析3.1 系统功能要求设计(1) 通过用户名和密码登陆系统,查询课程和用户的基本信息(2) 老师通过用户名和密码登陆系统,查询所选学生的成绩,并且可以进行相关修改。同时,也可以查看学生给自己的评分(3)
10、 学生通过用户名和密码登陆系统,查询授课考试的评分,并且可进行相关修改。同时,也可以查看教师给自己的评分。(4) 管理员通过用户名和密码登陆,可以查询和修改评分信息,可以修改角色权限,可以查看更新用户信息和密码。3.2 系统功能流图 系统设计以前,要对系统需求进行归纳分析,查找出所有的业务主角,确定业务主角后,每个主角的相关活动及流程应清晰地制定出来,最终设计出逻辑视图、用户界面示意图。在进行业务流程设计,需要注意以下事项: 1, 调查用户网络环境和配置,使系统能够具有合理可行的系统架构; 2, 调查用户偏好和技能水平,这将直接影响到项目开发的深度和用户界面的设计;
11、0;3, 预测并制定系统的性能指标,为编写测试计划提供依据。 经过对系统功能的分析,调查,研究,可以对该系统绘制业务流程图,如图2.2所示:(其中图2.1是业务流程图图例) 图 2.1图 2.2四、系统设计4.1系统的性能需求及可行性分析 系统的性能需求:操作简单:本系统应该适用于不同水平的使用者,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。使用简便:用户操作简洁明了,使用简单方便。代码可读性好:文中的代码将尽可能简洁,易懂。便于修改和维护。4.2大学评教系统具体功能结构图 图 3.1 大学评教系统结构图4.3 系统功能详细设计通过对本系统的分析,该系统主要实现的功能
12、有:管理员后台管理模块、学生登录模块、教师登录模块。下面针对各模块的详细设计进行说明。4.4.1 管理员后台管理模块该模块主要是对人员信息、课程评比信息、系统管理信息。其中对人员信息管理主要包括对学生信息管理、教师信息管理、教师学生课程对应关心管理;课程评比管理模块主要实现的是查看评比结果、修改对应评比结果;系统管理模块包括对评比项目管理、用户账户管理模块。对角色权限的管理包括添加角色、添加权限、更新角色权限等;对学生信息管理模块主要实现对学生信息进行添加、查看、修改、删除和查询等操作。对教师信息管理模块主要实现对教师信息进行添加、查看、修改、删除和查询等操作。专业课程模块实现的是对专业进行评
13、分。管理员登录系统后,可对评教信息按照课程或教师进行评比情况查询和修改。评比项目管理模块主要实现的是对评比项目进行添加、查看、查询、修改、删除。账号管理模块主要实现的是对账户的添加、删除、密码信息修改等操作。4.4.2 学生登录管理模块学生登录模块主要实现的是对评教课程信息的查看和对其进行评教以及对自己的课程评分的查看。学生评教管理模块的流程图如图3.2所示。 图 3.2 学生评教管理模块流程图4.4.3 评教查询信息管理模块教师登录模块实现的是查询评比结果、查询更新所教学生评分。在该模块中,教师进行登录,在登录的时候需要输入教师的用户名和密码,经过身份验证后,实现登录。然后,教师可以根据教师
14、的姓名或编号进行查询评教的信息,也可以根据课程查询评比结果的情况。同时也可以对所教课学生的课程进行评分、查看修改学生课程评分。4.5 概念设计在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。ER图是识别功能模型与数据模型间关联关系的,在主题数据库的
15、抽取和规范化的过程中,采用的是简化的E-R图表示方法,从而避免过繁过细的E-R图表示影响规划的直观和可用性。系统建模阶段的重要工作主要包括主题数据库的抽取、建立,基本表的登记和数据元素的规范化等。在规划工具包中也提供专门的ER图绘制软件,并且与相应的ERWIN、POWERDESIGN等软件有接口,保证数据的可用性和系统的开放性,利于实施阶段的成果展现和使用。构成E-R图的基本要素是实体型、属性以及联系,其表示方法为:实体型:用矩形表示,矩形框内写明实体名;属 性:用椭圆形表示,并用无向边将其与相应的实体连接起来;联 系:用菱形表示,菱形框内写明联系名。局部E-R图根据系统的特点,可绘制如图4.
16、1所示的系统总体E-R图。图 4.1 全局E-R图4.6数据字典数据字典是对流程图加以补充说明的工具,为系统管理员提供了数据项的综合信息。下面将列出管理系统中的几个重要数据元素。(1)用户信息管理模块数据字典部分数据条目外部实体定义:名称:用户 总编号:1001说明:用户信息查看人员 编 号:001输入数据流:教师分数输出数据流:教师分数名称: 管理员 总编号:1002说明:系统管理用户信息人员 编 号:002输入数据流:用户信息输出数据流:用户信息处理过程定义:名称:管理用户信息 总编号:2001说明: 编 号:P3输入数据流:用户信息输出数据流:用户信息名称:查看用户信息 总编号:2002
17、说明:用户对个人信息进行查看 编 号:P4输入数据流:用户信息 输出数据流:用户信息数据存储定义:名称:学生信息 总编号:3001别名:已增加的学生信息 编 号:D2数据流来源:学生编号姓名等关键字:学生编号(2)评分信息管理模块数据字典部分数据条目外部实体定义:名称:学生 总编号:1001说明:评分人员 编 号:001输入数据流:评比信息输出数据流:评比信息名称: 管理员 总编号:1002说明:评比信息查看人员 编 号:002输入数据流:评比信息输出数据流:评比信息名称: 教师 总编号:1002说明:评分人员 编 号:002输入数据流:评比信息输出数据流:评比信息处理过程定义:名称:查看评比
18、信息 总编号:2001说明:管理员查看评比信息 编 号:P7输入数据流:评比信息输出数据流:评比信息 名称:评比 总编号:2001说明:老师对评比项目进行评分 编 号:P8输入数据流:评比信息输出数据流:评比信息名称:评比 总编号:2001说明:学生对评比项目进行评分 编 号:P9输入数据流:评比信息输出数据流:评比信息名称:查看评比信息 总编号:2001说明:学生查看评比结果 编 号:P10输入数据流:评比信息输出数据流:评比信息名称:查看评比信息 总编号:2001说明:教师查看评比结果 编 号:P11输入数据流:评比信息输出数据流:评比信息数据存储定义:名称:评分信息 总编号:3001别名
19、:学生对评比项目的打分情况 编 号:D4数据流来源:评比编号、学生编号、教师编号等关键字:评比信息编号4.7数据库基本表单信息数据库表名关系模式名称备注users用户用户信息表role角色用户角色表authority权限用户权限表roleuser用户角色信息角色用户映射表roleauthority角色权限信息角色权限映射表studentcourse学生上课信息表学生所修课程信息表course课程信息课程信息表teachercourse教师教授课程教师教授课程信息表用户信息表(users)基本情况:字段名字段类型说明uidChar用户编号unamechar用户姓名studentNochar学生学
20、号teacherNochar教师编号course基本情况数据表:字段名字段类型说明cidChar课程号cnamechar课程名teacherNochar任课教师scorechar学分studentcourse基本情况数据表:字段名字段类型说明scidChar学生修习课程编号cidchar课程编号teacherNochar任课教师studentNochar学生学号itemscorechar学生得分titemscorechar教师得分五、系统实现5.1数据库SQL源代码 建表源代码:if exists (select 1 from sysobjects where id = object_id(&
21、#39;course') and type = 'U') drop table coursego/*=*/* Table: course */*=*/create table course ( cid char(2) not null, cname char(20) , score char(10) , tid char(2), constraint PK_COURSE primary key (cid)go/*=*/* Table: users */*=*/create table users( uid char(2) not null, userName varch
22、ar(20) null, password char(6) null, rid char(2) null, studentNo char(6) null, teacherNo char(6) null, constraint PK_USER primary key (uid)go/*=*/* Table: authority */*=*/create table authority ( aid char(2) not null, aname char(20) null, action char(10) null, target char(20) null, constraint PK_AUTH
23、ORITY primary key (aid)go/*=*/* Table: roleuser */*=*/create table roleuser ( rid char(2) not null, uid char(2) not null)Go/*=*/* Table: roleauthority */*=*/create table roleauthority ( rid char(2) not null, aid char(2) null )go/*=*/* Table: role */*=*/create table role ( rid char(2) not null, rname
24、 char(20) null, constraint PK_ROLE primary key (rid)go/*=*/* Table: studentcourse */*=*/create table studentcourse ( scid char(2) not null, cid char(2) not null, studentNo char(2) not null, teacherNo char(2) not null, Itemscore char(10) , Titemscore char(10),constraint PK_STUDENTCOURSE primary key (
25、scid)go/*=*/* Table: teachercourse */*=*/create table teachercourse ( tcid char(2) not null, cid char(2) not null, teacherNo char(2) not null, constraint PK_ROLE primary key (rid)go5.2创建存储过程源代码1、用户登录USE 大学评教系统GO/* Object: StoredProcedure dbo.userlogin Script Date: 07/09/2013 22:06:17 */SET ANSI_NULL
26、S ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE dbo.userlogin uid char(2) output,passwd char(6) - ,output,out char(10) output,outid char(2) output,check int output as declare rid char(2),role char(20) declare out char(10) declare outid char(2) declare check int if(select password from users where ui
27、d=uid) =passwd begin set rid=( select min(rid) from roleuser where uid=uid)set out= case rid when 1 then '管理员' when 2 then '教师' when 3 then '学生' end set outid=uid set check=1 return 0endelsebegin set outid='0' set out='0' set check=0 return 1end2、 修改密码USE 大学评教
28、系统GO/* Object: StoredProcedure dbo.update_users_psw Script Date: 07/12/2013 02:19:06 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO ALTER proc dbo.update_users_psw rname char(20), uid char(20), uidup char(20), password char(20),out int output as if 'update' in (select action from authority,
29、roleauthority,role where authority.aid=roleauthority.aid and role.rid=roleauthority.rid and rname=rname and target='users' ) begin if rname='管理员' begin update users set password=password where uid=uidup set out=1 end else if rname='教师' begin if uidup !=uid begin print '教师
30、不能修改他人密码' set out=2 end else begin update users set password=password where uid=uidup set out=3 end end else if rname='学生' begin if uidup !=uid begin print '学生不能修改他人密码' set out=4 end else begin update users set password=password where uid=uidup set out=5 end end end 3、更新学生评分 USE
31、大学评教系统GO/* Object: StoredProcedure dbo.updatestudentcourse Script Date: 07/12/2013 11:24:28 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc dbo.updatestudentcourse rname char(20),uid char(2), studentNo char(2), scid char(2),itemscore char(10),tcid char(2),out int output as if 'update
32、39; in (select action from authority,roleauthority,role where authority.aid=roleauthority.aid and role.rid=roleauthority.rid and rname=rname and target='studentcourse' ) begin if rname='管理员' begin if scid not in(select scid from studentcourse where studentNo=studentNo ) or studentNo
33、not in (select studentNo from studentcourse where tcid =tcid ) print '该学生未修此课程' set out=1 end else begin update studentcourse set itemscore=itemscore where studentNo=studentNo and scid=scid and tcid=tcid set out=2 end end else if rname='教师' begin if tcid not in (select tcid from teac
34、hercourse where tcid=tcid) or studentNo not in (select studentNo from studentcourse where studentNo=studentNo) begin set out=3 print '教师只能修改自己教的课程的成绩' end else begin update studentcourse set itemscore=itemscore where studentNo=studentNo and scid=scid and tcid=tcid set out=4 end end else begi
35、n set out=5 print '学生没有权限' end4、更新教师评分USE 大学评教系统GO/* Object: StoredProcedure dbo.updatestudentcourse Script Date: 07/11/2013 17:37:26 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOalter proc dbo.updatetitemcourse rname char(20),uid char(2),studentNo char(6),scid char(2),titemscore char(10),
36、out int output as if 'update' in (select action from authority,roleauthority,role where authority.aid=roleauthority.aid and role.rid=roleauthority.rid and rname=rname and target='studentcourse' ) begin if rname='管理员' begin if scid not in (select scid from studentcourse where
37、studentNo=studentNo) begin set out=1 print '学生课程对应关系错误' end else begin update studentcourse set titemscore=titemscore where scid=scid set out=2 return 0 end end else if rname='学生' if scid not in (select scid from studentcourse where studentNo=studentNo) begin set out=3 print '学生只
38、能评价给自己上课的老师' return 1 end else begin update studentcourse set titemscore=titemscore where studentNo=studentNo and scid=scid set out=4 return 0 end end else begin set out=3 print '学生权限不够' end5、查看教师评分USE 大学评教系统GO/* Object: StoredProcedure dbo.checktscore Script Date: 07/12/2013 02:19:54 */
39、SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO ALTER proc dbo.checktscore rname char(20) ,uid char(2),teacherNo char(2), scid char (2) , -out int output as declare out int if 'check' in (select action from authority,roleauthority,role where authority.aid=roleauthority.aid and role.rid=roleaut
40、hority.rid and rname=rname and target='teacherNo' ) set rname='教师' if (select teacherNo from users where uid=uid)=teacherNo begin select titemscore from studentcourse where scid=scid set out=3 return 0 end else print '只能查看自己教授的课程成绩' return 1 6、查看学生评分USE 大学评教系统GO/* Object: Sto
41、redProcedure dbo.check Script Date: 07/12/2013 02:23:22 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO ALTER proc dbo.check rname char(20) ,uid char(2),studentNo char(2),scid char(2)-itemscore char(10) output,out int output as declare out int declare itemscore char(10) if 'check' in (select
42、 action from authority,roleauthority,role where authority.aid=roleauthority.aid and role.rid=roleauthority.rid and rname=rname and target='studentcourse' ) begin set rname='学生' begin if (select studentNo from users where users.uid=uid)=studentNo begin select itemscore from studentcou
43、rse where scid=scid set out=3 return 0 end else print '只能查看自己的成绩' return 1 end end7、删除角色权限USE 大学评教系统GO/* Object: StoredProcedure dbo.delete_roleauthority Script Date: 07/12/2013 02:24:35 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO ALTER proc dbo.delete_roleauthority rname char(20),rid ch
44、ar(2), action char(20),target char(20) -ut int output as declare out int if 'delete' in (select action from authority,roleauthority,role where authority.aid=roleauthority.aid and role.rid=roleauthority.rid and rname=rname and target='roleauthority')BeginIf rname= 管理员begin delete roleauthority where
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国礼仪课件教学课件
- 开学课件模板教学课件
- 灌肠护理课件教学课件
- 2024年农用搬运机械项目资金筹措计划书代可行性研究报告
- 精神病医院药剂科相关
- 3.2.3酸碱中和滴定 课件高二上学期化学人教版(2019)选择性必修1
- DB1304T 480-2024商品煤采样技术规范
- 社团的活动部部门介绍
- 静脉输液治疗在临床中的应用
- 白血病饮食宣教
- 山东省济南市槐荫区2024-2025学年九年级物理上学期期中试题+
- 八上语文古诗词理解性默写
- 湖南省长沙市雅礼集团2024-2025学年九年级上学期11月期中英语试题
- 2023年 评审准则质量记录手册表格汇编(101个)
- 2024年度采购合同管理程序指南
- GB/T 44693.1-2024危险化学品企业工艺平稳性第1部分:管理导则
- 湖南省三湘名校教育联盟2023-2024学年高二下学期4月期中联考地理试题
- 2024秋期国家开放大学专科《现代教师学导论》一平台在线形考(形成性考核任务一至四)+终结性考核(大作业)试题及答案
- 2024年银行考试-征信人员考试近5年真题附答案
- 世界一流港口综合评价报告
- 第四单元 比(单元测试)-2024-2025学年六年级上册数学人教版
评论
0/150
提交评论