图书馆借阅系统数据库设计.pdf

上传人:赵** 文档编号:37913908 上传时间:2022-09-02 格式:PDF 页数:10 大小:339.13KB
返回 下载 相关 举报
图书馆借阅系统数据库设计.pdf_第1页
第1页 / 共10页
图书馆借阅系统数据库设计.pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《图书馆借阅系统数据库设计.pdf》由会员分享,可在线阅读,更多相关《图书馆借阅系统数据库设计.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-航空大学实验报告二 016年 3月 28日课程名称:数据库原理 实验名称:图书馆借阅系统班级:14207218:胡合达同组人:指导教师评定:签名:一、实验环境一、实验环境1 Windows2000 或以上版本;2 SQLServer 2005。二、实验目的二、实验目的了解并掌握数据库设计根本方法三系统需求分析1.设计本系统模拟学生在图书馆借阅图书的容,能够实现以下功能:借阅信息的查询功能;图书信息的多关键字检索查询;图书的出借、返还及超期罚款;2能够提供一定的平安机制,提供数据信息授权访问,防止随意删改、查询。3对查询、统计的结果能够列表显示。4.处理对象:学生,馆藏图书信息,借阅信息,罚款

2、信息,借阅历史5.平安性要求系统平安性要求表达在数据库平安性、 信息平安性和系统平台的平安性等方面。 平安性先通过视图机制, 不同的用户只能访问系统授权的视图, 这样可提供系统数据一定程度上的平安性, 再通过分配权限、 设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的平安性; 系统平台的平安性表达在操作系统的平安性、 计算机系统的平安性和网络体系的平安性等方面。6.完整性要求系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check 约束,或者通过使用触发器和级联更新。四概念构造设计系统开发的总体目标是实现图书馆管理的系统化和自动化, 缩短借阅者的等待时间, 减

3、轻工作人员的工作量,方便工作人员对它的操作, 提高管理的质量和水平,做到高效、智能化管理,从而到达提高图书管理效率的目的。概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息构造 (概念模型)的过.z.-程,它是整个数据库设计的关键。图书借阅系统的 E-R 图读者n罚款m管理员m1馆室管理借阅1m1nmn归还属于nnm图书读者ER 图各实体的属性如下所示:图书:Book(BookID,BookNo,BookName,BookWriter,BookPublish,BookDate,BookClass,BookState,BookRNo)读 者 : Reader(ReaID,ReaName,R

4、eaSe*,ReaNo,ReaLBID, ReaDep, ReaGrade, ReaPref,ReaDate,Reas*)管理员:Maneger (MID,MName,MSe*)馆室:Room(RoomNo,RoomMID,RoomNum,RoomAddre)借阅信息:Borrow(BookID,ReaderID,BookName,BookWriter, Outdate,YHdate)借阅历史:History(BookID,ReaderID,BookName,BookWriter, Outdate,Indate,YHdate)罚款信息:Fine (BookID,ReaderID,BookNam

5、e,Outdate,Indate,Fine, CLState,MID)五逻辑构造设计五逻辑构造设计以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS 产品发生关系了, 系统逻辑设计的任务就是将概念设计阶段设计好的根本E-R 图转换为选用 DBMS 产品所支持的数据模型相符合的逻辑构造。具体容包括数据组织将E-R 图转换成关系模型、模型优化、数据库模式定义、用户子模式设计 、数据处理画出系统功能模块图两大任务。将图书借阅 E-R 图转换为关系模型图书列名列名BookIDBookNo数据类型数据类型CharChar可否为空可否为空not nullnot null图书编

6、号说明说明图书的索书号.z.-BookNameBookWriterBookPulishBooknumBookDateBookClassBooknumsBookStateBookRNoBookRNoCharCharCharSmallintDateCharsmallintCharCharnot nullnot nullnot nullNot nullNot nullnot nullnot null图书的书名图书作者图书图书数量出版日期图书的分类图书可借数量图书是否可借图书所在馆室号读者列名列名ReaIDReaNameReaSe*ReaNoReaDepReaPrefReaGradeReaDateRe

7、aDateReaBsReaBsReastateReastateReas*Reas*数据类型数据类型CharCharCharCharCharCharCharDateSmallintCharSmallint可否为空可否为空not nullnot nullnot nullnot nullnot nullNot nullNot nnllNotnull读者编号读者读者性别读者*说明说明读者所在学院读者所属专业读者的年级办证日期已借本数借书状态借书上限管理员列名列名数据类型数据类型CharCharChar可否为空可否为空not nullnot null管理员说明说明管理员编号管理员性别MID主键MName

