首页 高校图书馆管理系统数据库设计

高校图书馆管理系统数据库设计

举报
开通vip

高校图书馆管理系统数据库设计图书管理系统数据库设计 学 号:   专业班级:   姓 名:   指导老师:   完成日期:       摘  要 在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。为了便于图书资料的管理需要有效的图书管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达到提高图书借阅信...

高校图书馆管理系统数据库设计
图书管理系统数据库设计 学 号:   专业班级:   姓 名:   指导老师:   完成日期:       摘  要 在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。为了便于图书资料的管理需要有效的图书管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达到提高图书借阅信息管理效率的目的。采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者并简化图书馆管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。基于这个问题,开发了大学图书馆借阅系统。系统采用C/S模式,实现了借还书的方便、高效性、有效性和及时性。本文通过作者设计和开发一个中小型高校图书馆管理系统的实践,阐述了高校图书管理软件中所应具有的基本功能、设计、实现。 关键字:图书借阅;人员管理;图书维护; 目  录 1.引言    1 2.  需求分析阶段    2 2.1 引言    2 2.2 需求分析阶段的目标与任务    2 2.2.1处理对象    2 2.2.2处理功能及要求    3 2.2.3.安全性和完整性要求    3 2.3 需求分析阶段成果    3 3  概念设计阶段    9 3.1 引言    9 3.2 任务与目标    10 3.3 阶段结果    10 4.逻辑设计阶段    12 4.1逻辑设计的任务和目标    12 4.2数据组织    12 4.2.1将E-R图转换为关系模型    12 4.2.2模型优化    13 4.2.3数据库模式定义    13 4.2.4 用户子模式定义    15 4.3数据处理    16 5.物理设计阶段    17 5.1物理设计阶段的目标与任务    17 5.2数据存储方面    17 5.3系统功能模块    17 5.3.1 读者基本信息的查询和更新模块    17 5.3.2 图书基本信息的查询和更新模块    18 6.数据库实施阶段    19 6.1建立数据库、数据表、视图、索引    19 6.1.1 建立数据库    19 6.1.2 建立数据表    19 6.1.3 建立视图    21 6.1.4 建立索引    21 6.1.5 建立触发器    22 6.2数据入库    22 6.3创建各个功能的存储过程    22 7.系统调试和测试    23 8.实习心得    23 9.存在的问题及建议    23 致谢    25 参考文献    25 附录1 存储过程定义    26 附录2 数据查看和存储过程功能的验证    29 附录3 所有的SQL运行语句    34 1.引言 随着社会信息量的与日俱增,职场竞争的日趋激烈,越来越多的人更关注知识的积累、能力的培养。作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。 在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。对于日益扩大的图书馆,查找特定的书目总是借阅者或工作人员劳神费力,有时还没有结果。因此往往是投入了大量的人力和财力却得不到高效的管理效率。为了缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书借阅信息管理效率的目的,采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者并简化图书馆管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。 本文以高校图书馆管理系统管理系统开发过程为背景,全文分为目录、需求分析、概要设计、逻辑设计、物理设计,以及系统的实现等全过程。在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。采用结构化的功能模块设计系统功能,可读性好,易于扩充。基本功能全面,系统可读性好,易于维护、更新,安全性好。 2.  需求分析阶段 2.1 引言 进行系统设计,首先要对系统的现状进行分析。根据系统的目标、需求和功能,制定和选择一个较好的系统 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,从而达到一个合理的优化系统。每个学校都有图书馆,最初由于图书数量和种类较少,人工手动管理比较方便和灵活。随着社会的发展,图书的数量和种类越来越多,人工手动管理会降低工作的效率,希望建立一个图书管理系统,是为了解决人工手动管理图书信息在实践的问题,从而达到系统化、规范化、 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 化的水平。该系统的建立不但给管理者带来了方便,也节省了工作时间从而提高了工作效率。 需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。 在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。这里把系统的层次划分为了四个部分:图书维护,人员信息管理,图书借阅管理,信息查询。能够实现以下功能: 进行新书入库、现有图书信息修改以及删除; ② 能够实现对读者基本信息的查询和编辑管理; ③ 能够进行超期罚款功能; ④ 能够进行借阅信息的查询功能; 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 体会与收获 系统需求分析主要是通过对本校图书管理员的咨询、请教,了解我校图书馆的管理 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf 和运行机制,并通过上网搜索有关图书管理系统的知识,了解到了图书管理的现状,以及在管理中的一些问题。由于是第一次做这样的需求调查,开始总是觉得无从下手,不知道自己该了解、该清楚那些方面的知识,在绘制系统业务流程图时,也遇到了很多的问题,但通过老师的帮助与指导,和自己一遍一遍的分析和完善,才逐步把业务弄清楚,最终顺利完成了需求分析阶段的任务。 2.3.2 图书管理系统业务流程图 从读者角度考虑的业务流程图: 2.3.3 图书管理系统数据流程图 顶层数据流图: 第2层数据流图:(读者借阅,读者还书,读者查询,管理员查询,管理员修改) 第3层数据流图:(读者借阅) 第3层数据流图:(读者还书) 第3层数据流图:(查询图书信息,查询读者信息,查询借阅历史,查询罚款信息) 第3层数据流图:(管理员添加、删除、修改图书信息) 第3层数据流图:(管理员添加、删除、修改读者信息) 第3层数据流图:(管理员添加、删除、修改系统用户信息) 2.3.4 图书管理系统数据字典 (a)数据项:系统涉及的数据项有44项 表1.1 数据项列表 数据项编号 数据项名 数据项含义 与其它数据项的关系 存储结构 别名 DI-1 BookID 图书条码号   char(9) 条码号 DI-2 BookNo 图书索书号   char(10) 索书号 DI-3 BookName 图书名   char(20) 书名 DI-4 BookWriter 图书作者   char(8) 作者 DI-5 BookPublish 图书出版社   char(20) 出版社 DI-6 BookPrice 图书单价   char(7) 单价 DI-7 BookDate 图书出版日期   Date 出版日期 DI-8 BookClass 图书分类   char(20) 类别 DI-9 BookMain 图书摘要   char (200) 摘要 DI-10 BookPrim 图书关键字   char (30) 关键字 DI-11 BookCopy 图书副本数   char (5) 副本数 DI-12 BookState 图书是否可借   char(10) 状态 DI-13 BookRNo 所属馆室号 同RoomNo char(5) 馆室号 DI-14 ReaID 读者条码号   char(9) 条码号 DI-15 ReaName 读者姓名   char(10) 姓名 DI-16 ReaSex 读者性别   char(2) 性别 DI-17 ReaNo 读者学号   char (9) 学号 DI-18 ReaLBID 读者类别编号 同LBID char(5) 类别编号 DI-19 ReaType 读者类型(职务)   char(20) 类型 DI-20 ReaDep 读者所在学院   char(20) 学院 DI-21 ReaGrade 读者所属年级   char(5) 年级 DI-22 ReaPre 读者所读专业   char(20) 专业 DI-23 ReaDate 读者办证时间   Date 办证时间 DI-24 OutDate 借阅日期   Date 借阅时间 DI-25 InDate 归还日期   Date 归还时间 DI-26 YHDate 应还日期   Date 应还时间 DI-27 Fine 罚款金额   char(3) 罚款金额 DI-28 CLState 是否交纳罚金   char(8) 处理状态 DI-29 LBID 类别编号 同ReaLBID char(5) 类别编号 DI-30 LBName 读者类别名   char(20) 类别名 DI-31 LBnum 允许最多借书数量   char(5) 借阅数量 DI-32 LBbqx 允许最长持有时间   char(4) 借阅期限 DI-33 LBqx 借阅卡有效期   char(3) 有效期限 DI-34 MID 管理员编号 同RoomMID char(10) 编号 DI-35 MName 管理员姓名   char(10) 姓名 DI-36 MSex 管理员性别   char(2) 性别 DI-37 Mpwd 管理员口令   char(8) 口令 DI-38 MAuth 管理员权限级别   char(4) 权限级别 DI-39 MTeleph 管理员电话   char(15) 电话 DI-40 MAddre 管理员地址   char(30) 住址 DI-41 RoomNo 馆室号 同BookRNo char(5) 馆室号 DI-42 RoomMID 馆室管理员编号 同MID char(10) 编号 DI-43 RoomNum 馆室内图书数目   char(5) 数量 DI-44 RoomAddre 馆室地址   char(20) 地址             (b)数据结构: 表1.2 数据结构列表 数据结 构编号 数据结构名 数据结构 含义 组成 DS-1 Book 馆藏图书信息 BookID,BookNo,BookName,BookWriter, BookPublish,BookPrice,BookDate,BookClass, BookMain,BookPrim,BookCopy,BookState, BookRNo DS-2 Reader 读者信息 ReaID, ReaName, ReaSex, ReaNo, ReaLBID, ReaType, ReaDep, ReaGrade, ReaPref, ReaDate, DS-3 Borrow 借阅信息 BookID,ReaID,BookName,BookWriter, Outdate,YHdate DS-4 History 借阅历史 BookID,ReaID,BookName,BookWriter, Outdate,Indate DS-5 Fine 罚款信息 BookID,ReaID,BookName,Outdate,Indate,Fine, CLState,MID DS-6 ReaderType 读者类别 LBID, LBName, LBnum, LBbqx, LBqx DS-7 Maneger 管理员信息 MID,MName,MSex,Mpwd,MAuth,MTeleph,MAddre DS-8 Room 馆室信息 RoomNO, RoomMID, RoomNum, RoomAddre         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.5。 3.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图各实体的属性如下所示: 图书:Book(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,RoomMID,RoomNum,RoomAddre) 读者类别:ReaderTpye(LBID,  LBName,  LBnum,  LBbqx,  LBqx) 各E-R图中联系的属性如下所示: 借阅信息:Borrow (BookID,ReaderID,BookName,BookWriter, Outdate,YHdate) 借阅历史:History(BookID,ReaderID,BookName, BookWriter, Outdate,Indate) 罚款信息:Fine(BookID,ReaderID,BookName, Outdate,Indate, Fine, CLState, MID) 4.逻辑设计阶段 4.1逻辑设计的任务和目标 以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。 4.2数据组织 4.2.1将E-R图转换为关系模型 实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:    一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。    一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合    具有相同码的关系模式可合并。 由于读者类别与读者、馆室与图书的联系方式是1:n(一对多),可以将其之间的联系与n端实体读者、图书合并,管理员与图书之间的维护联系也是1:n(一对多),同样也将其之间的联系与n端实体合并,而读者与图书之间的借阅和归还联系方式则是n:m(多对多),这样要把它们之间的联系转化为独立的关系模式,读者与管理员之间的罚款联系是m:n(多对多),将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下: 图书:Book(BookID, BookNo, BookName, BookWriter, BookPublish, BookPrice, BookDate,BookClass,BookMain,BookPrim,BookCopy,BookState, BookRNo) 读者:Reader(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) 借阅历史:History(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,History,Fine)中存在着一些数据冗余,现将三个关系模型进行合并,消除冗余,优化为: 借阅信息:Borrow ( BookID,ReaderID,BookName,BookWriter, Outdate,Indate, YHdate,Fine,CLStaer,MID) 4.2.3数据库模式定义 表2.1 馆藏图书信息表 列名 数据类型 可否为空 说明 BookID Char not null 图书编号 BookNo Char not null 图书的索书号 BookName Char not null 图书的书名 BookWriter Char not null 图书作者 BookPulish Char not null 图书出版社 BookPrice Char   图书的单价 BookDate Date   出版日期 BookClass Char   图书的分类 BookMain Char   图书的摘要 BookPrim Char   图书的关键字 BookCopy Char   图书的副本数 BookState Char not null 图书是否可借 BookRNo Char not null 图书所在馆室号         表2.2 读者信息表 列名 数据类型 可否为空 说明 ReaID Char not null 读者编号 ReaName Char not null 读者姓名 ReaSex Char not null 读者性别 ReaNo Char not null 读者学号 ReaLBID Char not null 读者类别编号 ReaType Char   读者类型 ReaDep Char   读者所在学院 ReaPref Char   读者所属专业 ReaGrade Char   读者的年级 ReaDate Date not null 办证日期         表2.3 管理员信息表 列名 数据类型 可否为空 说明 MID Char not null 管理员编号 MName Char not null 管理员姓名 MSex Char   管理员性别 Mpsw Char not null 管理员密码 MAuth Char not null 管理员权限 MTeleph Char   管理员电话 MAddre Char   管理员地址         表2.4 馆室信息表 列名 数据类型 可否为空 说明 RoomNo Char not null 馆室号 RoomMID Char not null 馆室管理员编号 RoomNum Char   馆室拥有图书数目 RoomAddre Char   馆室地址         表2.5 读者类别信息表 列名 数据类型 可否为空 说明 LBID Char not null 读者类别编号 LBName Char not null 读者类别名 LBnum Char not null 允许借阅图书最大数 LBbqx Char not null 持有图书最长期限 LBqx Char not null 借阅证期限         表2.6 借阅信息表 列名 数据类型 可否为空 说明 ReaID Char not null 读者编号 BookID Char not null 图书编号 BookName Char not null 图书名 BookWriter Char   作者 Outdate Date not null 借阅时间 Indate Date   归还时间 YHdate Date not null 应还时间 Fine Char   罚款金额 CLState Char   处理状态 MID Char not null 管理员编号         4.2.4 用户子模式定义 表2.7 用户子模式定义 编号 用户子模式(View) 作用(共性:提供数据保密和安全保护机制) V-1 BookView 便于查询和修改图书的基本信息 V-2 ReaderView 方便读者基本信息的查询、更新 V-3 HistoryView 便于借阅历史信息的查询 V-4 BorrowView 用于当前借阅信息的查询 V-5 FineView 便于查询罚款信息       表2.8 读者基本信息视图 列名 数据类型 可否为空 说明 ReaID Char not null 读者编号 ReaName Char not null 读者姓名 ReaSex Char not null 读者性别 ReaType Char   读者类型 ReaDep Char   读者所在学院 ReaDate Date l 办证日期         表2.9 图书基本信息视图 列名 数据类型 可否为空 说明 BookNo Char not null 图书的索书号 BookName Char not null 图书的书名 BookWriter Char not null 图书作者 BookPulish Char not null 图书出版社 BookState Char not null 图书是否可借 BookRNo Char not null 图书所在馆室号         表2.10 读者当前借阅信息视图 列名 数据类型 可否为空 说明 BookID Char not null 图书编号 BookName Char not null 图书名 Outdate Date not null 借阅时间 YHdate Date not null 应还时间         表2.11 读者借阅历史信息视图 列名 数据类型 可否为空 说明 BookID Char not null 图书编号 BookName Char not null 图书名 Outdate Date not null 借阅时间 Indate Date   归还时间         表2.12 读者罚款信息视图 列名 数据类型 可否为空 说明 BookID Char not null 图书编号 BookName Char not null 图书名 Outdate Date not null 借阅时间 Indate Date   归还时间 Fine Char not null 罚款金额 CLState Char not null 处理状态         4.3数据处理 系统功能模块图: 5.物理设计阶段 5.1物理设计阶段的目标与任务 数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务: (1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构; (2)对物理结构进行 评价 LEC评价法下载LEC评价法下载评价量规免费下载学院评价表文档下载学院评价表文档下载 ,评价的重点是时间和空间效率。 5.2数据存储方面 为数据库中各基本表建立的索引如下: 1. 由于基本表Reader,Book的主码ReaID,BookID经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引; 2. 由于基本表Reader的属性ReaDep,Book的属性BookPublish经常在查询条件中出现在两个属性上建立聚簇索引; 3. 借阅信息基本表Borrow的一属性ReaID,BookID,经常在查询条件中出现,考虑在其之上建立聚簇索引; 4. 罚款信息基本表Fine的一属性ReaID,BookID,经常在查询条件中出现,考虑在其之上建立聚簇索引; 5.3系统功能模块 5.3.1 读者基本信息的查询和更新模块 将实现对读者基本信息的查询和更新(修改、添加、删除)操作,用于新生入学,毕业生离校,以及读者补办借阅证或更改信息的情况,具体的功能模块图如下: 5.3.2 图书基本信息的查询和更新模块 将完成对图书基本信息的查询、更新(修改、添加、删除)操作,用于读者对图书信息的查询及管理员添加新书、删除淘汰的旧书,具体的功能模块图如下所示: 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, MName 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 Maneger(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), 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    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 null, primary key(BookID,ReaID), foreign key(MID) references Maneger(MID) ) 6.1.3 建立视图 (1)用于查询图书基本信息的视图定义如下: create view Bookview (索书号, 书名, 作者, 出版社, 图书状态) as select BookNo,BookName,BookWriter,BookPublish,BookState from Book (2)用于读者基本信息查询的视图定义如下: create view Readerview (读者姓名,类型,学院,专业,办证日期) as select ReaName,ReaType,ReaDep,ReaPref,ReaDate from Reader (3)用于显示当前借阅基本信息的视图定义如下: create view Borrowview (读者编号,书名,作者,借阅日期,到期日期) as select ReaID,BookName,BookWriter,Outdate,YHdate from Borrow,Book where Borrow.BookID=Book.BookID and Borrow.Indate is null (4)用于借阅历史信息查询的视图定义如下: create view Historyview (读者编号,书名,借阅日期,归还日期) as select ReaID,BookName,Outdate,Indate from Borrow,Book where Borrow.BookID=Book.BookID and Borrow.Indate is not null (5)用于查询罚款信息的视图定义如下: create view Fineview (读者编号,书名,借阅日期,归还日期,罚款,处理状态) as select ReaID,BookName,Outdate,Indate,Fine,CLState from Borrow,Book where Borrow.BookID=Book.BookID and Fine is not null 6.1.4 建立索引 create clustered index BookPublish on Book(BookPublish); create clustered index ReaDep on Reader(ReaDep); 6.1.5 建立触发器 1.当删除Reader表中某一读者基本信息时,触发Borrow表,删除相应的 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 create trigger Reader_delete on Reader for delete as delete Borrow from deleted where Borrow.ReaID=deleted.ReaID 2.当在中增加一条借阅记录时,使该图书的状态由“可借”变为“不可借” create trigger Borrow_insert1 on Borrow for insert as declare @BookID char(9) select @BookID=BookID from inserted update Book set BookState='不可借' where BookID=@BookID 6.2数据入库 系统包括图书基本信息管理、读者基本信息管理、管理员信息管理、借阅信息管理、查询信息管理等四大功能模块,共有6张基本表,采用事先在Excel中录入数据,然后使用SQL Server 2000数据导入/导出向导功能,直接将数据导入到相应的基本表中。 6.3创建各个功能的存储过程    系统共创建了10个存储过程,具体列表如下: 表3.1 创建的存储过程列表: 编号 存储过程名称 定义 作用 P-1 Book_Insert 详见附录1-1 在Book中插入一元组 P-2 Reader_Insert 详见附录1-2 在Reader中插入一元组 P-3 Maneger_Insert 详见附录1-3 在Maneger中插入一元组 P-4 Borrow_Insert 详见附录1-4 在Borrow中插入一元组 P-5 Delete_Book 详见附录1-10 从Book中删除一元组 P-6 Delete_Reader 详见附录1-9 从Reader中删除一元组 P-7 Query_Reader_R 详见附录1-5 读者在Reader中查询本人信息 P-8 Query_Reader_M 详见附录1-6 管理员在Reader中查询全部读者 P-9 Query_Book_Writer 详见附录1-7 在Book,按作者查询 P-10 Query_Book_Name_Publish 详见附录1-8 在Book中,按书名和出版社查询         (其它表的查询、修改、删除与以上各表的存储过程定义大致相同,这里不再具体列出) 7.系统调试和测试 对该图书管理系统进行测试,验证每个功能是否符合要求,具体的测试如下: (1)通过视图查看各个基本表和视图中的数据(见附录2) (2)检测各个存储过程的功能:(见附录2) 8.实习心得 1. 这次课程设计使我熟悉了系统设计的整体步骤。系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。其中,让我感触最深的是需求分析阶段,在这个阶段,必须对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解,这样会在后续的工作中遇到很多的问题。 2. 这次课程设计加深了我对数据库系统概论相关知识和SQL SERVER相关功能的理解。例如对建立基本表、视图、索引、存储过程、触发器等,都比以前更加的熟练。并在解决遇到的各种问题的过程中,学到了很多新的知识。比如在导入\导出数据时,由于外键约束的存在,经常会出现错误,这就要注意各个表导入的顺序问题。一般是先导入主键表,后导入外键表,这样可以避免很多的错误。 3. 我进一步掌握了相关的SQL语句方面的知识。不但纠正了以前的错误认识和理解,而且学会了建立存储过程和触发器。通过查阅资料,我还明白了存储过程是编译后放在服务器端的程序,它可以被别的模块调用,且不需要重新编译,这样就大大减轻了客户端的负担,且有效的提高了系统执行的效率。 4 . 当然,在实习的过程中也存在一些问题。由于需求分析阶段的工作完成的不是很充分,在后面的设计过程中,前后时常会出现矛盾,不一致现象,因此要反复的修改前面的结果,导致整个工作进行的不是很顺利。 9.存在的问题及建议 1.我觉得在这次课程设计中,需求分析阶段是致关重要的,但由于同学们都是第一次做这样的系统设计,都不是很熟悉需求分析的主要方法和主要任务,所以都很盲目,认为随便从网上搜点相关的知识就可以了,但其实,这直接影响着后面的各个阶段的工作的进行。所以希望老师在实习前能给我们对需求分析阶段的工作进行一定的指导。 2.在实习过程中,虽然我们每个班都配备了两到三名指导老师,可各指导老师轮流上班,当我们遇到问题时,有时在身边找不到老师,而浪费了一些宝贵的时间,或者是本班的指导老师在给别班的学生指导,所以也可能会耗费一定的等待时间。 3.但总的说来,这次实习的各个指导老师都是知识渊博,经验丰富,并且十分热情的,我们请教的任何问题,老师都会耐心而认真的为我们解决,老师不但帮我们解决了问题,同时也教会了我们解决此类问题的方法,这对我们今后的学习是十分有益的。 致谢 在这次数据库课程设计的整个过程中,都受到了指导教师杨丽丽老师、陈勇老师、武苏里老师细心的指导和关怀,同时蔚继承老师、杨晓辉老师、孙建敏老师也给予了我很大的帮助。对此,表示忠心的感谢!没有老师的耐心指导,我根本不可能顺利完成此次课程设计的任务。在这里,我尤其要真诚的感谢杨丽丽老师和蔚继承老师,两位老师丰富的知识和编程经验帮我解决了不少的难题,同时也给我传授了不少新的知识和技巧。 同时也感谢给过我帮助和鼓励的同学,是他们的帮助与鼓励,在我遇到困难时,为我点亮了希望的灯塔;在我灰心丧气时,带给我力量和信心。 参考文献 [1] 萨师煊 王珊,数据库系统概论(第三版),北京:高教出版社,2000 [2] 软件开发与指导;人民邮电出版社 [3] Delpehi数据库开发毕业设计指导及实例;机械工业出版社,2004 附录1 存储过程定义 1.Book_Insert的定义: CREATE PROCEDURE Book_Insert @BookID      char(9) , @BookNo      char(20), @BookName    char(50), @BookWriter  char(30), @BookPublish char(20), @BookPrice  char(7), @BookDate    datetime, @BookClass  char(20), @BookMain    char(200), @BookPrim    char(30), @BookCopy    char(5), @BookState  char(10), @BookRNo    char(5) as    insert into Book values(@BookID ,@BookNo,@BookName,@BookWriter ,@BookPublish ,@BookPrice, @BookDate,@BookClass ,@BookMain ,@BookPrim ,@BookCopy ,@BookState , @BookRNo); 2.Reader_Insert的定义: CREATE PROCEDURE Reader_Insert @ReaID      char(9), @ReaName    char(10), @ReaSex      char(2), @ReaNo      char(9), @ReaLBID    char(5), @ReaType    char(20), @ReaDep      char(20), @ReaGrade    char(5), @ReaPref    char(20), @ReaDate    Datetime as    insert into Reader values( @ReaID , @ReaName, @ReaSex,@ReaNo ,@ReaLBID,@ReaType,@ReaDep , @ReaGrade ,@ReaPref ,@ReaDate); 3.Maneger_Insert的定义: CREATE PROCEDURE Maneger_Insert @MID  char(10) , @MName char(10), @MSex  char(2), @Mpwd  char(8), @MAuth char(40), @MTeleph char(15), @MAddre char(30) as    insert into Maneger alues(@MID , @MName ,@MSex  ,@Mpwd  ,@MAuth ,@MTeleph ,@MAddre); 4.Borrow_Insert的定义: CREATE PROCEDURE Borrow_Insert @BookID  char(9), @ReaID  char(9), @Outdate  Datetime , @YHdate Datetime , @Indate  Datetime, @Fine char(5), @CLState char(8), @MID char(10) as    insert into Borrow values(@BookID ,@ReaID ,@Outdate ,@YHdate  ,@Indate ,@Fine ,@CLState ,@MID ); 5.Query_Reader_R的定义: create procedure Query_Reader_R @ReaID char(9) as select * from Readerview where 编号 = ltrim(@ReaID); 6. Query_Reader_M的定义: create procedure Query_Reader_M as    select *        from Readerview 7. Query_Book_Writer的定义: create procedure Query_Book_Writer @BookWriter char(50) as select * from Bookview where 作者 like '%'+ltrim(@BookWriter)+'%'; 8. Query_Book_Name_Publish的定义: create procedure Query_Book_Name_Publish @BookName char(50), @BookPublish char(20) as select * from Bookview where  书名=ltrim(@BookName) and 出版社=ltrim(@BookPublish); 9. Delete_Reader的定义: create procedure Delete_Reader @ReaNo char(9) as delete from Reader where ReaNo = ltrim(@ReaNo); 10. Delete_Book的定义: create procedure Delete_Book @BookID char(9) as delete from Book where BookID= ltrim(@BookID); 附录2 数据查看和存储过程功能的验证 1. 基本表的数据查看(基于视图查询): 1) 查看Reader(读者信息表)表中的数据 2) 查看Bookview(图书信息)表中的数据: 3) 查看Borrow(借阅信息)表中的数据: 4)查看Maneger(管理员信息表)表中的数据 5)查看Room(馆室信息表)表中的数据: 6)查看Borrowview(当前借阅信息)视图中的数据: 7)查看Historyview(借阅历史信息)视图的数据: 8)查看Fineview(罚款信息)视图的基本数据: 2. 存储过程功能的验证: 1) 存储过程Query_Reader_R功能的验证:(按ReaID匹配查询读者信息) 2) 存储过程Query_Book_Writer 功能的验证:(按BookWriter模糊查询图书信息) 3) 存储过程Query_Book_Nmae_Publish功能的验证:(按书名和出版社查询图书信息) 4)存储过程Query_Reader_M功能的验证:(以管理员身份查询读者信息) 5)存储过程Reader_Insert 功能的验证:(插入一条读者信息记录) 6)存储过程Borrow_Insert功能的验证:(插入一条借阅信息记录) 7)存储过程Delete_Reader功能的验证:(按ReaNo删除相应的读者记录) (注:由于篇幅限制,这里仅给出了其中几个存储过程功能的验证) 3. 触发器功能的验证:(在Borrow表中插入一条记录,触发Book表将图书由“可借”状态改为“不可借”状态) 附录3 所有的SQL运行语句 create database Book; 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, ) create table Maneger( MID  char(10)  primary key, MName 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 ='女') ) create table Room( RoomNo    char(5)  primary key, RoomMID  char(10) not null, Roomnum  char(5), RoomAddre char(20), foreign key(RoomMID) references Maneger(MID), ) 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), BookState  char(10)not null, BookRNo    char(5)not null, foreign key(BookRNo) references Room(RoomNo), ) 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    char(5), ReaPref    char(20), ReaDate    Datetime, foreign key(ReaLBID) references ReaderType(LBID), check(ReaSex ='男' or ReaSex ='女') ) 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 null, primary key(BookID,ReaID), foreign key(MID) references Maneger(MID) ) create clustered index BookPublish on Book(BookPublish); create clustered index ReaDep on Reader(ReaDep); create view Bookview (索书号, 书名, 作者, 出版社, 图书状态) as select BookNo,BookName,BookWriter,BookPublish,BookState from Book create view Readerview (编号,读者姓名,类型,学院,专业,办证日期) as select ReaID,ReaName,ReaType,ReaDep,ReaPref,ReaDate from Reader create view Borrowview (读者编号,书名,作者,借阅日期,到期日期) as select ReaID,BookName,BookWriter,Outdate,YHdate from Borrow,Book where Borrow.BookID=Book.BookID and Borrow.Indate is null create view Historyview (读者编号,书名,借阅日期,归还日期) as select ReaID,BookName,Outdate,Indate from Borrow,Book where Borrow.BookID=Book.BookID and Borrow.Indate is not null create view Fineview (读者编号,书名,借阅日期,归还日期,罚款,处理状态) as select ReaID,BookName,Outdate,Indate,Fine,CLState from Borrow,Book where Borrow.BookID=Book.BookID and Fine is not null create trigger Reader_delete on Reader for delete as delete Borrow from deleted where Borrow.ReaID=deleted.ReaID create trigger Borrow_insert1 on Borrow for insert as declare @BookID char(9) select @BookID=BookID from inserted update Book set BookState='不可借' where BookID=@BookID
本文档为【高校图书馆管理系统数据库设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_792768
暂无简介~
格式:doc
大小:284KB
软件:Word
页数:56
分类:管理学
上传时间:2019-02-18
浏览量:84