1、摘 要在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。为了便于图书资料的管理需要有效的图书管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达到提高图书借阅信息管理效率的目的。采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者并简化图书馆管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。基于这个问题,开发了大学图书馆借阅系统。系统采用C/S模式,
2、实现了借还书的方便、高效性、有效性和及时性。本文通过作者设计和开发一个中小型高校图书馆管理系统的实践,阐述了高校图书管理软件中所应具有的基本功能、设计、实现。关键字:图书借阅;人员管理;图书维护目 录1引言32. 需求分析阶段32.1 引言32.2 需求分析阶段的目标与任务32.2.1处理对象32.2.2处理功能及要求32.2.3.安全性和完整性要求42.3 需求分析阶段成果43 概念设计阶段73.1 引言73.2 任务与目标73.3 阶段结果74逻辑设计阶段74.1逻辑设计的任务和目标74.2数据组织74.2.1将E-R图转换为关系模型74.2.2模型优化74.2.3数据库模式定义74.2.
3、4 用户子模式定义74.3数据处理75物理设计阶段75.1物理设计阶段的目标与任务75.2数据存储方面75.3系统功能模块75.3.1 读者基本信息的查询和更新模块75.3.2 图书基本信息的查询和更新模块76数据库实施阶段76.1建立数据库、数据表、视图、索引76.1.1 建立数据库76.1.2 建立数据表76.1.3 建立视图76.1.4 建立索引76.1.5 建立触发器76.2数据入库76.3创建各个功能的存储过程77系统调试和测试78心得体会7致谢7参考文献7附录1 存储过程定义错误!未定义书签。附录2 数据查看和存储过程功能的验证错误!未定义书签。附录3 所有的SQL运行语句错误!未
4、定义书签。II2006级计算机科学与技术专业A班 学年论文1引言2. 需求分析阶段2.1 引言2.2 需求分析阶段的目标与任务2.2.1处理对象读者信息:读者编号,姓名,性别,学号,学院,专业,年级,类型,类别编号,办证日期管理员信息:管理员编号,姓名,性别,权限,登录口令,住址,电话馆藏图书信息:图书编号,索书号,图书名称,作者,出版社,单价,摘要,关键字,副本数,分类,出版日期,状态借阅信息:图书编号,读者编号,图书名,作者,借阅日期,归还日期,归还日期,应还日期,罚金借阅历史信息:图书编号,读者编号,图书名,作者,借阅日期,还书日期罚款信息:读者编号,图书编号,图书名,作者,借阅日期,应
5、还日期,归还日期,罚款金额,处理状态,管理员编号2.2.2处理功能及要求1能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:1) 图书信息的录入、删除及修改。2) 图书信息的多关键字检索查询。3) 图书的出借、返还及超期罚款或丢失赔偿。能够对一定数量的读者、管理员进行相应的信息存储与管理,这其中包括:1) 读者信息的登记、删除及修改。 2) 管理员信息的增加、删除及修改。 3) 读者资料的统计与查询。3能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。4对查询、统计的结果能够列表显示。2.2.3.安全性和完整性要求1) 安全性要求 系统安全性要求
6、体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。2) 完整性要求系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。2.3 需求分析阶段成果2.3.1 体会与收获2.3.2 图书管理系统业务流程图图2.1 业务流程图从读者角度考虑的业务流程图:2.3.3 图书管理系统
7、数据流程图图 2.2 顶层数据流顶层数据流图:第2层数据流图:(读者借阅,读者还书,读者查询,管理员查询,管理员修改)第3层数据流图:(读者借阅)第3层数据流图:(读者还书)第3层数据流图:(查询图书信息,查询读者信息,查询借阅历史,查询罚款信息)第3层数据流图:(管理员添加、删除、修改图书信息)第3层数据流图:(管理员添加、删除、修改读者信息)第3层数据流图:(管理员添加、删除、修改系统用户信息)2.3.4 图书管理系统数据字典(a)数据项:系统涉及的数据项有44项表1.1 数据项列表数据项编号数据项名数据项含义与其它数据项的关系存储结构别名DI-1BookID图书条码号char(9)条码号
8、DI-2BookNo图书索书号char(10)索书号DI-3BookName图书名char(20)书名DI-4BookWriter图书作者char(8)作者DI-5BookPublish图书出版社char(20)出版社DI-6BookPrice图书单价char(7)单价DI-7BookDate图书出版日期Date出版日期DI-8BookClass图书分类char(20)类别DI-9BookMain图书摘要char (200)摘要DI-10BookPrim图书关键字char (30)关键字DI-11BookCopy图书副本数char (5)副本数DI-12BookState图书是否可借char(
9、10)状态DI-13BookRNo所属馆室号同RoomNochar(5)馆室号DI-14ReaID读者条码号char(9)条码号DI-15ReaName读者姓名char(10)姓名DI-16ReaSex读者性别char(2)性别DI-17ReaNo读者学号char (9)学号DI-18ReaLBID读者类别编号同LBIDchar(5)类别编号DI-19ReaType读者类型(职务)char(20)类型DI-20ReaDep读者所在学院char(20)学院DI-21ReaGrade读者所属年级char(5)年级DI-22ReaPre读者所读专业char(20)专业DI-23ReaDate读者办证
10、时间Date办证时间DI-24OutDate借阅日期Date借阅时间DI-25InDate归还日期Date归还时间DI-26YHDate应还日期Date应还时间DI-27Fine罚款金额char(3)罚款金额DI-28CLState是否交纳罚金char(8)处理状态DI-29LBID类别编号同ReaLBIDchar(5)类别编号DI-30LBName读者类别名char(20)类别名DI-31LBnum允许最多借书数量char(5)借阅数量DI-32LBbqx允许最长持有时间char(4)借阅期限DI-33LBqx借阅卡有效期char(3)有效期限DI-34MID管理员编号同RoomMIDcha
11、r(10)编号DI-35MName管理员姓名char(10)姓名DI-36MSex管理员性别char(2)性别DI-37Mpwd管理员口令char(8)口令DI-38MAuth管理员权限级别char(4)权限级别DI-39MTeleph管理员电话char(15)电话DI-40MAddre管理员地址char(30)住址DI-41RoomNo馆室号同BookRNochar(5)馆室号DI-42RoomMID馆室管理员编号同MIDchar(10)编号DI-43RoomNum馆室内图书数目char(5)数量DI-44RoomAddre馆室地址char(20)地址(b)数据结构:表1.2 数据结构列表数
12、据结构编号数据结构名数据结构含义组成DS-1Book馆藏图书信息BookID,BookNo,BookName,BookWriter,BookPublish,BookPrice,BookDate,BookClass, BookMain,BookPrim,BookCopy,BookState,BookRNo DS-2Reader读者信息ReaID, ReaName, ReaSex, ReaNo, ReaLBID, ReaType, ReaDep, ReaGrade, ReaPref, ReaDate, DS-3Borrow借阅信息BookID,ReaID,BookName,BookWriter,
13、Outdate,YHdateDS-4History借阅历史BookID,ReaID,BookName,BookWriter, Outdate,IndateDS-5Fine罚款信息BookID,ReaID,BookName,Outdate,Indate,Fine, CLState,MIDDS-6ReaderType读者类别LBID, LBName, LBnum, LBbqx, LBqxDS-7Maneger管理员信息MID,MName,MSex,Mpwd,MAuth,MTeleph,MAddreDS-8Room馆室信息RoomNO, RoomMID, RoomNum, RoomAddre 2.3
14、.5 处理逻辑描述表1.3 处理逻辑列表处理编号处理功能处理过程PR-1判断读者查询涉及的功能模块馆藏图书信息模块、读者信息模块、读者类别信息模块、借阅信息模块、借阅历史信息模块、罚款信息模块、管理员模块、馆室信息模块:先确定查询所涉及的功能模块;然后,根据要查询的内容,确定查询数据流向;最后显示查询结果。PR-2判断图书、读者修改要涉及的模块,同时把相应的修改数据传到相应的模块之中馆藏图书信息模块、读者信息模块、读者类别信息模块、管理员信息模块、馆室信息模块:先确定更新所涉及的功能模块;然后,把更新信息传送到相应的模块中;最后,进行相应的更新操作。3 概念设计阶段 3.1 引言3.2 任务与
15、目标(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可抽象
16、为分E-R图3.3,数据流程图2.9可抽象为分E-R图3.4。然后采用逐步集成的方式将各分E-R图合并,消除不必要的冗余和冲突后就生成了基本E-R图3.5。3.3 阶段结果(1)根据不同的对象,从第3层数据流程图入手,分别画出各分ER图:(a)从数据流程图图(三) 与图(四)抽象出的分ER图:(c)从数据流程图图(六)抽象出的分ER图:(d)从数据流程图图(七)抽象出的分ER图:(e)从数据流程图图(八)抽象出的分ER图:(2)合并各分图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的基本E-R图如下所示:(3)各ER图各实体的属性如下所示:图书:Boo
17、k(BookID, BookNo, BookName, BookWriter, BookPublish, BookPrice, BookDate, BookClass, BookMain, BookPrim, BookCopy, BookState,BookRN)读者:Reader(ReaID, ReaName, ReaSex, ReaNo, ReaLBID, ReaType, ReaDep, ReaGrade, ReaPref, ReaDate)管理员:Maneger(MID, MName, MSex, Mpwd, MAuth, MTeleph, MAddre) 馆室:Room(RoomNo
18、,RoomMID,RoomNum,RoomAddre)读者类别:ReaderTpye(LBID, LBName, LBnum, LBbqx, LBqx) 各ER图中联系的属性如下所示:借阅信息:Borrow (BookID,ReaderID,BookName,BookWriter, Outdate,YHdate)借阅历史:History(BookID,ReaderID,BookName, BookWriter, Outdate,Indate)罚款信息:Fine(BookID,ReaderID,BookName, Outdate,Indate, Fine, CLState, MID)4逻辑设计阶
19、段4.1逻辑设计的任务和目标以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。4.2数据组织4.2.1将E-R图转换为关系模型实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均
20、转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合 具有相同码的关系模式可合并。由于读者类别与读者、馆室与图书的联系方式是1:n(一对多),可以将其之间的联系与n端实体读者、图
21、书合并,管理员与图书之间的维护联系也是1:n(一对多),同样也将其之间的联系与n端实体合并,而读者与图书之间的借阅和归还联系方式则是n:m(多对多),这样要把它们之间的联系转化为独立的关系模式,读者与管理员之间的罚款联系是m:n(多对多),将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:图书:Book(BookID, BookNo, BookName, BookWriter, BookPublish, BookPrice, BookDate,BookClass,BookMain,BookPrim,BookCopy,BookState,BookRNo)读者:Reader(
22、ReaID,ReaName,ReaSex,ReaNo,ReaLBID,ReaType, ReaDep, ReaGrade, ReaPref, ReaDate)管理员: Maneger (MID,MName,MSex,Mpwd,MAuth,MTeleph,MAddre)读者类别:ReaderTpye(LBID, LBName, LBnum, LBbqx, LBqx)馆室: Room(RoomNo,RoomMID,RoomNum,RoomAddre)借阅信息:Borrow(BookID,ReaderID,BookName,BookWriter, Outdate,YHdate)借阅历史:Histor
23、y(BookID,ReaderID,BookName,BookWriter, Outdate,Indate,YHdate)罚款信息:Fine (BookID,ReaderID,BookName,Outdate,Indate,Fine, CLState,MID) (注:标有直线下划线的为主属性,标有波浪线下划线的是外键属性,主属性与外键属性一起构成主码)4.2.2模型优化关系模式Book,Reader,Room,ReaderType ,Maneger不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是借阅关系模式、借阅历史关系模式、罚款关系模式(Borrow,His
24、tory,Fine)中存在着一些数据冗余,现将三个关系模型进行合并,消除冗余,优化为:借阅信息:Borrow ( BookID,ReaderID,BookName,BookWriter, Outdate,Indate,YHdate,Fine,CLStaer,MID)4.2.3数据库模式定义表2.1 馆藏图书信息表列名数据类型可否为空说明BookIDCharnot null图书编号BookNoCharnot null图书的索书号BookNameCharnot null图书的书名BookWriterCharnot null图书作者BookPulishCharnot null图书出版社BookPri
25、ceChar图书的单价BookDateDate出版日期BookClassChar图书的分类BookMainChar图书的摘要BookPrimChar图书的关键字BookCopyChar图书的副本数BookStateCharnot null图书是否可借BookRNoCharnot null图书所在馆室号表2.2 读者信息表列名数据类型可否为空说明ReaIDCharnot null读者编号ReaNameCharnot null读者姓名ReaSexCharnot null读者性别ReaNoCharnot null读者学号ReaLBIDCharnot null读者类别编号ReaTypeChar读者类型
26、ReaDepChar读者所在学院ReaPrefChar读者所属专业ReaGradeChar读者的年级ReaDateDatenot null办证日期表2.3 管理员信息表列名数据类型可否为空说明MIDCharnot null管理员编号MNameCharnot null管理员姓名MSexChar管理员性别MpswCharnot null管理员密码MAuthCharnot null管理员权限MTelephChar管理员电话MAddreChar管理员地址表2.4 馆室信息表列名数据类型可否为空说明RoomNoCharnot null馆室号RoomMIDCharnot null馆室管理员编号RoomNu
27、mChar馆室拥有图书数目RoomAddreChar馆室地址表2.5 读者类别信息表列名数据类型可否为空说明LBIDCharnot null读者类别编号LBNameCharnot null读者类别名LBnumCharnot null允许借阅图书最大数LBbqxCharnot null持有图书最长期限LBqxCharnot null借阅证期限表2.6 借阅信息表列名数据类型可否为空说明ReaIDCharnot null读者编号BookIDCharnot null图书编号BookNameCharnot null图书名BookWriterChar作者OutdateDatenot null借阅时间In
28、dateDate归还时间YHdateDatenot null应还时间FineChar罚款金额CLStateChar处理状态MIDCharnot null管理员编号4.2.4 用户子模式定义表2.7 用户子模式定义编号用户子模式(View)作用(共性:提供数据保密和安全保护机制)V1BookView便于查询和修改图书的基本信息V2ReaderView方便读者基本信息的查询、更新V3HistoryView便于借阅历史信息的查询V4BorrowView用于当前借阅信息的查询V5FineView便于查询罚款信息表2.8 读者基本信息视图列名数据类型可否为空说明ReaIDCharnot null读者编号
29、ReaNameCharnot null读者姓名ReaSexCharnot null读者性别ReaTypeChar读者类型ReaDepChar读者所在学院ReaDateDatel办证日期表2.9 图书基本信息视图列名数据类型可否为空说明BookNoCharnot null图书的索书号BookNameCharnot null图书的书名BookWriterCharnot null图书作者BookPulishCharnot null图书出版社BookStateCharnot null图书是否可借BookRNoCharnot null图书所在馆室号表2.10 读者当前借阅信息视图列名数据类型可否为空说明
30、BookIDCharnot null图书编号BookNameCharnot null图书名OutdateDatenot null借阅时间YHdateDatenot null应还时间表2.11 读者借阅历史信息视图列名数据类型可否为空说明BookIDCharnot null图书编号BookNameCharnot null图书名OutdateDatenot null借阅时间IndateDate归还时间表2.12 读者罚款信息视图列名数据类型可否为空说明BookIDCharnot null图书编号BookNameCharnot null图书名OutdateDatenot null借阅时间Indate
31、Date归还时间FineCharnot null罚款金额CLStateCharnot null处理状态4.3数据处理系统功能模块图: 5物理设计阶段5.1物理设计阶段的目标与任务 数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。5.2数据存储方面为数据库中各基本表建立的索引如下:1. 由于基本表Reader,Book的主码ReaID,BookID经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯
32、一性索引;2. 由于基本表Reader的属性ReaDep,Book的属性BookPublish经常在查询条件中出现在两个属性上建立聚簇索引;3. 借阅信息基本表Borrow的一属性ReaID,BookID,经常在查询条件中出现,考虑在其之上建立聚簇索引;4. 罚款信息基本表Fine的一属性ReaID,BookID,经常在查询条件中出现,考虑在其之上建立聚簇索引;5.3系统功能模块5.3.1 读者基本信息的查询和更新模块将实现对读者基本信息的查询和更新(修改、添加、删除)操作,用于新生入学,毕业生离校,以及读者补办借阅证或更改信息的情况,具体的功能模块图如下:5.3.2 图书基本信息的查询和更新
33、模块功能模块图如下所示:6数据库实施阶段6.1建立数据库、数据表、视图、索引6.1.1 建立数据库create database Book;6.1.2 建立数据表(1)读者类别信息表的建立:create table ReaderType(LBID char(5) primary key,LBName char(20) not null,LBnum char(5) not null,LBbqx char(4) not null,LBqx char(3) not null,)(2)管理员基本信息表的建立:create table Maneger(MID char(10) primary key,M
34、Name char(10) not null,MSex char(2),Mpwd char(8) not null,MAuth char(40) not null,MTeleph char(15),MAddre char(30),check(MSex =男 or MSex =女)(3)图书馆室基本信息表的建立:create table Room(RoomNo char(5) primary key,RoomMID char(10) not null,Roomnum char(5),RoomAddre char(20),foreign key(RoomMID) references Manege
35、r(MID),)(4)馆藏图书基本信息表的建立:create table Book( BookID char(9) primary key, BookNo char(20) not null, BookName char(50) not null, BookWriter char(30) not null, BookPublish char(20) not null, BookPrice char(7), BookDate datetime, BookClass char(20), BookMain char(200), BookPrim char(30), BookCopy char(5),
36、 BookState char(10) not null, BookRNo char(5) not null,foreign key(BookRNo) references Room(RoomNo),)(5)读者基本信息表的建立:create table Reader(ReaID char(9) primary key,ReaName char(10) not null,ReaSex char(2) not null,ReaNo char(9) not null,ReaLBID char(5) not null,ReaType char(20),ReaDep char(20),ReaGrade
37、 char(5),ReaPref char(20),ReaDate Datetime,foreign key(ReaLBID) references ReaderType(LBID),check(ReaSex =男 or ReaSex =女)(6)借阅基本信息表的建立:create table Borrow(BookID char(9),ReaID char(9),Outdate Datetime not null,YHdate Datetime not null,Indate Datetime,Fine char(5),CLState char(8),MID char(10) not nul
38、l,primary key(BookID,ReaID),foreign key(MID) references Maneger(MID)6.1.3 建立视图(1)用于查询图书基本信息的视图定义如下: create view Bookview (索书号, 书名, 作者, 出版社, 图书状态)asselect BookNo,BookName,BookWriter,BookPublish,BookStatefrom Book(2)用于读者基本信息查询的视图定义如下:create view Readerview (读者姓名,类型,学院,专业,办证日期)asselect ReaName,ReaType,
39、ReaDep,ReaPref,ReaDatefrom Reader(3)用于显示当前借阅基本信息的视图定义如下:create view Borrowview (读者编号,书名,作者,借阅日期,到期日期)asselect ReaID,BookName,BookWriter,Outdate,YHdatefrom Borrow,Bookwhere Borrow.BookID=Book.BookID and Borrow.Indate is null(4)用于借阅历史信息查询的视图定义如下:create view Historyview (读者编号,书名,借阅日期,归还日期)asselect ReaI
40、D,BookName,Outdate,Indatefrom Borrow,Bookwhere Borrow.BookID=Book.BookID and Borrow.Indate is not null(5)用于查询罚款信息的视图定义如下:create view Fineview (读者编号,书名,借阅日期,归还日期,罚款,处理状态)asselect ReaID,BookName,Outdate,Indate,Fine,CLStatefrom Borrow,Bookwhere Borrow.BookID=Book.BookID and Fine is not null6.1.4 建立索引cr
41、eate clustered index BookPublish on Book(BookPublish);create clustered index ReaDep on Reader(ReaDep);6.1.5 建立触发器1当删除Reader表中某一读者基本信息时,触发Borrow表,删除相应的记录create trigger Reader_deleteon Readerfor deleteas delete Borrowfrom deletedwhere Borrow.ReaID=deleted.ReaID2当在中增加一条借阅记录时,使该图书的状态由“可借”变为“不可借”create t
42、rigger Borrow_insert1on Borrowfor insertas declare BookID char(9)select BookID=BookIDfrom insertedupdate Bookset BookState=不可借where BookID=BookID6.2数据入库系统包括图书基本信息管理、读者基本信息管理、管理员信息管理、借阅信息管理、查询信息管理等四大功能模块,共有6张基本表,采用事先在Excel中录入数据,然后使用SQL Server 2000数据导入/导出向导功能,直接将数据导入到相应的基本表中。6.3创建各个功能的存储过程系统共创建了10个存储过程,具体列表如下:表3.1 创建的存储过程列表:
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922