数据库系统设计实验报告教务管理系统.doc

上传人:仙人指路1688 文档编号:2395590 上传时间:2023-02-17 格式:DOC 页数:22 大小:309.50KB
返回 下载 相关 举报
数据库系统设计实验报告教务管理系统.doc_第1页
第1页 / 共22页
数据库系统设计实验报告教务管理系统.doc_第2页
第2页 / 共22页
数据库系统设计实验报告教务管理系统.doc_第3页
第3页 / 共22页
数据库系统设计实验报告教务管理系统.doc_第4页
第4页 / 共22页
数据库系统设计实验报告教务管理系统.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《数据库系统设计实验报告教务管理系统.doc》由会员分享,可在线阅读,更多相关《数据库系统设计实验报告教务管理系统.doc(22页珍藏版)》请在三一办公上搜索。

1、数据库系统设计实验报告 教务管理系统学院: 计算机科学与技术 专业: 软件工程 班级: 学号: 姓名: 指导老师: 一、概述 项目背景:数据库课程设计 系统名称:教务管理系统 开发环境:SQL Server 2008二、需求分析 1、系统的概述n 一个学校由很多个学院组成,每个学院有多个专业,每个专业有1个或者多个班级。一个学生只属于1个班级,学生有姓名、学号、性别、身份证号、入学时间等属性。n 每个专业的每个年级都有对应的教学计划。教学计划指定了这个专业这个年级的某门课程在那个学期上,学分、学时是多少。每个学院都设置有1个教务秘书,这些信息都由教务秘书进行输入。每个院系的课程都有自己的唯一编

2、码,比如计算机系上的C语言,和电子系上的C语言,虽然都是同一门课,但是编码是不同的。但是同一个院系中的相同的课程,课程代码是唯一的。比如计算机学院的07计算机软件专业和计算机学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相同的。n 教务秘书在每个学期的中间时刻,为下一个学期进行排课,排课的内容根据教学计划,比如08计算机软件专业的学生,在2009-2010年第2学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程安排上课教师(比如陈越)、上课时间(比如星期2,第1-2节)和地点(理工楼234),有的课程是单周上,有的双周,也有是每周都上的。n 在每个学期期末,学生登录

