Oracle数据库课程设计学生考勤系统的Oracle实现1.docx
- 文档编号:28911312
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:20
- 大小:143.31KB
Oracle数据库课程设计学生考勤系统的Oracle实现1.docx
《Oracle数据库课程设计学生考勤系统的Oracle实现1.docx》由会员分享,可在线阅读,更多相关《Oracle数据库课程设计学生考勤系统的Oracle实现1.docx(20页珍藏版)》请在冰豆网上搜索。
Oracle数据库课程设计学生考勤系统的Oracle实现1
辽宁工程技术大学
Oracle数据库课程设计报告
学生考勤系统
姓名:
XXXXX
班级:
计SJ08-1班
学号:
0820980113
完成日期:
2009-12-29
指导教师:
XXXX
辽宁工程技术大学软件学院
Oracle数据库课程设计
——学生考勤系统的Oracle实现
1学生考勤管理系统背景分析
随着高校校园信息化的逐步完善,有效地借助网络、数据库等技术提高工作和管理效率。
如今针对师生的成绩查询系统、教务管理系统、招生就业系统、BBS、校园网站等系统在各大高校纷纷出现,对全校师生的学习、生活、管理、办公带来了便利。
因此学生考勤管理系统能进一步加强高校学风建设,维护正常的教学秩序,给学生创造一个优良的学习环境。
目前高校学生上课考勤管理都是以任课老师上课点名,记录学生上课情况,对于时间比较长的请假,需要通过递交请假申请让班主任、院系领导都批准方能生效。
这种模式在目前高校管理中暴露了不可避免的弊端:
1、学生请假不方便;
2、学生请假对任课老师不透明;
3、学生对自己整个学期的上课出勤情况没有整体的统计信息;
4、班主任对本班学生整个学期的上课出勤情况不易查看;
5、院系领导、学校领导不容易把握学生上课的出勤情况。
因此一个好的学生考勤管理系统在一定程度上可以解决这些弊端,本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。
本系统涉及到高校六大类用户:
学生、任课老师、班主任、院系领导、学校领导、系统管理员。
2学生考勤管理系统需求分析
2.1用户需求描述
用户是系统的最终使用者,根据分析,本系统应当包括学生、班主任、任课老师、院系领导、学校领导、系统管理员六类用户,这六类用户对系统的需求简要概括如下:
2.2.1学生用户需求描述
学生对本系统的主要需求是:
在线请假以及查看在校期间所有的上课出勤信息。
在线请假需求:
学生请假的全过程当中,学生可以随时查看请假的详细进展情况。
查看出勤信息需求:
学生可以查看在校期间所有学期上课出勤的详细信息,如:
查看“Oracle数据库管理与应用”这门课程在整个学期请假、旷课多少次等信息。
其它需求:
查看本人的基本信息,如本人的所属的院系、年级、专业、班级、学号、姓名、性别等,以及修改个人用户密码。
2.2.2任课老师用户需求描述
任课老师对系统的主要需求是:
管理所教班级学生的上课出勤信息以及查看所教班级学生的上课出勤信息。
管理学生上课出勤需求:
随着时间的变化,自动列出还没有在网上公布的学生上课出勤信息,系统自动根据学生请假系统,决定学生上课出勤的最终结果。
查看学生出勤信息需求:
查看所教班级学生整个学期出勤情况。
其它需求:
本人基本信息以及修改个人用户密码。
2.2.3班主任用户需求描述
班主任对本系统的主要需求是:
审批本班学生本学期的在线请假以及查看本班学生本学期所有课程的上课出勤信息。
审批学生请假需求:
本班学生本学期在线请假申请后,自动提示班主任有等待审批的请假信息,班主任针对请假申请信息进行学生请假审批。
查看学生上课出勤信息需求:
查看本班学生整个学期有关课程的出勤统计信息及详细信息。
其它需求:
查看本班学生的基本信息、修改个人用户密码等。
2.2.4院系领导用户需求描述
院系领导对系统的主要需求是:
审批本院系学生超过三天的请假以及查看本院系学生上课出勤信息。
审批请假需求:
当学生请超过三天的假,经班主任审批同意后,系统自动提交给任何一个进入系统的院系领导审批请假。
查看本院系学生出勤信息需求:
输入查询条件后,系统根据查询条件列出本院系学生相关的上课出勤信息。
其它需求:
查看本院系有关基本信息以及修改个人用户密码等。
2.2.5学校领导用户需求描述
学校领导对系统的主要需求是:
查看全校学生上课出勤信息。
查看出勤信息需求:
输入查询条件后,系统根据查询条件列出本校学生相关的上课出勤信息。
其它需求:
查看有关全校的基本信息以信修改个人用户密码等。
2.2.6系统管理员用户需求描述
系统管理员有系统的最高权限,负责系统所需所有数据的动态同步更新以及维护,根据系统针对各用户的设计,基本功能需求如下:
1、管理学校各院系、年级、专业、班级的添加、删除、修改等。
2、管理每个学期每个班级的课程安排及指定班主任和任课老师。
3、管理系统所有用户。
4、管理全校课表安排。
5、管理系统的请假、考勤信息。
2.3功能需求描述
根据各类用户的需求描述,系统应当具备请假系统、考勤管理系统、后台管理系统这三大主要功能。
请假系统功能需求:
通过班主任以及院系领导批准请假信息。
请假最长时间不能超过1个月,特殊情况除外。
考勤管理功能需求:
任课老师通过考勤管理系统,对学生上课出勤信息进行公开。
请假系统要借助班主任才能完成,考勤管理系统要借助请假系统、班级课表安排才能完成,然而每学年课表都在变化,班主任安排也有在变化,学生也在变化,因此必须要求后台管理系统能根据系统需求,动态的、准确的更新系统数据。
2.4系统功能划分
根据系统用户的需求,将本系统按功能划分成三大功能模块:
请假系统、考勤系统、后台管理模块,涉及到六大类用户:
学生、任课教师、班主任、院系领导、学校领导、系统管理员。
2.4.1请假系统模块
本模块的功能是在线请假的实现及管理,主要涉及三大类用户:
学生、班主任及院系领导用户,学生通过此功能模块进行在线请假及查看请假记录信息;班主任在线审批学生请假及查看请假记录信息;院系领导在线审批学生长时间的请假及查看请假记录信息。
2.4.2考勤系统模块
本模块的功能是学生考勤信息统计的实现、查看及管理,涉及六大类用户中的所有用户。
学生在线查看自己所有学年的出勤信息;任课老师在线管理学生出勤信息;班主任、院系领导、学校领导查看不同的范围的学生出勤信息。
2.4.3后台管理管理
本模块的功能实现整个系统数据的同步更新及维护,只涉及系统管理员用户。
系统管理员动态的管理学生信息、课表安排、学年安排等信息,是整个系统实现的基础。
3学生考勤系统的E-R模型
4数据字典设计
5数据库表的逻辑结构设计
(1)系统管理员表admin
字段名
数据类型
可否为空
键引用
备注
admin_no
char(5)
否
主键
管理员编号
admin_name
char(10)
否
管理员姓名
admin_sex
char
(2)
否
性别
admin_title
char(20)
否
职称
admin_password
varchar2(20)
否
登入密码
(2)学生表student
字段名
数据类型
可否为空
键引用
备注
stu_no
char(10)
否
主键
学生学号
stu_name
varchar(30)
否
学生姓名
stu_sex
char
(2)
否
性别
stu_class
char(13)
否
外键
所属班级
stu_major
char(30)
否
外键
所属专业
stu_faculty
char(40)
否
外键
所属学院
(3)院系表faculty
字段名
数据类型
可否为空
键引用
备注
faculty_id
number
否
主键
院系编号
faculty_name
char(20)
否
院系名称
(4)专业表major
字段名
数据类型
可否为空
键引用
备注
major_id
number
否
主键
专业编号
major_name
char(20)
否
专业名称
major_faculty
number
否
外键
所属院系
(5)教师表teacher
字段名
数据类型
可否为空
键引用
备注
tea_no
char(10)
否
主键
任课老师编号
tea_name
char(20)
否
任课老师姓名
tea_sex
char
(2)
否
性别
tea_faculty
number
否
外键
所属学院
(6)班主任表classteacher
字段名
数据类型
可否为空
键引用
备注
classtea_no
char(5)
否
主键
任课老师编号
classtea_name
char(20)
否
任课老师姓名
classtea_sex
char
(2)
否
性别
classtea_major
number
否
外键
所属专业
classtea_faculty
number
否
外键
所属学院
(7)院领导表collegeleader
字段名
数据类型
可否为空
键引用
备注
collegeleader_no
char(5)
否
主键
学院领导编号
collegeleader_name
char(20)
否
学院领导姓名
collegeleader_sex
char
(2)
否
性别
collegeleader_faculty
number
否
外键
所属学院
title
char(20)
否
职称
(8)学校领导表schoolleader
字段名
数据类型
可否为空
键引用
备注
schoolleader_no
char(5)
否
主键
学校领导编号
schoolleader_name
char(20)
否
学校领导姓名
schoolleader_sex
char
(2)
否
性别
dept
char(20)
否
所属部门
title
char(25)
否
职称
(9)学生上课出勤记录表kaoqin_record
字段名
数据类型
可否为空
键引用
备注
kaoqin_id
char(13)
否
主键
上课出勤编号
sk_time
datetime
否
上课时间
stu_number
char(10)
否
外键
学生学号
stu_status
char(10)
否
学生上课考勤状态
teacher_no
char(10)
否
外键
教师编号
course_no
char(13)
否
外键
课程编号
(10)课程信息表course
字段名
数据类型
可否为空
键引用
备注
course_no
char(13)
否
主键
课程编号
course_name
char(20)
否
课程名称
course_xz
char(4)
否
课程性质
(11)班级表classes
字段名
数据类型
可否为空
键引用
备注
class_no
char(10)
否
主键
课程编号
class_name
char(20)
否
课程名称
classtea_no
char(5)
否
外键
课程性质
(12)请假信息表qingjia
字段名
数据类型
可否为空
键引用
备注
id
number
否
主键
请假代号
class_id
char(10)
否
外键
班级代号
stu_no
varchar2(20)
否
外键
学生学号
leave_reason
varchar2(200)
否
请假原因
start_time
datetime
否
开始时间
end_time
datetime
否
结束时间
day_number
number
否
请假天数
qingjia_time
datetime
否
申请请假时间
class_tea_id
char(5)
否
外键
class_tea_sp_status
char(10)
否
班主任审批状态
class_tea_sp_time
datetime
否
班主任审批时间
coll_leader_sp_status
char(10)
否
院系领导审批状态
coll_leader_id
char(5)
否
外键
院系领导代号
coll_leader_sp_time
datetime
否
院系领导审批时间
备注:
status表示审批状态:
0为等待审批,1为同意请假,2为不同意请假。
6数据库表空间和表设计
6.1、设计表空间
创建一般的字典管理类表空间,目的是为了方便利用SQL字典跟踪磁盘的使用情况。
使用如下命令创建表空间:
createtablespacelinpeng_data
datafile‘/u01/oracle/oradata/tab01.dbf’size100M
defaultstorage(initial512Knext128Kminextents2maxextents999pctincrease0)
online;
6.2、创建表
1、创建系统管理员表admin
createtableadmin
(
admin_nochar(5)notnull,
admin_namechar(10)notnull,
admin_sexchar
(2)check(admin_sex='男'oradmin_sex='女'),
admin_titlechar(20)notnull,
admin_passwordvarchar(20)notnull,
constraintpk_adminprimarykey(admin_no)
)
tablespacelinpeng_data;
2、学生表student
createtablestudent
(
stu_nochar(10)notnull,
stu_namevarchar(30)notnull,
stu_sexchar
(2)check(stu_sex='男'orstu_sex='女'),
stu_classchar(5)foreignkeyreferencesclasses(class_no),
stu_majornumberforeignkeyreferencesmajor(major_id),
stu_facultynumberforeignkeyreferencesfaculty(faculty_id),
constraintpk_studentprimarykey(stu_no)
)
tablespacelinpeng_data;
3、院系表faculty
createtablefaculty
(
faculty_idnumbernotnull,
faculty_namechar(10)notnull,
constraintpk_facultyprimarykey(faculty_id)
)
tablespacelinpeng_data;
4、专业表major
createtablemajor
(
major_idnumbernotnull,
major_namechar(10)notnull,
major_facultynumberforeignkeyreferencesfaculty(faculty_id),
constraintpk_majorprimarykey(major_id)
)
tablespacelinpeng_data;
5、教师表teacher
createtableteacher
(
tea_nochar(10)notnull,
tea_namechar(20)notnull,
tea_sexchar
(2)check(tea_sex='男'ortea_sex='女'),
tea_facultynumberforeignkeyreferencesfaculty(faculty_id),
constraintpk_teacherprimarykey(tea_no)
)
tablespacelinpeng_data;
6、班主任表classteacher
createtableclassteacher
(
classtea_nochar(5)notnull,
classtea_namechar(20)notnull,
classtea_sexchar
(2)check(classtea_sex='男'orclasstea_sex='女'),
classtea_majornumberforeignkeyreferencesmajor(major_id),
classtea_facultynumberforeignkeyreferencesfaculty(faculty_id),
constraintpk_classteacherprimarykey(classtea_no)
)
tablespacelinpeng_data;
7、院领导表collegeleader
createtablecollegeleader
(
collegeleader_nochar(5)primarykey,
collegeleader_namechar(20)notnull,
collegeleader_sexchar
(2)check(collegeleader_sexin('男','女')),
collegeleader_facultynumberforeignkeyreferencesfaculty(faculty_id),
titlechar(20)notnull
)
tablespacelinpeng_data;
8、学校领导表schoolleader
createtableschoolleader
(
schoolleader_nochar(5)primarykeynotnull,
schoolleader_namechar(20)notnull,
schoolleader_sexchar
(2)check(schoolleader_sexin('男','女')),
deptchar(20)notnull,
titlechar(20)notnull
)
tablespacelinpeng_data;
9、学生上课出勤记录表kaoqin_record
createtablekaoqin_record
(
kaoqin_idchar(13)primarykeynotnull,
sk_timedatetimenotnull,
stu_numberchar(10)foreignkeyreferencesstudent(stu_no),
stu_statuschar(10)notnull,
teacher_nochar(10)foreignkeyreferencesteacher(tea_no),
course_nochar(13)foreignkeyreferencescourse(course_no)
)
tablespacelinpeng_data;
10、课程信息表course
createtablecourse
(
course_nochar(13)primarykey,
course_namechar(20)notnull,
course_xzchar(4)notnull
)
tablespacelinpeng_data;
11、班级表classes
createtableclasses
(
class_nochar(10)primarykey,
class_namechar(20)notnull,
classtea_nochar(5)foreignkeyreferencesclassteacher(classtea_no)
)
tablespacelinpeng_data;
12、请假信息表qingjia
createtableqingjia
(
idnumberprimarykey,
class_idchar(10)foreignkeyreferencesclasses(class_no),
stu_nochar(10)foreignkeyreferencesstudent(stu_no),
leave_reasonvarchar2(200)notnull,
start_timedatetimenotnull,
end_timedatetimenotnull,
day_numbernubmernotnull,
qingjia_timedatetimenotnull,
class_tea_idchar(5)foreignkeyreferencesclassteacher(classtea_no),
class_tea_sp_statuschar(10),
class_tea_sp_timedatetime,
coll_leader_sp_statuschar(10),
coll_leader_idchar(5)foreignkeyreferencescollegeleader(collegeleader_no),
coll_leader_sp_timedatetime
)
tablespacelinpeng_data;
6.3、创建其它数据库对象
1、创建存储过程用于统计学生查询某门课程的出勤情况
createorreplaceproceduregetMessage(stu_noinvarchar2,course_noinvarchar2,total_timesoutnumber)
as
absence_timesnumber;
begin
selectcount(*)intoabsence_timesfromkaoqin_recordwherestu_number=stu_noandcourse_no=course_no;
total_times=absence_times;
end;
2、创建视图,使不同院系的领导只能查询到自己学院学生上课的考勤信息,假设软学院的ID为5,以下代码为创建一个用于给软件学院领导查看本学院学生考勤信息的视图。
creat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 课程设计 学生 考勤 系统 实现