ImageVerifierCode 换一换
格式:DOCX , 页数:89 ,大小:5.05MB ,
资源ID:10302347      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10302347.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计论文竞赛管理系统代码数据字典流程图.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课程设计论文竞赛管理系统代码数据字典流程图.docx

1、课程设计论文竞赛管理系统代码数据字典流程图信息工程学院数据库课程设计论文题 目:学科竞赛数据库设计学号:专业班级:姓名:指导老师:完成日期:学科竞赛管理系统数据库设计摘 要: 学科竞赛是每个学校有的一项活动,他可以提高学生学习的积极性,培养学生对学科的兴趣,丰富学生的课余生活,让学生在课下可以学到知识,交到朋友。但学科竞赛的管理十分繁琐,流程复杂,工作量大。因此老师和教务处都迫切需要一个能方便管理竞赛的系统。该系统面向学生,老师,教务处,学院领导四种用户,涉及申请比赛,查询比赛,总结比赛,报名参赛,查询成绩等多方面功能。这次设计包括需求分析,概念结构设计,物理结构设计,数据库实施四个方面。关键

2、字:数据库;学科竞赛管理;SQL Server1需求分析 1业务流程图: 2数据流程图: 32数据库结构设计 7 概念设计 8 分E-R图建立 8 全局/整体E-R图 8 逻辑设计 9 建立关系模式 10 关系模式规范化处理 11 用户子模式建立 12 关系模式逻辑结构定义 143数据库物理设计 154数据库实施与测试 16 SQL Server 2008数据库实施与测试 16 数据库及数据库对象建立 16 数据入库 16 数据库测试 17 Oracle数据库实施与测试 41 数据库及数据库对象建立 41 数据入库 41 数据库测试 415总结 526附录 52附录1 52数据字典: 52附录

3、2 56附录3 59附录4 641需求分析 需求分析是每个应用程序设计前必须的也是最重要的步骤,如果需求分析没做好,后期的工作可能算白费了。因为软件的设计就是为了服务用户,如果对用户的需求分析错误,那么最终设计的软件就不是用户所需要的。所以需求分析在软件开发周期中占有比较的的比重。并且贯穿软件开发始终。不能为了减少开发时间而缩短需求分析的时间。需求分析需要全面考虑用户的每个需求,有些用户没提到的需求也要从其他需求中提去出来。需求分析力求准确、完整、清晰、具体。为了更好的分析需求,需要设计很多图和表。包括业务流程图、数据流程图。需要设计数据字典,包括数据项、数据结构、数据流、数据逻辑、数据存储。

4、概述:学科竞赛信息管理系统旨在搭建一个信息平台,方便各类用户处理学科竞赛方面的事务,如方便用户浏览信息,简化管理中的各种操作,提高相关人员工作的效率。其服务的对象有四个,分别为学生,教师,教务处管理员,学院管理员。学生主要的业务有报名参赛,老师可以申报比赛,提交比赛总结,教务处和学院负责审核比赛和添加比赛,并且负责各项赛事的统计和分析工作。所有用户都可以对赛事进行查询。首先从业务的角度来描述其功能。业务主要分为两个部分:报名管理和过程管理,过程管理分为竞赛项目管理,竞赛统计管理,竞赛项目查询三部分。报名管理:系统根据竞赛的报名信息推荐给相关学生。学生如果选择报名,不用填写信息,系统会将其个人信

5、息直接存储在报名表中,待教师和学院进行审核,审核的结果会在开赛前几天公布。竞赛项目管理:教师填写竞赛申请表和报名信息,系统先交个学院审核,通过了再交给教务处审核。通知老师最终的审核结果。如果都审核通过了,教务处发布到系统中。如果审核不通过,教务处可以让老师修改项目预算,修改时间或地点后再次申请,或者直接放弃该项赛事。竞赛统计管理:学院赛事统计,可以查看某一年份各学院申报竞赛的数量和经费,也可以分析各个学院在某个比赛的表现,查询某个学生在校所获奖项等。这些都可以作为报表导出。竞赛赛事查询:各用户可以根据不同的需求进行竞赛项目的查询操作,查看竞赛的报名情况,成绩等信息。简化功能结构如下业务流程图:

