《数据库原理及应用课程设计》课程设计报告--教务管理系统.docx
数据库原理及应用课程设计课程设计报告题目:教务管理系统目录1项目背景12系统需求分析22.1数据流图23系统数据库设计23.1 概念模型结构设计23.1.1 E-R图23.1.2 数据字典53.2 逻辑模型结构设计53.3 物理模型结构设计63.3.1 通知表63.3.2 学生表63.3.3 课程表73.3.4 教材表73.3.5 班级表73.3.6 选教材表83.3.7 课程表83.3.8 部门表83.3.9 专业系部表83.3.10 专业表83.3.11 在线报名表93.3.12 在线报名记录表93.3.13 教师表93.4 数据库实施与维护103.4.1 数据表的创建103.4.2 数据插入124数据库实例分析155项目总结176参考文献181项目背景教务系统管理是大学的日常管理工作之一,涉及到校,系,师,生的诸多方面,随着教学体制的改革,尤其是学分制,选课制的开展和深入,教务日常管理工作日趋繁重,复杂。如何把教务工作信息化,模块化,便捷化是现代高校发展的重点,所以迫切需要研制开发一种综合教务管理软件,建成一个完整统一,技术先进,高效稳定,安全可靠的教学信息管理系统。开发此软件,使教务人员及操作者进行教务管理,方便操作者随时添加,查询,修改,使工作人员从繁琐的填表,查询表中解放出来,使供需双方都获得满意的结果,促进报表,统计数字的规范化,提高工作效率,降低教务管理维护费用,提高行政工作效率,改善服务质量,为学校领导决策提供支持,该软件的设计目标尽量达到人力与设备的节省并且处理数据的速度提高。2.1数据流图2系统需求分析图2-1数据流图(顶层)图2-2数据流图(低层)3系统数据库设计3.1概念模型结构设计3.1.1E-R图图3-1E-R图图3-3班级实体图3-4报名实体图3-5图书实体图3-6教师实体图3-7管理员实体图3-8课程实体3.1.2数据字典选课表二学号+姓名+班级+课程号+课程名称+成绩+绩点学号=字母J姓名=汉字K班级二汉字I字母I数字课程号二数字成绩二O100绩点二0.5图3-9选课表数据字典选教材二学号+姓名+班级+图书编号+图书名称+图书价格+折扣学号二字母二2姓名二汉字班级二汉字I字母I数字图书编号二数字图书名称二汉字I字母I数字产图书价格二O.1000图3-10选教材表数据字典在线报名二学号+姓名+班级+报名编号+报名名称学号二字母/姓名=汉字N班级二汉字I字母I数字报名编号=数字J报名报名名称二汉字I字母I数字产图3-11在线报名表数据字典3.2 逻辑模型结构设计选课(课程编号,学生编号,分数,绩点)通知(通知编号,管理员编号,通知标题,通知内容,通知日期,通知文件)学生(学生编号,班级编号,专业编号,学生姓名,学生性别,学生年龄,学生电话,学生地址,身份证号)授课(课程编号,教师编号)教材(教材编号,教材名称,ISBN,作者,出版社,分类,价格,折扣)选教材(学生编号,教材编号)班级(班级编号,班级名称,班级人数)课程(课程编号,课程名称,学分)系别(系部编号,系部名称)专业(专业编号,系部编号,专业名称)网上报名(报名编号,报名名称,报名类型,报名时间,是否补考)参加(报名编号,学生编号)教师(教师编号,系部编号,教师姓名,教师性别,教师年龄,身份证号,教师电话,教师地址)3.3 物理模型结构设计3.3.1 通知表字段名称类型长度主键外键非空条件约束notice_codevarchar20YYmanagerjdvarchar20Ynotice_titlevarchar30Ynotice_contentvarchar255notice_datedatetimenoticeilevarchar2553.3.2学生表字段名称类型长度主键外键非空条件约束StudentJdvarchar20YYClassJdvarchar20Ymajorjdvarchar20Ystudent_nametvarchar20Ystudent_sexbintYstudent_ageintYstudent_phonevarchar11student_addressvarchar50id_codevarchar153.3.3课程表字段名称类型长度主键外键非空条件约束CourseJdchar12YYteacherjdvarchar20YY3.3.4教材表字段名称类型长度主键外键非空条件约束bookjdvarchar20YNNbook_namevarchar50NNNISBNvarchar20NNNbook_authorvarchar20NNNbook_publishmentvarchar20NNNbook_categoryvarchar20NNNbook_pricefloatNNNbook_discountfloatNNN3.3.5班级表字段名称类型长度主键外键非空条件约束ClassJdvarchar20YNYclass_namevarchar20NNNclass_quantityintNNN3.3.6选教材表字段名称类型长度主键外键非空条件约束StudentJdvarchar20YNYbookjdvarchar20YNY3.3.7课程表字段名称类型长度主键外键非空条件约束CourseJdchar12YNYcourse_namevarchar20NNNcourse_scoreintNNN3.3.8部门表字段名称类型长度主键外键非空条件约束deptjdvarchar20YNYdept_namevarchar20NNN3.3.9专业系部表字段名称类型长度主键外键非空条件约束majorjdvarchar12YNYdeptjdvarchar20NYNmajor_namevarchar20NNY3.3.10专业表字段名称类型长度主键外键非空条件约束managerjdvarchar20YNYmanager_namevarchar20NNN3.3.11在线报名表字段名称类型长度主键外键非空条件约束online_registration_codevarchar20YNYonline_registration_namevarchar50NNYonline_registration_typevarchar20NNNonline_registration_timedatetimeNNNsecond_exambitNNN3.3.12在线报名记录表字段名称类型长度主键外键非空条件约束online_registration_codevarchar20YNYStudentJdvarchar20YNY3.3.13教师表字段名称类型长度主键外键非空条件约束teacherjdvarchar20YNYdeptjdvarchar20NYNteacher_namevarchar20NNYteacher_sexvarchar20NNYteacher_ageintNNNteacher_id_cardvarchar14NNNteacher_phonevarchar11NNNteacher_addressvarchar50NNN3.4 数据库实施与维护3.4.1 数据表的创建选课表createtableChooseCourse(CourseJdchar(12)notnullzstudentjdvarchar(20)notnull,scorefloatnotnull,GPAfloatnotnull,constraintPK_CHOOSECOURSEprimarykeynonclustered(coursejd,studentjd)通知表createtableNotice(notice_codevarchar(20)notnull,managerjdvarchar(12)null,notice_titlevarchar(30)notnull,notice_contentvarchar(255)null,notice_datedatetimenullnotice_filevarchar(255)null,constraintPK_NOTICEprimarykeynonclustered(notice_code)学生表createtableStudent(student_idvarchar(20)notnull,classjdvarchar(20)null,major_idvarchar(12)null,student_namevarchar(20)notnull,student_sexbitnotnullzstudent_ageintnotnull,student_phonevarchar(ll)null,student-addressvarchar(50)null,id_codevarchar(15)null,constraintPK_STUDENTprimarykeynonclustered(studentjd)I授课表createtableTeach(CourseJdchar(12)notnull,teacherjdvarchar(20)notnullzconstraintPK_TEACHprimarykeynonclustered(coursejd,teacherjd)图书表createtablebook(bookjdbook_nameISBNbook_authorbook_publishmentbook_categorybook_pricebook_discountvarchar(20)notnull,varchar(40)notnull,varchar(20)notnull,varchar(20)null,varchar(20)null,varchar(20)null,floatnull,floatnull,constraintPK_BOOKprimarykeynonclustered(bookjd)选教材表createtablechoose_book(StudentJdbookjdvarchar(20)notnullzvarchar(20)notnull,constraintPK_CHOOSE_BOOKprimarykeynonclustered(studentjd,bookjd)班级表createtableclass(classjdclass_namevarchar(20)notnullzvarchar(20)notnull,class_quantityintnullzconstraintPK_CLASSprimarykeynonclustered(classjd)课程表createtablecourse(coursejdcourse_namecourse_scorechar(12)notnullzvarchar(20)nullzintnull,constraintPK_COURSEprimarykeynonclustered(coursejd)部门表createtabledepartment(deptjddept_namevarchar(20)notnull,varchar(20)null,constraintPK_DEPARTMENTprimarykeynonclustered(deptjd)go专业表createtablemajor(majorjddeptjdmajor_namevarchar(12)notnull,varchar(20)null,varchar(20)notnullzconstraintPK_MAJORprimarykeynonclustered(majorjd)管理员表createtablemanager(managerjdvarchar(12)notnullzmanager_namevarchar(20)null,constraintPK_MANAGERprimarykeynonclustered(managerjd)在线报名表createtableonline_registration(online_registration_codevarchar(20)notnull,online_registration_namevarchar(50)notnullzonline_registration_typevarchar(20)null,online_registration_timedatetimenull,second_exambitnullzconstraintPK_ONLINE_REGISTRATIONprimarykeynonclustered(online_registration_code)参加表createtableparticepate(online_registration_codevarchar(20)notnull,StudentJdvarchar(20)notnull,constraintPK-PARTICEPAEprimarykeynonclustered(online_registration_code,StudentJd)教师表createtableteacher(teacher_idvarchar(20)notnull,dept_idvarchar(20)null,teacher_namevarchar(20)notnull,teacher_sexbitnotnull,teacher_ageintnull,teacher_id_cardvarchar(14)null,teacher_phonevarchar(ll)nullzteacher_addressvarchar(50)null,constraintPK_TEACHERprimarykeynonclustered(teacherjd)3.4.2 数据插入insertintodepartmentvalues('1001'J电子信息学院,);insertintodepartmentValUeS('1002J商学院);insertintodepartmentVaIUeS('1003'J电气学院');insertintomajorvalues(,2001'10l,软件工程,);insertintomajorValIleS('2002'J1001','电子工程');insertintoclassvalues(,BX1411,j,软件1411',40)insertintoclassvalues(,BX1412'软件1412',41)insertintoStudentValUeS('141003530136'JBXI4T1'J2001'J何江龙11,20,'15001726802'J湖南','432215199')insertintoStudentvalues(,141003330212,BX14112,20l,张扬松1j1j20j,13661514840,J重庆,J344343223')deletefromStudentwherestudent-id='14100353019,insertintoStudentvalues(,141003330213'/BX14112'j'2001'J周梦帆,1,19j'13661514841,J上海','414534524,)insertintoStudentValUeS('141003530119'JBXl4111'J2001','许剑L1,20,'1366T514842'J海南,324234423')insertintocoursevalues('C1001'JJAVA基础2)insertintocoursevalues(,C1002'C语言基础3)insertintocoursevalues('C1003','c+基础',2)insertintocoursevalues(,C1004,数据库概述,j2)insertintoteacherValUeS(T1001'J1001','任远L1,38J342342','138438438381上海')insertintobookValUeS('B1001'JJAVA基础'J233434573'JMicheal'J清华大学出版社'C1001,45.2,0.8)insertintoChoose_bookvalues(,14100353136,B1001,)insertintoChoose_bookvalues('141003530119'JB1001,)insertintoChoose_bookvalues('141003330212,B1001,)insertintoChoose_bookvalues(,141003330213,B1001')insertintoChoosecoursevalues(,C1001'141003530136',99,4.5)insertintoChoosecoursevalues(,C1002,J141003530136,69,1.2)insertintoChoosecoursevalues(,C1003'141003330212',98,4.5)insertintoChoosecoursevalues(,C1004'J141003330212,100,5)insertintoChoosecoursevalues(,C1001'J141003530119,60jl)insertintoChoosecoursevalues(,C1004'J141003530119,100,5insertintoChoosecoursevalues(,C1001,J1410033302137,3.8)insertintoChoosecoursevalues(,C1003,J141003330213',59,0)4数据库实例分析1 .查询许剑的所有信息select*fromStudentwhereStudenJname='许剑,2 .删掉许剑的所选C语言记录select*fromStudentwhereStlIdenJname='许剑,deletefromChooseCoursewherecourse_id=(selectc.course_idfromcoursecwherec.course_name=,c语言基础)andstudent_id=(selects.student_idfromStudentswheres.student_name=,许剑)3 .将许剑的年龄改为18updateStudentssets.studentage=18wheres.studentname=许佥4 .添加触发器,当修改学生信息时,将修改的学生学号插入日志表中。createtriggerstrigger_studentonStudentforupdateasdeclarestudent_idvarchar(20)setstudent_id=(selectd.student_idfromdeletedd);insertintologvalues(l,student_id)5 .查询未及格的科目编号,课程名称,学生学号,学生姓名、成绩。selectc.course_id,课程编号',c.course_name'课程名称',s.student_id'学号',s.student_name*姓名',cc.score'成绩'fromStudentSjChooseCourseegcoursecwheres.student_id=cc.student_idandcc.courseid=c.courseidandcc.score<60oo%,IE结果_j消息课程编号课程名称字号姓名成绩1iC1003c+基础141003330213周婪帆59图4.1学生信息6 .查询所有选教材的教材编号、教材名称、学号、姓名、价格。selectb.book_id,教材编号1b.book_name,书名',b.book_price,价格',s.student_id'学号',s.student_name'姓名,fromchoose_bookcbjbookb?Studentswherecb.student_id=s.StudenJidandcb.book_id=b.book_idoo%【因结果a消息教材编号书名价格学号姓名1BlOOlJAyA基础45.2141003530136“可江龙;2BlOOlJAVAg545.2141003330212张扬松3BlOOlJAyA基础45.2141003330213周梦帆4BlOOlJAVAg45.2141003530119许剑图4.2选教材信息7 .将许剑不及格课程的成绩改为60分。updateChooseCoursesetscore=60wherestudent_id=(selects.student_idfromStudentswheres.student_name=许剑)5项目总结通过这次课程设计发现这其中需要的很多知识我们没有接触过,上网查找资料的时候发现我们以前所学到的仅仅就皮毛,还有很多需要我们掌握的东西。同时也发现有很多已经学过的东西我们没有理解到位,不灵活运用于实际,不能很好的用来解决问题,这就需要自己不断的自学,不断的发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。在此次项目中,为了灵活应变,提高效率,项目小组都有各自的分工,虽然有些任务有重叠,但在组长的调换下都己经很好的解决,在保障项目能够成功运用的同时,每个组员都及时向组长反馈信息,以使得我们组的课设能够及时的完成!6参考文献1贾铁军,甘泉,俞小怡,宋少婷软件工程与实践清华大学出版社,20152王珊,萨师熠数据库系统概论(第五版)高等教育出版社,2014