数据库课程设计学籍管理系统.doc

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

《数据库课程设计学籍管理系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计学籍管理系统.doc(20页珍藏版)》请在三一办公上搜索。

1、上海应用技术学院课程设计任务书课程名称数据库原理及应用课程代码设计题目学籍管理系统设计时间2012年 9 月 3 日 2012 年9 月 14 日系(院)计算机科学与信息工程学院专业计算机科学与技术班级091041C1一、 课程设计任务(条件)、具体技术参数(指标)通过两周的课程设计,要求学生加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,要求学生对SQL语言要有较深入的了解和掌握,对数据库的管理(主要是安全性方面)要有一定程度的了解。本次课程设计

2、包含两大部分内容:设计软件和设计报告。其中设计软件在题目验收时由指导教师检查,具体内容不同,系统要求不同;设计报告作为书面材料提交。二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)1、每位同学提交设计的数据库和应用程序相关文档,并提交一份课程设计报告,内容要包含设计题目、设计目的、需求分析、系统功能描述、系统E-R图、关系模式设计、各数据库表的建立(代码)、系统各功能实现(代码)、系统功能评价等。2、课程设计报告电子版排版顺序: 任务书 目录 正文 附录。3、每个同学要针对自己的系统,写出对设计技术的分析、对系统的测试、在编码和调试过程中遇到的问题和解决方法等。4、

3、课程设计报告最后写出本次设计的心得体会。二、 课程设计工作进度计划1、 课程设计第1周第1天:布置任务、交代课题、安排设计事宜2、 第1周第2天:调研,书籍和资料的准备3、 第1周第3天-第5天:系统分析和设计4、 第2周第1天-第3天:编程和测试,撰写设计报告5、 第2周第4天-第5天:课程设计检查,交设计报告四、主要参考资料1数据库原理及应用 钱雪忠主编 北京邮电大学出版社 2010,6, 第三版2ASP基础教程 作者:魏雪英 3C#教程作者:郑阿奇 出版社: 电子工业出版社4. Kimball R等.数据仓库工具箱.北京. 电子工业出版社,2003.5.Imhoff C等.数据仓库设计.

4、 北京. 机械工业出版社,2004.指导教师(签名): 教研室主任(签名): 2012年 8 月 28 日 2012 年 8 月 31 日上海应用技术学院课程设计报告课程名称 数据库原理及应用 设计题目 学籍管理系统 姓 名 专业班级 学号 指导教师 日期 2012-9-3 2012-9-14 成绩 目 录一、设计目的及要求3二、课程设计内容说明4(一)概述4(二)需求分析51)问题陈述52)系统需完成的功能53)数据字典6(三)概念结构设计91.ER图9(四)逻辑结构设计9(五)物理结构设计10(六)数据库的实施12(七)数据库的运行14(八)数据库的运行和维护15三、结论及体会16一、参考

5、文献17二、附录17一、设计目的及要求1、通过两周的课程设计,要求学生加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,要求学生对SQL语言要有较深入的了解和掌握,对数据库的管理(主要是安全性方面)要有一定程度的了解;设计的最终结果为学生设计和完成具有较完善功能和一定规模的数据库应用系统(后台)、以及部分前台功能,并提交设计报告。2、本次课程设计的步骤可按照设计内容要求,在选择了设计题目之后,先进行系统需求分析和E-R图设计及相关文档的撰写;然后再进

6、行关系模式转换和评价、数据库表的建立等;接下来进行系统功能的实现,即完成后台操作的代码编写,以及部分前台功能的代码编写;调试和测试可基本同步进行,最后完成对系统的评价(或得出结论)和心得体会等文档的撰写。本次课程设计的重点在于各个文档的撰写和系统功能的具体实现。学生须以本指导书中对设计内容具体说明为设计依据,并根据不同系统的不同要求有侧重地完成任务。在语言上,须注意使用书面的、理论的语言,不要使用流行语、网络语、缩略语等非标准书面语。叙述注意前后的连贯性、逻辑性。图表要清晰,层次要分明。另外,如果在技术上或设计思路方面有亮点,也可以作为设计的一个重要内容。3、根据以上信息完成如下要求:1、请认