6、图1-2添加比赛业务图1-3学生报名参赛业务数据流程图: 图1-7第一层数据流程图3图1-8第二层数据流程图1图1-9第二层数据流程图2图1-10第二层数据流程图3根据数据流程图可以建立数据字典,分别有数据项,数据结构,数据流,数据逻辑和数据存储。见附录1.2数据库结构设计主要包括概念设计和逻辑设计两个部分。 概念设计/*阐述概念设计目标、任务和方法,重点介绍概念设计的内容。*/概念模型是现实世界到机器世界的一个中间层次。概念结构设计时整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型。 数据库系统概论(王珊,萨师煊第五版)概念设计就是将需求

7、分析得到的用户需求抽象为信息结构(即概念模型)。概念设计是在需求分析的基础上进行设计的,是把需求分析的成果转化为简单、清晰、易于理解的概念模型。概念模型中最主要的就是ER图。2.1.1 分E-R图建立阐述分E-R图建立的思想(以中层数据为切入点,按照分层次/分模块思想),用E-R模式描述。E-R图的建立以比赛为切入点。分为教师申请比赛,学院或教务处添加或总结比赛。学院或教务处审核比赛,学生报名参赛。教师总结比赛等模块2.1.2 全局/整体E-R图整体E-R图整体E-R把各个E-R图按逻辑组合起来。来粗略的描述整个系统要完成的功能。E-R图如下:图 2- 1全局E-R图 逻辑设计逻辑结构设计的任

8、务就是把概念结构设计阶段设计的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。2.2.1 建立关系模式E-R图向关系模型的转换要解决的问题是,如何将实体型和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。对于不同的实体间的联系有不同的转换方式。1.一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要再该关系模式的属性中加入另一个关系模式的码和联系本身的属性。2.

9、一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。3.一个m:n联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,个实体的码组成关系的码或关系码的一部分。4.三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,个各实体组成关系的码或关系码的一部分。5.具有相同码的关系模式可以合并。根据上面的转换原则得到的关系模式如下:学生信息(学号,姓名,性别,

10、生日,电话,邮箱,专业,所在班级,年级,系统登录密码, 学号-姓名, 学号-性别, 学号-电话,学号-邮箱,学号-所在班级, 学号-年级, 学号-专业,学号-系统登录密码);教师信息(工号,姓名,性别,生日,电话,邮箱,所在学院,登录密码,职务, 备注,工号-姓名, 工号-性别,工号-生日,工号-电话, 工号-邮箱, 工号-所在学院, 工号-登录密码, 工号-职务);学院信息(学院名, 负责人工号, 学院名-负责人工号);2.2.22.2.3生信息视图(学号,姓名,性别,年龄,电话,邮箱,专业,所在学院,年级);2.教师信息视图(工号,姓名,性别,年龄,电话,邮箱,所在学院);3.已审核赛事信

11、息视图(赛事编号,赛事名称,赛事信息,比赛时间,赛事级别,主办方,负责人工号,报名开始时间,报名结束时间,赛事举办地点);4.学生成绩视图(学生姓名,专业,年级,学院,比赛名称,指导老师,比赛成绩,比赛排名,备注);5.待审核赛事信息视图(赛事编号,赛事名称,赛事信息,比赛时间,赛事级别,主办方,负责人工号,报名开始时间,报名结束时间,赛事举办地点,赛事预算,赛事申请信息,赛事总结,赛事审核信息)6.已审核赛事视图(赛事编号,赛事名称,赛事信息,比赛时间,赛事级别,主办方,负责人工号,报名开始时间,报名结束时间,赛事举办地点,赛事预算,赛事申请信息,赛事总结,赛事审核信息)图2-2 全部视图2

