苏州大学数据库课程设计.docx
《苏州大学数据库课程设计.docx》由会员分享,可在线阅读,更多相关《苏州大学数据库课程设计.docx(28页珍藏版)》请在冰豆网上搜索。
苏州大学数据库课程设计
《数据库课程设计》
实验报告
专业计算机科学与技术
年级15级
姓名
学号
指导老师
使用日期
苏州大学计算机科学与技术学院统一印制
二零一七年三月
一:
概述
项目背景:
数据库课程设计
系统名称:
教务管理系统
开发环境:
SQLServer2016
二:
需求分析
1.系统概述
根据要求设计一个数据库教务管理系统
2.教务系统的ER图
3.数据库表
(1)Student表
列名称
类型
约束条件
键
说明
Stu_id
Varchar(20)
主键
学号
Stu_name
Varchar(20)
姓名
Stu_sex
Varchar(10)
男或女
性别
Class_id
Varchar(20)
外键
班级编号
Stu_identity
Varchar(20)
身份证号
Stu_intake
date
入学时间
Stu_birth
date
出生日期
Major_id
Varchar(20)
外键
专业编号
College_id
Varchar(20)
外键
学院编号
(2)Teacher表
列名称
类型
约束条件
键
说明
Teacher_id
Varchar(20)
主键
教师编号
Teacher_name
Varchar(20)
教师姓名
Teacher_sex
Varchar(10)
男或女
教师性别
Teacher_usename
Varchar(20)
教师用户名
Teacher_password
Varchar(20)
教师密码
(3)Class表
列名称
类型
约束条件
键
说明
Class_id
Varchar(20)
主键
班级编号
Class_name
Varchar(20)
班级名称
Class_stuCount
int
大于等于0
班级人数
Major_id
Varchar(20)
外键
专业编号
grade
Varchar(10)
年级
(4)College表
列名称
类型
约束条件
键
说明
College_id
Varchar(20)
主键
学院编号
College_name
Varchar(20)
学院名称
Secretary_id
Varchar(20)
外键
秘书编号
Major_num
int
大于等于0
专业数
(5)Secretary表
列名称
类型
约束条件
键
说明
Secretary_id
Varchar(20)
主键
秘书编号
Secretary_name
Varchar(20)
秘书姓名
Secretary_sex
Varchar(10)
男或女
秘书性别
Secretary_usename
Varchar(20)
秘书用户名
Secretary_password
Varchar(20)
秘书密码
(6)Major表
列名称
类型
约束条件
键
说明
Major_id
Varchar(20)
主键
专业编号
Major_name
Varchar(20)
专业名称
Class_count
int
大于等于0
专业班级数目
College_id
Varchar(20)
外键
学院编号
(7)Course表
列名称
类型
约束条件
键
说明
Course_id
Varchar(20)
主键
课程编号
Course_name
Varchar(20)
课程名称
Course_credit
int
大于等于0
课程学分
Course_hour
int
大于等于0
课程学时
(8)Teaching表
列名称
类型
约束条件
键
说明
Teacher_id
Varchar(20)
主键
教师编号
Teacher_name
Varchar(20)
教师姓名
Class_id
Varchar(10)
主键
班级编号
Course_id
Varchar(20)
主键
课程编号
Major_id
Varchar(20)
外键
专业编号
Term
int
大于0
学期
(9)TPlan表
列名称
类型
约束条件
键
说明
Major_id
Varchar(20)
主键
专业编号
Course_id
Varchar(20)
主键
课程编号
grade
Varchar(10)
年级
term
int
大于0
学期
College_id
Varchar(20)
外键
学员编号
Max_size
int
大于等于0
最大容量
(10)CourseClass表
列名称
类型
约束条件
键
说明
Course_id
Varchar(20)
主键
课程编号
Class_id
Varchar(20)
主键
班级编号
Teacher_id
Varchar(20)
外键
教师编号
Class_time
Varchar(20)
上课时间
Class_place
Varchar(20)
上课地点
Class_week
Varchar(10)
单周、双周、单双周
上课周
Major_id
Varchar(20)
外键
专业编号
(11)TempScore表
列名称
类型
约束条件
键
说明
Stu_id
Varchar(20)
主键
学号
Course_id
Varchar(20)
主键
课程编号
Class_id
Varchar(20)
外键
班级编号
term
int
大于0
学期
Rebuild_flag
bit
是否是重修TempScore
Score_ordtime
int
大于等于0
平时成绩
Score_mid
int
大于等于0
期中成绩
Score_termial
int
大于等于0
期末成绩
Score_expe
int
大于等于0
实验成绩
Score_final
int
大于等于0
最终总评成绩
Course_credit
int
大于等于0
学分
GPA
float
大于等于0
GPA
(12)FinalScore表
列名称
类型
约束条件
键
说明
Stu_id
Varchar(20)
主键
学号
Course_id
Varchar(20)
主键
课程编号
Class_id
Varchar(20)
外键
班级编号
term
int
大于0
学期
Score_ordtime
int
大于等于0
平时成绩
Score_mid
int
大于等于0
期中成绩
Score_termial
int
大于等于0
期末成绩
Score_expe
int
大于等于0
实验成绩
Score_final
int
大于等于0
最终总评成绩
Course_credit
int
大于等于0
学分
GPA
float
大于等于0
GPA
(13)RebuildScore表
列名称
类型
约束条件
键
说明
Stu_id
Varchar(20)
主键
学号
Course_id
Varchar(20)
主键
课程编号
Class_id
Varchar(20)
外键
班级编号
term
int
大于0
学期
Rebuild_id
int
主键
第几次重修
Score_ordtime
int
大于等于0
平时成绩
Score_mid
int
大于等于0
期中成绩
Score_termial
int
大于等于0
期末成绩
Score_expe
int
大于等于0
实验成绩
Score_final
int
大于等于0
最终总评成绩
Course_credit
int
大于等于0
学分
GPA
float
大于等于0
GPA
(14)CourseSelect表
列名称
类型
约束条件
键
说明
Stu_id
Varchar(20)
主键
学号
Course_id
Varchar(20)
主键
课程编号
Term
int
大于0
学期
Stu_full
bit
是否人数已满
Textbook
bit
是否预定教材
(15)ChangeLog表
列名称
类型
约束条件
键
说明
Stu_id
Varchar(20)
主键
学号
Course_id
Varchar(20)
主键
课程编号
Update_time
Varchar(20)
外键
班级编号
Score_pri_ordtime
int
大于等于0
原始平时成绩
Score_pri_mid
int
大于等于0
原始期中成绩
Score_pri_termial
int
大于等于0
原始期末成绩
Score_pri_expe
int
大于等于0
原始实验成绩
Score_pri_final
int
大于等于0
原始最终总评成绩
Pri_course_credit
int
大于等于0
原始学分
Pri_GPA
float
大于等于0
原始GPA
Score_cur_ordtime
int
大于等于0
现在平时成绩
Score_cur_mid
int
大于等于0
现在期中成绩
Score_cur_termial
int
大于等于0
现在期末成绩
Score_cur_expe
int
大于等于0
现在实验成绩
Score_cur_final
int
大于等于0
现在最终总评成绩
Cur_course_credit
int
大于等于0
现在学分
Cur_GPA
float
大于等于0
现在GPA
三:
程序代码
1.SQL建表代码
useEduMS
/*教师表*/
createtableTeacher
(
teacher_idvarchar(20)primarykey,
teacher_namevarchar(20),
teacher_sexvarchar(10)check(teacher_sexin('男','女')),
teacher_usenamevarchar(20),--用户名
teacher_passwordvarchar(20)--密码
)
/*秘书表*/
createtableSecretary
(
secretary_idvarchar(20)primarykey,
secretary_namevarchar(20),
secretary_sexvarchar(10)check(secretary_sexin('男','女')),
secretary_usenamevarchar(20),
secretary_passwordvarchar(20)
)
/*学院表*/
createtableCollege
(
college_idvarchar(20)primarykey,
college_namevarchar(20),
secretary_idvarchar(20)notnull,--教务秘书编号
major_numint,--专业数目
foreignkey(secretary_id)referencesSecretary(secretary_id)
)
/*专业表*/
createtableMajor
(
major_idvarchar(20)primarykey,
major_namevarchar(20),
class_countintcheck(class_count>=0),--班级数
college_idvarchar(20)notnull,
foreignkey(college_id)referencesCollege(college_id)
)
/*班级表*/
createtableClass
(
class_idvarchar(20)primarykey,
class_namevarchar(20),
class_stuCountintcheck(class_stuCount>=0),--班级人数
major_idvarchar(20)notnull,
gradevarchar(10),--年级
foreignkey(major_id)referencesMajor(major_id)
)
/*学生表*/
createtableStudent
(
stu_idvarchar(20)primarykey,
stu_namevarchar(20),
stu_sexvarchar(10)check(stu_sexin('男','女')),
class_idvarchar(20)notnull,
stu_identityvarchar(20)notnull,--身份证号
stu_intakedate,--入学时间
stu_birthdate,--出生日期
major_idvarchar(20)notnull,
college_idvarchar(20)notnull,
foreignkey(class_id)referencesClass(class_id),
foreignkey(major_id)referencesMajor(major_id),
foreignkey(college_id)referencesCollege(college_id)
)
/*课程表*/
createtableCourse
(
course_idvarchar(20)primarykey,
course_namevarchar(20),
course_creditint,--学分
course_hourint--学时
)
/*班级课程表*/
createtableCourseClass
(
course_idvarchar(20)notnull,
class_idvarchar(20)notnull,
teacher_idvarchar(20)notnull,
class_timevarchar(20),--上课时间
class_placevarchar(20),--上课地点
class_weekvarchar(10)check(class_weekin('单周','双周','单双周')),--上课周数
major_idvarchar(20)notnull,
primarykey(course_id,class_id),
foreignkey(course_id)referencesCourse(course_id),
foreignkey(class_id)referencesClass(class_id),
foreignkey(teacher_id)referencesTeacher(teacher_id),
foreignkey(major_id)referencesMajor(major_id)
)
/*教学计划表*/
createtableTPlan
(
major_idvarchar(20)notnull,
course_idvarchar(20)notnull,
gradevarchar(10),--年级
termintcheck(term>0),--学期
college_idvarchar(20)notnull,
max_sizeint,
primarykey(major_id,course_id),
foreignkey(major_id)referencesMajor(major_id),
foreignkey(course_id)referencesCourse(course_id),
foreignkey(college_id)referencesCollege(college_id)
)
/*选课表*/
createtableCourseSelect
(
stu_idvarchar(20)notnull,
course_idvarchar(20)notnull,
termint,--学期
stu_fullbit,--该课程是否人数已满
textbookbit,--是否预定教材
primarykey(stu_id,course_id),
foreignkey(stu_id)referencesStudent(stu_id),
foreignkey(course_id)referencesCourse(course_id)
)
/*教学表*/
createtableTeaching
(
teacher_idvarchar(20)notnull,
teacher_namevarchar(20),
class_idvarchar(20)notnull,
course_idvarchar(20)notnull,
termint,
major_idvarchar(20),
primarykey(teacher_id,class_id,course_id),
foreignkey(teacher_id)referencesTeacher(teacher_id),
foreignkey(class_id)referencesClass(class_id),
foreignkey(course_id)referencesCourse(course_id),
foreignkey(major_id)referencesMajor(major_id)
)
/*临时成绩表*/
createtableTempScore
(
stu_idvarchar(20)notnull,
course_idvarchar(20)notnull,
class_idvarchar(20)notnull,
termint,
rebuild_flagbit,
score_ordtimeintcheck(score_ordtime>=0),--平时成绩
score_midintcheck(score_mid>=0),--期中成绩
score_termialintcheck(score_termial>=0),--期末成绩
score_expeintcheck(score_expe>=0),--实验成绩
score_finalintcheck(score_final>=0),--最终总评成绩
course_creditintcheck(course_credit>=0),--所得学分
GPAfloat,
primarykey(stu_id,course_id),
foreignkey(stu_id)referencesStudent(stu_id),
foreignkey(course_id)referencesCourse(course_id),
foreignkey(class_id)referencesClass(class_id)
)
/*重修成绩表*/
createtableRebuildScore
(
stu_idvarchar(20)notnull,
course_idvarchar(20)notnull,
class_idvarchar(20)notnull,
termint,
rebuild_idint,--第几次重修
score_ordtimeintcheck(score_ordtime>=0),--平时成绩
score_midintcheck(score_mid>=0),--期中成绩
score_termialintcheck(score_termial>=0),--期末成绩
score_expeintcheck(score_expe>=0),--实验成绩
score_finalintcheck(score_final>=0),--最终总评成绩
course_creditintcheck(course_credit>=0),--所得学分
GPAfloat,
primarykey(stu_id,course_id,rebuild_id),
foreignkey(stu_id)referencesStudent(stu_id),
foreignkey(course_id)referencesCourse(course_id),
foreignkey(class_id)referencesClass(class_id)
)
/*成绩表*/
createtableFinalScore
(
stu_idvarchar(20)notnull,
course_idvarchar(20)notnull,
class_idvarchar(20)notnull,
termint,
score_ordtimeintcheck(sc