7、真作系统需求分析,设计出反映本系统的E-R图(需求分析、概念设计)。2、写出相应已设计的E-R图的关系模式,根据设计所需也可增加辅助关系模式,并找出各关系模式的关键字(逻辑设计)。3、在已设计的关系模式基础上开发设计功能子系统,要求子系统能完成如下功能要求(物理设计、设施与试运行):1)在某数据库管理系统中建立各关系模式对应的库表,并设计所需的视图、索引等。2)能对各库表进行输入、修改、删除、添加、查询、打印等基本操作。3)新生入校登记后可即时选课,老生每学期开始前可选课或作选课调整,一般要选共约20学分的若干门课程。4)能明细查询某学生的选课情况及某课程的选修学生情况。5)能统计查询出某学生

8、的成绩单(包括总成绩、平均成绩、不及格门数等)及某门课的选课人数、最高分、最低分、平均成绩等统计信息。6)能分析出某教师的教学质量情况(可根据该教师所任所有课优良数平均超过一定百分比来粗略评定)。7)其他你认为子系统应有的查询、统计功能。8)要求子系统设计得界面友好,功能选择方便合理,并适当考虑子系统在其安全性、完整性、备份、恢复等方面的功能要求。4、子系统设计完成后请书写课程设计报告,设计报告要围绕数据库应用系统开发设计的步骤来考虑书写,力求清晰流畅。最后根据所设计子系统、书写报告及出勤等综合评定成绩。二、课程设计内容说明(一) 概述背景:随着我国教育体制改革的深入进行,教育系统得到了前所未

9、有的发展。学生管理正在逐步迈向管理信息现代化。但是我国的学生管理信息化水平还处在初级阶段,主要表现在对学生的交费管理、学生的档案管理还是采用原有的人工管理方式。学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。由于大学生类别和专业的设置的多样化,大学生的学籍管理历来是非常繁琐和复杂的的工作。面对庞大的信息量, 这时的人工管理几乎无法实现,在这种情况下用数据库进行管理变的尤为必要,这可以发挥计算机的优势,就需要有学生信息管理系统来提高学生管理工作的效率.通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量和减少人为的错误。1) 编写目的完成学

10、籍管理系统将大大简化人工的工作量。2) 开发环境:Microsoft Visual Studio 2008数据库管理系统:SQL Server 2005运行环境:Windows XP3) 前台语言:ASP(二) 需求分析1) 问题陈述设计本系统模拟学校学籍管理内容,包括学生入学登记、学生选课、考试成绩登记、补考处理及教师教学质量分析统计等2) 系统需完成的功能1. 学生基本信息系统学生:学号(xh)、姓名(xm)、性别(xb)、年龄(nl)等。学生入学时新生需录入登记,登记后即可选课学习课程(一学期约20学分)。学生选每门课有个成绩(cj),若成绩不及格则补考后还需记录补考成绩(bkcj)。2

11、. 学籍管理系统 功能如下: 教务处登记学生成绩 学生选课 教师查询个人信息、工资等信息 学生查询成绩、所选的课程。 计算各班的总分和平均分,并按照平均分将各班成绩进行排序。 统计不及格考生的信息 可以按照特定的信息进行查找,并按照特定的要求进行排序。 可以对学生的信息统计等等系统的功能模块设计图如图所示。3) 数据字典经过可行性分析和初步需求调查,抽象出该子系统业务流程图,如图所示。下面,结合该实例具体情况,给出教务处具体需求。性别学号姓名年龄学生学号(xh)、姓名(xm)、性别(xb)、年龄(nl)课时数课程代号必修课学分(xf)课程课程代号(kcdh)、课程名(kcm)、课时数(kss)

12、、必修课(bxk)、学分(xf)。工龄工号职称工资教师姓名教师:工号(gh)、姓名(xm)、性别(xb)、职称(zc)、工龄(gl)、出生年月(csrq)、基本工资(jbgz)等。老师授课课程选课课程成绩成绩单成绩评定学生学生student名称数据类型大小约束Xh(主键)char10not nullXmchar10not nullXbchar10nullnlchar 10nullxihaochar10null老师teacher 名称数据类型大小约束Xm(主键)char10not nullXbchar10not nullzcchar10nullglchar 10nullcsrqchar10nul

