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

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

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

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

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

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

 

南昌航空大学实验报告

016

3

28

 

课程名称:

数据库原理

班级:

14207218

指导教师评定:

 

实验名称:

姓名:

 

图书室借阅系统

胡合达同组人:

署名:

 

一、实验环境

 

1.Windows2000或以上版本;

2.SQLServer2005。

 

二、实验目的

 

认识并掌握数据库设计基本方法

 

三.系统需求剖析

 

1.设计本系统模拟学生在图书室借阅图书的内容,可以实现以下功能:

借阅信息的查问功能;

图书信息的多重点字检索查问;

图书的出借、返还及超期罚款;

2.可以供给必定的安全体制,供给数据信息受权接见,防备任意修改、查问。

3.对查问、统计的结果可以列表显示。

4.办理对象:

学生,馆藏图书信息,借阅信息,罚款信息,借经历史

5.安全性要求

系统安全性要求表此刻数据库安全性、信息安全性和系统平台的安全性等方面。

安全性先经过视图体制,不一样的用户只好接见系统受权的视图,这样可供给系统数据必定程度上的安全性,再经过分派权限、设置权限级别来差别对待不一样操作者对数据库的操作来提升数据

库的安全性;系统平台的安全性表此刻操作系统的安全性、计算机系统的安全性和网络系统的安全性等方面。

6.完好性要求

系统完好性要求系统中数据的正确性以及相容性。

可经过成立主、外键,使用

拘束,或许经过使用触发器和级联更新。

 

check

 

四.观点构造设计

系统开发的整体目标是实现图书室管理的系统化和自动化,缩短借阅者的等候时间,减

轻工作人员的工作量,方便工作人员对它的操作,提升管理的质量和水平,做到高效、智能

化管理,进而达到提升图书管理效率的目的。

观点设计阶段主假如将需求剖析阶段获得的用户需求抽象为信息构造(观点模型)的过

程,它是整个数据库设计的重点。

 

图书借阅系统的E-R图

 

读者

 

n

 

罚款

 

m

 

管理员

m

1

管理

 

馆室借阅

1m

 

1nmn

 

属于

送还

n

图书

n

m

读者

 

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

Char

notnull

图书的索书号

BookName

Char

notnull

图书的书名

BookWriter

Char

notnull

图书作者

BookPulish

Char

notnull

图书第一版社

Booknum

Smallint

Notnull

图书数目

BookDate

Date

第一版日期

BookClass

Char

图书的分类

Booknums

smallint

Notnull

图书可借数目

BookState

Char

notnull

图书能否可借

BookRNo

Char

notnull

图书所在馆室号

 

读者

列名

数据种类

能否为空

说明

ReaID

Char

notnull

读者编号

ReaName

Char

notnull

读者姓名

ReaSex

Char

notnull

读者性别

ReaNo

Char

notnull

读者学号

ReaDep

Char

读者所在学院

ReaPref

Char

读者所属专业

 

ReaGrade

Char

读者的年级

ReaDate

Date

notnull

办证日期

ReaBs

Smallint

Notnull

已借本数

Reastate

Char

Notnnll

借书状态

Reasx

Smallint

Notnull

借书上限

 

管理员

列名

数据种类

能否为空

说明

MID主键

Char

notnull

管理员编号

MName

Char

notnull

管理员姓名

MSex

Char

管理员性别

 

馆室

列名

数据种类

能否为空

说明

RoomNo

Char

notnull

馆室号

RoomMID

Char

notnull

馆室管理员编号

Roomnum

Char

notnull

馆室拥有图书数目

RoomAddre

Char

馆室地点

RoomType,

Char

馆室种类

借阅信息

列名

数据种类

能否为空

说明

ReaID

Char

notnull

读者编号

BookID

Char

notnull

图书编号

BookName

Char

notnull

图书名

BookWriter

Char

作者

Outdate

Date

notnull

借阅时间

Indate

Date

送还时间

YHdate

Date

notnull

应还时间

Fine

Char

Notnull

罚款金额

CLState

