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

上传人:微*** 文档编号:88528784 上传时间:2022-05-11 格式:DOCX 页数:16 大小:45.51KB
返回 下载 相关 举报
图书馆借阅系统数据库设计_第1页
第1页 / 共16页
图书馆借阅系统数据库设计_第2页
第2页 / 共16页
图书馆借阅系统数据库设计_第3页
第3页 / 共16页
点击查看更多>>
资源描述
南昌航空大学实验报告二016 年3 月28 日课程名称: 数据库原理 实验名称:图书馆借阅系统班级: 姓名: 胡合达 同组人: 指导教师评定:签名:一、实验环境1. Windows2000或以上版本;2. SQLServer 2005 。二、实验目的了解并掌握数据库设计基本方法三.系统需求分析1 .设计本系统模拟学生在图书馆借阅图书的内容,能够实现以下功能:借阅信息的查询功能;图书信息的多关键字检索查询;图书的出借、返还及超期罚款;2 .能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。3 .对查询、统计的结果能够列表显示。4 .处理对象:学生,馆藏图书信息,借阅信息,罚款信息,借阅历史5 .安全性要求系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。6 .完整性要求系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。四.概念结构设计系统开发的总体目标是实现图书馆管理的系统化和自动化,缩短借阅者的等待时间, 减轻工作人员的工作量,方便工作人员对它的操作, 提高管理的质量和水平, 做到高效、智能 化管理,从而达到提高图书管理效率的目的。概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。图书借阅系统的E-R图读者E R图各实体的属性如下所示:图书: Book(BookID, BookNo, BookName, BookWriter, BookPublish,BookDate,BookClass,BookState,BookRNo)读者:Reader(ReaIDJReaName,ReaSex,ReaNo,ReaLBID, ReaDep, ReaGrade, ReaPref,ReaDate, Reasx)管理员:Maneger (MIDMName,MSex)馆室:Room(RoomNoiRoomMID,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图转换为选用DBMST品所支持的数据模型相符合的逻辑结本勾。具体内容包括数据组织(将 E-R图 转换成关系模型、模型优化、数据库模式定义、用户子模式设计) 、数据处理(画出系统功 能模块图)两大任务。将图书借阅图书E-R图转换为关系模型列名数据类型可否为空说明BookIDCharnot null图书编号BookNoCharnot null图书的索书号BookNameCharnot null图书的书名BookWriterCharnot null图书作者BookPulishCharnot null图书出版社BooknumSmallintNot null图书数量BookDateDate出版日期BookClassChar图书的分类BooknumssmallintNot null图书可借数量BookStateCharnot null图书是否可借BookRNoCharnot null图书所在馆室号列名数据类型可否为空说明ReaIDCharnot null读者编号ReaNameCharnot null读者姓名ReaSexCharnot null读者性别ReaNoCharnot null块白子万ReaDepChar读者所在学院ReaPrefChar读者所属专业ReaGradeChar读者的年级ReaDateDatenot null办证日期ReaBsSmallintNot null已借本数ReastateCharNot nnll借书状态ReasxSmallintNot null借书上限管理员列名数据类型可否为空说明MID主键Charnot null管理员编号MNameCharnot null管理员姓名MSexChar管理员性别馆室列名数据类型可否为空说明RoomNoCharnot null馆室号RoomMIDCharnot null馆室管理员编号RoomnumCharnot null馆室拥有图书数目RoomAddreChar馆室地址RoomType,Char馆室类型列名数据类型可否为空说明ReaIDCharnot null读者编号BookIDCharnot null图书编号BookNameCharnot null图书名BookWriterChar作者OutdateDatenot null借阅时间IndateDate归还时间YHdateDatenot null应还时间FineCharNot null罚款金额CLStateChar处理状态MIDCharnot null管理员编号六.数据库的实施创建数据库及表格管理员基本信息表的建立:create table Maneger(MID char(10) primary key,MName char(10) not null,MSex char(2),check(MSex =男or MSex = 女)图书馆室基本信息表的建立:create table Room(RoomNo char(5) primary key,RoomMID char(10) not null,Roomnum char(5) not null ,RoomAddre char(20),RoomType char (10),foreign key(RoomMID) references Maneger(MID)on delete cascade on update cascade)馆藏图书基本信息表的建立: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,Booknum smallint check (Booknum=0),BookDate datetime,BookClass char(20),Booknums smallint check (Booknum=0),BookState char(10) default可借not null,BookRNo char(5) not null,check (BooknumBooknums ),foreign key(BookRNo) references Room(RoomNo)ondelete cascade on update cascade)读者基本信息表的建立:create table Reader(ReaID char(9) primary key,ReaName char(10) not null,ReaSex char(2) not null,ReaNo char(9) not null,Reasx smallint not null,ReaBs smallint not null,ReaDep char(20),ReaGrade char(5),ReaPref char(20),ReaDate Datetime,updateReastate char (5) not null default可借,foreign key(ReaLBID) references ReaderType(LBID)on delete cascade on cascade , 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) not null default0,CLState char(8),MID char(10) not null,primary key(BookID,ReaID),foreign key(MID) references Maneger(MID)on delete cascade on update cascade )建立视图(1)用于查询图书基本信息的视图定义如下:create view Bookview ( 索书号,书名,作者,出版社,图书状态) asselect BookNo,BookName,BookWriter,BookPublish,BookStatefrom Book(2)用于读者基本信息查询的视图定义如下:create view Readerview (读者姓名,类型,学院,专业,办证日期)asselect ReaName,ReaType,ReaDep,ReaPref,ReaDatefrom Reader(3)用于显示当前借阅基本信息的视图定义如下:create view Borrowview (读者编号,书名,作者,借阅日期,到期日期)asselect ReaID,BookName,BookWriter,Outdate,YHdatefrom Borrow,Bookwhere = and is null(4)用于借阅历史信息查询的视图定义如下:create view Historyview ( 读者编号,书名,借阅日期,归还日期) asselect ReaID,BookName,Outdate,Indatefrom Borrow,Bookwhere = and is not null(5)用于查询罚款信息的视图定义如下:create view Fineview ( 读者编号,书名,借阅日期,归还日期,罚款,处理状态) asselect ReaID,BookName,Outdate,Indate,Fine,CLStatefrom Borrow,Bookwhere = and Fine is not null建立索引create clustered index BookPublish on Book(BookPublish);create clustered index ReaDep on Reader(ReaDep);建立触发器当在中增加一条借阅记录时,书的可借数量减少一本,修改读者 ,并检查读者状态 create trigger Borrow_insert1 on Borrow for insert asdeclare BookID char(9)declare ReaID char(9)select ReaID=ReaIDfrom insertedselect BookID=BookIDfrom insertedSelect Reastate =ReastateFrom ReaderWhere ReaID =ReaIdIf(Reastate =不可借)BeginRaiserror (该学生状态不可借书,16,1)Rollback transactionEndupdate Bookset Booknums=Booknums-1where BookID=BookIDupdate Readerset ReaBs=ReaBs+1where RealD =ReaID当读者达到借书上限,设置借书状态为不可借create trigger Reader _updateon Readerfor updateasdeclare ReaBs smallintselect ReaBs =ReaBsfrom inserteddeclare ReaID char(9)select ReaID=ReaIDfrom insertedSelect Reasx =ReasxFrom Readerwhere BookID=BookIDIf(Reasx =ReaBs )Beginupdate Readerset Reastate =不可借where RealD =ReaIDEnd还书的时候,书的可借数量增加一本,修改读者状态create trigger Borrow_inserton Borrowfor insertasdeclare BookID char(9)declare ReaID char(9)select ReaID=ReaIDfrom insertedselect BookID=BookIDfrom insertedSelect Reastate =ReastateFrom ReaderWhere ReaID =ReaIdIf(Reastate =超期)BeginRaiserror (该学生状态借书超期,16,1)Rollback transactionEndupdate Bookset Booknums=Booknums+1where BookID=BookIDupdate Readerset ReaBs=ReaBs-1where ReaID =ReaID存储过程的定义:CREATE PROCEDURE Book_InsertBookID char(9),BookNo char(20),BookName char(50),BookWriter char(30),BookPublish char(20),BookDate datetime,BookClass char(20),Booknums smallint,Booknum smallint,BookDate,BoBookState char(10), BookRNo char(5) as insert into Bookvalues(BookID ,BookNo,BookName,BookWriter ,BookPublish okClass ,BookState ,BookRNo,Booknums,Booknum);的定义:CREATE PROCEDURE Reader_InsertReaID char(9),ReaName char(10),ReaSex char(2),ReaNo char(9),ReaDep char(20),ReaGrade char(5),ReaPref char(20),ReaDate DatetimeReaBs smallint,Reastate char(5),Reasx smallint, asinsert into Readervalues( ReaID , ReaName, ReaSex,ReaNo ,ReaDep ,ReaGrade ,ReaPref ,ReaDate,ReaBs,Reastate,Reasx;的定义:CREATE PROCEDURE Maneger_Insert MID char(10), MName char(10), MSex char(2), asinsert into Manegeralues(MID , MName ,MSex );的定义:CREATE PROCEDURE Borrow_InsertBookID char(9),ReaID char(9),Outdate Datetime ,YHdate Datetime ,Indate Datetime,Fine char(5),CLState char(8),asinsert into Borrowvalues(BookID ,ReaID ,Outdate ,YHdate ,Indate ,Fine ,CLState ,MID );的定义:create procedure Query_Reader_R ReaID char(9) as select * from Readerviewwhere 编号=ltrim(ReaID);6. Query_Reader_M 的定义:create procedure Query_Reader_M as select *from Readerview7. Query_Book_Writer 的定义:create procedure Query_Book_WriterBookWriter char(50) as select *from Bookviewwhere 作者 like %+ltrim(BookWriter)+%;8. Query_Book_Name_Publish 的定义:create procedure Query_Book_Name_PublishBookName char(50), asselect *from Bookviewwhere 书名=ltrim(BookName) and 出版社=ltrim(BookPublish);9. Delete_Reader的定义:create procedure Delete_ReaderReaNo char(9) as delete from Reader where ReaNo = ltrim(ReaNo);10. Delete_Book 的定义:create procedure Delete_BookBookID char(9) as delete from Book where BookID= ltrim(BookID);七.实验小结这次实验使我熟悉了如何独立的建立一个系统,通过自己所学的知识,综合运用,并了解 自己的不足之处。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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