1、图书馆借阅系统数据库设计南昌航空大学实验报告二016 年 3 月 2 日课程名称: 数据库原理 实验名称: 图书馆借阅系统班级: 14728 姓名: 胡合达 同组人: 指导教师评定: 签名: 一、实验环境1Wndows2000或以上版本;2QLevr 2005。二、实验目的 了解并掌握数据库设计基本方法3系统需求分析1.设计本系统模拟学生在图书馆借阅图书的内容,能够实现以下功能:借阅信息的查询功能; 图书信息的多关键字检索查询; 图书的出借、返还及超期罚款;、能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。3.对查询、统计的结果能够列表显示。4、处理对象:学生,馆藏图书信息,
2、借阅信息,罚款信息,借阅历史、安全性要求 系统安全性要求体现在数据库安全性、信息安全性与系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性与网络体系的安全性等方面。6、完整性要求系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用ce约束,或者通过使用触发器与级联更新。4概念结构设计系统开发的总体目标就是实现图书馆管理的系统化与自动化,缩短借阅者的等待时间,减轻工作人员的
3、工作量,方便工作人员对它的操作,提高管理的质量与水平,做到高效、智能化管理,从而达到提高图书管理效率的目的。概念设计阶段主要就是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它就是整个数据库设计的关键。图书借阅系统的E-图 读者 n m 1 1 m 1 n n n n ER图各实体的属性如下所示:图书:Book(ookI, BokNo, BokNme, Boriter, BookPublish, BoDate,BooClas,Bootae,okRN)读者:Reader(eaI,eaName,aSex,ReaN,ReLBD, ReaDep, ReaGrade, ReaP, Dat
4、e,sx)管理员: aneger (MID,Mame,Mex) 馆室: oom(RooNo,RoomMI,omNum,RoomAdre)借阅信息:orow(BookID,RderI,BooNme,BookWrite, udat,YHdate)借阅历史:istr(BoID,ReaderD,BoNme,BokWiter,Outate,Indte,Hate)罚款信息:Fie (BookI,RederID,BooName,Ouate,ndae,Fine, CLtate,MI)5逻辑结构设计以上的概念设计阶段就是独立于任何一种数据模型的,但就是逻辑设计阶段就与选用的DS产品发生关系了,系统逻辑设计的任务
5、就就是将概念设计阶段设计好的基本E-R图转换为选用DMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。将图书借阅ER图转换为关系模型图书列名数据类型可否为空说明BookIDChaot null图书编号BookNoChrn ul图书的索书号BookNameCharot null图书的书名BookWriterCrot nll图书作者BooPulhhrot nul图书出版社Bokum Smant Not ll 图书数量okDatDte出版日期BokClaChar图书的分类Boknss
6、allintNotull 图书可借数量oStatChart nll图书就是否可借BookNhtnul图书所在馆室号读者列名数据类型可否为空说明ICharno ull读者编号ReameChrno null读者姓名SexCarot nul读者性别NoCrn null读者学号ReaDepCha读者所在学院RePrfChr读者所属专业RGadehar读者的年级ReaDateDtnot null办证日期ReaBs Salint Not ull 已借本数atte h Nonl借书状态ReasxSallint ot nul 借书上限 管理员列名数据类型可否为空说明MI主键Charno nul管理员编号Nam
7、ehanonul管理员姓名MSexCha管理员性别馆室列名数据类型可否为空说明RmNoCrno nul馆室号RoomMIDChrnot ul馆室管理员编号RomnumCharot null 馆室拥有图书数目RooAddre Char馆室地址Roomye,Char 馆室类型借阅信息列名数据类型可否为空说明DCharnot null读者编号BookIDhano null图书编号kNamCharnotnull图书名BokWriterhar作者OutteDaen null借阅时间IdeDte归还时间YatDtenot null应还时间FineCaNo ul 罚款金额CLtteCa处理状态MIharnt
8、 nul管理员编号 6数据库的实施创建数据库及表格管理员基本信息表的建立:createtal Manege(MI har(0) piayky,am char(1) not nll,x har(2),chek(Se =男 o MSex =女)图书馆室基本信息表的建立:rate tabl oom(RomNo ha(5) piry key,RomM cha(10) nonll,Ron char(5) not null ,ooddre chr(20),RooTyp char (1),orein key(oomMID) refercesMn(MID)n deteacan update cascde,)馆
9、藏图书基本信息表的建立:crte table Boo( BookD char(9) prirykey,BookNo cr(2) ot null, BookName har() otnul, oWriterhar(30)otnull, ookulih ch(2) otnul, Boou sallintcheck (ooknum=0),BooDate da, BkClass hr(20),Bonums smallithck (Bum=0), BooSate cha(10) default 可借 nonul, okRNo ar(5) not null,check (oonumBooknums ),f
10、ign y(R)refrncs Rom(RomNo)n elete cscade on upae scad ,)读者基本信息表的建立:cete tale eaer(aID ha(9) primar ke,RaNae cha(10) no nul,ReaSe char(2) notnull,eaNo cha(9) notul,esx sallnt otnul,RaBs mllinnotnul,ReaDep chr(20),ReaGd chr(5),ReaPre car(2),ReaDat Dteime,Reasatechar() not ull defaut 可借 ,forg y(ReaBID)
11、 refereces Rarp(LBID)on eletecascade nudte cade ,chk(Reaex =男or RaSe =女)(6)借阅基本信息表的建立:crte blorow(BooID car(9),aID har(9),Outdate Dateti not null,YHde Dtetm t nul,Indte Datetm,Fne ch(5)not null deaul 0,CLtate char(),ID cha(10) ot null,imary key(BookID,ReaI),foreig key(M) rfeene Mangr(MID)n dltcacad
12、on update cascade )建立视图(1)用于查询图书基本信息的视图定义如下: ceteview Bkviw (索书号, 书名, 作者, 出版社, 图书状态)aseec o,BokName,BooWrter,ookubli,Bootatefo Bk (2)用于读者基本信息查询的视图定义如下:crate e Redevew (读者姓名,类型,学院,专业,办证日期)asslt ReaNme,ReaType,ReDep,eaPe,ReDatefm Read (3)用于显示当前借阅基本信息的视图定义如下: reateview Boriew (读者编号,书名,作者,借阅日期,到期日期)asel
13、ect ReID,BookName,Borte,udate,Ydatefm Borrow,Bkhr orrow、BooI=Bo、ookI andBorw、nda is nll ()用于借阅历史信息查询的视图定义如下: ceateviewistoyvie (读者编号,书名,借阅日期,归还日期)aselect ReaD,Bookam,utdate,dtemBorw,Bookwre Borrow、BookI=Bok、BooID ndBorrow、Indate st ll (5)用于查询罚款信息的视图定义如下:ceate vewinevew (读者编号,书名,借阅日期,归还日期,罚款,处理状态)ass
14、elect ReID,BookNa,Oute,Indte,Fin,CLSaefBrrw,BookwhereBorro、BooID=Book、BooI ad Fie s not nl建立索引create cterd inde BokPublishon Book(Booublish);a cluterd idexRea on Reader(ep); 建立触发器 当在中增加一条借阅记录时,书的可借数量减少一本,修改读者,并检查读者状态reate riger Brow_isert1n Borrwfor nserts ecare BooID har(9)declrReID har()lectReID=a
15、ID fm inertedelet ooD=BooIDfrm netSelect eastt=Reaste Frm aer Wh eI Rad If(Reastat=不可借)eginRiserror (该学生状态不可借书,16,1) olac transaction End upae Boksetoknums=Bookus-ere BokID=BookIDupdate Readerset ReaBRBs1where RaID =ReaD 当读者达到借书上限,设置借书状态为不可借crate trigr Reaer _pdate n aefor upateaeclare Reas smalint
16、sec Reas Ras from insetddela eaID char(9)sec ReID=eaID rominsetedSelecex =eax From Reader eeBooD=BokDIf(Rasx Res) Begin update Readerset estate =不可借wrRaID=RaI End 还书的时候,书的可借数量增加一本,修改读者状态ceat tirrrwinseto Borrowfoiserts declareokID chr(9)deaeRaID har(9)seect ReaI=ReaID fro inseredelct BookID=okIDrm i
17、nsrtedSelect Ratat Reastate Fm Reder Whr ReaI =ReaI If(Reastae =超期)BeginRaisror(该学生状态借书超期,16,1) Rollback ansatio End updteBoksBookms=Boonums+1were BoDBookIDdaeReaderset aBs=RaBs-whereReI =eaID 存储过程1、Bok_Insert的定义:CREAE PROEDURE ook_InsrtBokI car() ,BokN cha(2),ookme char(5),BooWitr char(30),BookPubl
18、s chr(),BoDte atetme,ookClas cha(0),Boknumssmallnt,ooknum smalnt,BooSate ch(1),okNo chr()s inser inoBookvalus(okID,okNo,Bkame,Boter ,BokPubish,okDt,o okClass ,ookt ,BokNo,Bonums,ooknm);2、eade_Insert的定义:CRETE PROCEUE Rade_nsrtRaID chr(),Reaae char(10),Reae char(),eo char(9),ReDe char(0),ReaGrae ha(5)
19、,RaPf char(2),ReDae DaetmeReBs smln,esttear(),Reas mait, a insert t Readerlues( ReID ,ReaNae, Re,Reao ,RaDep , ReaGrade,ReaPref ,RaDae,Reas,Rastte,Resx ;3、Manege_Insert的定义:CRAE PCE Manegr_InsertID ha(0),Name cr(10),MSx ha(2),as nser ito Mnrl(MD,MNam ,MSex );4、Bow_Insr的定义:CEATEPROEDUE BrowInsertBokID
20、 har(9),Ra har(),Outdate Datetime ,Hda Dtetme ,Indate aetime,Fne h(5),CLStte chr(8),MI char(10)asinsertintorrowvlues(BooID ,RID ,Oudae,YHdate ,Idate,Fine ,LStae ,MID );5、ueyRede_R的定义:creeprdure Query_RedeR eaD char(9) as select frmRaderi he编号 =lrim(Re);6. QuerReaer_M的定义:crate rodur Query_ader_Masec
21、* fro aderviw7、uy_Bok_Writr的定义:crae pue QuerBook_Wri BooWitercar(50) a selet fom ookewwher 作者 li %+ltrm(BooWrir)%;. Quey_Bookme_Pulish的定义:ete pocedueQueryook_Name_PuisBookName chr(50),BookPulish char(20)aseet *from ookiewhre 书名=ltri(ookame) 出版社lr(Bokuih);、 Deleteeder的定义:create odure elteReader eaNo char(9)s elterom Radr ere ReaNo =ltrim(ReaNo);10、 Dele_ok的定义:reae proedure Dlete_Boo Boo char(9) as elete frm oo wereookD=trim(Book);七.实验小结这次实验使我熟悉了如何独立的建立一个系统,通过自己所学的知识,综合运用,并了解自己的不足之处。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1