数据库系统设计实验报告教务管理系统模板.docx
- 文档编号:24843370
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:29
- 大小:84.03KB
数据库系统设计实验报告教务管理系统模板.docx
《数据库系统设计实验报告教务管理系统模板.docx》由会员分享,可在线阅读,更多相关《数据库系统设计实验报告教务管理系统模板.docx(29页珍藏版)》请在冰豆网上搜索。
数据库系统设计实验报告教务管理系统模板
数据库系统设计实验报告
――教务管理系统
学院:
计算机科学与技术
专业:
软件工程
班级:
学号:
姓名:
指导老师:
一、概述
项目背景:
数据库课程设计
系统名称:
教务管理系统
开发环境:
SQLServer2008
二、需求分析
1、系统的概述
⏹一个学校由很多个学院组成,每个学院有多个专业,每个专业有1个或者多个班级。
一个学生只属于1个班级,学生有姓名、学号、性别、身份证号、入学时间等属性。
⏹每个专业的每个年级都有对应的教学计划。
教学计划指定了这个专业这个年级的某门课程在那个学期上,学分、学时是多少。
每个学院都设置有1个教务秘书,这些信息都由教务秘书进行输入。
每个院系的课程都有自己的唯一编码,比如计算机系上的C语言,和电子系上的C语言,虽然都是同一门课,但是编码是不同的。
但是同一个院系中的相同的课程,课程代码是唯一的。
比如计算机学院的07计算机软件专业和计算机学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相同的。
⏹教务秘书在每个学期的中间时刻,为下一个学期进行排课,排课的内容根据教学计划,比如08计算机软件专业的学生,在2009-2010年第2学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程安排上课教师(比如陈越)、上课时间(比如星期2,第1-2节)和地点(理工楼234),有的课程是单周上,有的双周,也有是每周都上的。
⏹在每个学期期末,学生登录到网站上选择下一个学期需要上的课,选择的时刻,可以选择是否需要教材,如果某门课程的人数选满了,则不能给任何学生选择了。
⏹学生根据选择的课程进行上课,参加考试。
每个老师可以用自己的用户名和密码登陆网站,选择这个学期自己所教的课程(一个老师可以上多个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考试成绩、平时成绩、实验成绩以及总评成绩。
这些成绩都需要进行存储。
⏹为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而是放在一个临时的表中,只有当教务秘书审核过后,才导入到最终的成绩表中。
⏹学生在老师输入完成绩、教务秘书审核后,可以登录到网上查询自己某个学期的成绩。
成绩数据非常重要,为了防止教务秘书随意更改成绩,需要对成绩表的插入、删除、修改做出监控,凡是对成绩表做了上述操作,必须记录下来,放在另外一个表中,可以称为成绩变动记录表,这个表要求记录在什么时候,更新了那个同学那门课的成绩数据,原始值是什么,现在值是什么。
如果是插入,则原始值为NULL,如果是删除,则现在值是NULL。
⏹为了在数据库层次上保证数据库的安全性,在数据库中,建立两类数据库用户,一类是教务秘书访问的,称为U_JWMS,这个用户能对除了成绩变动记录表不能访问外,可以对所有的数据进行修改、选择、删除、插入。
另外一类用户成为U_Web,是为Web用户访问所设计的。
这类用户只对学生选课的数据、老师输入成绩的临时的表据有删除、插入、修改权限,其它的表只有只读的权限。
2、教务系统的E-R图
3、数据库表
(1)学生信息表
Student表:
列名称
类型
宽度
允许空值
约束条件
键
说明
student_id
Characters
10
否
主键
学生学号
student_name
varchar
20
是
学生姓名
student_tender
bool
是
‘男’或‘女’
性别
class_id
Characters
10
否
外键
班级代号
identity_no
varchar
20
否
身份证号
date_entrance
date
是
入学时间
date_birth
date
是
出生日期
major_id
Characters
10
否
外键
专业代码
college_id
Characters
10
否
外键
学院代码
(2)教师表
Teacher表:
列名称
类型
宽度
允许空值
约束条件
键
说明
teacher_id
Characters
10
否
主键
教师编号
teacher_name
varchar
20
是
教师姓名
teacher_usename
varchar
20
是
用户名
teacher_password
varchar
20
是
密码
(3)班级信息表
Class表:
列名称
类型
宽度
允许空值
约束条件
键
说明
class_id
Characters
10
否
主键
班级代码
class_name
varchar
20
是
班级名字
class_accom
int
是
大于等于0
班级人数
major_id
Characters
10
否
外键
专业代码
grade
int
是
年级
(4)学院表
College表:
列名称
类型
宽度
允许空值
约束条件
键
说明
college_id
char
10
否
主键
学院代码
college_name
nvarchar
20
是
学院名称
secretary_id
Char
10
否
外键
教务秘书编号
count_major
int
是
默认为0
专业数
(5)教务秘书信息表
Secretary表:
列名称
类型
宽度
允许空值
约束条件
键
说明
secretary_id
Characters
10
否
主键
教务秘书编号
secretary_name
varchar
20
是
教务秘书姓名
secretary_usename
varchar
20
是
用户名
secretary_password
varchar
20
是
密码
college_id
Characters
10
否
外键
学院代码
(6)专业信息表
Major表:
列名称
类型
宽度
允许空值
约束条件
键
说明
major_id
Characters
10
否
主键
专业代码
major_name
varchar
20
是
专业名称
count_class
int
是
大于等于0
班级数
college_id
Characters
10
否
外键
学院代码
(7)教学计划表
TeachingPlan表:
列名称
类型
宽度
允许空值
约束条件
键
说明
major_id
Characters
10
否
主键
专业代码
course_id
Characters
10
否
主键
课程编码
course_name
varchar
20
是
课程名称
grade
Characters
2
是
年级
term
int
是
学期
college_id
Characters
10
否
外键
学院代码
course_credit
int
是
学分
course_length
int
是
学时
accommodate
int
是
容量
(8)课程表
Course表:
列名称
类型
宽度
允许空值
约束条件
键
说明
course_id
Characters
10
否
主键
课程编码
class_id
Characters
10
否
主键
班级代码
teacher_id
Characters
10
否
外键
教师编号
class_time
varchar
15
是
上课时间
class_addr
varchar
20
是
上课地点
week
varchar
15
是
单、双、单双均上
单双周或每周都上
term
int
是
学期
major_id
Characters
10
否
外键
专业代码
(9)学生选课表
CourseElect表:
列名称
类型
宽度
允许空值
约束条件
键
说明
student_id
Characters
10
否
主键
学生学号
course_id
Characters
10
否
主键
课程编码
term
int
是
学期
student_full
bool
是
是或否
是否人满
textbook
bool
是
是或否
是否需要教材
(10)教师上课表
Teaching表:
列名称
类型
宽度
允许空值
约束条件
键
说明
teacher_id
Characters
10
否
主键
教师代码
teacher_name
nvarchar
20
是
教师姓名
class_id
Characters
10
否
主键
班级代码
course_id
Characters
10
否
主键
课程编码
term
int
是
学期
major_id
Characters
10
是
专业代码
(11)临时成绩表
TempScore表:
列名称
类型
宽度
允许空值
约束条件
键
说明
student_id
Characters
10
否
主键
学生学号
course_id
Characters
10
否
主键
课程编码
class_id
Characters
10
否
外键
班级代码
term
int
是
学期
score_ordtime
int
是
大于等于0
平时成绩
score_mid
int
是
大于等于0
期中成绩
score_terminal
int
是
大于等于0
期末成绩
score_expe
int
是
大于等于0
实验成绩
score_final
int
是
大于等于0
总评成绩
course_credit
int
是
大于等于0
学分
(12)最终成绩表
FinalScore表:
列名称
类型
宽度
允许空值
约束条件
键
说明
student_id
Characters
10
否
主键
学生学号
course_id
Characters
10
否
主键
课程编码
class_id
Characters
10
否
外键
班级代码
term
int
是
学期
score_ordtime
int
是
大于等于0
平时成绩
score_mid
int
是
大于等于0
期中成绩
score_terminal
int
是
大于等于0
期末成绩
score_expe
int
是
大于等于0
实验成绩
score_final
int
是
大于等于0
总评成绩
course_credit
int
是
大于等于0
学分
(13)成绩变动记录表
ModifyLog表:
列名称
类型
宽度
允许空值
约束条件
键
说明
student_id
Characters
10
否
主键
学生学号
course_id
Characters
10
否
主键
课程编码
update_time
date
是
更改时间
score_pri_ordtime
int
是
原始平时成绩
score_pri_mid
int
是
原始期中成绩
score_pri_terminal
int
是
原始期末成绩
score_pri_expe
int
是
原始实验成绩
score_pri_final
int
是
原始总评成绩
pri_course_credit
int
是
原始学分
socre_cur_ordtime
int
是
现在平时成绩
score_cur_mid
int
是
现在期中成绩
score_cur_terminal
int
是
现在期末成绩
score_cur_expe
int
是
现在实验成绩
score_cur_final
int
是
现在总评成绩
cur_course_credit
int
是
现在学分
三、程序清单
/*数据库的建立*/
createdatabase[JWGL]onprimary
(name='JWGL',
filename='d:
\我的文件\SQL\JWGL.mdf',
size=4096kb,
maxsize=unlimited,
filegrowth=1024kb
)
logon
(name='JWGL_log',
filename='d:
\我的文件\SQL\JWGL_log.ldf',
size=1024kb,
maxsize=2048gb,
filegrowth=10%
)
Go
/*基本表的建立*/
/*学生表*/
useJWGL
createtabledbo.Student
(student_namenvarchar(8)null,
student_idnvarchar(10)primarykeynotnull,
student_tendernvarchar(8)null,
date_birthdatetimenull,
identity_nonvarchar(10)null,
date_entrancedatetimenull,
class_idnvarchar(10)notnull,
major_idnvarchar(10)notnull,
college_idnvarchar(10)notnull,
)
/*班级表*/
useJWGL
createtabledbo.Class
(class_idnvarchar(10)primarykeynotnull,
class_namenvarchar(20)null,
class_accomintnull,
gradeintnull,
major_idnvarchar(10)notnull
)
/*专业表*/
useJWGL
createtabledbo.Major
(major_idnvarchar(10)primarykeynotnull,
major_namenvarchar(20)null,
count_classintnull,
college_idnvarchar(10)notnull
)
/*教务秘书表*/
useJWGL
createtabledbo.Secretary
(secretary_idnvarchar(10)primarykeynotnull,
Secretary_namenvarchar(8)nulldefault'教务秘书',
college_idnvarchar(10)notnull,
secretary_usenamenvarchar(10)nulldefault'secretary',
secretary_passwordnvarchar(10)nulldefault'0000'
)
/*学院表*/
createtabledbo.College
(college_idnvarchar(10)primarykeynotnull,
college_namenvarchar(20)null,
count_majorintnull,
secretary_idnvarchar(10)notnull
)
/*教学计划表*/
useJWGL
createtabledbo.TeachingPlan
(college_idnvarchar(10)notnull,
major_idnvarchar(10)primarykey(major_id,course_id)notnull,
gradeintnotnull,
termintnotnull,
course_idnvarchar(10)notnull,
course_namenvarchar(20)null,
course_creditrealnull,
course_lengthrealnull,
accommodateintnulldefault'0'
)
/*课程表*/
useJWGL
createtabledbo.Course
(course_idnvarchar(10)primarykey(course_id,class_id)notnull,
teacher_idnvarchar(10)null,
class_timedatetimenull,
class_addrnvarchar(20)null,
weeknvarchar(10)nulldefault'单双周均上',
termintnull,
class_idnvarchar(10)notnull,
major_idnvarchar(10)null,
)
/*学生选课表*/
useJWGL
createtabledbo.CourseElect
(student_idnvarchar(10)primarykey(student_id,course_id)notnull,
termintnull,
course_idnvarchar(10)notnull,
textbooknvarchar
(2)nulldefault'是',
student_fullnvarchar
(2)nulldefault'否')
/*教师表*/
useJWGL
createtabledbo.Teacher
(teacher_namenvarchar(8)null,
teacher_idnvarchar(10)primarykeynotnull,
teacher_usenamenvarchar(10)nulldefault'teacher',
teacher_passwordnvarchar(10)nulldefault'0000'
)
/*教师上课表*/
useJWGL
createtabledbo.Teaching
(teacher_idnvarchar(10)primarykey(teacher_id,course_id,class_id)notnull,
teacher_namenvarchar(8)null,
termintnull,
major_idnvarchar(10)null,
class_idnvarchar(10)notnull,
course_idnvarchar(10)notnull
)
/*成绩临时表*/
useJWGL
createtabledbo.TempScore
(class_idnvarchar(10)notnull,
student_idnvarchar(10)primarykey(student_id,course_id)notnull,
course_idnvarchar(10)notnull,
termintnull,
score_terminalrealnulldefault'0',
score_midrealnulldefault'0',
score_ordtimerealnulldefault'0',
score_experealnulldefault'0',
score_finalrealnulldefault'0',
course_creditrealnulldefault'0'
)
/*最终成绩表*/
useJWGL
createtabledbo.FinalScore
(class_idnvarchar(10)notnull,
student_idnvarchar(10)primarykey(student_id,course_id)notnull,
course_idnvarchar(10)notnull,
termintnull,
score_terminalrealnulldefault'0',
score_midrealnulldefault'0',
score_ordtimerealnulldefault'0',
score_experealnulldefault'0',
score_finalrealnulldefault'0',
course_creditrealnulldefault'0'
)
/*成绩记录变动表*/
useJWGL
createtabledbo.ModifyLog
(student_idnvarchar(10)primarykey(student_id,course_id)notnull,
course_idnvarchar(10)notnull,
update_timedatetimenull,
score_pri_terminalrealnull,
score_pri_midrealnull,
score_pri_ordtimerealnull,
score_pri_exper
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 设计 实验 报告 教务 管理 模板
![提示](https://static.bdocx.com/images/bang_tan.gif)