12、.2.4 关系模式逻辑结构定义关系模式总共有九个,一下为其汇总表。表2-2 医院门诊管理系统关系模式汇总表关系模式名称含义备注studentInfor学生详细信息附录2 附表1teacherInfor教师详细信息附录2 附表2departInfor学院信息附录2 附表3contestInfor赛事详细信息附录2 附表4notice通知相关内容附录2 附表5stunotice学生通知记录附录2 附表6teanotice教师通知记录附录2 附表7conResult竞赛成绩信息附录1 附表8majInfor专业学院关系附录1附表93 数据库物理设计数据库的物理设计时为逻辑数据模型选取一个合适的物理结

13、构(包括存储结构和存取方法)从而最大限度地提高数据库的效率。数据库的物理设计通常分为两步:(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构(2)对物理结构进行评价,评价的重点是时间和空间效率。由于在建立主键的时候,数据库自动将其当做聚簇索引,而一张表只能建立一个聚簇索引,所以这里主要考虑非聚簇索引的设计。 虽然索引会明显提高数据查询的效率,但索引的加入也会带来弊端。(1)索引的建立会增加数据库的磁盘占用空间。索引并不像视图那样是虚的,它是实际存在的一种表,索引任何索引都会占据一定的空间。(2)索引的建立会影响insert, delete, update等语句的功能。因为执行这

14、些语句的同时,索引也要做相应的调整和更新。就该数据库而言,学生信息是该系统的基础,大多数业务都围绕着某个学院的学生进行的,如通知某个学院的学生参加比赛,查询某个学院的学生信息,所以学生表表会经常涉及到关于某个学院的查询和连接操作。并且学生信息表在建立后就很少插入,更新和删除,根据上面的讨论,可以对学生信息表中的专业名称建立非聚簇索引。另外竞赛信息也是该系统的基础,在学生查看所在学院竞赛,教务处统计某个学院竞赛经费和举办情况这些业务中会经常涉及到ORDER BY、GROUP BY、 UNION、 DISTINCT操作,所以对竞赛信息表中的学院名称也建立非聚簇索引。再者,竞赛成绩信息是该系统的中心

15、,无论是学生,老师,学院,还是教务处,都会涉及到查询某个竞赛成绩的操作,而且每个竞赛都会有排名,这涉及到ORDER BY 操作,查询某个竞赛某个学院的比赛情况,这涉及到GROUP BY操作。并且一但竞赛成绩被录入,就不会对该成绩信息进行更新、插入和删除操作。所以,对竞赛成绩中的竞赛编号建立非聚簇索引。图2-3 全部索引4数据库实施与测试 SQL Server 2008数据库实施与测试4.1.1 数据库及数据库对象建立按照逻辑设计的成果,由于存在外键约束,所以对建表的顺序有约束。根据各个约束条件。分别建立学院信息表,专业信息表,教师信息表,学生信息表,赛事信息表,通知信息表,学生通知表,教师通知

16、表,赛事成绩表。DDL语句见附录3。4.1.2 数据入库选择一些学院和专业录入到数据库,然后随机录入教师和学生信息。然后根据,在录入过程中根据外键约束做相应调整。 数据库测试下面主要对建立的存储过程和触发器测试。/*教师申请比赛的存储过程*/createprocedure tea_apply_contest conName varchar(30), conInfor text, conLevel varchar(20), conHost varchar(20), conTeaId varchar(10), conBudget smallint, conApply textas insertin

17、to conInfor ( conName, conInfor, conLevel, conHost, conTeaId, conBudget, conApply, conVerify ) values ( conName, conInfor, conLevel, conHost, conTeaId, conBudget, conApply, 未审核 )go测试代码exec tea_apply_contestJava知识大赛,数据库设计的比赛,面向全院,院级,信息工程学院,3000,申请说明书go测试结果:图4-1图4-2/*学院或教务处添加比赛的过程*/createprocedure add

18、_contest conName varchar(30), conInfor text, conLevel varchar(20), conHost varchar(20), conTeaId varchar(10), conBudget smallint, conApply textas insertinto conInfor ( conName, conInfor, conLevel, conHost, conTeaId, conBudget, conApply, conVerify ) values ( conName, conInfor, conLevel, conHost, conT

19、eaId, conBudget, conApply, 审核通过 )goexec add_contestC+语言知识大赛,关于C语言知识设计的比赛,面向全院,院级,信息工程学院,3000,申请说明书go测试结果:图4-3/*显示待审核比赛存储过程*/createprocedure show_unverifyas select , , , , , , , from conInfor, teaInfor where conVerify =未审核 and = goexec show_unverifygo图4-4/*审核比赛过程*/createprocedure verify_contest conID

20、 int, verifyInfor varchar(10)as update conInfor set = verifyInfor where = conIDgoexec verify_contest2,审核未通过goexec verify_contest3,审核通过go图4-5/*设置报名和比赛信息的过程*/createprocedure set_reg_infor conID int, conTime datetime, regBegin datetime, regEnd datetime, conAddress varchar(50)as update conInfor set = co

21、nTime, = regBegin, = regEnd, = conAddress where = conID and =审核通过goexec set_reg_infor 8, 2015/6/24 12:00, 2015/6/23 20:00, 2015/6/24 10:00, 信息工程学院m2go测试结果图4-6/*测试ident_current()函数,该函数返回刚插入后数据项的主键*/insertinto notice(noticeTime,noticeHostID,noticeInfo)values(2015/6/24 00:05,测试5)selectident_current(not

22、ice)go/*赛事负责人通知学生参加某个比赛*/dropprocedure con_noticegocreateprocedure con_notice conID int, noticeTime datetime, noticeHostID varchar(10), stuGrade char(4), name varchar(20)as begin if(select from conInfor where = conID)=审核通过 begin declare conName varchar(30), conLevel varchar(20), noticeID int select

23、conName = ( select conName from conInfor where conID = conID ) select conLevel = ( select conLevel from conInfor where conID = conID ) insertinto notice ( noticeTime, noticeHostID, noticeInfo ) values ( noticeTime, noticeHostID, conName +马上就要开始了,希望你踊跃报名参加! ) select noticeID = ( selectident_current(n

24、otice) ) declare stuID char(10) if conLevel =校级 begin declare uni_cursor cursor forselect stuID from stuInfor where stuGrade = stuGrade open uni_cursor fetchnextfrom uni_cursor into stuID while(FETCH_STATUS=0) begin insertinto stuNotice ( stuNotID, stuNotTo ) values ( noticeID, stuID ) fetchnextfrom

25、 uni_cursor into stuID end close uni_cursor deallocate uni_cursor end if conLevel =院级 begin declare dep_cursor cursor forselect stuID from stuInfor, majInfor where stuGrade = stuGrade and = and = name open dep_cursor fetchnextfrom dep_cursor into stuID while(FETCH_STATUS=0) begin insertinto stuNotic

26、e ( stuNotID, stuNotTo ) values ( noticeID, stuID ) fetchnextfrom dep_cursor into stuID end close dep_cursor deallocate dep_cursor end if conLevel =专业级 begin declare maj_cursor cursor forselect stuID from stuInfor where stuGrade = stuGrade and stuMajor = name open maj_cursor fetchnextfrom maj_cursor

27、 into stuID while(FETCH_STATUS=0) begin insertinto stuNotice ( stuNotID, stuNotTo ) values ( noticeID, stuID ) fetchnextfrom maj_cursor into stuID end close maj_cursor deallocate maj_cursor end end else return endgoexec con_notice 1, 2015/6/23 23:00, , 2013, 信息工程学院goexec con_notice 3, 2015/6/23 22:00, ,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1