图书馆借阅系统数据库设计Word文档下载推荐.docx
- 文档编号:19118543
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:15
- 大小:668.79KB
图书馆借阅系统数据库设计Word文档下载推荐.docx
《图书馆借阅系统数据库设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《图书馆借阅系统数据库设计Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
图书借阅系统的E-R图
读者nm
m1
1m
1nmn
nnm
E-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图转换为关系模型
图书
列名
数据类型
可否为空
说明
BookID
Char
notnull
图书编号
BookNo
图书的索书号
BookName
图书的书名
BookWriter
图书作者
BookPulish
图书出版社
Booknum
Smallint
Notnull
图书数量
BookDate
Date
出版日期
BookClass
图书的分类
Booknums
smallint
图书可借数量
BookState
图书是否可借
BookRNo
图书所在馆室号
读者
ReaID
读者编号
ReaName
读者姓名
ReaSex
读者性别
ReaNo
读者学号
ReaDep
读者所在学院
ReaPref
读者所属专业
ReaGrade
读者的年级
ReaDate
办证日期
ReaBs
已借本数
Reastate
Char
Notnnll
借书状态
Reasx
借书上限
管理员
MID主键
管理员编号
MName
管理员姓名
MSex
管理员性别
馆室
RoomNo
馆室号
RoomMID
馆室管理员编号
Roomnum
notnull
馆室拥有图书数目
RoomAddre
馆室地址
RoomType,
馆室类型
借阅信息
图书名
作者
Outdate
借阅时间
Indate
归还时间
YHdate
应还时间
Fine
罚款金额
CLState
处理状态
MID
六.数据库的实施
创建数据库及表格
管理员基本信息表的建立:
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>
BookStatechar(10)default‘可借’notnull,
BookRNochar(5)notnull,
check(Booknum>
Booknums),
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(索书号,书名,作者,出版社,图书状态)
as
selectBookNo,BookName,BookWriter,BookPublish,BookState
fromBook
(2)用于读者基本信息查询的视图定义如下:
createviewReaderview(读者姓名,类型,学院,专业,办证日期)
selectReaName,ReaType,ReaDep,ReaPref,ReaDate
fromReader
(3)用于显示当前借阅基本信息的视图定义如下:
createviewBorrowview(读者编号,书名,作者,借阅日期,到期日期)
selectReaID,BookName,BookWriter,Outdate,YHdate
fromBorrow,Book
where=andisnull
(4)用于借阅历史信息查询的视图定义如下:
createviewHistoryview(读者编号,书名,借阅日期,归还日期)
selectReaID,BookName,Outdate,Indate
where=andisnotnull
(5)用于查询罚款信息的视图定义如下:
createviewFineview(读者编号,书名,借阅日期,归还日期,罚款,处理状态)
selectReaID,BookName,Outdate,Indate,Fine,CLState
where=andFineisnotnull
建立索引
createclusteredindexBookPublishonBook(BookPublish);
createclusteredindexReaDeponReader(ReaDep);
建立触发器
当在中增加一条借阅记录时,书的可借数量减少一本,修改读者,并检查读者状态
createtriggerBorrow_insert1
onBorrow
forinsert
as
declare@BookIDchar(9)
declare@ReaIDchar(9)
select@ReaID=ReaID
frominserted
select@BookID=BookID
Select@Reastate=Reastate
FromReader
WhereReaID=@ReaId
If(@Reastate=’不可借’)
Begin
Raiserror(‘该学生状态不可借书’,16,1)
Rollbacktransaction
End
updateBook
setBooknums=Booknums-1
whereBookID=@BookID
updateReader
setReaBs=ReaBs+1
whereReaID=@ReaID
当读者达到借书上限,设置借书状态为‘不可借’
createtriggerReader_update
onReader
forupdate
declare@ReaBssmallint
select@ReaBs=ReaBs
Select@Reasx=Reasx
If(@Reasx=@ReaBs)
Begin
setReastate=’不可借’
End
还书的时候,书的可借数量增加一本,修改读者状态
createtriggerBorrow_insert
If(@Reastate=’超期’)
Raiserror(‘该学生状态借书超期’,16,1)
setBooknums=Booknums+1
setReaBs=ReaBs-1
存储过程
的定义:
CREATEPROCEDUREBook_Insert
@BookIDchar(9),
@BookNochar(20),
@BookNamechar(50),
@BookWriterchar(30),
@BookPublishchar(20),
@BookDatedatetime,
@BookClasschar(20),
@Booknumssmallint,
@Booknumsmallint,
@BookStatechar(10),
@BookRNochar(5)
insertintoBook
values(@BookID,@BookNo,@BookName,@BookWriter,@BookPublish,@BookDate,@BookClass,@BookState,@BookRNo,@Booknums,@Booknum);
CREATEPROCEDUREReader_Insert
@ReaIDchar(9),
@ReaNamechar(10),
@ReaSexchar
(2),
@ReaNochar(9),
@ReaDepchar(20),
@ReaGradechar(5),
@ReaPrefchar(20),
@ReaDateDatetime
@ReaBssmallint,
@Reastatechar(5),
@Reasxsmallint,
insertintoReader
values(@ReaID,@ReaName,@ReaSex,@ReaNo,@ReaDep,
@ReaGrade,@ReaPref,@ReaDate,@ReaBs,@Reastate,@Reasx;
CREATEPROCEDUREManeger_Insert
@MIDchar(10),
@MNamechar(10),
@MSexchar
(2),
insertintoManeger
alues(@MID,@MName,@MSex);
CREATEPROCEDUREBorrow_Insert
@BookIDchar(9),
@OutdateDatetime,
@YHdateDatetime,
@IndateDatetime,
@Finechar(5),
@CLStatechar(8),
@MIDchar(10)
insertintoBorrow
values(@BookID,@ReaID,@Outdate,@YHdate,@Indate,@Fine,@CLState,@MID);
的定义:
createprocedureQuery_Reader_R
@ReaIDchar(9)
as
select*
fromReaderview
where编号=ltrim(@ReaID);
6.Query_Reader_M的定义:
createprocedureQuery_Reader_M
select*
fromReaderview
7.Query_Book_Writer的定义:
createprocedureQuery_Book_Writer
@BookWriterchar(50)
fromBookview
where作者like'
%'
+ltrim(@BookWriter)+'
;
8.Query_Book_Name_Publish的定义:
createprocedureQuery_Book_Name_Publish
@BookPublishchar(20)
select*
fromBookview
where书名=ltrim(@BookName)and出版社=ltrim(@BookPublish);
9.Delete_Reader的定义:
createprocedureDelete_Reader
@ReaNochar(9)
delete
fromReader
whereReaNo=ltrim(@ReaNo);
10.Delete_Book的定义:
createprocedureDelete_Book
@BookIDchar(9)
fromBook
whereBookID=ltrim(@BookID);
七.实验小结
这次实验使我熟悉了如何独立的建立一个系统,通过自己所学的知识,综合运用,并了解自己的不足之处。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 借阅 系统 数据库 设计