3、到网站上选择下一个学期需要上的课,选择的时刻,可以选择是否需要教材,如果某门课程的人数选满了,则不能给任何学生选择了。n 学生根据选择的课程进行上课,参加考试。每个老师可以用自己的用户名和密码登陆网站,选择这个学期自己所教的课程(一个老师可以上多个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考试成绩、平时成绩、实验成绩以及总评成绩。这些成绩都需要进行存储。n 为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而是放在一个临时的表中,只有当教务秘书审核过后,才导入到最终的成绩表中。n 学生在老师输入完成绩、教务秘书审核后,可以登录到网上查询自己某个学期的成绩。成绩数据非

4、常重要,为了防止教务秘书随意更改成绩,需要对成绩表的插入、删除、修改做出监控,凡是对成绩表做了上述操作,必须记录下来,放在另外一个表中,可以称为成绩变动记录表,这个表要求记录在什么时候,更新了那个同学那门课的成绩数据,原始值是什么,现在值是什么。如果是插入,则原始值为NULL,如果是删除,则现在值是NULL。n 为了在数据库层次上保证数据库的安全性,在数据库中,建立两类数据库用户,一类是教务秘书访问的,称为U_JWMS, 这个用户能对除了成绩变动记录表不能访问外,可以对所有的数据进行修改、选择、删除、插入。另外一类用户成为U_Web, 是为Web用户访问所设计的。这类用户只对学生选课的数据、老

5、师输入成绩的临时的表据有删除、插入、修改权限,其它的表只有只读的权限。2、教务系统的E-R图3、数据库表(1)学生信息表 Student表:列名称类型宽度允许空值约束条件键说明student_idCharacters10否主键学生学号student_namevarchar20是学生姓名student_tenderbool是男或女性别class_idCharacters10否外键班级代号identity_novarchar20否身份证号date_entrancedate是入学时间date_birthdate是出生日期major_idCharacters10否外键专业代码college_idCha

6、racters10否外键学院代码(2)教师表Teacher表:列名称类型宽度允许空值约束条件键说明teacher_idCharacters10否主键教师编号teacher_namevarchar20是教师姓名teacher_usenamevarchar20是用户名teacher_passwordvarchar20是密码 (3)班级信息表Class表:列名称类型宽度允许空值约束条件键说明class_idCharacters10否主键班级代码class_namevarchar20是班级名字class_accomint是大于等于0班级人数major_idCharacters10否外键专业代码grad

7、eint是年级(4)学院表College表:列名称类型宽度允许空值约束条件键说明college_idchar10否主键学院代码college_namenvarchar20是学院名称secretary_idChar10否外键教务秘书编号count_majorint是默认为0专业数(5)教务秘书信息表Secretary表:列名称类型宽度允许空值约束条件键说明secretary_idCharacters10否主键教务秘书编号secretary_namevarchar20是教务秘书姓名secretary_usenamevarchar20是用户名secretary_passwordvarchar20是密

8、码college_idCharacters10否外键学院代码(6)专业信息表Major表:列名称类型宽度允许空值约束条件键说明major_idCharacters10否主键专业代码major_namevarchar20是专业名称count_classint是大于等于0班级数college_idCharacters10否外键学院代码 (7)教学计划表TeachingPlan表:列名称类型宽度允许空值约束条件键说明major_idCharacters10否主键专业代码course_idCharacters10否主键课程编码course_namevarchar20是课程名称gradeCharacte

9、rs2是年级termint是学期college_idCharacters10否外键学院代码course_creditint是学分course_lengthint是学时accommodateint是容量(8)课程表Course表:列名称类型宽度允许空值约束条件键说明course_idCharacters10否主键课程编码class_idCharacters10否主键班级代码teacher_idCharacters10否外键教师编号class_timevarchar15是上课时间class_addrvarchar20是上课地点weekvarchar15是单、双、单双均上单双周或每周都上termin

10、t是学期major_idCharacters10否外键专业代码(9)学生选课表CourseElect表:列名称类型宽度允许空值约束条件键说明student_idCharacters10否主键学生学号course_idCharacters10否主键课程编码termint是学期student_fullbool是是或否是否人满textbookbool是是或否是否需要教材 (10)教师上课表Teaching表:列名称类型宽度允许空值约束条件键说明teacher_idCharacters10否主键教师代码teacher_namenvarchar20是教师姓名class_idCharacters10否主键

11、班级代码course_idCharacters10否主键课程编码termint是学期major_idCharacters10是专业代码 (11) 临时成绩表TempScore表:列名称类型宽度允许空值约束条件键说明student_idCharacters10否主键学生学号course_idCharacters10否主键课程编码class_idCharacters10否外键班级代码termint是学期score_ordtimeint是大于等于0平时成绩score_midint是大于等于0期中成绩score_terminalint是大于等于0期末成绩score_expeint是大于等于0实验成绩s

12、core_finalint是大于等于0总评成绩course_creditint是大于等于0学分 (12) 最终成绩表FinalScore表:列名称类型宽度允许空值约束条件键说明student_idCharacters10否主键学生学号course_idCharacters10否主键课程编码class_idCharacters10否外键班级代码termint是学期score_ordtimeint是大于等于0平时成绩score_midint是大于等于0期中成绩score_terminalint是大于等于0期末成绩score_expeint是大于等于0实验成绩score_finalint是大于等于0

13、总评成绩course_creditint是大于等于0学分 (13) 成绩变动记录表ModifyLog表:列名称类型宽度允许空值约束条件键说明student_idCharacters10否主键学生学号course_idCharacters10否主键课程编码update_timedate是更改时间score_pri_ordtimeint是原始平时成绩score_pri_midint是原始期中成绩score_pri_terminalint是原始期末成绩score_pri_expeint是原始实验成绩score_pri_finalint是原始总评成绩pri_course_creditint是原始学分s

14、ocre_cur_ordtimeint是现在平时成绩score_cur_midint是现在期中成绩score_cur_terminalint是现在期末成绩score_cur_expeint是现在实验成绩score_cur_finalint是现在总评成绩cur_course_creditint是现在学分三、程序清单 /*数据库的建立*/create database JWGL on primary(name = JWGL,filename = d:我的文件SQLJWGL.mdf,size = 4096kb,maxsize = unlimited,filegrowth = 1024kb)log o

15、n (name = JWGL_log,filename = d:我的文件SQLJWGL_log.ldf,size = 1024kb,maxsize = 2048gb,filegrowth = 10%)Go/*基本表的建立*/*学生表*/use JWGLcreate table dbo.Student(student_name nvarchar(8) null,student_id nvarchar(10) primary key not null,student_tender nvarchar (8) null,date_birth datetime null,identity_no nvar

16、char(10) null,date_entrance datetime null,class_id nvarchar(10) not null,major_id nvarchar(10) not null,college_id nvarchar(10) not null,)/*班级表*/use JWGLcreate table dbo.Class(class_id nvarchar(10) primary key not null,class_name nvarchar(20) null,class_accom int null,grade int null,major_id nvarcha

17、r(10) not null)/*专业表*/use JWGLcreate table dbo.Major(major_id nvarchar(10) primary key not null,major_name nvarchar(20) null,count_class int null,college_id nvarchar(10) not null)/*教务秘书表*/use JWGLcreate table dbo.Secretary(secretary_id nvarchar(10) primary key not null,Secretary_name nvarchar(8) nul

18、l default 教务秘书,college_id nvarchar(10) not null,secretary_usename nvarchar(10) null default secretary,secretary_password nvarchar(10) null default 0000)/*学院表*/create table dbo.College(college_id nvarchar(10) primary key not null,college_name nvarchar(20) null,count_major int null,secretary_id nvarch

19、ar(10) not null)/*教学计划表*/use JWGLcreate table dbo.TeachingPlan(college_id nvarchar(10) not null,major_id nvarchar(10) primary key(major_id,course_id) not null ,grade int not null,term int not null,course_id nvarchar(10) not null,course_name nvarchar(20) null,course_credit real null,course_length rea

20、l null,accommodate int null default 0)/*课程表*/use JWGLcreate table dbo.Course(course_id nvarchar(10) primary key(course_id,class_id) not null,teacher_id nvarchar(10) null,class_time datetime null,class_addr nvarchar(20) null,week nvarchar(10) null default 单双周均上,term int null,class_id nvarchar(10) not

21、 null,major_id nvarchar(10) null,)/*学生选课表*/use JWGLcreate table dbo.CourseElect(student_id nvarchar(10) primary key(student_id,course_id) not null,term int null,course_id nvarchar(10) not null,textbook nvarchar(2) null default 是,student_full nvarchar(2) null default 否)/* 教师表*/use JWGLcreate table db

22、o.Teacher(teacher_name nvarchar(8) null,teacher_id nvarchar(10) primary key not null,teacher_usename nvarchar(10) null default teacher,teacher_password nvarchar(10) null default 0000)/* 教师上课表*/use JWGLcreate table dbo.Teaching(teacher_id nvarchar(10) primary key(teacher_id,course_id,class_id)not nul

23、l,teacher_name nvarchar(8) null,term int null,major_id nvarchar(10) null,class_id nvarchar(10) not null,course_id nvarchar(10) not null)/*成绩临时表*/use JWGLcreate table dbo.TempScore(class_id nvarchar(10) not null,student_id nvarchar(10) primary key(student_id,course_id) not null,course_id nvarchar(10)

24、 not null,term int null,score_terminal real null default 0,score_mid real null default 0,score_ordtime real null default 0,score_expe real null default 0,score_final real null default 0,course_credit real null default 0)/*最终成绩表*/use JWGLcreate table dbo.FinalScore(class_id nvarchar(10) not null,stud

25、ent_id nvarchar(10) primary key(student_id,course_id) not null,course_id nvarchar(10) not null,term int null,score_terminal real null default 0,score_mid real null default 0,score_ordtime real null default 0,score_expe real null default 0,score_final real null default 0,course_credit real null defau

26、lt 0)/*成绩记录变动表*/use JWGLcreate table dbo.ModifyLog(student_id nvarchar(10) primary key(student_id,course_id) not null,course_id nvarchar(10) not null,update_time datetime null,score_pri_terminal real null,score_pri_mid real null,score_pri_ordtime real null,score_pri_expe real null,score_pri_final re

27、al null,pri_course_credit real null,score_cur_terminal real null,score_cur_mid real null,score_cur_ordtime real null,score_cur_expe real null,score_cur_final real null,cur_course_credit real null)/*检查约束*/use JWGLalter table Studentadd constraint ck_student_tendercheck (student_tender = 男 or student_

28、tender = 女)alter table Classadd constraint ck_class_accom check (class_accom = 0)goalter table Majoradd constraint ck_count_classcheck (count_class = 0)goalter table Collegeadd constraint ck_count_majorcheck (count_major = 0)goalter table TeachingPlanadd constraint ck_course_creditcheck (course_cred

29、it = 0)alter table TeachingPlanadd constraint ck_course_lengthcheck (course_length = 0)alter table TeachingPlanadd constraint ck_accommodatecheck (accommodate = 0)goalter table Courseadd constraint ck_weekcheck (week = 单周 or week = 双周 or week = 单双周)goalter table CourseElectadd constraint ck_textbook

30、check (textbook = 是 or textbook = 否)alter table CourseElectadd constraint ck_student_fullcheck (student_full = 是 or student_full =否)goalter table TempScoreadd constraint ck_score_ordtime_tempcheck (score_ordtime = 0)alter table TempScoreadd constraint ck_score_mid_tempcheck (score_mid = 0)alter tabl

31、e TempScoreadd constraint ck_score_terminal_tempcheck (score_terminal = 0)alter table TempScoreadd constraint ck_score_expe_tempcheck (score_expe = 0)alter table TempScoreadd constraint ck_score_final_tempcheck (score_final = 0)alter table TempScoreadd constraint ck_course_credit_tempcheck (course_c

32、redit = 0)goalter table FinalScoreadd constraint ck_score_ordtime_finalcheck (score_ordtime = 0)alter table FinalScoreadd constraint ck_score_mid_finalcheck (score_mid = 0)alter table FinalScoreadd constraint ck_score_expe_finalcheck (score_expe = 0)alter table FinalScoreadd constraint ck_score_term

33、inal_finalcheck (score_terminal = 0)alter table FinalScoreadd constraint ck_score_final_finalcheck (score_final = 0)alter table FinalScoreadd constraint ck_course_credit_finalcheck (course_credit = 0)go/*外键约束*/alter table Studentadd constraint fk_class_id_student_classforeign key (class_id)reference

34、s Class(class_id)alter table Studentadd constraint fk_major_id_student_majorforeign key (major_id)references Major(major_id)alter table Studentadd constraint fk_college_id_student_collegeforeign key (college_id)references College(college_id)goalter table Classadd constraint fk_major_id_class_majorfo

35、reign key (major_id)references Major(major_id)goalter table Majoradd constraint fk_college_id_major_collegeforeign key (college_id)references College(college_id)goalter table Collegeadd constraint fk_secretary_id_college_secrectaryforeign key (secretary_id)references Secretary(secretary_id)goalter t

36、able Secretaryadd constraint fk_college_id_secrectary_collegeforeign key (college_id)references College(college_id)goalter table TeachingPlanadd constraint fk_college_id_plan_collegeforeign key (college_id)references College(college_id)goalter table Courseadd constraint fk_teacher_id_course_teacherf

37、oreign key (teacher_id)references Teacher(teacher_id)goalter table Courseadd constraint fk_major_id_course_majorforeign key (major_id)references Major(major_id)goalter table TempScoreadd constraint fk_class_id_temp_classforeign key (class_id)references Class(class_id)goalter table FinalScoreadd cons

38、traint fk_class_id_score_classforeign key (class_id)references Class(class_id)go/*建立用户,分配权限*/*U_JWMS, 能对除了成绩变动记录表不能访问外, 可以对所有的数据进行修改、选择、删除、插入。*/USE JWGLGOCREATE LOGIN JINGQI-PCAdministrator FROM WINDOWS WITH DEFAULT_DATABASE=JWGLGOUSE JWGLGOCREATE USER U_JWMS FOR LOGIN JINGQI-PCAdministratorGO/*把cla

39、ss等表的SELECT,INSERT,DELETE,UPDATE权限授予用户U_JWMS*/GRANT SELECT,INSERT,DELETE,UPDATE ON Class TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON College TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON Course TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON T

40、eachingPlan TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON Major TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON FinalScore TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON CourseElect TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON Secretary TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON Student TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON Teacher TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON Teaching

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号