Char

办理状态

MID

Char

notnull

管理员编号

 

六.数据库的实行

 

创立数据库及表格

管理员基本信息表的成立:

createtableManeger(

MID

char(10)

primarykey,

MNamechar(10)

notnull,

MSex

char

(2),

check(MSex='男'orMSex='女')

图书室室基本信息表的成立:

createtableRoom(

RoomNochar(5)primarykey,

RoomMIDchar(10)notnull,

Roomnumchar(5)notnull,

RoomAddrechar(20),

RoomTypechar(10),

foreignkey(RoomMID)referencesManeger(MID)ondeletecascade

 

onupdatecascade,

馆藏图书基本信息表的成立:

createtableBook(

BookIDchar(9)primarykey,

BookNochar(20)notnull,

BookNamechar(50)notnull,

BookWriterchar(30)notnull,

BookPublishchar(20)notnull,

Booknumsmallintcheck(Booknum>=0),

BookDatedatetime,

BookClasschar(20),

Booknumssmallintcheck(Booknum>=0),

BookStatechar(10)default‘可借’notnull,

BookRNochar(5)notnull,

check(Booknum>Booknums),

foreignkey(BookRNo)referencesRoom(RoomNo)ondeletecascade

 

onupdatecascade,

 

读者基本信息表的成立:

createtableReader(

ReaID

char(9)

primarykey,

ReaName

char(10)notnull,

ReaSex

char

(2)

notnull,

ReaNo

char(9)

notnull,

Reasxsmallintnotnull,

ReaBssmallintnotnull,

ReaDep

char(20),

ReaGrade

char(5),

ReaPref

char(20),

ReaDate

Datetime,

Reastate

char(5)notnulldefault

‘可借’,

foreignkey(ReaLBID)referencesReaderType(LBID)ondeletecascade

onupdatecascade,

check(ReaSex='男'orReaSex='女')

(6)借阅基本信息表的成立:

createtableBorrow(

BookID

char(9),

ReaID

char(9),

Outdate

Datetimenotnull,

YHdate

Datetimenotnull,

Indate

Datetime,

Fine

char(5)notnulldefault

‘0’,

CLState

char(8),

MID

char(10)notnull,

primarykey(BookID,ReaID),

foreignkey(MID)referencesManeger(MID)ondeletecascade

onupdatecascade

 

成立视图

 

(1)用于查问图书基本信息的视图定义以下:

createviewBookview(索书号,书名,作者,第一版社,图书状态)

as

selectBookNo,BookName,BookWriter,BookPublish,BookStatefromBook

(2)用于读者基本信息查问的视图定义以下:

createviewReaderview(读者姓名,种类,学院,专业,办证日期)

as

selectReaName,ReaType,ReaDep,ReaPref,ReaDate

fromReader

(3)用于显示目前借阅基本信息的视图定义以下:

createviewBorrowview(读者编号,书名,作者,借阅日期,到期日期)

 

as

selectReaID,BookName,BookWriter,Outdate,YHdate

fromBorrow,Book

whereBorrow.BookID=Book.BookIDandBorrow.Indateisnull

(4)用于借经历史信息查问的视图定义以下:

createviewHistoryview(读者编号,书名,借阅日期,送还日期)

as

selectReaID,BookName,Outdate,Indate

fromBorrow,Book

whereBorrow.BookID=Book.BookIDandBorrow.Indateisnotnull(5)用于查问罚款信息的视图定义以下:

createviewFineview(读者编号,书名,借阅日期,送还日期,罚款,办理状态)

as

selectReaID,BookName,Outdate,Indate,Fine,CLState

fromBorrow,Book

whereBorrow.BookID=Book.BookIDandFineisnotnull

 

成立索引

 

createclusteredindexBookPublishonBook(BookPublish);

createclusteredindexReaDeponReader(ReaDep);

 

成立触发器

 

当在中增添一条借阅记录时,书的可借数目减少一本,改正读者,并检查读者状态

createtriggerBorrow_insert1

onBorrow

forinsert

as

declare@BookIDchar(9)

declare@ReaIDchar(9)

select@ReaID=ReaID

frominserted

select@BookID=BookID

frominserted

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

as

declare@ReaBssmallint

select@ReaBs=ReaBs

frominserted

declare@ReaIDchar(9)

select@ReaID=ReaID

frominserted

Select@Reasx=Reasx

FromReader

whereBookID=@BookID

If(@Reasx=@ReaBs)

Begin

updateReader

setReastate=’不行借’

whereReaID=@ReaID

End

还书的时候,书的可借数目增添一本,改正读者状态

createtriggerBorrow_insert

onBorrow

forinsert

as

declare@BookIDchar(9)

declare@ReaIDchar(9)

select@ReaID=ReaID

frominserted

select@BookID=BookID

frominserted

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

 

储存过程

 

1.Book_Insert的定义:

CREATEPROCEDUREBook_Insert

 

okClass

@BookIDchar(9),

@BookNochar(20),

@BookNamechar(50),

@BookWriterchar(30),

@BookPublishchar(20),

@BookDatedatetime,

@BookClasschar(20),

@Booknumssmallint,

@Booknumsmallint,

@BookStatechar(10),

@BookRNochar(5)

as

insertintoBook

values(@BookID,@BookNo,@BookName,@BookWriter

@BookState,@BookRNo,@Booknums,@Booknum);

 

@BookPublish

 

@BookDate,@Bo

2.Reader_Insert的定义:

CREATEPROCEDUREReader_Insert

@ReaIDchar(9),

@ReaNamechar(10),

@ReaSexchar

(2),

@ReaNochar(9),

@ReaDepchar(20),

@ReaGradechar(5),

@ReaPrefchar(20),

@ReaDateDatetime

@ReaBssmallint,

@Reastatechar(5),

@Reasxsmallint,

as

insertintoReader

values(@ReaID,@ReaName,@ReaSex,@ReaNo,@ReaDep,@ReaGrade,@ReaPref,@ReaDate,@ReaBs,@Reastate,@Reasx;

3.Maneger_Insert的定义:

CREATEPROCEDUREManeger_Insert

@MIDchar(10),

 

@MNamechar(10),

@MSexchar

(2),

as

insertintoManeger

alues(@MID,@MName,@MSex);

4.Borrow_Insert的定义:

CREATEPROCEDUREBorrow_Insert

@BookIDchar(9),

@ReaIDchar(9),

@OutdateDatetime,

@YHdateDatetime,

@IndateDatetime,

@Finechar(5),

@CLStatechar(8),

@MIDchar(10)

as

insertintoBorrow

values(@BookID,@ReaID,@Outdate,@YHdate,@Indate,@Fine,@CLState,@MID);

5.Query_Reader_R的定义:

createprocedureQuery_Reader_R

@ReaIDchar(9)

as

select*

fromReaderview

where编号=ltrim(@ReaID);

6.Query_Reader_M的定义:

createprocedureQuery_Reader_M

as

select*

fromReaderview

7.Query_Book_Writer的定义:

createprocedureQuery_Book_Writer

@BookWriterchar(50)

as

select*

fromBookview

where作者like'%'+ltrim(@BookWriter)+'%';

8.Query_Book_Name_Publish的定义:

createprocedureQuery_Book_Name_Publish

@BookNamechar(50),

@BookPublishchar(20)

as

select*

fromBookview

 

where书名=ltrim(@BookName)and第一版社=ltrim(@BookPublish);

9.Delete_Reader的定义:

createprocedureDelete_Reader

@ReaNochar(9)

as

delete

fromReader

whereReaNo=ltrim(@ReaNo);

10.Delete_Book的定义:

createprocedureDelete_Book

@BookIDchar(9)

as

delete

fromBook

whereBookID=ltrim(@BookID);

 

七.实验小结

 

此次实验使我熟习了怎样独立的成立一个系统,经过自己所学的知识,综合运用,并认识自己的不足之处。

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

当前位置:首页 > 自然科学 > 物理

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

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