课程设计报告(2015-- 2016年度第1学期)实验名称:数据库应用课程设计题目:在线投稿审稿管理系统院系:控制与计算机工程学院班级:计算1302学号:1131220207学生姓名:兰鑫玥指导教师:周长玉设计周数: 1 周成绩:日期:2016年1月17日一、课程设计的目的与要求目的1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,对数据库做进一步的了解,掌握相关知识;2.进一步加强对数据库运用能力和熟练掌握数据库中的重要知识,了解如何从数据库中读写有关数据;3.培养分析问题、解决问题的能力。
要求1.完成数据库系统的安装与设置。
2.根据具体的课题完成需求分析。
3.完成数据库应用系统的逻辑设计。
4.创建数据库、数据表。
5.完成设计报告。
二、设计正文1.需求分析1.1 调查用户需求在线投稿审稿管理系统最终用户为投稿人、审稿人和杂志社管理员,有效地解决了传统模式下投递和送审的各种弊端,实现了作者的投稿、信息查询、信息反馈的便捷处理和编辑部规范高效化办公,从而节省了稿件处理的时间和流通费用,提高了稿件投递和投审的效率和安全性,同时也保证了杂志社所有的编辑能够在相同的业务平台进行业务处理,适应了集中管理的需要。
通过规范流程、强化内部管理,建立强大的数据库,为数据分析、人员管理等提供强大的支持,为用户、编辑提供了安全的权限设置,使稿件分级处理,避免了处理流程的混乱,减低工作量、减少重复劳动,得出用户的下列实际要求:1.1.1基本功能需求出版社的在线投稿审稿管理系统包含以下几方面信息:➢投稿人的基本信息每个投稿人都有唯一的编号,有真实姓名,有笔名,有联系方式包括:电话号码、联系地址、Email 等。
➢审稿人的基本信息审稿人负责审理投稿人的稿件且为管理员管理添加或删除,每个审稿人都有唯一的编号,有真实姓名,有联系电话。
➢管理员的基本信息管理员负责管理审稿人,统计稿件信息,指定审稿人去审理指定的稿件,每个管理员都有唯一的编号,有姓名,有联系电话。
➢稿件的基本信息每篇文章都有唯一的稿件编号,有稿件名,有稿件类型,有稿件内容,发表日期,有审查标记来记录此篇文章是否已被审稿人审查,还要有此篇文章的作者。
1.1.2用户对系统的要求➢投稿人a.信息要求投稿人可以对自己的基本信息进行查看,可以查看自己的稿件状态。
b.处理要求投稿人可以添加新的稿件进行提交,等待审稿人审理。
投稿人可以修改自己的个人信息,但不能修改账号,账号一经注册,便不可更改。
比如,某位作者可以对他的帐号密码进行更改。
c.安全性与完整性要求安全性要求⏹登录系统设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;⏹系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;⏹登录系统对不同用户设置不同的权限,区分不同的用户,如区分投稿人,审稿人,管理员。
完整性要求⏹各种信息记录的完整性,如账号和密码等信息记录内容不能为空;⏹各种数据间相互的联系的正确性;⏹相同的数据在不同记录中的一致性。
➢审稿人a.信息要求审稿人可以对自己的基本信息进行查看,可以查看自己的审查任务安排。
b.处理要求审稿人可以在线审查管理员给自己安排的要审查的稿件,查看稿件的相关信息及内容,并给出自己对这篇文章的评语。
审稿人可以修改自己的个人信息,但不能修改账号。
➢管理员a.信息要求管理员可以对自己的基本信息进行查看,可以查看统计出来的各个作者的稿件信息。
b.处理要求管理员可以分配稿件审理,指定审稿人去审理指定的稿件。
管理员可以确认发表哪篇稿件,以及发表日期。
管理员可以对各个作者的稿件进行管理,可以进行删除处理。
管理员可以添加和删除审稿人,可以查看和修改个人信息。
1.2 系统功能的设计和划分根据如上得到的用户需求,我们将本系统按照所完成的功能分成以下几部分:第一部分:登录部分第二部分:投稿人管理部分第三部分:审稿人管理部分第四部分:管理员管理部分各部分完成的功能如下:1.2.1登录部分⏹处理投稿人登录⏹处理审稿人登录⏹处理管理员登录1.2.2投稿人管理部分⏹处理投稿人注册⏹投稿人可以查询修改个人信息⏹投稿人可以提交稿件并填写稿件的相关信息⏹投稿人可以缴纳稿费⏹投稿人可以查看稿件状态:未审和已审,已审稿件可以查看评语1.2.3审稿人管理部分⏹审稿人可以查询修改个人信息。
⏹审稿人可以审理管理员指定分配的稿件,决定是否发表。
⏹审稿人可以在线审稿,给出评语。
1.2.4管理员管理部分⏹管理员可以查询修改管理员信息。
⏹管理员可以添加、删除审稿人。
⏹管理员分配审稿人审理哪篇稿件。
⏹管理员可以查询某一作者的全部稿件信息。
⏹管理员可以删除稿件。
⏹管理员可以确定哪篇稿件可以发表,以及发表的时间。
图1.系统功能图1.3 数据流图图2.总数据流图14.1数据项投稿人数据字典:投稿人=账号+密码+姓名+笔名+电话+地址+E-mail+备注账号= 1{数字}20密码= 1{数字}20姓名= 1{汉字}20笔名= 1{汉字}20电话= 11{数字}11地址= 1{汉字}100E-mail=[@|@|@|@|@|@|@] 地址= 1{汉字}100⏹数据项:账号含义说明:唯一标识每个投稿人别名:投稿人编号类型:字符型长度:20⏹数据项:密码含义说明:每个投稿人的登录密码类型:字符型长度:20⏹数据项:姓名含义说明:每个投稿人的真实姓名类型:字符型长度:20⏹数据项:电话含义说明:每个投稿人的联系电话类型:字符型长度:11⏹数据项:E-mail含义说明:每个投稿人的电子邮箱类型:字符型长度:30稿件=编号+作者+标题+类型+关键词+摘要+内容+审查标记+缴费标记编号= 8{数字}8作者= 1{汉字}20标题= 1{汉字}20类型= 1{数字}10关键词= 1{汉字}50摘要= 1{汉字}100摘要= 1{内容}8000审查标记=[0|1]缴费标记=[0|1]⏹数据项:编号含义说明:唯一标识每篇稿件别名:稿件编号类型:整型长度:8⏹数据项:类型含义说明:记录稿件类型的编号类型:字符型长度:10⏹数据项:摘要含义说明:每篇稿件的主要内容与中心主旨类型:字符型长度:100⏹数据项:内容含义说明:每篇稿件的正文内容类型:字符型长度:8000⏹数据项:审查标记含义说明:记录稿件是否审查的标记,0为未审查,1为已审查类型:整型长度: 1⏹数据项:缴费标记含义说明:记录稿件是否缴纳稿费的标记,0为未审查,1为已审查类型:整型长度: 12.概念设计根据需求分析说明书设计ER图,设计完成的ER图为:图3. 总ER图3.逻辑设计3.1 关系表设计将ER图转换为关系模式、要求设计出数据库所有关系表属性名存储代码类型长度备注完整性约束账号W_LoginNum varchar 20 投稿人登录账号主键密码W_Password varchar 20 投稿人登录密码非空姓名W_RealName varchar 20 作者真实姓名非空笔名W_PenName varchar 20 作者笔名电话W_PhoneNum char 11 联系电话非空地址W_Address varchar 100 联系地址E-mail W_Email varchar 30 电子邮箱CHECK规则备注W_Remark varchar 100 作者备注信息以上关系模式均为BCNF。
3.2视图设计为了方便程序查询,建立了如下用户视图:1.投稿人登录信息视图(账号,密码)CREATE VIEW W_LOGIN(W_LoginNum,W_Password)ASSELECT W_LoginNum,W_PasswordFROM Writer;2.审稿人登录信息视图(账号,密码)CREATE VIEW E_LOGIN(E_LoginNum,E_Password)ASSELECT E_LoginNum,E_PasswordFROM Editor;3.管理员登录信息视图(账号,密码)CREATE VIEW M_LOGIN(M_LoginNum,M_Password)ASSELECT M_LoginNum,M_PasswordFROM Manager;4.创建包含稿件所有信息的视图CREATE VIEWCheck_Article_View(E_LoginNum,A_ID,A_Title,W_RealName,W_PenName,A_Keyword,A_Summary,A_Content,A_WriterNum,A_CheckFlag,A_PayFlag,AT_Name,C_Comment)ASSELECTE_LoginNum,A_ID,A_Title,W_RealName,W_PenName,A_Keyword,A_Summary,A_Content,A_Wri terNum,A_CheckFlag,A_PayFlag,AT_Name,C_CommentFROM Article,ArticleType,CheckArticle,Editor,Writerwhere A_TypeNum = AT_ID AND A_WriterNum = W_LoginNum AND A_ID = C_ArticleID AND C_EditorNum = E_LoginNum5.创建待审稿件信息视图CREATE VIEW notSee(A_WriterNum,A_ID,A_Title,AT_Name,A_CheckFlag,A_PayFlag)ASSELECT A_WriterNum,A_ID,A_Title,AT_Name,A_CheckFlag,A_PayFlagFROM ArticleType,Article left join CheckArticle on (A_ID = C_ArticleID)WHERE A_TypeNum = AT_ID6.创建已审稿件信息视图CREATE VIEWhaveSeen(A_WriterNum,A_ID,A_Title,AT_Name,C_Comment,A_CheckFlag,A_PayFlag)ASSELECT A_WriterNum,A_ID,A_Title,AT_Name,C_Comment,A_CheckFlag,A_PayFlagFROM ArticleType,Article left join CheckArticle on (A_ID = C_ArticleID)WHERE A_TypeNum = AT_ID7.创建定稿管理视图CREATE VIEWSure_Article_View(A_ID,A_Title,C_Comment,A_PayFlag,MA_Publish,MA_PublishDate)ASSELECT A_ID,A_Title,C_Comment,A_PayFlag,MA_Publish,MA_PublishDateFROM CheckArticle,Article left join ManageArticle on (A_ID = MA_ArticleID) WHERE A_CheckFlag=1 and A_ID=C_ArticleID8.创建审稿管理中的所有稿件视图CREATE VIEW All_Article_View(A_ID,A_Title,AT_Name,W_RealName,A_Keyword)ASSELECT A_ID,A_Title,AT_Name,W_RealName,A_KeywordFROM Article,ArticleType,WriterWHERE A_TypeNum = AT_ID AND A_WriterNum = W_LoginNum3.3存储过程及触发器设计1.创建存储过程,统计指定作者的稿件信息CREATE PROCEDURE STASTICS@A_WriterNum varchar(20)ASSELECT W_RealName,A_ID,A_Title,AT_Name,A_CheckFlag,A_PayFlag,C_Commentfrom Writer,ArticleType,Article LEFT join CheckArticle on (A_ID = C_ArticleID) WHERE A_WriterNum = @A_WriterNum and W_LoginNum = A_WriterNum and A_TypeNum=AT_ID;2.创建触发器,当Article表中A_PayFlag发生改变时,ManageArticle表中的MA_PayFlag也改变CREATE TRIGGER PayFLAG ON ArticleFOR UPDATEASIF UPDATE(A_PayFlag)BEGINUPDATE ManageArticleSET MA_PayFlag=i.A_PayFlagFROM ManageArticle br , Deleted d ,Inserted iWHERE br.MA_ArticleID=d.A_IDEND;3.创建触发器,当Article表中A_CheckFlag发生改变时,ManageArticle表中的MA_CheckFlag也改变CREATE TRIGGER CheckFLAG ON ArticleFOR UPDATEASIF UPDATE(A_CheckFlag)BEGINUPDATE ManageArticleSET MA_CheckFlag=i.A_CheckFlagFROM ManageArticle br , Deleted d ,Inserted iWHERE br.MA_ArticleID=d.A_IDEND;4.创建触发器,当删除一片稿件时,同时删除CheckArticle中有关这篇文章的记录CREATE TRIGGER DeleteCheckArticle ON ArticleAFTER DELETEASDELETE CheckArticleFROM CheckArticle br , Deleted dWHERE br.C_ArticleID=d.A_ID5.创建触发器,当删除一片稿件时,同时删除ManageArticle中有关这篇文章的记录CREATE TRIGGER DeleteManageArticle ON ArticleAFTER DELETEASDELETE ManageArticleFROM ManageArticle br , Deleted dWHERE br.MA_ArticleID=d.A_ID6.创建触发器,当删除一个审稿人时,同时删除CheckArticle中由此审稿人审查的任务CREATE TRIGGER DeleteEditor ON EditorAFTER DELETEASDELETE CheckArticleFROM CheckArticle br , Deleted dWHERE br.C_EditorNum=d.E_LoginNum4. 物理设计确定数据库物理结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。