• / 75
  • 下载费用:10 金币  

课程设计论文-竞赛管理系统(代码+数据字典+流程图).doc

关 键 词:
课程设计论文-竞赛管理系统(代码+数据字典+流程图).doc
资源描述:
信息工程学院《数据库课程设计》论文题 目:学科竞赛数据库设计学号:专业班级:姓名:指导老师:完成日期:1学科竞赛管理系统数据库设计摘 要: 学科竞赛是每个学校有的一项活动,他可以提高学生学习的积极性,培养学生对学科的兴趣,丰富学生的课余生活,让学生在课下可以学到知识,交到朋友。但学科竞赛的管理十分繁琐,流程复杂,工作量大。因此老师和教务处都迫切需要一个能方便管理竞赛的系统。该系统面向学生,老师,教务处,学院领导四种用户,涉及申请比赛,查询比赛,总结比赛,报名参赛,查询成绩等多方面功能。这次设计包括需求分析,概念结构设计,物理结构设计,数据库实施四个方面。关键字:数据库;学科竞赛管理;SQL ServerI目录1.需求分析 1业务流程图: .2数据流程图: 32.数据库结构设计 72.1 概念设计 .82.1.1 分 E-R 图建立 .82.1.2 全局/整体 E-R 图 82.2 逻辑设计 .92.2.1 建立关系模式 102.2.2 关系模式规范化处理 112.2.3 用户子模式建立 122.2.4 关系模式逻辑结构定义 143.数据库物理设计 154.数据库实施与测试 164.1 SQL Server 2008 数据库实施与测试 .164.1.1 数据库及数据库对象建立 164.1.2 数据入库 164.1.3 数据库测试 174.2 Oracle 数据库实施与测试 414.2.1 数据库及数据库对象建立 414.2.2 数据入库 414.2.3 数据库测试 415.总结 526.附录 52附录 1.52数据字典: 52附录 2.56附录 3.59附录 4.6413 级软件工程专业 3 班数据库应用系统课程设计课程论文11.需求分析需求分析是每个应用程序设计前必须的也是最重要的步骤,如果需求分析没做好,后期的工作可能算白费了。因为软件的设计就是为了服务用户,如果对用户的需求分析错误,那么最终设计的软件就不是用户所需要的。所以需求分析在软件开发周期中占有比较的的比重。并且贯穿软件开发始终。不能为了减少开发时间而缩短需求分析的时间。需求分析需要全面考虑用户的每个需求,有些用户没提到的需求也要从其他需求中提去出来。需求分析力求准确、完整、清晰、具体。为了更好的分析需求,需要设计很多图和表。包括业务流程图、数据流程图。需要设计数据字典,包括数据项、数据结构、数据流、数据逻辑、数据存储。概述:学科竞赛信息管理系统旨在搭建一个信息平台,方便各类用户处理学科竞赛方面的事务,如方便用户浏览信息,简化管理中的各种操作,提高相关人员工作的效率。其服务的对象有四个,分别为学生,教师,教务处管理员,学院管理员。学生主要的业务有报名参赛,老师可以申报比赛,提交比赛总结,教务处和学院负责审核比赛和添加比赛,并且负责各项赛事的统计和分析工作。所有用户都可以对赛事进行查询。首先从业务的角度来描述其功能。业务主要分为两个部分:报名管理和过程管理,过程管理分为竞赛项目管理,竞赛统计管理,竞赛项目查询三部分。报名管理:系统根据竞赛的报名信息推荐给相关学生。学生如果选择报名,不用填写信息,系统会将其个人信息直接存储在报名表中,待教师和学院进行审核,审核的结果会在开赛前几天公布。竞赛项目管理:教师填写竞赛申请表和报名信息,系统先交个学院审核,通过了再交给教务处审核。通知老师最终的审核结果。如果都审核通过了,教务处发布到系统中。如果审核不通过,教务处可以让老师修改项目预算,修改时间或地点后再次申请,或者直接放弃该项赛事。竞赛统计管理:学院赛事统计,可以查看某一年份各学院申报竞赛的数量和经费,也可以分析各个学院在某个比赛的表现,查询某个学生在校所获奖项等。这些都可以作为报表导出。竞赛赛事查询:各用户可以根据不同的需求进行竞赛项目的查询操作,查看竞赛的报名情况,成绩等信息。13 级软件工程专业 3 班数据库应用系统课程设计课程论文2简化功能结构如下业务流程图:图 1-2 添加比赛业务图 1-1 系统功能结构图13 级软件工程专业 3 班数据库应用系统课程设计课程论文3图 1-3 学生报名参赛业务数据流程图:图 1-4 顶层数据流程图13 级软件工程专业 3 班数据库应用系统课程设计课程论文4图 1-5 第一层数据流程图 1图 1-6 第一层数据流程图 213 级软件工程专业 3 班数据库应用系统课程设计课程论文5图 1-7 第一层数据流程图 3图 1-8 第二层数据流程图 113 级软件工程专业 3 班数据库应用系统课程设计课程论文6图 1-9 第二层数据流程图 213 级软件工程专业 3 班数据库应用系统课程设计课程论文7图 1-10 第二层数据流程图 3根据数据流程图可以建立数据字典,分别有数据项,数据结构,数据流,数据逻辑和数据存储。见附录 1.2.数据库结构设计主要包括概念设计和逻辑设计两个部分。13 级软件工程专业 3 班数据库应用系统课程设计课程论文82.1 概念设计/*阐述概念设计目标、任务和方法,重点介绍概念设计的内容。*/概念模型是现实世界到机器世界的一个中间层次。概念结构设计时整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型。——数据库系统概论(王珊,萨师煊第五版)概念设计就是将需求分析得到的用户需求抽象为信息结构(即概念模型) 。概念设计是在需求分析的基础上进行设计的,是把需求分析的成果转化为简单、清晰、易于理解的概念模型。概念模型中最主要的就是 E—R 图。2.1.1 分 E-R 图建立阐述分 E-R 图建立的思想(以中层数据为切入点,按照分层次/分模块思想) ,用E-R 模式描述。E-R 图的建立以比赛为切入点。分为教师申请比赛,学院或教务处添加或总结比赛。学院或教务处审核比赛,学生报名参赛。教师总结比赛等模块2.1.2 全局/整体 E-R 图整体 E-R 图整体 E-R 把各个 E-R 图按逻辑组合起来。来粗略的描述整个系统要完成的功能。E-R 图如下:13 级软件工程专业 3 班数据库应用系统课程设计课程论文92.2 逻辑设计逻辑结构设计的任务就是把概念结构设计阶段设计的基本 E-R 图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。教 师申 请赛 事申 请 表学 院添 加教 务 处n 报 名 参 加学 生参 赛 名 单n发 布n通 知 n发 布n发 布通 知总 结1审 核1审 核添 加nn1总 结总 结n 1修 改n 1nn图 2- 1 全局 E-R 图13 级软件工程专业 3 班数据库应用系统课程设计课程论文102.2.1 建立关系模式E-R 图向关系模型的转换要解决的问题是,如何将实体型和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。对于不同的实体间的联系有不同的转换方式。1. 一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要再该关系模式的属性中加入另一个关系模式的码和联系本身的属性。2. 一个 1:n 联系可以转换为一个独立的关系模式,也可以与 n 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码及联系本身的属性均转换为关系的属性,而关系的码为 n 端实体的码。3. 一个 m:n 联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,个实体的码组成关系的码或关系码的一部分。4. 三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,个各实体组成关系的码或关系码的一部分。5. 具有相同码的关系模式可以合并。根据上面的转换原则得到的关系模式如下:学生信息(学号,姓名,性别,生日,电话,邮箱,专业,所在班级,年级,系统登录密码, 学号-姓名, 学号-性别, 学号-电话,学号-邮箱,学号-所在班级, 学号-年级, 学号-专业,学号-系统登录密码) ;教师信息(工号,姓名,性别,生日,电话,邮箱,所在学院,登录密码,职务,备注,工号-姓名, 工号-性别,工号-生日,工号-电话, 工号-邮箱, 工号-所在学院, 工号-登录密码, 工号-职务) ;学院信息(学院名, 负责人工号, 学院名-负责人工号) ;//教务处当做学院处理。专业信息(专业名称,所在学院, 专业名称-所在学院) ;赛事信息(赛事编号,赛事名称,赛事信息,比赛时间,赛事级别,主办方,负责人工号,报名开始时间,报名结束时间,赛事举办地点,赛事预算,赛事申请信息,13 级软件工程专业 3 班数据库应用系统课程设计课程论文11赛事总结,赛事审核信息,赛事编号-赛事名称, 赛事编号-比赛时间,赛事编号-赛事级别,赛事编号-主办方,赛事编号-负责人工号,赛事编号-报名开始时间,赛事编号-报名结束时间,赛事编号-赛事举办地点,赛事编号-赛事申请信息,赛事编号-赛事总结,赛事编号赛事审核信息) ;竞赛报名信息及结果(赛事编号, 报名学生学号,指导老师, 报名学生成绩,报名学生排名,报名学生备注,赛事编号+报名学生学号-报名学生学号,赛事编号+报名学生学号-指导老师,赛事编号+报名学生学号-报名学生成绩,赛事编号+报名学生学号-报名学生排名,赛事编号+报名学生学号-报名学生备注) 主码:赛事编号+报名学生学号;通知信息(通知编号,通知时间,通知发起者,通知内容, 通知编号-通知时间,通知编号-通知发起者,通知编号-通知内容) ;学生通知(通知编号,通知对象学号) ;教师通知(通知编号,通知对象工号) ;2.2.2 关系模式规范化处理1. 对于学生信息关系模式, 姓名,性别,专业,生日,邮箱,手机号,年级,密码, 这些属性都是独立的不相互关联的,所以不存在依赖关系,那么处理学号与其他非主属性的函数依赖外,就不存在其他函数依赖,也就不存在传递依赖了,所以满足三范式。2. 对于教师关系模式,与学生信息关系模式相同,所以也满足三范式。3. 对于竞赛信息关系,其中的非主属性互不相关,所以不存在传递关系。4. 对于竞赛成绩信息,他是由竞赛与学生的关系转换而来,非主属性互不依赖,所以也满足三范式。5. 对于通知信息,其中的非主属性互不相关,所以不存在传递依赖,所以满足三范式。6. 学生通知和教师通知是由实体联系转换而得到的关系,其特点类似于竞赛成绩所以也满足三范式。7. 学院和专业关系都只有两个属性,所以不可能存在传递依赖,所以满足三范式。13 级软件工程专业 3 班数据库应用系统课程设计课程论文122.2.3 用户子模式建立用户子模式的设计是根据不同用户或局部应用的需求,结合具体关系数据库来生成多个视图。视图并不是真正存在的表,而是由基本表导出的表,是一个虚表。视图的建立对数据库来说意义重大。视图有以下几个方面的优势:1. 视图能够简化用户的操作。直接在视图上操作,比在表上操作更方便,因为直接在表上操作,可能需要用到,连接、嵌套查询等操作,如果直接在视图上操作,可能不需要这些操作。2. 视图使用户以多种角度看待同一数据。视图的建立没有想基本表那样多的约束,它可以根据用户的实际需求来建立表。比如说成绩信息,在基本表中应该是学号、比赛编号和成绩,但老师希望看到的是学生姓名和比赛成绩。这个就可以构成一个视图。3. 视图对重构数据库提够了一定程度的逻辑独立性。意思是说如果数据库要重构,基本表的结构改变了,但由于视图的存在,如果之前有的操作是在视图上的,那么这些操作相关的代码就不用修改了。4. 视图能够对机密数据提供安全保护。针对不同用户建立不同的视图,使得不同用户只能看到数据表中的部分数据,可以有效防止数据泄露,数据被恶意修改。5. 适当利用视图可以更清晰地表达查询。如果之前建立好了视图,那么在查询的时候直接对视图进行查询语句会更加简单易懂。针对该数据库,可建立如下视图:1. 对于学生信息,学生,教师能看到学生信息表和教师信息表中除了密码以外的全部信息。所以针对学生信息表和教师信息表,建立一个包含除了密码以外的所有信息的视图。为了方便了解信息,在视图中把学生表中的生日替换为年龄,然后加上学生学院信息。2. 对于赛事信息,除了竞赛申请者、学院负责人,其他人不能看到赛事信息表中的赛事预算,赛事总结,赛事审核信息。所以把赛事信息表中已经审核通过的比赛除了这些属性外,再建立一个视图,方便学生查看和报名比赛。3. 为了方便学生和教师查看成绩,应该建立含有学生具体信息的成绩视图。13 级软件工程专业 3 班数据库应用系统课程设计课程论文134. 为了方便学生查看和报名即将举行的比赛,应对已经审核通过的比赛建立视图。5. 为了方便学院和教务处审核比赛,应对待审核的比赛建立视图。具体视图信息如下:1.学生信息视图(学号,姓名,性别,年龄,电话,邮箱,专业,所在学院,年级);2.教师信息视图(工号,姓名,性别,年龄,电话,邮箱,所在学院) ;3.已审核赛事信息视图(赛事编号,赛事名称,赛事信息,比赛时间,赛事级别,主办方,负责人工号,报名开始时间,报名结束时间,赛事举办地点) ;4.学生成绩视图(学生姓名,专业,年级,学院,比赛名称,指导老师,比赛成绩,比赛排名,备注) ;5.待审核赛事信息视图(赛事编号,赛事名称,赛事信息,比赛时间,赛事级别,主办方,负责人工号,报名开始时间,报名结束时间,赛事举办地点,赛事预算,赛事申请信息,赛事总结,赛事审核信息)6.已审核赛事视图(赛事编号,赛事名称,赛事信息,比赛时间,赛事级别,主办方,负责人工号,报名开始时间,报名结束时间,赛事举办地点,赛事预算,赛事申请信息,赛事总结,赛事审核信息)13 级软件工程专业 3 班数据库应用系统课程设计课程论文14图 2-2 全部视图2.2.4 关系模式逻辑结构定义关系模式总共有九个,一下为其汇总表。表 2-2 医院门诊管理系统关系模式汇总表关系模式名称 含义 备注studentInfor 学生详细信息 附录 2 附表 113 级软件工程专业 3 班数据库应用系统课程设计课程论文15关系模式名称 含义 备注teacherInfor 教师详细信息 附录 2 附表 2departInfor 学院信息 附录 2 附表 3contestInfor 赛事详细信息 附录 2 附表 4notice 通知相关内容 附录 2 附表 5stunotice 学生通知记录 附录 2 附表 6teanotice 教师通知记录 附录 2 附表 7conResult 竞赛成绩信息 附录 1 附表 8majInfor 专业学院关系 附录 1 附表 93. 数据库物理设计数据库的物理设计时为逻辑数据模型选取一个合适的物理结构(包括存储结构和存取方法)从而最大限度地提高数据库的效率。数据库的物理设计通常分为两步:(1) 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构(2) 对物理结构进行评价,评价的重点是时间和空间效率。由于在建立主键的时候,数据库自动将其当做聚簇索引,而一张表只能建立一个聚簇索引,所以这里主要考虑非聚簇索引的设计。虽然索引会明显提高数据查询的效率,但索引的加入也会带来弊端。(1) 索引的建立会增加数据库的磁盘占用空间。索引并不像视图那样是虚的,它是实际存在的一种表,索引任何索引都会占据一定的空间。(2) 索引的建立会影响 insert, delete, update 等语句的功能。因为执行这些语句的同时,索引也要做相应的调整和更新。就该数据库而言,学生信息是该系统的基础,大多数业务都围绕着某个学院的学生进行的,如通知某个学院的学生参加比赛,查询某个学院的学生信息,所以学生表表会经常涉及到关于某个学院的查询和连接操作。并且学生信息表在建立后就很少插入,更新和删除,根据上面的讨论,可以对学生信息表中的专业名称建立非聚簇索引。另外竞赛信息也是该系统的基础,在学生查看所在学院竞赛,教务处统计某个学院竞赛经费和举办情况这些业务中会经常涉及到 ORDER BY、GROUP BY、 UNION、 DISTINCT 操作,所以对竞赛信息表中的学院名称也建立非聚簇索引。再者,竞赛成绩信息是该系统的中心,无论是学生,老师,学院,还是教务处,13 级软件工程专业 3 班数据库应用系统课程设计课程论文16都会涉及到查询某个竞赛成绩的操作,而且每个竞赛都会有排名,这涉及到 ORDER BY 操作,查询某个竞赛某个学院的比赛情况,这涉及到 GROUP BY 操作。并且一但竞赛成绩被录入,就不会对该成绩信息进行更新、插入和删除操作。所以,对竞赛成绩中的竞赛编号建立非聚簇索引。图 2-3 全部索引4.数据库实施与测试4.1 SQL Server 2008数据库实施与测试4.1.1 数据库及数据库对象建立按照逻辑设计的成果,由于存在外键约束,所以对建表的顺序有约束。根据各个约束条件。分别建立学院信息表,专业信息表,教师信息表,学生信息表,赛事信息表,通知信息表,学生通知表,教师通知表,赛事成绩表。DDL 语句见附录 3。4.1.2 数据入库选择一些学院和专业录入到数据库,然后随机录入教师和学生信息。然后根据,在录入过程中根据外键约束做相应调整。13 级软件工程专业 3 班数据库应用系统课程设计课程论文174.1.3 数据库测试下面主要对建立的存储过程和触发器测试。/*教师申请比赛的存储过程*/createprocedure tea_apply_contest@conName varchar(30),@conInfor text,@conLevel varchar(20),@conHost varchar(20),@conTeaId varchar(10),@conBudget smallint,@conApply textasinsertinto conInfor(conName,conInfor,conLevel,conHost,conTeaId,conBudget,conApply,conVerify)values(@conName,@conInfor,@conLevel,@conHost,@conTeaId,@conBudget,@conApply,'未审核')go测试代码13 级软件工程专业 3 班数据库应用系统课程设计课程论文18exec tea_apply_contest'Java知识大赛','数据库设计的比赛,面向全院','院级','信息工程学院','2000000003','3000','申请说明书'go测试结果:图4-113 级软件工程专业 3 班数据库应用系统课程设计课程论文19图4-2/*学院或教务处添加比赛的过程*/createprocedure add_contest@conName varchar(30),@conInfor text,@conLevel varchar(20),@conHost varchar(20),@conTeaId varchar(10),@conBudget smallint,@conApply textasinsertinto conInfor(conName,conInfor,conLevel,conHost,conTeaId,conBudget,conApply,conVerify)values(@conName,13 级软件工程专业 3 班数据库应用系统课程设计课程论文20@conInfor,@conLevel,@conHost,@conTeaId,@conBudget,@conApply,'审核通过')goexec add_contest'C++语言知识大赛','关于C语言知识设计的比赛,面向全院','院级','信息工程学院','2000000001','3000','申请说明书'go测试结果:13 级软件工程专业 3 班数据库应用系统课程设计课程论文21图4-3/*显示待审核比赛存储过程*/createprocedure show_unverifyasselectteaInfor.teaName,conInfor.conName,conInfor.conInfor,conInfor.conLevel,conInfor.conHost,conInfor.conTeaId,conInfor.conBudget,conInfor.conApplyfromconInfor,teaInforwhere conVerify ='未审核'and teaInfor.teaID = conInfor.conTeaIdgoexec show_unverifygo13 级软件工程专业 3 班数据库应用系统课程设计课程论文22图4-4/*审核比赛过程*/createprocedure verify_contest@conID int,@verifyInfor varchar(10)asupdate conInforset conInfor.conVerify = @verifyInforwhere conInfor.conID = @conIDgoexec verify_contest'2','审核未通过'goexec verify_contest'3','审核通过'go13 级软件工程专业 3 班数据库应用系统课程设计课程论文23图4-5/*设置报名和比赛信息的过程*/createprocedure set_reg_infor@conID int,@conTime datetime,@regBegin datetime,@regEnd datetime,@conAddress varchar(50)asupdate conInfor setconInfor.conTime = @conTime,conInfor.regBegin = @regBegin,conInfor.regEnd = @regEnd,conInfor.conAddress = @conAddresswhereconInfor.conID = @conIDand conInfor.conVerify ='审核通过'goexec set_reg_infor8,'2015/6/24 12:00','2015/6/23 20:00','2015/6/24 10:00','信息工程学院m2'13 级软件工程专业 3 班数据库应用系统课程设计课程论文24go测试结果图4-6/*测试ident_current()函数,该函数返回刚插入后数据项的主键*/insertinto notice(noticeTime,noticeHostID,noticeInfo)values('2015/6/24 00:05','2000000001','测试5')selectident_current('notice')go/*赛事负责人通知学生参加某个比赛*/dropprocedure con_noticego13 级软件工程专业 3 班数据库应用系统课程设计课程论文25createprocedure con_notice@conID int,@noticeTime datetime,@noticeHostID varchar(10),@stuGrade char(4),@name varchar(20)asbeginif(select conInfor.conVerifyfrom conInforwhere conInfor.conID = @conID)='审核通过'begindeclare@conName varchar(30),@conLevel varchar(20),@noticeID intselect @conName =(select conNamefrom conInforwhere conID = @conID)select @conLevel =(select conLevelfrom conInforwhere conID = @conID)insertinto notice(noticeTime,noticeHostID,noticeInfo)values(@noticeTime,@noticeHostID,@conName +'马上就要开始了,希望你踊跃报名参加!')13 级软件工程专业 3 班数据库应用系统课程设计课程论文26select @noticeID =(selectident_current('notice'))declare @stuID char(10)if @conLevel ='校级'begindeclare uni_cursor cursorforselect stuID from stuInforwhere stuGrade = @stuGradeopen uni_cursorfetchnextfrom uni_cursorinto @stuIDwhile(@@FETCH_STATUS=0)begininsertinto stuNotice(stuNotID,stuNotTo)values(@noticeID,@stuID)fetchnextfrom uni_cursorinto @stuIDendclose uni_cursordeallocate uni_cursorendif @conLevel ='院级'begindeclare dep_cursor cursorforselect stuID fromstuInfor,majInforwhere13 级软件工程专业 3 班数据库应用系统课程设计课程论文27stuGrade = @stuGradeand stuInfor.stuMajor = majInfor.majNameand majInfor.depName = @nameopen dep_cursorfetchnextfrom dep_cursorinto @stuIDwhile(@@FETCH_STATUS=0)begininsertinto stuNotice(stuNotID,stuNotTo)values(@noticeID,@stuID)fetchnextfrom dep_cursorinto @stuIDendclose dep_cursordeallocate dep_cursorendif @conLevel ='专业级'begindeclare maj_cursor cursorforselect stuID from stuInforwherestuGrade = @stuGradeand stuMajor = @nameopen maj_cursorfetchnextfrom maj_cursorinto @stuIDwhile(@@FETCH_STATUS=0)begininsertinto stuNotice(stuNotID,
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:课程设计论文-竞赛管理系统(代码+数据字典+流程图).doc
链接地址:https://www.weizhuannet.com/p-9787782.html
微传网是一个办公文档、学习资料下载的在线文档分享平台!

网站资源均来自网络,如有侵权,请联系客服删除!

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开