您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 图书馆借阅系统数据库设计
南昌航空大学实验报告二016年3月28日课程名称:数据库原理实验名称:图书馆借阅系统班级:14207218姓名:胡合达同组人:指导教师评定:签名:一、实验环境1.Windows2000或以上版本;2.SQLServer2005。二、实验目的了解并掌握数据库设计基本方法三.系统需求分析1.设计本系统模拟学生在图书馆借阅图书的内容,能够实现以下功能:借阅信息的查询功能;图书信息的多关键字检索查询;图书的出借、返还及超期罚款;2.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。3.对查询、统计的结果能够列表显示。4.处理对象:学生,馆藏图书信息,借阅信息,罚款信息,借阅历史5.安全性要求系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。6.完整性要求系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。四.概念结构设计系统开发的总体目标是实现图书馆管理的系统化和自动化,缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书管理效率的目的。概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。图书借阅系统的E-R图读者nmm11m1nmnnnmE-R图各实体的属性如下所示:图书:Book(BookID,BookNo,BookName,BookWriter,BookPublish,,BookDate,BookClass,BookState,BookRNo)读者:Reader(ReaID,ReaName,ReaSex,ReaNo,ReaLBID,ReaDep,ReaGrade,ReaPref,ReaDate,Reasx)管理员:Maneger(MID,MName,MSex)馆室: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)五.逻辑结构设计以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。将图书借阅E-R图转换为关系模型图书列名数据类型可否为空说明BookIDCharnotnull图书编号BookNoCharnotnull图书的索书号BookNameCharnotnull图书的书名BookWriterCharnotnull图书作者BookPulishCharnotnull图书出版社BooknumSmallintNotnull图书数量BookDateDate出版日期BookClassChar图书的分类BooknumssmallintNotnull图书可借数量BookStateCharnotnull图书是否可借BookRNoCharnotnull图书所在馆室号读者列名数据类型可否为空说明ReaIDCharnotnull读者编号ReaNameCharnotnull读者姓名ReaSexCharnotnull读者性别ReaNoCharnotnull读者学号ReaDepChar读者所在学院ReaPrefChar读者所属专业ReaGradeChar读者的年级ReaDateDatenotnull办证日期ReaBsSmallintNotnull已借本数ReastateCharNotnnll借书状态ReasxSmallintNotnull借书上限管理员列名数据类型可否为空说明MID主键Charnotnull管理员编号MNameCharnotnull管理员姓名MSexChar管理员性别馆室列名数据类型可否为空说明RoomNoCharnotnull馆室号RoomMIDCharnotnull馆室管理员编号RoomnumCharnotnull馆室拥有图书数目RoomAddreChar馆室地址RoomType,Char馆室类型借阅信息列名数据类型可否为空说明ReaIDCharnotnull读者编号BookIDCharnotnull图书编号BookNameCharnotnull图书名BookWriterChar作者OutdateDatenotnull借阅时间IndateDate归还时间YHdateDatenotnull应还时间FineCharNotnull罚款金额CLStateChar处理状态MIDCharnotnull管理员编号六.数据库的实施创建数据库及表格管理员基本信息表的建立:createtableManeger(MIDchar(10)primarykey,MNamechar(10)notnull,MSexchar(2),check(MSex='男'orMSex='女'))图书馆室基本信息表的建立:createtableRoom(RoomNochar(5)primarykey,RoomMIDchar(10)notnull,Roomnumchar(5)notnull,RoomAddrechar(20),RoomTypechar(10),foreignkey(RoomMID)referencesManeger(MID)ondeletecascadeonupdatecascade,)馆藏图书基本信息表的建立:createtableBook(BookIDchar(9)primarykey,BookNochar(20)notnull,BookNamechar(50)notnull,BookWriterchar(30)notnull,BookPublishchar(20)notnull,Booknumsmallintcheck(Booknum=0),BookDatedatetime,BookClasschar(20),Booknumssmallintcheck(Booknum=0),BookStatechar(10)default‘可借’notnull,BookRNochar(5)notnull,check(BooknumBooknums),foreignkey(BookRNo)referencesRoom(RoomNo)ondeletecascadeonupdatecascade,)读者基本信息表的建立:createtableReader(ReaIDchar(9)primarykey,ReaNamechar(10)notnull,ReaSexchar(2)notnull,ReaNochar(9)notnull,Reasxsmallintnotnull,ReaBssmallintnotnull,ReaDepchar(20),ReaGradechar(5),ReaPrefchar(20),ReaDateDatetime,Reastatechar(5)notnulldefault‘可借’,foreignkey(ReaLBID)referencesReaderType(LBID)ondeletecascadeonupdatecascade,check(ReaSex='男'orReaSex='女'))(6)借阅基本信息表的建立:createtableBorrow(BookIDchar(9),ReaIDchar(9),OutdateDatetimenotnull,YHdateDatetimenotnull,IndateDatetime,Finechar(5)notnulldefault‘0’,CLStatechar(8),MIDchar(10)notnull,primarykey(BookID,ReaID),foreignkey(MID)referencesManeger(MID)ondeletecascadeonupdatecascade)建立视图(1)用于查询图书基本信息的视图定义如下:createviewBookview(索书号,书名,作者,出版社,图书状态)asselectBookNo,BookName,BookWriter,BookPublish,BookStatefromBook(2)用于读者基本信息查询的视图定义如下:createviewReaderview(读者姓名,类型,学院,专业,办证日期)asselectReaName,ReaType,ReaDep,ReaPref,ReaDatefromReader(3)用于显示当前借阅基本信息的视图定义如下:createviewBorrowview(读者编号,书名,作者,借阅日期,到期日期)asselectReaID,BookName,BookWriter,Outdate,YHdatefromBorrow,BookwhereBorrow.BookID=Book.BookIDandBorrow.Indateisnull(4)用于借阅历史信息查询的视图定义如下:createviewHistoryview(读者编号,书名,借阅日期,归还日期)asselectReaID,BookName,Outdate,IndatefromBorrow,BookwhereBorrow.BookID=Book.BookIDandBorrow.Indateisnotnull(5)用于查询罚款信息的视图定义如下:createviewFineview(读者编号,书名,借阅日期,归还日期,罚款,处理状态)asselectReaID,BookName,Outdate,Indate,Fine,CLStatefromBorrow,BookwhereBorrow.BookID=Book.BookIDandFineisnotnull建立索引createclusteredindexBookPublishonBook(BookPublish);createclusteredindexReaDeponReader(ReaDep);建立触发器当在中增加一条借阅记录时,书的可借数量减少一本,修改读者,并检查读者状态createtriggerBorrow_insert1onBorrowforinsertasdeclare@BookIDchar(9)declare@ReaIDchar(9)select@ReaID=ReaIDfrominsertedselect@BookID=BookIDfrominsertedSelect@Reastate=ReastateFromReaderWhereReaID=@ReaIdIf(@Reastate=’不可借’)BeginRaiserror(‘该学生状态不可借书’,16,1)RollbacktransactionEndupdateBooksetBooknums=Booknums-1whereBookID=@BookIDupdateReadersetReaBs=ReaBs+1whereReaID=@ReaID当读者达到借书上限,设置借书状态为‘不可借’createtriggerReader_updateo
本文标题:图书馆借阅系统数据库设计
链接地址:https://www.777doc.com/doc-5141654 .html