还剩38页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《数据库类课程设计》系统开发报告学号 311309080102姓名郑美丽题目 图书管理系统 指导教师 王岩 提交时间 2016年1月19日 计算机科学与应用系目录TOC\o1-4\h\z\uHYPERLINK\l_Toc1575283031.引言1HYPERLINK\l_Toc
1575283042.需求分析阶段2HYPERLINK\l_Toc
1575283052.1引言2HYPERLINK\l_Toc
1575283062.2需求分析阶段的目标与任务2HYPERLINK\l_Toc
1575283072.
2.1处理对象2HYPERLINK\l_Toc
1575283082.
2.2处理功能及要求3HYPERLINK\l_Toc
1575283092.
2.
3.安全性和完整性要求3HYPERLINK\l_Toc
1575283102.3需求分析阶段成果3HYPERLINK\l_Toc1575283113概念设计阶段9HYPERLINK\l_Toc
1575283123.1引言9HYPERLINK\l_Toc
1575283133.2任务与目标10HYPERLINK\l_Toc
1575283143.3阶段结果10HYPERLINK\l_Toc1575283154.逻辑设计阶段12HYPERLINK\l_Toc
1575283164.1逻辑设计的任务和目标12HYPERLINK\l_Toc
1575283174.2数据组织12HYPERLINK\l_Toc
1575283184.
2.1将E-R图转换为关系模型12HYPERLINK\l_Toc
1575283194.
2.2模型优化13HYPERLINK\l_Toc
1575283204.
2.3数据库模式定义13HYPERLINK\l_Toc
1575283214.
2.4用户子模式定义15HYPERLINK\l_Toc
1575283224.3数据处理16HYPERLINK\l_Toc1575283235.物理设计阶段17HYPERLINK\l_Toc
1575283245.1物理设计阶段的目标与任务17HYPERLINK\l_Toc
1575283255.2数据存储方面17HYPERLINK\l_Toc
1575283265.3系统功能模块17HYPERLINK\l_Toc
1575283275.
3.1读者基本信息的查询和更新模块17HYPERLINK\l_Toc
1575283285.
3.2图书基本信息的查询和更新模块18HYPERLINK\l_Toc1575283296.数据库实施阶段19HYPERLINK\l_Toc
1575283306.1建立数据库、数据表、视图、索引19HYPERLINK\l_Toc
1575283316.
1.1建立数据库19HYPERLINK\l_Toc
1575283326.
1.2建立数据表19HYPERLINK\l_Toc
1575283336.
1.3建立视图21HYPERLINK\l_Toc
1575283346.
1.4建立索引21HYPERLINK\l_Toc
1575283356.
1.5建立触发器22HYPERLINK\l_Toc
1575283366.2数据入库22HYPERLINK\l_Toc
1575283376.3创建各个功能的存储过程22HYPERLINK\l_Toc1575283387.系统调试和测试23HYPERLINK\l_Toc1575283398.实习心得23HYPERLINK\l_Toc1575283409.存在的问题及建议23HYPERLINK\l_Toc157528341致谢25HYPERLINK\l_Toc157528342参考文献25HYPERLINK\l_Toc157528343附录1存储过程定义26HYPERLINK\l_Toc157528344附录2数据查看和存储过程功能的验证29HYPERLINK\l_Toc157528345附录3所有的SQL运行语句341.引言随着社会信息量的与日俱增,职场竞争的日趋激烈,越来越多的人更关注知识的积累、能力的培养作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件对于日益扩大的图书馆,查找特定的书目总是借阅者或工作人员劳神费力,有时还没有结果因此往往是投入了大量的人力和财力却得不到高效的管理效率为了缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书借阅信息管理效率的目的,采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者并简化图书馆管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中本文以高校图书馆管理系统管理系统开发过程为背景,全文分为目录、需求分析、概要设计、逻辑设计、物理设计,以及系统的实现等全过程在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则采用结构化的功能模块设计系统功能,可读性好,易于扩充基本功能全面,系统可读性好,易于维护、更新,安全性好
2.需求分析阶段
2.1引言进行系统设计,首先要对系统的现状进行分析根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统每个学校都有图书馆,最初由于图书数量和种类较少,人工手动管理比较方便和灵活随着社会的发展,图书的数量和种类越来越多,人工手动管理会降低工作的效率,希望建立一个图书管理系统,是为了解决人工手动管理图书信息在实践的问题,从而达到系统化、规范化、标准化的水平该系统的建立不但给管理者带来了方便,也节省了工作时间从而提高了工作效率需求分析是在于要弄清用户对开发的数据库应用系统的确切要求数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块这样,就把一个大的系统分解成了几个小系统这里把系统的层次划分为了四个部分图书维护,人员信息管理,图书借阅管理,信息查询能够实现以下功能进行新书入库、现有图书信息修改以及删除;
②能够实现对读者基本信息的查询和编辑管理;
③能够进行超期罚款功能;
④能够进行借阅信息的查询功能;
2.2需求分析阶段的目标与任务
2.
2.1处理对象读者信息读者编号,姓名,性别,学号,学院,专业,年级,类型,类别编号,办证日期管理员信息管理员编号,姓名,性别,权限,登录口令,住址,电话馆藏图书信息图书编号,索书号,图书名称,作者,出版社,单价,摘要,关键字,副本数,分类,出版日期,状态借阅信息图书编号,读者编号,图书名,作者,借阅日期,归还日期,归还日期,应还日期,罚金借阅历史信息图书编号,读者编号,图书名,作者,借阅日期,还书日期罚款信息读者编号,图书编号,图书名,作者,借阅日期,应还日期,归还日期,罚款金额,处理状态,管理员编号
2.
2.2处理功能及要求1.能够存储一定数量的图书信息并方便有效的进行相应的书籍数据操作和管理,这主要包括 1图书信息的录入、删除及修改 2图书信息的多关键字检索查询 3图书的出借、返还及超期罚款或丢失赔偿2.能够对一定数量的读者、管理员进行相应的信息存储与管理,这其中包括 1读者信息的登记、删除及修改2)管理员信息的增加、删除及修改 3读者资料的统计与查询3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询4.对查询、统计的结果能够列表显示
2.
2.
3.安全性和完整性要求1)安全性要求系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面2)完整性要求系统完整性要求系统中数据的正确性以及相容性可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新
2.3需求分析阶段成果
2.
3.1体会与收获系统需求分析主要是通过对本校图书管理员的咨询、请教,了解我校图书馆的管理规则和运行机制,并通过上网搜索有关图书管理系统的知识,了解到了图书管理的现状,以及在管理中的一些问题由于是第一次做这样的需求调查,开始总是觉得无从下手,不知道自己该了解、该清楚那些方面的知识,在绘制系统业务流程图时,也遇到了很多的问题,但通过老师的帮助与指导,和自己一遍一遍的分析和完善,才逐步把业务弄清楚,最终顺利完成了需求分析阶段的任务
2.
3.2图书管理系统业务流程图从读者角度考虑的业务流程图
2.
3.3图书管理系统数据流程图顶层数据流图第2层数据流图(读者借阅,读者还书,读者查询,管理员查询,管理员修改)第3层数据流图(读者借阅)第3层数据流图(读者还书)第3层数据流图(查询图书信息,查询读者信息,查询借阅历史,查询罚款信息)第3层数据流图(管理员添加、删除、修改图书信息)第3层数据流图(管理员添加、删除、修改读者信息)第3层数据流图(管理员添加、删除、修改系统用户信息)
2.
3.4图书管理系统数据字典(a)数据项系统涉及的数据项有44项表
1.1数据项列表数据项编号数据项名数据项含义与其它数据项的关系存储结构别名DI-1BookID图书条码号char9条码号DI-2BookNo图书索书号char10索书号DI-3BookName图书名char20书名DI-4BookWriter图书作者char8作者DI-5BookPublish图书出版社char20出版社DI-6BookPrice图书单价char7单价DI-7BookDate图书出版日期Date出版日期DI-8BookClass图书分类char20类别DI-9BookMain图书摘要char200摘要DI-10BookPrim图书关键字char30关键字DI-11BookCopy图书副本数char5副本数DI-12BookState图书是否可借char10状态DI-13BookRNo所属馆室号同RoomNochar5馆室号DI-14ReaID读者条码号char9条码号DI-15ReaName读者姓名char10姓名DI-16ReaSex读者性别char2性别DI-17ReaNo读者学号char9学号DI-18ReaLBID读者类别编号同LBIDchar5类别编号DI-19ReaType读者类型(职务)char20类型DI-20ReaDep读者所在学院char20学院DI-21ReaGrade读者所属年级char5年级DI-22ReaPre读者所读专业char20专业DI-23ReaDate读者办证时间Date办证时间DI-24OutDate借阅日期Date借阅时间DI-25InDate归还日期Date归还时间DI-26YHDate应还日期Date应还时间DI-27Fine罚款金额char3罚款金额DI-28CLState是否交纳罚金char8处理状态DI-29LBID类别编号同ReaLBIDchar5类别编号DI-30LBName读者类别名char20类别名DI-31LBnum允许最多借书数量char5借阅数量DI-32LBbqx允许最长持有时间char4借阅期限DI-33LBqx借阅卡有效期char3有效期限DI-34MID管理员编号同RoomMIDchar10编号DI-35MName管理员姓名char10姓名DI-36MSex管理员性别char2性别DI-37Mpwd管理员口令char8口令DI-38MAuth管理员权限级别char4权限级别DI-39MTeleph管理员电话char15电话DI-40MAddre管理员地址char30住址DI-41RoomNo馆室号同BookRNochar5馆室号DI-42RoomMID馆室管理员编号同MIDchar10编号DI-43RoomNum馆室内图书数目char5数量DI-44RoomAddre馆室地址char20地址(b)数据结构表
1.2数据结构列表数据结构编号数据结构名数据结构含义组成DS-1Book馆藏图书信息BookIDBookNoBookNameBookWriterBookPublishBookPriceBookDateBookClassBookMainBookPrimBookCopyBookStateBookRNoDS-2Reader读者信息ReaIDReaNameReaSexReaNoReaLBIDReaTypeReaDepReaGradeReaPrefReaDateDS-3Borrow借阅信息BookIDReaIDBookNameBookWriterOutdateYHdateDS-4History借阅历史BookIDReaIDBookNameBookWriterOutdateIndateDS-5Fine罚款信息BookIDReaIDBookNameOutdateIndateFineCLState,MIDDS-6ReaderType读者类别LBIDLBNameLBnumLBbqxLBqxDS-7Maneger管理员信息MIDMNameMSexMpwdMAuthMTelephMAddreDS-8Room馆室信息RoomNORoomMIDRoomNumRoomAddre
2.
3.5处理逻辑描述表
1.3处理逻辑列表处理编号处理功能处理过程PR-1判断读者查询涉及的功能模块馆藏图书信息模块、读者信息模块、读者类别信息模块、借阅信息模块、借阅历史信息模块、罚款信息模块、管理员模块、馆室信息模块先确定查询所涉及的功能模块;然后,根据要查询的内容,确定查询数据流向;最后显示查询结果PR-2判断图书、读者修改要涉及的模块,同时把相应的修改数据传到相应的模块之中馆藏图书信息模块、读者信息模块、读者类别信息模块、管理员信息模块、馆室信息模块先确定更新所涉及的功能模块;然后,把更新信息传送到相应的模块中;最后,进行相应的更新操作3概念设计阶段
3.1引言系统开发的总体目标是实现图书馆管理的系统化和自动化,缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书管理效率的目的主要任务是对读者信息、管理员信息、图书资料信息、借阅信息、归还图书信息、罚款信息的基本信息的操作及外理概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构概念模型的过程它是整个数据库设计的关键
3.2任务与目标
(1)选择中层数据流为切入点,通常选择实际系统中的子系统;
(2)设计分E-R图,即各子模块的E-R图;
(3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;
(4)生成全局E-R图,通过消除冲突等方面在本图书管理系统中,从第3层数据流程图下手分析各3层数据流图和数据字典,知道整个系统功能围绕“读者”、“管理员”和“图书”的处理根据实体与属性间的两条准则作为“属性”,不能再具有需要描述的性质“属性”不能与其他实体具有联系数据流程图
2.
4、图
2.
5、图
2.6可综合成借阅子系统的分E-R图
3.1,数据流程图
2.7可抽象为分E-R图
3.2,数据流程图
2.8可抽象为分E-R图
3.3,数据流程图
2.9可抽象为分E-R图
3.4然后采用逐步集成的方式将各分E-R图合并,消除不必要的冗余和冲突后就生成了基本E-R图
3.
53.3阶段结果
(1)根据不同的对象,从第3层数据流程图入手,分别画出各分E-R图(a)从数据流程图图三与图四抽象出的分E-R图(c)从数据流程图图六抽象出的分E-R图(d)从数据流程图图七抽象出的分E-R图(e)从数据流程图图八抽象出的分E-R图
(2)合并各分E-R图消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的基本E-R图如下所示
(3)各E-R图各实体的属性如下所示图书BookBookIDBookNoBookNameBookWriterBookPublishBookPriceBookDateBookClassBookMainBookPrimBookCopyBookStateBookRN读者ReaderReaIDReaNameReaSexReaNoReaLBIDReaTypeReaDepReaGradeReaPrefReaDate管理员ManegerMIDMNameMSexMpwdMAuthMTelephMAddre馆室RoomRoomNoRoomMIDRoomNumRoomAddre读者类别ReaderTpyeLBIDLBNameLBnumLBbqxLBqx各E-R图中联系的属性如下所示借阅信息BorrowBookIDReaderIDBookNameBookWriterOutdateYHdate借阅历史HistoryBookIDReaderIDBookNameBookWriterOutdateIndate罚款信息FineBookIDReaderIDBookNameOutdateIndateFineCLStateMID4.逻辑设计阶段
4.1逻辑设计的任务和目标以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务
4.2数据组织
4.
2.1将E-R图转换为关系模型实体型转换为关系模式实体的属性就是关系的属性,实体的码就是关系的码对于实体间的联系则有以下不同的情况一个m n联系转换为一个关系模式与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合一个1n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码一个11联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并三个或三个以上实体间的一个多元联系可以转换为一个关系模式与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并由于读者类别与读者、馆室与图书的联系方式是1:n(一对多),可以将其之间的联系与n端实体读者、图书合并,管理员与图书之间的维护联系也是1:n(一对多),同样也将其之间的联系与n端实体合并,而读者与图书之间的借阅和归还联系方式则是n:m(多对多),这样要把它们之间的联系转化为独立的关系模式,读者与管理员之间的罚款联系是m:n(多对多),将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下图书BookBookIDBookNoBookNameBookWriterBookPublishBookPriceBookDateBookClassBookMainBookPrimBookCopyBookStateBookRNo读者ReaderReaIDReaNameReaSexReaNoReaLBIDReaTypeReaDepReaGradeReaPrefReaDate管理员ManegerMIDMNameMSexMpwdMAuthMTelephMAddre读者类别ReaderTpyeLBIDLBNameLBnumLBbqxLBqx馆室RoomRoomNoRoomMIDRoomNumRoomAddre借阅信息BorrowBookIDReaderIDBookNameBookWriterOutdateYHdate借阅历史HistoryBookIDReaderIDBookNameBookWriterOutdateIndateYHdate罚款信息FineBookIDReaderIDBookNameOutdateIndateFineCLStateMID(注标有直线下划线的为主属性,标有波浪线下划线的是外键属性,主属性与外键属性一起构成主码)
4.
2.2模型优化关系模式BookReaderRoomReaderTypeManeger不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是借阅关系模式、借阅历史关系模式、罚款关系模式(BorrowHistoryFine)中存在着一些数据冗余,现将三个关系模型进行合并,消除冗余,优化为借阅信息:BorrowBookIDReaderIDBookNameBookWriterOutdateIndateYHdateFineCLStaerMID
4.
2.3数据库模式定义表
2.1馆藏图书信息表列名数据类型可否为空说明BookIDCharnotnull图书编号BookNoCharnotnull图书的索书号BookNameCharnotnull图书的书名BookWriterCharnotnull图书作者BookPulishCharnotnull图书出版社BookPriceChar图书的单价BookDateDate出版日期BookClassChar图书的分类BookMainChar图书的摘要BookPrimChar图书的关键字BookCopyChar图书的副本数BookStateCharnotnull图书是否可借BookRNoCharnotnull图书所在馆室号表
2.2读者信息表列名数据类型可否为空说明ReaIDCharnotnull读者编号ReaNameCharnotnull读者姓名ReaSexCharnotnull读者性别ReaNoCharnotnull读者学号ReaLBIDCharnotnull读者类别编号ReaTypeChar读者类型ReaDepChar读者所在学院ReaPrefChar读者所属专业ReaGradeChar读者的年级ReaDateDatenotnull办证日期表
2.3管理员信息表列名数据类型可否为空说明MIDCharnotnull管理员编号MNameCharnotnull管理员姓名MSexChar管理员性别MpswCharnotnull管理员密码MAuthCharnotnull管理员权限MTelephChar管理员电话MAddreChar管理员地址表
2.4馆室信息表列名数据类型可否为空说明RoomNoCharnotnull馆室号RoomMIDCharnotnull馆室管理员编号RoomNumChar馆室拥有图书数目RoomAddreChar馆室地址表
2.5读者类别信息表列名数据类型可否为空说明LBIDCharnotnull读者类别编号LBNameCharnotnull读者类别名LBnumCharnotnull允许借阅图书最大数LBbqxCharnotnull持有图书最长期限LBqxCharnotnull借阅证期限表
2.6借阅信息表列名数据类型可否为空说明ReaIDCharnotnull读者编号BookIDCharnotnull图书编号BookNameCharnotnull图书名BookWriterChar作者OutdateDatenotnull借阅时间IndateDate归还时间YHdateDatenotnull应还时间FineChar罚款金额CLStateChar处理状态MIDCharnotnull管理员编号
4.
2.4用户子模式定义表
2.7用户子模式定义编号用户子模式View作用共性提供数据保密和安全保护机制V-1BookView便于查询和修改图书的基本信息V-2ReaderView方便读者基本信息的查询、更新V-3HistoryView便于借阅历史信息的查询V-4BorrowView用于当前借阅信息的查询V-5FineView便于查询罚款信息表
2.8读者基本信息视图列名数据类型可否为空说明ReaIDCharnotnull读者编号ReaNameCharnotnull读者姓名ReaSexCharnotnull读者性别ReaTypeChar读者类型ReaDepChar读者所在学院ReaDateDatel办证日期表
2.9图书基本信息视图列名数据类型可否为空说明BookNoCharnotnull图书的索书号BookNameCharnotnull图书的书名BookWriterCharnotnull图书作者BookPulishCharnotnull图书出版社BookStateCharnotnull图书是否可借BookRNoCharnotnull图书所在馆室号表
2.10读者当前借阅信息视图列名数据类型可否为空说明BookIDCharnotnull图书编号BookNameCharnotnull图书名OutdateDatenotnull借阅时间YHdateDatenotnull应还时间表
2.11读者借阅历史信息视图列名数据类型可否为空说明BookIDCharnotnull图书编号BookNameCharnotnull图书名OutdateDatenotnull借阅时间IndateDate归还时间表
2.12读者罚款信息视图列名数据类型可否为空说明BookIDCharnotnull图书编号BookNameCharnotnull图书名OutdateDatenotnull借阅时间IndateDate归还时间FineCharnotnull罚款金额CLStateCharnotnull处理状态
4.3数据处理系统功能模块图5.物理设计阶段
5.1物理设计阶段的目标与任务数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率
5.2数据存储方面为数据库中各基本表建立的索引如下由于基本表Reader,Book的主码ReaID,BookID经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引;由于基本表Reader的属性ReaDep,Book的属性BookPublish经常在查询条件中出现在两个属性上建立聚簇索引;借阅信息基本表Borrow的一属性ReaIDBookID,经常在查询条件中出现,考虑在其之上建立聚簇索引;罚款信息基本表Fine的一属性ReaIDBookID,经常在查询条件中出现,考虑在其之上建立聚簇索引;
5.3系统功能模块
5.
3.1读者基本信息的查询和更新模块将实现对读者基本信息的查询和更新(修改、添加、删除)操作,用于新生入学,毕业生离校,以及读者补办借阅证或更改信息的情况,具体的功能模块图如下
5.
3.2图书基本信息的查询和更新模块将完成对图书基本信息的查询、更新(修改、添加、删除)操作,用于读者对图书信息的查询及管理员添加新书、删除淘汰的旧书,具体的功能模块图如下所示6.数据库实施阶段
6.1建立数据库、数据表、视图、索引
6.
1.1建立数据库createdatabaseBook;
6.
1.2建立数据表
(1)读者类别信息表的建立createtableReaderTypeLBIDchar5primarykeyLBNamechar20notnullLBnumchar5notnullLBbqxchar4notnullLBqxchar3notnull
(2)管理员基本信息表的建立createtableManegerMIDchar10primarykeyMNamechar10notnullMSexchar2Mpwdchar8notnullMAuthchar40notnullMTelephchar15MAddrechar30checkMSex=男orMSex=女
(3)图书馆室基本信息表的建立createtableRoomRoomNochar5primarykeyRoomMIDchar10notnullRoomnumchar5RoomAddrechar20foreignkeyRoomMIDreferencesManegerMID
(4)馆藏图书基本信息表的建立createtableBookBookIDchar9primarykeyBookNochar20notnullBookNamechar50notnullBookWriterchar30notnullBookPublishchar20notnullBookPricechar7BookDatedatetimeBookClasschar20BookMainchar200BookPrimchar30BookCopychar5BookStatechar10notnullBookRNochar5notnullforeignkeyBookRNoreferencesRoomRoomNo
(5)读者基本信息表的建立createtableReaderReaIDchar9primarykeyReaNamechar10notnullReaSexchar2notnullReaNochar9notnullReaLBIDchar5notnullReaTypechar20ReaDepchar20ReaGradechar5ReaPrefchar20ReaDateDatetimeforeignkeyReaLBIDreferencesReaderTypeLBIDcheckReaSex=男orReaSex=女
(6)借阅基本信息表的建立createtableBorrowBookIDchar9ReaIDchar9OutdateDatetimenotnullYHdateDatetimenotnullIndateDatetimeFinechar5CLStatechar8MIDchar10notnullprimarykeyBookIDReaIDforeignkeyMIDreferencesManegerMID
6.
1.3建立视图
(1)用于查询图书基本信息的视图定义如下createviewBookview索书号书名作者出版社图书状态asselectBookNoBookNameBookWriterBookPublishBookStatefromBook
(2)用于读者基本信息查询的视图定义如下createviewReaderview读者姓名类型学院专业办证日期asselectReaNameReaTypeReaDepReaPrefReaDatefromReader
(3)用于显示当前借阅基本信息的视图定义如下createviewBorrowview读者编号书名作者借阅日期到期日期asselectReaIDBookNameBookWriterOutdateYHdatefromBorrowBookwhereBorrow.BookID=Book.BookIDandBorrow.Indateisnull
(4)用于借阅历史信息查询的视图定义如下createviewHistoryview读者编号书名借阅日期归还日期asselectReaIDBookNameOutdateIndatefromBorrowBookwhereBorrow.BookID=Book.BookIDandBorrow.Indateisnotnull
(5)用于查询罚款信息的视图定义如下createviewFineview读者编号书名借阅日期归还日期罚款处理状态asselectReaIDBookNameOutdateIndateFineCLStatefromBorrowBookwhereBorrow.BookID=Book.BookIDandFineisnotnull
6.
1.4建立索引createclusteredindexBookPublishonBookBookPublish;createclusteredindexReaDeponReaderReaDep;
6.
1.5建立触发器1.当删除Reader表中某一读者基本信息时,触发Borrow表,删除相应的记录createtriggerReader_deleteonReaderfordeleteasdeleteBorrowfromdeletedwhereBorrow.ReaID=deleted.ReaID2.当在中增加一条借阅记录时,使该图书的状态由“可借”变为“不可借”createtriggerBorrow_insert1onBorrowforinsertasdeclare@BookIDchar9select@BookID=BookIDfrominsertedupdateBooksetBookState=不可借whereBookID=@BookID
6.2数据入库系统包括图书基本信息管理、读者基本信息管理、管理员信息管理、借阅信息管理、查询信息管理等四大功能模块,共有6张基本表采用事先在Excel中录入数据然后使用SQLServer2000数据导入/导出向导功能直接将数据导入到相应的基本表中
6.3创建各个功能的存储过程系统共创建了10个存储过程,具体列表如下表
3.1创建的存储过程列表编号存储过程名称定义作用P-1Book_Insert详见附录1-1在Book中插入一元组P-2Reader_Insert详见附录1-2在Reader中插入一元组P-3Maneger_Insert详见附录1-3在Maneger中插入一元组P-4Borrow_Insert详见附录1-4在Borrow中插入一元组P-5Delete_Book详见附录1-10从Book中删除一元组P-6Delete_Reader详见附录1-9从Reader中删除一元组P-7Query_Reader_R详见附录1-5读者在Reader中查询本人信息P-8Query_Reader_M详见附录1-6管理员在Reader中查询全部读者P-9Query_Book_Writer详见附录1-7在Book,按作者查询P-10Query_Book_Name_Publish详见附录1-8在Book中按书名和出版社查询(其它表的查询、修改、删除与以上各表的存储过程定义大致相同,这里不再具体列出)7.系统调试和测试对该图书管理系统进行测试,验证每个功能是否符合要求,具体的测试如下
(1)通过视图查看各个基本表和视图中的数据(见附录2)
(2)检测各个存储过程的功能(见附录2)8.实习心得这次课程设计使我熟悉了系统设计的整体步骤系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤其中,让我感触最深的是需求分析阶段,在这个阶段,必须对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解,这样会在后续的工作中遇到很多的问题这次课程设计加深了我对数据库系统概论相关知识和SQLSERVER相关功能的理解例如对建立基本表、视图、索引、存储过程、触发器等,都比以前更加的熟练并在解决遇到的各种问题的过程中,学到了很多新的知识比如在导入\导出数据时,由于外键约束的存在,经常会出现错误,这就要注意各个表导入的顺序问题一般是先导入主键表,后导入外键表,这样可以避免很多的错误我进一步掌握了相关的SQL语句方面的知识不但纠正了以前的错误认识和理解,而且学会了建立存储过程和触发器通过查阅资料,我还明白了存储过程是编译后放在服务器端的程序,它可以被别的模块调用,且不需要重新编译,这样就大大减轻了客户端的负担,且有效的提高了系统执行的效率
4.当然,在实习的过程中也存在一些问题由于需求分析阶段的工作完成的不是很充分,在后面的设计过程中,前后时常会出现矛盾,不一致现象,因此要反复的修改前面的结果,导致整个工作进行的不是很顺利9.存在的问题及建议1.我觉得在这次课程设计中,需求分析阶段是致关重要的,但由于同学们都是第一次做这样的系统设计,都不是很熟悉需求分析的主要方法和主要任务,所以都很盲目,认为随便从网上搜点相关的知识就可以了,但其实,这直接影响着后面的各个阶段的工作的进行所以希望老师在实习前能给我们对需求分析阶段的工作进行一定的指导2.在实习过程中,虽然我们每个班都配备了两到三名指导老师,可各指导老师轮流上班,当我们遇到问题时,有时在身边找不到老师,而浪费了一些宝贵的时间,或者是本班的指导老师在给别班的学生指导,所以也可能会耗费一定的等待时间3.但总的说来,这次实习的各个指导老师都是知识渊博,经验丰富,并且十分热情的,我们请教的任何问题,老师都会耐心而认真的为我们解决,老师不但帮我们解决了问题,同时也教会了我们解决此类问题的方法,这对我们今后的学习是十分有益的致谢在这次数据库课程设计的整个过程中,都受到了指导教师杨丽丽老师、陈勇老师、武苏里老师细心的指导和关怀,同时蔚继承老师、杨晓辉老师、孙建敏老师也给予了我很大的帮助对此,表示忠心的感谢!没有老师的耐心指导,我根本不可能顺利完成此次课程设计的任务在这里,我尤其要真诚的感谢杨丽丽老师和蔚继承老师,两位老师丰富的知识和编程经验帮我解决了不少的难题,同时也给我传授了不少新的知识和技巧同时也感谢给过我帮助和鼓励的同学,是他们的帮助与鼓励,在我遇到困难时,为我点亮了希望的灯塔;在我灰心丧气时,带给我力量和信心参考文献
[1]萨师煊王珊,数据库系统概论第三版,北京:高教出版社,2000
[2]软件开发与指导;人民邮电出版社
[3]Delpehi数据库开发毕业设计指导及实例;机械工业出版社,2004附录1存储过程定义
1.Book_Insert的定义:CREATEPROCEDUREBook_Insert@BookIDchar9@BookNochar20@BookNamechar50@BookWriterchar30@BookPublishchar20@BookPricechar7@BookDatedatetime@BookClasschar20@BookMainchar200@BookPrimchar30@BookCopychar5@BookStatechar10@BookRNochar5asinsertintoBookvalues@BookID@BookNo@BookName@BookWriter@BookPublish@BookPrice@BookDate@BookClass@BookMain@BookPrim@BookCopy@BookState@BookRNo;
2.Reader_Insert的定义:CREATEPROCEDUREReader_Insert@ReaIDchar9@ReaNamechar10@ReaSexchar2@ReaNochar9@ReaLBIDchar5@ReaTypechar20@ReaDepchar20@ReaGradechar5@ReaPrefchar20@ReaDateDatetimeasinsertintoReadervalues@ReaID@ReaName@ReaSex@ReaNo@ReaLBID@ReaType@ReaDep@ReaGrade@ReaPref@ReaDate;
3.Maneger_Insert的定义:CREATEPROCEDUREManeger_Insert@MIDchar10@MNamechar10@MSexchar2@Mpwdchar8@MAuthchar40@MTelephchar15@MAddrechar30asinsertintoManegeralues@MID@MName@MSex@Mpwd@MAuth@MTeleph@MAddre;
4.Borrow_Insert的定义:CREATEPROCEDUREBorrow_Insert@BookIDchar9@ReaIDchar9@OutdateDatetime@YHdateDatetime@IndateDatetime@Finechar5@CLStatechar8@MIDchar10asinsertintoBorrowvalues@BookID@ReaID@Outdate@YHdate@Indate@Fine@CLState@MID;
5.Query_Reader_R的定义createprocedureQuery_Reader_R@ReaIDchar9asselect*fromReaderviewwhere编号=ltrim@ReaID;
6.Query_Reader_M的定义createprocedureQuery_Reader_Masselect*fromReaderview
7.Query_Book_Writer的定义createprocedureQuery_Book_Writer@BookWriterchar50asselect*fromBookviewwhere作者like%+ltrim@BookWriter+%;
8.Query_Book_Name_Publish的定义createprocedureQuery_Book_Name_Publish@BookNamechar50@BookPublishchar20asselect*fromBookviewwhere书名=ltrim@BookNameand出版社=ltrim@BookPublish;
9.Delete_Reader的定义createprocedureDelete_Reader@ReaNochar9asdeletefromReaderwhereReaNo=ltrim@ReaNo;
10.Delete_Book的定义createprocedureDelete_Book@BookIDchar9asdeletefromBookwhereBookID=ltrim@BookID;附录2数据查看和存储过程功能的验证基本表的数据查看基于视图查询查看Reader(读者信息表)表中的数据查看Bookview(图书信息)表中的数据查看Borrow(借阅信息)表中的数据4)查看Maneger(管理员信息表)表中的数据5)查看Room(馆室信息表)表中的数据6)查看Borrowview(当前借阅信息)视图中的数据7)查看Historyview(借阅历史信息)视图的数据8)查看Fineview(罚款信息)视图的基本数据:存储过程功能的验证存储过程Query_Reader_R功能的验证(按ReaID匹配查询读者信息)存储过程Query_Book_Writer功能的验证按BookWriter模糊查询图书信息3)存储过程Query_Book_Nmae_Publish功能的验证按书名和出版社查询图书信息4)存储过程Query_Reader_M功能的验证(以管理员身份查询读者信息)5)存储过程Reader_Insert功能的验证(插入一条读者信息记录)6)存储过程Borrow_Insert功能的验证(插入一条借阅信息记录)7)存储过程Delete_Reader功能的验证(按ReaNo删除相应的读者记录)注由于篇幅限制,这里仅给出了其中几个存储过程功能的验证触发器功能的验证(在Borrow表中插入一条记录,触发Book表将图书由“可借”状态改为“不可借”状态)附录3所有的SQL运行语句createdatabaseBook;createtableReaderTypeLBIDchar5primarykeyLBNamechar20notnullLBnumchar5notnullLBbqxchar4notnullLBqxchar3notnullcreatetableManegerMIDchar10primarykeyMNamechar10notnullMSexchar2Mpwdchar8notnullMAuthchar40notnullMTelephchar15MAddrechar30checkMSex=男orMSex=女createtableRoomRoomNochar5primarykeyRoomMIDchar10notnullRoomnumchar5RoomAddrechar20foreignkeyRoomMIDreferencesManegerMIDcreatetableBookBookIDchar9primarykeyBookNochar20notnullBookNamechar50notnullBookWriterchar30notnullBookPublishchar20notnullBookPricechar7BookDatedatetimeBookClasschar20BookMainchar200BookPrimchar30BookCopychar5BookStatechar10notnullBookRNochar5notnullforeignkeyBookRNoreferencesRoomRoomNocreatetableReaderReaIDchar9primarykeyReaNamechar10notnullReaSexchar2notnullReaNochar9notnullReaLBIDchar5notnullReaTypechar20ReaDepchar20ReaGradechar5ReaPrefchar20ReaDateDatetimeforeignkeyReaLBIDreferencesReaderTypeLBIDcheckReaSex=男orReaSex=女createtableBorrowBookIDchar9ReaIDchar9OutdateDatetimenotnullYHdateDatetimenotnullIndateDatetimeFinechar5CLStatechar8MIDchar10notnullprimarykeyBookIDReaIDforeignkeyMIDreferencesManegerMIDcreateclusteredindexBookPublishonBookBookPublish;createclusteredindexReaDeponReaderReaDep;createviewBookview索书号书名作者出版社图书状态asselectBookNoBookNameBookWriterBookPublishBookStatefromBookcreateviewReaderview编号读者姓名类型学院专业办证日期asselectReaIDReaNameReaTypeReaDepReaPrefReaDatefromReadercreateviewBorrowview读者编号书名作者借阅日期到期日期asselectReaIDBookNameBookWriterOutdateYHdatefromBorrowBookwhereBorrow.BookID=Book.BookIDandBorrow.IndateisnullcreateviewHistoryview读者编号书名借阅日期归还日期asselectReaIDBookNameOutdateIndatefromBorrowBookwhereBorrow.BookID=Book.BookIDandBorrow.IndateisnotnullcreateviewFineview读者编号书名借阅日期归还日期罚款处理状态asselectReaIDBookNameOutdateIndateFineCLStatefromBorrowBookwhereBorrow.BookID=Book.BookIDandFineisnotnullcreatetriggerReader_deleteonReaderfordeleteasdeleteBorrowfromdeletedwhereBorrow.ReaID=deleted.ReaIDcreatetriggerBorrow_insert1onBorrowforinsertasdeclare@BookIDchar9select@BookID=BookIDfrominsertedupdateBooksetBookState=不可借whereBookID=@BookID图
2.1业务流程图图
2.2顶层数据流。