目录
一、绪论 (2)
1.1 开发背景 (2)
1.2 开发工具 (2)
1.3 任务与分析 (2)
1.4本文主要内容 (2)
二、需求分析 (3)
2.1 总体需求分析 (3)
2.2 系统设计流程 (3)
三、总体设计 (4)
3.1 系统功能结构图 (4)
3.2 安全设计 (4)
四、数据库设计 (5)
4.1 数据库分析 (5)
4.2 概念结构设计 (7)
4.3 逻辑结构设计 (8)
4.4 物理结构设计 (8)
五、编码 (10)
六、测试 (13)
七、总结 (14)
一、绪论
1.1 开发背景
高校的教室管理是一项繁琐、细致、工作量大的工作,它是高等学校教育工作的一项重要内容,是整个学校教学系统能够正常运行的基础。
同时,教室管理工作关系到高校教学秩序的稳定以及教学资源的合理运用,关系到高校的发展和入才的培养,教室管理在高校中占有相当重要的地位。
1.2 开发工具
1、Oracle 11g;
2、Oracle SQL Developer
1.3 任务与分析
这个系统主要是开发一个大学教室系统,用户有四类类,学生,教师,教室管理员、排课人员。
学生、教师可以选择个人信息录入,纠正,查询;学生成绩信息查询;课程信息查询。
教室管理员可以对教室钥匙发放信息的管理。
排课人员可以进行添加、查询,修改,删除教室信息等功能。
不同用户登陆系统时有不同的权限。
1.4本文主要内容
本文主要对大学教室管理系统整体设计做一个详细的介绍,包括数据库的创建(需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数
据库运行与维护等)和大学教室管理系统的编辑、编译、运行、调试、维护等一系列详细的设计步骤。
二、需求分析
2.1 总体需求分析
大学教室管理系统,即对大学学生排课后对教室资源的合理管理与利用,保证了大学教学任务的有序高效进行。
通过调查和分析一款优秀的大学教室管理系统应该实现实现以下功能:
【1】排课人员能够对教室信息添加、查询,修改操作
【2】老师,学生能够对教室信息等信息进行查询,但赋予老师学生的不同权限【3】教室管理员可以根据教室信息对教室钥匙信息的管理
2.2 系统设计流程
通过对教室管理过程的研究与分析,在设计时系统应实现以下目标:
【1】实现不同用户登录系统具有不同的权限
【2】实现合理的排课
【3】实现教师和学生息录入后可以查询和纠正,用户能对教室信息的查询;学生可以对自己成绩信息查询;课程信息查询等功能
【4】实现教室钥匙的合理管理
三、总体设计
3.1 系统功能结构图
系统功能结构如下:
安全设计这里有两方面,一是数据库的安全,数据库安全我们通过添加用户及设置用户权限和用户密码来确保用户安全的登录到数据库,另外我们可以创建视图来保证数据库的安全性,让不同权限的用户看到数据库不同内容并对数据进行不同权限的操作。
另一方面是系统的安全性,这里我们通过授予用户登录的权限用户才可以登陆并操作此系统。
四、数据库设计
4.1 数据库分析
“大学教室管理系统”,在数据库中设计如下各表
图1 AC表AC表用于排课人员对课程的安排。
图2 CLASSROOM表
CLASSROOM表是用于排课人员对教室信息的增删改功能的实现。
图3 CLASSROOM_LOG表
CLASSROOM_LOG记录排课人员对CLASSROOM表的改动的记录与监事。
根据对系统的功能分析和功能设计,规划出本系统使用的数据库实体,下面介绍几个关键实体,分别是:学生信息实体、教师信息实体、排课人员实体、管理员实体、课程信息实体、教室信息实体。
(其它实体在此不在叙述)学生信息实体包括:(学号、姓名、性别、年龄、班级、状态)
教师信息实体包括:(教师号、姓名,性别、状态、电话)
排课人员实体包括:(编号、姓名、性别、电话)
管理员实体包括:(编号、姓名、性别、教室编号)
课程信息实体包括;(课程号、课程名、学分、学时、类型、考核方式)教室信息管理包括;(教室编号、类型,状态、钥匙、容量)
对应的E-R图为:
图4 大学教室管理系统E-R图
根据以上实体E-R关系图在数据库中创建数据表,下面分别介绍主要实体的逻辑结构
关系模型:
STUDENT(sno,sname,sex,sage,deptno,class,status)
TEACHER(tno,tname,sex,descruption,phone,status)
COURSE(cno,cname,credit,cono,cype,ccheck)
CLASSROOM(clno,type,stasus,clasize,key)
ARRANGER(arno,arname,sex,phone)
ADMIN(ano,aname,sex,phone,clno)
实体与关系表:
表1 实体图关系表
4.4 物理结构设计
数据字典如下所示:
表2数据字典
五、编码
我负责的部分是排课人员对教室的增删改和对排课表的处理情况。
所以我写了两个程序包和两个触发器。
具体代码见以下各图:
1、包AC_PACKAGE,包涵存储过程add_ac,delete_ac,update_days,update_jieci。
图5 AC_PACKAGE包头代码
2、包CLASSROOM_PACKAGE,包涵存储过程
add_classroom,delete_classroom,update_status和函数get_status。
图6 CLASSROOM_PACKAGE包头代码
3、触发器CLASSROOM_DML_TRG,该触发器是对CLASSROOM表的监控,一切对CLASSROOM表的操作都要记录在它的日志表CLASSROOM_LOG中,增加其安全性。
图7 CLASSROOM_DML_TRG触发器
4、触发器AC_DML_ROWTRG,该触发器是行级触发器。
作用是限制新增排课表的节次不得超过5,即每天上课的节次都是在4以内(包括4)。
图8 AC_DML_ROWTRG触发器
六、测试
图9 授权图
首先要先创建角色,给予角色对包的权限。
图10 测试图1
举其中一例,得到教室表编号1的状态信息,输出为“空”。
图11 测试图2
当输入的教室号不存在时会报错。
图13 测试图3
该过程是对过程AC_PACKAGE.update_jieci的调用。
七、总结
通过本次课程设计,我不仅对数据库有了更深的了解,还学习与数据库有关
的软件Oracle的运用。
虽然在做课程设计过程中遇到很多问题,不过我们通过团队合作客服了一个又一个问题,最后使得本课设能正常完成。
不过,在本次课程设计中,我也找到了很多问题。
比如,我负责的模块是排课人员安排课程和教室,我只是完成最基础的功能,所有都是基本的、书上有的内容,没有一点的延伸和对问题更加深入的思考,特别是逻辑上的思考基本是没有。
所以,总的来说不是很好。
我会总结这次的问题并且吸取教训,争取在接下来的实验或者其他事务中能有自己的想法,积极去思考问题、解决问题。
参考文献
1、崔巍王晓敏. 数据库系统开发教程[M]. 北京:清华大学出版社,2010年6月
2、俞俊甫. 数据库原理应用教程[M]. 北京:北京邮电大学出版社2010年7月
3、张凤荔王瑛Oracle 11g数据库基础教程[M]. 人民邮电出版社2012年9月。