图书馆借阅系统数据库设计Word文档下载推荐.docx

上传人:b****6 文档编号:19118543 上传时间:2023-01-03 格式:DOCX 页数:15 大小:668.79KB
下载 相关 举报
图书馆借阅系统数据库设计Word文档下载推荐.docx_第1页
第1页 / 共15页
图书馆借阅系统数据库设计Word文档下载推荐.docx_第2页
第2页 / 共15页
图书馆借阅系统数据库设计Word文档下载推荐.docx_第3页
第3页 / 共15页
图书馆借阅系统数据库设计Word文档下载推荐.docx_第4页
第4页 / 共15页
图书馆借阅系统数据库设计Word文档下载推荐.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

图书馆借阅系统数据库设计Word文档下载推荐.docx

《图书馆借阅系统数据库设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《图书馆借阅系统数据库设计Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。

图书馆借阅系统数据库设计Word文档下载推荐.docx

图书借阅系统的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);

七.实验小结

这次实验使我熟悉了如何独立的建立一个系统,通过自己所学的知识,综合运用,并了解自己的不足之处。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1