8、MSe*馆室列名列名数据类型数据类型CharCharCharCharChar可否为空可否为空not nullnot nullnot null馆室号说明说明馆室管理员编号馆室拥有图书数目馆室地址馆室类型RoomNoRoomMIDRoomnumRoomAddreRoomType,借阅信息列名列名ReaIDBookIDBookName数据类型数据类型CharCharChar可否为空可否为空not nullnot nullnot null读者编号图书编号图书名说明说明.z.-BookWriterOutdateIndateYHdateFineCLStateMIDMIDCharDateDateDateCh

9、arCharCharnot nullnot nullNot nullnot null作者借阅时间归还时间应还时间罚款金额处理状态管理员编号六数据库的实施六数据库的实施创立数据库及表格管理员根本信息表的建立:create table Maneger(MIDchar(10)primary key,MName char(10)not null,MSe*char(2),check(MSe* =男 or MSe* =女)图书馆室根本信息表的建立:create table Room(RoomNochar(5)primary key,RoomMIDchar(10) not null,Roomnumchar(

10、5) not null ,RoomAddre char(20),RoomTypechar (10),foreign key(RoomMID) references Maneger(MID)on delete cascadeon update cascade ,)馆藏图书根本信息表的建立:create table Book(BookIDchar(9) primary key,BookNochar(20) not null,BookNamechar(50)not null,BookWriterchar(30)not null,BookPublish char(20)not null,Booknum

11、smallint check (Booknum=0),BookDatedatetime,BookClasschar(20),Booknumssmallint check (Booknum=0),BookStatechar(10) default 可借not null,BookRNochar(5)not null,check (BooknumBooknums ),foreign key(BookRNo) references Room(RoomNo)on delete cascadeon update cascade ,).z.-读者根本信息表的建立:create table Reader(Re

12、aIDchar(9)primary key,ReaNamechar(10) not null,ReaSe*char(2)not null,ReaNochar(9)not null,Reas*smallint not null,ReaBs smallint not null,ReaDepchar(20),ReaGradechar(5),ReaPrefchar(20),ReaDateDatetime,Reastatechar (5) not null default 可借 ,foreign key(ReaLBID) references ReaderType(LBID)on delete casc

13、adeon update cascade ,check(ReaSe* =男 or ReaSe* =女)6借阅根本信息表的建立:create table Borrow(BookIDchar(9),ReaIDchar(9),OutdateDatetime not null,YHdate Datetime not null,IndateDatetime,Fine char(5) not null default0,CLState char(8),MID char(10) not null,primary key(BookID,ReaID),foreign key(MID) references Ma

14、neger(MID)on delete cascadeon update cascade)建立视图1用于查询图书根本信息的视图定义如下:create view Bookview (索书号, 书名, 作者, , 图书状态)asselect BookNo,BookName,BookWriter,BookPublish,BookStatefrom Book2用于读者根本信息查询的视图定义如下:create view Readerview (读者,类型,学院,专业,办证日期)asselect ReaName,ReaType,ReaDep,ReaPref,ReaDatefrom Reader3用于显示当

15、前借阅根本信息的视图定义如下:create view Borrowview (读者编号,书名,作者,借阅日期,到期日期).z.-asselect ReaID,BookName,BookWriter,Outdate,YHdatefrom Borrow,Bookwhere Borrow.BookID=Book.BookID and Borrow.Indate is null4用于借阅历史信息查询的视图定义如下:create view Historyview (读者编号,书名,借阅日期,归还日期)asselect ReaID,BookName,Outdate,Indatefrom Borrow,Bo

16、okwhere Borrow.BookID=Book.BookID and Borrow.Indate is not null5用于查询罚款信息的视图定义如下:create view Fineview (读者编号,书名,借阅日期,归还日期,罚款,处理状态)asselect ReaID,BookName,Outdate,Indate,Fine,CLStatefrom Borrow,Bookwhere Borrow.BookID=Book.BookID and Fine is not null建立索引create clustered inde* BookPublish on Book(BookPu

17、blish);create clustered inde* ReaDep on Reader(ReaDep);建立触发器当在中增加一条借阅记录时,书的可借数量减少一本,修改读者,并检查读者状态create trigger Borrow_insert1on Borrowfor insertasdeclare BookID char(9)declare ReaIDchar(9)select ReaID=ReaIDfrom insertedselect BookID=BookIDfrom insertedSelect Reastate =ReastateFrom ReaderWhere ReaID

18、=ReaIdIf(Reastate =不可借)BeginRaiserror (该学生状态不可借书,16,1)RollbacktransactionEndupdate Bookset Booknums=Booknums-1.z.-where BookID=BookIDupdate Readerset ReaBs=ReaBs+1where ReaID =ReaID当读者到达借书上限,设置借书状态为不可借create trigger Reader _updateon Readerfor updateasdeclare ReaBs smallintselect ReaBs =ReaBsfrom ins

19、erteddeclare ReaIDchar(9)select ReaID=ReaIDfrom insertedSelect Reas*=Reas*From Readerwhere BookID=BookIDIf(Reas* =ReaBs )Beginupdate Readerset Reastate =不可借where ReaID =ReaIDEnd还书的时候,书的可借数量增加一本,修改读者状态create trigger Borrow_inserton Borrowfor insertasdeclare BookID char(9)declare ReaIDchar(9)select Re

20、aID=ReaIDfrom insertedselect BookID=BookIDfrom insertedSelect Reastate =ReastateFrom ReaderWhere ReaID =ReaIdIf(Reastate =超期)BeginRaiserror (该学生状态借书超期,16,1)RollbacktransactionEndupdate Book.z.-set Booknums=Booknums+1where BookID=BookIDupdate Readerset ReaBs=ReaBs-1where ReaID =ReaID存储过程存储过程1.Book_In

21、sert 的定义:CREATE PROCEDURE Book_InsertBookIDchar(9) ,BookNochar(20),BookNamechar(50),BookWriterchar(30),BookPublish char(20),BookDatedatetime,BookClasschar(20),Booknums smallint,Booknum smallint,BookStatechar(10),BookRNochar(5)asinsert into Bookvalues(BookID ,BookNo,BookName,BookWriter ,BookPublish ,

22、BookDate,BookClass,BookState ,BookRNo,Booknums,Booknum);2.Reader_Insert 的定义:CREATE PROCEDURE Reader_InsertReaIDchar(9),ReaNamechar(10),ReaSe*char(2),ReaNochar(9),ReaDepchar(20),ReaGradechar(5),ReaPrefchar(20),ReaDateDatetimeReaBs smallint,ReaBs smallint,Reastate char(5),Reastate char(5),Reas*Reas*sm

23、allint,smallint,asinsert into Readervalues( ReaID , ReaName, ReaSe*,ReaNo ,ReaDep ,ReaGrade ,ReaPref ,ReaDate,ReaBs,Reastate,Reas*ReaBs,Reastate,Reas* ;.z.-3.Maneger_Insert 的定义:CREATE PROCEDURE Maneger_InsertMIDchar(10) ,MName char(10),MSe*char(2),asinsert into Manegeralues(MID , MName ,MSe* );4.Bor

24、row_Insert 的定义:CREATE PROCEDURE Borrow_InsertBookIDchar(9),ReaIDchar(9),OutdateDatetime ,YHdate Datetime ,IndateDatetime,Fine char(5),CLState char(8),MID char(10)asinsert into Borrowvalues(BookID ,ReaID ,Outdate ,YHdate,Indate ,Fine ,CLState ,MID );5.Query_Reader_R 的定义:create procedure Query_Reader_

25、RReaID char(9)asselect *from Readerviewwhere 编号 = ltrim(ReaID);6. Query_Reader_M 的定义:create procedure Query_Reader_Masselect *from Readerview7. Query_Book_Writer 的定义:create procedure Query_Book_WriterBookWriter char(50)asselect *from Bookview.z.-where 作者 like %+ltrim(BookWriter)+%;8. Query_Book_Name

26、_Publish 的定义:create procedureQuery_Book_Name_PublishBookName char(50),BookPublish char(20)asselect *from Bookviewwhere书名=ltrim(BookName) and =ltrim(BookPublish);9. Delete_Reader 的定义:create procedure Delete_ReaderReaNo char(9)asfrom Readerwhere ReaNo = ltrim(ReaNo);delete10. Delete_Book 的定义:create procedure Delete_BookBookID char(9)asdeletefrom Bookwhere BookID= ltrim(BookID);七实验小结七实验小结这次实验使我熟悉了如何独立的建立一个系统,通过自己所学的知识,综合运用,并了解自己的缺乏之处。.z.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