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