13、ljbgzchar10null系 xi名称数据类型大小约束Dno(主键)char10not nulldnachar10not nulldeochar10nulldsoint10null新增的一个表 名称数据类型大小约束studentchar10not nulllessonchar10not nullteacherchar10nulll_scorechar 10nullstu_score_pingshiInt10nullstu_score_zhongpingInt10nulljigeInt10 null(三) 概念结构设计1. ER图dsodeoDnadnoglcsrqGh院系含 有含有xhnl

14、xmxbxmzc学生教师pj讲授选修bkcjcj课程jbgzxbxfkssbxkkcmkcdh(四) 逻辑结构设计逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。设计逻辑结构一般分为3步进行:(1)将概念结构转换为一般的关系、网状、层次模型;(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化。 关系模型将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关

15、系的码。对于实体型间的联系则有以下不同的情况:(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的个实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的侯选码。如果与某一端实体对应的关系模式合并,则需要在关系模式的属性中加入另一个关系模式的码和联系本身的属性。(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的个各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。(3)一个m:n联系转换为一个关系模式

16、。与该联系相连的个实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。(5)具有相同码的关系模式可合并。将概念结构设计阶段设计好的基本E-R图转换为关系模型,如下所示:n 学生(学号,专业号,院系号,姓名,性别)此为学生实体对应的关系模式。n 教师(教工号,姓名,性别,职称,所属院系),此为老师实体对应的关系模式。n 课程(课程号,课程名,学分),此为课程实体对应的关系模式。n 院系(院系号,

17、院系名称,负责人),此为系实体对应的关系模式。n 选修(学号,课程号,成绩),此为选修关系对应的关系模式。n 授课(课程号,教工号,课时),此为老师授课关系对应的关系模式。(五) 物理结构设计数据库的物理设计就是为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程。物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。因此在确定数据库的存储结构和存取方法之前,对数据库系统所支持的事务要进行仔细分析,获得优化数据库物理设计的参数数据库的物理设计通常分为两步:(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存取结构;(2)对物理结构进行评价,评价的重点是

18、时间和空间效率。1. 确定数据库的存储结构由于本系统的数据库建立不是很大,所以数据存储采用的是一个磁盘的一个分区。2.存取方法和优化方法存取方法是快速存取数据库中数据的技术。数据库管理系统一般都是提供多种存取方法。常用的存取方法有三类。第一类是索引方法,目前主要是B+树索引方法;第二类是聚簇方法;第三类是HASH方法。数据库的索引类似书的目录。在书中,目录允许用户不必浏览全书就能迅速地找到所需要的位置。在数据库中,索引也允许应用程序迅速找到表中的数据,而不必扫描整个数据库。在书中,目录就是内容和相应页号的清单。在数据库中,索引就是表中数据和相应存储位置的列表。使用索引可以大大减少数据的查询时间

19、。但需要注意的是索引虽然能加速查询的速度,但是为数据库中的每张表都设置大量的索引并不是一个明智的做法。这是因为增加索引也有其不利的一面:首先,每个索引都将占用一定的存储空间,如果建立聚簇索引(会改变数据物理存储位置的一种索引),占用需要的空间就会更大;其次,当对表中的数据进行增加、删除和修改的时候,索引也要动态地维护,这样就降低了数据的更新速度。 功能实现完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式。然后就可以组织数据入库,最后就在此基础上编写各个表相关的触发器

20、和存储过程。将生成的概念模型通过单击PowerDesigner11工具菜单栏上的Tools选项,再选择Generate Physical Data Model选项,就可以转换为物理模型,生成的最后结果具体如下图所示:(六) 数据库的实施1完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式。然后就可以组织数据入库了,这就是数据库实施阶段。2. 数据库的实施数据库的实施主要是根据逻辑结构设计和物理结构设计的结果,在计算机系统上建立实际的数据库结构、导入数据并进行程序的调试

21、。它相当于软件工程中的代码编写和程序调试的阶段。当在PowerDesigner Trial 11中设计好本系统的物理结构之后,就可以向数据库转换为相应的表。先选择菜单栏中Database的Connect,通过添加数据源,连接数据源,输入用户名和密码进行转换,生成相关的SQL语句,在通过运行之后,最终在SQL Server 2005中生成了如下所示的表。u 课程信息表(主要描述学校开设的课程的基本信息):中间表u 管理员信息表u 学生基本信息表(主要描述一些学生入学前的基本信息):u 教师基本信息表(主要描述教师的一些基本信息):u 院系信息表(主要描述学校中各个院系的一些基本信息):(七) 数

22、据库的运行通过SQL语句进行简单测试当一小部分数据输入数据库后,就可以开始对数据库系统进行联合调试,这一阶段要实际运行数据库应用程序,执行对数据库的各种操作,由于没有应用程序,所以只有通过SQL语言直接在数据库中执行对数据库的各种操作。通过在SQL Server 2005的查询分析器中输入相应的SQL语句,就可以得到相应的结果,具体如下所示:(1) 查询课程的基本信息(2) 插入基本信息(八) 数据库的运行和维护数据库试运行合格后,数据库开发工作就基本完成,即可投入正式运行了。但是,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长

23、期的任务,也是设计工作的继续和提高。在数据库运行阶段,对数据库经常性的维护工作主要是由DBA完成的,包括:(1)数据库的转储和恢复DBA要针对不同的应用要求制定不同的转储计划,一保证一旦发生故障能尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏。(2)数据库的安全性、完整性控制DBA根据实际情况修改原有的安全性控制和数据库的完整性约束条件,以满足用户要求。(3)数据库性能的监督、分析和改造在数据库运行过程中,DBA必须监督系统运行,对监测数据进行分析,找出改进系统性能的方法。(4)数据库的重组织与重构造数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低

24、了数据的存取效率,数据库性能下降,这时DBA就要对数据库进行重组织或部分重组织。三、结论及体会过两星期的数据库程序设计实习,我们从中受益匪浅,并且对数据库程序设计这一门课程有了更深一步的认识。在实习中,我们接触到了一门新的语言delphi,它提供给我们一个可视化的操作界面,更能激发同学们的兴趣爱好,所以我们学起来就有一股热情。我们把这学期所学的理论知识和实践联系起来,在所开发的项目中渐渐成长。虽然我们对这些新的知识运用得还不是很熟练,但是相信我们也在滴水穿石地成长起来。发现问题,提出问题,解决问题,使我们从不足之处出发,寻找新的学习方向。将其中调用的那些我看不懂的函数一一查清楚,逐渐弄懂它的设

25、计思路,思考它有哪些不足,有哪些地方还须要改进,有什么更好的方法、更简单的方法去实行。 这学习使我克服了偷懒的毛病,这在我以后的学习和工作中的心理定位与调节有很大的帮助。我感受到了做系统是一项非常烦琐周密的学习活动,它不但需要一个人周密的思考问题的能力,处理问题的能力,还需要有足够的耐心和严谨治学的作风,来不得半点马虎。在实习中,我们设计了一组对学生学籍进行管理的系统,它基本满足了界面友好,易于操作的要求,因此更利于用户操作方便,运行简易,从而达到对学生学籍更加有效系统的管理,并且速度更快内容更直接地达到用户所想要的效果。一、 参考文献1数据库原理及应用 钱雪忠主编 北京邮电大学出版社 201

26、0,6, 第三版2ASP基础教程 作者:魏雪英 3C#教程作者:郑阿奇 出版社: 电子工业出版社4. Kimball R等.数据仓库工具箱.北京. 电子工业出版社,2003.5.Imhoff C等.数据仓库设计. 北京. 机械工业出版社,2004.6ttison R.Web仓库工程与知识管理.北京.清华大学出版社,2003.7in T等.SQL Server 2000数据仓库与Analysis Services.北京.中国电力出版社,2003.8杨树青、杨玉顺数据库应用实例北京:人民邮电出版社.2006.二、 附录核心代码选课模块namespace Xueji public partial c

27、lass Xuanke : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) if (Sessionusername != null & Sessionusername.ToString()!=admin&Sessionbiao!=teacher) /显示course表中的数据 /连接数据库 SqlConnection conn = new SqlConnection(); conn.ConnectionString = Data Source=.SQLEXPRESS;AttachDbFilename

28、=D:xueji.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True; SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = new SqlCommand(select * from course, conn); DataSet ds = new DataSet(); sda.Fill(ds); GridView1.DataSource = ds.Tables0.DefaultView; GridView1.DataBind(); else

29、Response.Redirect(Denglu.aspx); protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) SqlConnection conn = new SqlConnection(); conn.ConnectionString = Data Source=.SQLEXPRESS;AttachDbFilename=D:xueji.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True; conn.Open()

30、; int x = GridView1.SelectedIndex + 1;/获得选择的课程的课程代号 /通过课程代号取得course表中的其他信息 string sqlString = select * from course where kcdh= + + x + ; SqlDataAdapter sda = new SqlDataAdapter(sqlString,conn); DataSet ds = new DataSet(); sda.Fill(ds); string tongji_lesson = ds.Tables0.Rows0kcdh.ToString(); string t

31、ongji_teacher = ds.Tables0.Rows0shouke_teacher.ToString(); string tongji_student = Sessionusername.ToString(); string tongji_l_score = ds.Tables0.Rows0xf.ToString(); /检查该名同学是否已经选了该课 string newsqlString = select count(*) from le_te where lesson=+tongji_lesson+and student=+tongji_student+; SqlCommand

32、cm = new SqlCommand(newsqlString, conn); /检查该名同学是否超过20学分上限 string newsqlString1 = select sum(l_score) as sum_score from le_te where student=+tongji_student+group by l_score; SqlCommand cm1 = new SqlCommand(newsqlString1,conn); /检查该门课是否超过了30人 string newsqlString3 = select count(lesson) from le_te whe

33、re lesson=+tongji_lesson+; SqlCommand cm3 = new SqlCommand(newsqlString3,conn); /方便后续使用 /int renshu=(int.Parse)(cm3.ExecuteScalar().ToString(); if (int.Parse)(cm3.ExecuteScalar().ToString() = 1)/该门课程人数是否超过30人,数字1 为测试(满两个人 开课 ) if (cm.ExecuteScalar().ToString() = 1)/已经选了该课 Response.Write(你已经选了该课); el

34、se/未选该课,则查看是否学分已经达到上限 if (cm1.ExecuteScalar() = null&(int.Parse)(tongji_l_score)20)/表示该名同学没有选过任何课程 ,数据库中还没有数据,必须另写判断 /将取得的值放入te_le表中 string newsqlString2 = insert into le_te (student,lesson,teacher,l_score) values( + tongji_student + + , + + tongji_lesson + + , + + tongji_teacher + + , + + tongji_l_

35、score + ); SqlCommand cm2 = new SqlCommand(newsqlString2, conn); if (cm2.ExecuteNonQuery() = 1) Response.Write(alert(选课成功);); else if (int.Parse)(cm1.ExecuteScalar().ToString() (20 - (int.Parse)(tongji_l_score)/学分未达上限,需要减去即将选择的该门课程的学分 /将取得的值放入te_le表中 string newsqlString2 = insert into le_te (student

36、,lesson,teacher,l_score) values( + tongji_student + + , + + tongji_lesson + + , + + tongji_teacher + + , + + tongji_l_score + ); SqlCommand cm2 = new SqlCommand(newsqlString2, conn); if (cm2.ExecuteNonQuery() = 1) Response.Write(alert(选课成功);); else Response.Write(学分已经达到上限); else /更新是否开课 /string news

37、qlString6 = update course set kaike= + 开课; /SqlCommand cm6 = new SqlCommand(newsqlString6, conn); /cm6.ExecuteNonQuery(); Response.Write(该门课已经达到上限); /以下为更新course表 /string newsqlString4 = ; string newsqlString4 = update course set yixuanrenshu= + + (int.Parse)(cm3.ExecuteScalar().ToString() + + where

38、 kcdh= + + tongji_lesson + ; SqlCommand cm4 = new SqlCommand(newsqlString4,conn); cm4.ExecuteNonQuery(); /更新是否开课信息,满30人开课 string newsqlString5 = select yixuanrenshu from course where kcdh= +tongji_lesson+; SqlDataAdapter sda2 = new SqlDataAdapter(newsqlString5, conn); DataSet ds2 = new DataSet(); sda2.Fill(ds2); if (int.Parse)(ds2.Tables0.Rows0yixuanrenshu.ToString() = 2) string newsqlString6 = update course set kaike= + 开+where kcdh=+to

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号