


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 PAGE54 页 共 NUMPAGES54 页数据库物理设计实验报告 数据库系统设计实验报告46022数据库系统设计实验报告教务管理系统学院:计算机科学与技术 专业:软件工程 班级:学号:指导老师:一、概述项目背景:数据库课程设计系统名称:教务管理系统开发环境:SQL Server 2022二、需求分析p p 1、系统的概述一个学校由很多个学院组成,每个学院有多个专业,每个专业有1个或者多个班级。一个学生只属于1个班级,学生有、学号、性别、号、入学时间等属性。每个专业的每个年级都有对应的教学计划。教学计划指定了这个专业这个年级的某门课程在那个学期上,学分、学时是多少。每个学院都设置有1个教
2、务秘书,这些信息都由教务秘书进行输入。每个院系的课程都有自己的唯一编码,比如计算机系上的C语言,和电子系上的C语言,虽然都是同一门课,但是编码是不同的。但是同一个院系中的相同的课程,课程代码是唯一的。比如计算机学院的07计算机软件专业和计算机学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相同的。教务秘书在每个学期的中间时刻,为下一个学期进行排课,排课的容根据教学计划,比如08计算机软件专业的学生,在2022-2022年第2学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程安排上课教师(比如越)、上课时间(比如星期2,第1-2节)和地点(理工楼234),有的课程是单周
3、上,有的双周,也有是每周都上的。在每个学期期末,学生登录到上选择下一个学期需要上的课,选择的时刻,可以选择是否需要教材,如果某门课程的人数选满了,则不能给任何学生选择了。学生根据选择的课程进行上课,参加考试。每个老师可以用自己的用户名和密码登陆,选择这个学期自己所教的课程(一个老师可以上多个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考试成绩、平时成绩、实验成绩以及总评成绩。这些成绩都需要进行存储。为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而是放在一个临时的表中,只有当教务秘书审核过后,才导入到最终的成绩表中。学生在老师输入完成绩、教务秘书审核后,可以登录到网
4、上查询自己某个学期的成绩。成绩数据非常重要,为了防止教务秘书随意更改成绩,需要对成绩表的插入、删除、修改做出监控,凡是对成绩表做了上述操作,必须记录下来,放在另外一个表中,可以称为成绩变动记录表,这个表要求记录在什么时候,更新了那个同学那门课的成绩数据,原始值是什么,现在值是什么。如果是插入,则原始值为NULL,如果是删除,则现在值是NULL。为了在数据库层次上保证数据库的安全性,在数据库中,建立两类数据库用户,一类是教务秘书访问的,称为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否外键专业代码co
6、llege_idCharacters10否外键学院代码(2)教师表Teacher表:列名称类型宽度允许空值约束条件键说明teacher_idCharacters10否主键教师编号teacher_namevarchar20是教师teacher_usenamevarchar20是用户名teacher_passwordvarchar20是密码(3)班级信息表Class表:列名称类型宽度允许空值约束条件键说明class_idCharacters10否主键班级代码class_namevarchar20是班级名字class_acint是大于等于0班级人数major_idCharacters10否外键专业代
7、码gradeint是年级(4)学院表College表:列名称类型宽度允许空值约束条件键说明college_idchar10否主键学院代码college_namenvarchar20是学院名称secretary_idChar10否外键教务秘书编号count_majorint是默认为0专业数(5)教务秘书信息表Secretary表:列名称类型宽度允许空值约束条件键说明secretary_idCharacters10否主键教务秘书编号secretary_namevarchar20是教务秘书secretary_usenamevarchar20是用户名secretary_passwordvarchar2
8、0是密码college_idCharacters10否外键学院代码(6)专业信息表Major表:列名称类型宽度允许空值约束条件键说明major_idCharacters10否主键专业代码major_namevarchar20是专业名称count_classint是大于等于0班级数college_idCharacters10否外键学院代码(7)教学计划表TeachingPlan表:列名称类型宽度允许空值约束条件键说明major_idCharacters10否主键专业代码course_idCharacters10否主键课程编码course_namevarchar20是课程名称gradeCharac
9、ters2是年级termint是学期college_idCharacters10否外键学院代码course_creditint是学分course_lengthint是学时acmodateint是容量(8)课程表Course表:列名称类型宽度允许空值约束条件键说明course_idCharacters10否主键课程编码class_idCharacters10否主键班级代码teacher_idCharacters10否外键教师编号class_timevarchar15是上课时间class_addrvarchar20是上课地点weekvarchar15是单、双、单双均上单双周或每周都上termint
10、是学期major_idCharacters10否外键专业代码(9)学生选课表CourseElect表:列名称类型宽度允许空值约束条件键说明student_idCharacters10否主键学生学号course_idCharacters10否主键课程编码termint是学期student_fullbool是是或否是否人满te_tbookbool是是或否是否需要教材(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_e_peint是大于等于0实验成绩score_
12、finalint是大于等于0总评成绩course_creditint是大于等于0学分(12) 最终成绩表FinalScore表:列名称类型宽度允许空值约束条件键说明student_idCharacters10否主键学生学号course_idCharacters10否主键课程编码class_idCharacters10否外键班级代码termint是学期score_ordtimeint是大于等于0平时成绩score_midint是大于等于0期中成绩score_terminalint是大于等于0期末成绩score_e_peint是大于等于0实验成绩score_finalint是大于等于0总评成绩co
13、urse_creditint是大于等于0学分(13) 成绩变动记录表ModifyLog表:列名称类型宽度允许空值约束条件键说明student_idCharacters10否主键学生学号course_idCharacters10否主键课程编码update_timedate是更改时间score_pri_ordtimeint是原始平时成绩score_pri_midint是原始期中成绩score_pri_terminalint是原始期末成绩score_pri_e_peint是原始实验成绩score_pri_finalint是原始总评成绩pri_course_creditint是原始学分socre_cu
14、r_ordtimeint是现在平时成绩score_cur_midint是现在期中成绩score_cur_terminalint是现在期末成绩score_cur_e_peint是现在实验成绩score_cur_finalint是现在总评成绩cur_course_creditint是现在学分三、程序清单/_数据库的建立_/create database JWGL on primary(name = 'JWGL',filename = 'd:我的文件SQLJWGL.mdf',size = 4096kb,ma_size = unlimited,filegrowt
15、h = 1024kb)log on (name = 'JWGL_log',filename = 'd:我的文件SQLJWGL_log.ldf',size = 1024kb,ma_size = 2048gb,filegrowth = 10%)Go/_基本表的建立_/_学生表_/use JWGL(student_name nvarchar(8) null,student_id nvarchar(10) primary key not null,student_tender nvarchar (8) null,date_birth datetime null,
16、identity_no nvarchar(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 JWGL(class_id nvarchar(10) primary key not null,class_name nvarchar(20) null,class_ac int null,grade int null,major_id nvarchar(10) not
17、 null)/_专业表_/use JWGL(major_id nvarchar(10) primary key not null,major_name nvarchar(20) null,count_class int null,college_id nvarchar(10) not null)/_教务秘书表_/use JWGL(secretary_id nvarchar(10) primary key not null,Secretary_name nvarchar(8) null default '教务秘书',college_id nvarchar(10) not nu
18、ll,secretary_usename nvarchar(10) null default 'secretary',secretary_password nvarchar(10) null default '0000')/_学院表_/(college_id nvarchar(10) primary key not null,college_name nvarchar(20) null,count_major int null,secretary_id nvarchar(10) not null)/_教学计划表_/use JWGL(college_id
19、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 real null,acmodate int null default '0')/_课程表_/use JWGL(course_id n
20、varchar(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 null,major_id nvarchar(10) null,)/_学生选课表_/use JWGL(student_id nvarchar(10)
21、primary key(student_id,course_id) not null,term int null,course_id nvarchar(10) not null,te_tbook nvarchar(2) null default '是',student_full nvarchar(2) null default '否')/_教师表_/use JWGL(teacher_name nvarchar(8) null,teacher_id nvarchar(10) primary key not null,teacher_usename nvar
22、char(10) null default 'teacher',teacher_password nvarchar(10) null default '0000')/_教师上课表_/use JWGL(teacher_id nvarchar(10) primary key(teacher_id,course_id,class_id)not null,teacher_name nvarchar(8) null,term int null,major_id nvarchar(10) null,class_id nvarchar(10) not null,cou
23、rse_id nvarchar(10) not null)/_成绩临时表_/use JWGL(class_id nvarchar(10) not null,student_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 n
24、ull default '0',score_e_pe real null default '0',score_final real null default '0',course_credit real null default '0')/_最终成绩表_/use JWGL(class_id nvarchar(10) not null,student_id nvarchar(10) primary key(student_id,course_id) not null,course_id nvarchar(10) no
25、t null,term int null,score_terminal real null default '0',score_mid real null default '0',score_ordtime real null default '0',score_e_pe real null default '0',score_final real null default '0',course_credit real null default '0')/_成绩记录变动表_/
26、use JWGL(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_e_pe real null,score_pri_final real null,pri_course_credit real null,score_
27、cur_terminal real null,score_cur_mid real null,score_cur_ordtime real null,score_cur_e_pe real null,score_cur_final real null,cur_course_credit real null)/_检查约束_/use JWGLalter table Studentadd constraint ck_student_tendercheck (student_tender = '男' or student_tender = '女')alter t
28、able Classadd constraint ck_class_ac check (class_ac = 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_credit = 0)alter table Teach
29、ingPlanadd constraint ck_course_lengthcheck (course_length = 0)alter table TeachingPlanadd constraint ck_acmodatecheck (acmodate = 0)goalter table Courseadd constraint ck_weekcheck (week = '单周' or week = '双周' or week = '单双周')goalter table CourseElectadd constraint ck_te
30、_tbookcheck (te_tbook = '是' or te_tbook = '否')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 const
31、raint ck_score_mid_tempcheck (score_mid = 0)alter table TempScoreadd constraint ck_score_terminal_tempcheck (score_terminal = 0)alter table TempScoreadd constraint ck_score_e_pe_tempcheck (score_e_pe = 0)alter table TempScoreadd constraint ck_score_final_tempcheck (score_final = 0)alter table TempSc
32、oreadd constraint ck_course_credit_tempcheck (course_credit = 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_e_pe_finalcheck (score_e_pe
33、= 0)alter table FinalScoreadd constraint ck_score_terminal_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
34、_class_id_student_classforeign key (class_id)references 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)goalt
35、er table Classadd constraint fk_major_id_class_majorforeign 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 (se
36、cretary_id)references Secretary(secretary_id)goalter table 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 ta
37、ble Courseadd constraint fk_teacher_id_course_teacherforeign 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)refe
38、rences Class(class_id)goalter table FinalScoreadd constraint 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
39、 USER U_JWMS FOR LOGIN JINGQI-PCAdministratorGO/_把class等表的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 WIT
40、H GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON TeachingPlan 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 W
41、ITH 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 TO U_JWMS WITH GRANT OPTION GRANT SELECT,INSERT,DELETE,UPDATE ON TempScore TO U_JWMS WITH GRANT OPTIONDENY View Definition ON ModifyLog TO U_JWMS go/_U_Web, 是为Web用户访问所设计的。只对学生选课的数据、老师输入成绩的临时的表据有删除、插入、修改权限,其它的表只有只读的权限。_/USE JWGL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 装饰工程监督方案(3篇)
- 创业团队初期管理制度
- 华泰证券风险管理制度
- 学校采购预算管理制度
- 线路保护测评方案(3篇)
- 小学党员义工管理制度
- 农民开店日常管理制度
- 灌渠隧洞加固方案(3篇)
- 租赁场地服务方案(3篇)
- DB62T 4266-2020 珍珠梅育苗技术规程
- 保赔协会–历史,承保内容和组织
- 水质监测系统建设方案
- 建筑物的防雷及安全用电电子教案
- 中国近现代史社会实践报告-2000字
- 小学四年级英语下册期末的复习计划(精选6篇)
- NBT-31084-2016风力发电场项目建设工程验收规程(A.监理基本用表)
- 国电智深DCS系统培训PPT课件
- 混凝土结构及砌体结构课程设计(共18页)
- 高层建筑“一栋一册”消防安全档案
- 柳洲学校学生仪容仪表日常检查记录表
- 铣床数控课程设计(共39页)
评论
0/150
提交评论