武汉理工大学华夏学院课程设计报告书课程名称:《数据库系统原理》课程设计题目:学生成绩管理系统数据库设计系名:信息工程系专业班级:软件1111班姓名:学号:指导教师:张玉蓉2013年12月27日2武汉理工大学华夏学院信息工程系课程设计任务书课程名称:数据库课程设计指导教师:张玉蓉班级名称:软件1111开课系、教研室:软件与信息安全一、课程设计目的与任务数据库课程设计是《数据库原理与应用》课程的后续实践课程,旨在通过一周的实践训练,加深学生对理论课程中数据库的基础知识,原理和使用方法的理解,加强学生综合运用sql语言以及数据库设计进行实际应用,包括数据库设计,数据库实现,sql语言查询和sqlserver数据库应用及管理的能力,进一步提高学生进行数据库设计,分析问题和解决问题的能力。学生将在指导老师的指导下,完成从需求分析,总体设计,实现到测试的全过程。二、课程设计的内容与基本要求本课程设计将设计和开发一个小型的数据库实用系统。要求数据功能模块划分合理,数据库表设计合理,查询语句优化,数据处理正确。根据所学的数据库原理与程序设计的知识,能够针对一个小型的图书管理系统,进行数据库系统的需求分析,概念结构设计、逻辑结构设计、物理结构设计,数据录入及测试等,完成题目要求的功能。主要任务:(1)需求分析根据设计任务书给出的背景资料,查找相关资料,结合自己的生活经验,对数据和处理过程进行分析,编写详细的数据词典(如数据项、记录的说明、它们的标识符、同义名及有关信息)。写出需求分析说明,包括系统的功能分析、系统的功能模块设计、数据库的数据字典、数据流图等。(2)概念结构设计说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、表的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图和全局视图(E-R图,可以用基本E-R图或扩展E-R图),消除不必要的冗余。(3)逻辑结构设计与物理结构设计将概念结构映射为数据库全局逻辑结构(关系模型),包括所确定的关键字和属性、重新确定的记录结构和所建立的各个表文件之间的相互关系。其中提请注意:a.关系模式的优化指出关系模式的范式级别及设计原则b.安全保密设计说明在数据库的设计中,将如何通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密的设计考虑。c.物理结构设计说明在数据库的设计中,是否需要索引及如何设置索引,设置索引的原则。3目录1.概述.......................................41.1设计题目....................................41.2可行性分析..................................42.需求分析...................................43.概念结构设计...............................43.1开发工具...................................43.2.1功能模块.................................43.2.2功能描述.................................43.2.3功能结构图................................54.逻辑结构设计...............................54.1数据分析...................................54.2数据库E-R图...............................55.物理结构设计...............................65.1数据库表设计...............................65.2数据库表...................................76.实现及测试.................................97.结论:特点和不足...........................148.心得体会..................................159.参考文献..................................1641.概述1.1设计题目:学生成绩管理系统数据库设计1.2可行性分析整个项目开发过程中,主要从经济可行性和技术可行性来分析:经济可行性:系统开发过程中,所需要的工具如计算机等所有工具均有自己承担技术可行性:目前该小组已经掌握java语言,能熟练编写jsp,数据库的设计与维护,软件工程,在开发过程中对遇到未知的技术问题还将会进行深一步的学习与研究。2.需求分析能实现对数据库的增删查改操作,能登陆学生系统,完成对学生系统的操作,能实现数据库的调用和存储。本需求分析包含了初步分析设计各功能模块、提供性能要求、对用户影响的信息、以及对各功能模块功能的描述;同时也是规范开发人员进行设计和部署实施的基础和依据,为整体工作组的工作流程做出明确指导,引导工作组员之间、工作组员与用户之间的沟通。最终作为总体审核、验证、确认和结项验收的依据;为开发方与客户方提供合法的合同保障。3.概念结构设计3.1开发工具Windows环境下使用Myeclipse和mysql3.2.1功能模块功能一:管理员①CRUD学生信息②CRUD教师信息③CRUD课程信息④课程和老师分配功能二:老师①添加/修改/删除/查询学生成绩②查询学生③查询所带课程功能三:学生①查询成绩②查询课程/选课③个人信息管理3.2.2功能描述5功能编号1-1功能名称学生信息管理功能描述:管理员登录之后,添加学生信息,添加到系统的学生才能够进行使用此系统进行选课、查询成绩等功能输入项学号、姓名、性别、年龄、院系、专业输出项操作提示:图13.2.3项目结构图图24.逻辑结构设计4.1数据分析管理员(用户名,密码)老师(工号,姓名,密码,性别,年龄,课程方向,备注信息)学生(学号,姓名,密码,性别,年龄,院系,专业,备注信息)课程(课程号,课程名,学分,课时)成绩(课程号,学号,分数)老师-课程(工号,课程号)学生-课程(学号,课程号)4.2数据库E-R图学生成绩管理系统管理员老师学生老师管理课程管理查看课程学生成绩选课增删查改老师信息增删查改课程信息增删查改学生信息学生管理查询成绩增删查改学生信息6图35.物理结构设计5.1数据库表设计表1:tb_admin表字段类型约束说明idint主键,自动增长管理员信息主键usernamevarcharNOTNULL管理员用户名passwordvarcharNOTNULL管理员密码表2:tb_teacher表字段类型约束说明idchar(7)主键老师工号,登录用户名namevarchar(30)NOTNULL老师真实姓名passwordvarchar(16)NOTNULL老师登录密码sexchar(2)NOTNULL性别ageint年龄course_directionvarchar(30)NOTNULL课程方向descvarchar(200)描述信息管理员老师课程学生成绩管理管理管理登陆查询管理选择产生7表3:tb_student表字段类型约束说明snumchar(11)主键学号,登录用户名namevarchar(30)NOTNULL真实姓名passwordvarchar(16)NOTNULL登录密码sexchar(2)NOTNULL性别ageint年龄departmentvarchar(30)NOTNULL学生所属的院系majorvarchar(30)NOTNULL学生所属的专业descvarchar(200)描述信息表4:tb_course表字段类型约束说明course_numchar(10)主键课程编号course_namevarchar(50)NOTNULL课程名course_xfnumberNOTNULL学分course_ksintNOTNULL课时表5:tb_grade表字段类型约束说明grade_course_numchar(10)联合主键,外键关联tb_course(course_num)grade_student_numchar(11)联合主键,外键关联tb_student(snum)grade_scoreintnotnull表6:tb_teacher_course表字段类型约束说明teacher_idchar(7)老师工号course_numchar(10)课程号表7:tb_student_course表字段类型约束说明student_numchar(11)学生学号course_numchar(10)课程号5.2数据库表8图4图5图6图79图86.实现及测试6.1功能实现截图第一步:登陆学生管理系统图9第二步:输入密码和学号10图10第三步:添加学生信息图11第四步:填写学生信息图12第五步:添加学生信息成功11图13第六步;添加老师信息图14第七步:分配教师信息成功12图15分配教师课程可以选择课程编号和工号:13图16添加学生信息列表图17删除其中一条信息,系统会提示是否删除14图137.结论:特点和不足7.1特点:通过以下程序链接数据库publicclassDBManager{/*准备连接数据库的字符串*///数据库不同,那么数据库的DRIVER和URL也不相同//数据库连接驱动(我们连接任何一种数据库都需要驱动jar包)privatestaticfinalStringDRIVER=com.mysql.jdbc.Driver;privatestaticfinalStringURL=jdbc:mysql://localhost:3306/db_sgms;privatestaticfinalStringUSERNAME=root;privatestaticfinalStringPASSWORD=123;//①在静态块中通过反射机制加载驱动static{try{Class.forName(DRIVER);}catch(Exceptione){}}//②通过驱动管理器获取数据库连接publicstaticConnectiongetConn(){Connectionconn=null;15try{conn=DriverManager.getConnection(URL,USERNAME,PASSWORD);}catch(Exceptione){e.printStackTrace();}returnconn;}7.2不足之处:还有一部分功能未能完成,例如,学生登陆界面么有做,老师登陆界面没有完成,另外许多界面没有优化,没有达到好的效果,不能给人以美感。8.心得体会总的来说这次计算机网络课程设计让我收获良多,这次又让我们重新认识了数据库,以前我们也做过数据库的实验,不过我都是零散的东西,但这次我们系统的完成了学生成绩管理系统的操作,学到了很多以前没学到的东西,同时也明白了我们真正要学的东西还很多,不要因为考试通过了就放松学习。这次的实训同样是由外面的老师带领我们来做,因此我们更深层次的了解整个过程的操作流程,认识到了各个代码的作用,如何调用数据库,如何完整的将数据存储到数据库中来,同时让我们认识了java.net这么新的课程,给了我们以后更大的发展空间,另外我也感觉这次的课程设计老师很负责,给我们很多自由练习的机会。另外,我们常常因为一个小错误,吃了很多苦,常常是一个单词的错误而走了很多弯路,程序不能正常运行,搞得很窝火,但凡事有苦也会有甜,看着自己的写的程序能正常运行,在自己手里一点一点的写出来,并能展示出结果,我心里有说不出来的高兴,确实我也学到了很多,以前没学好的,现在得到了巩固,而且我发现我们也需要细心和耐性,我想这也是这次实训的目的,我也能体会到老师的用心良苦,数据库对我们来说也是一门基础,这样做也是为了让我们更好掌握