《数据库原理及应用》课程设计报告Word文档格式.docx

上传人:b****4 文档编号:16637316 上传时间:2022-11-25 格式:DOCX 页数:20 大小:243.04KB
下载 相关 举报
《数据库原理及应用》课程设计报告Word文档格式.docx_第1页
第1页 / 共20页
《数据库原理及应用》课程设计报告Word文档格式.docx_第2页
第2页 / 共20页
《数据库原理及应用》课程设计报告Word文档格式.docx_第3页
第3页 / 共20页
《数据库原理及应用》课程设计报告Word文档格式.docx_第4页
第4页 / 共20页
《数据库原理及应用》课程设计报告Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

《数据库原理及应用》课程设计报告Word文档格式.docx

《《数据库原理及应用》课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《《数据库原理及应用》课程设计报告Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

《数据库原理及应用》课程设计报告Word文档格式.docx

存放位置

State

Notnull

当前状态

表1-2  Reader读者信息表格

RID

读者借书证号

Name

读者姓名

Tel

读者电话

Email

读者邮箱

BNumber

Int

可借书数

表1-3Manager管理员信息表格

MID

工号

姓名

RoomID

馆室号

表1-4 CIP书目信息表

Varchar

Notnull(主键)

bookname

Notnull

书籍名称

Author

Null

书籍作者

Pyear

Char

出版年月

Publisher

出版者

Number

册数

表1-5 Borrow借阅记录信息表

Notnull(外主键)

读者借阅证编号

书籍编号

BDate

Datetime

读者借书时间

SRDate

Datetime

应还日期

Varcher

Notnull(外键)

索书号

表1-6 History借阅历史信息表

RDate

datetime

读者还书时间

BDate

Notnull

读者借书日期

表1-7 fine罚款记录信息表

读者借书证编号

ClState

null

是否缴纳罚金

Fine

罚款金额

NotNull

借阅时间

MID

工号

RDate

还书日期

表1-8 room馆室信息表

馆室编号

RoomName

馆室名

表1-9 Appiontmnet预约信息表

读者编号

借阅日期

Notnull(外键)

Applimit

预约时间限制

Null

归还日期

二、概念结构设计

可以用E/R模型表述该模型的设计,E/R图如图所示。

三、逻辑结构设计

通过E/R模型到关系模型的转化,可以得到如下关系模式:

(一)各E-R图各实体的属性如下所示

1、图书:

Book(BookID,ISBN,SPlace,State)

2、读者:

Reader(RID,Name,Tel,Email,BNumeber)

3、管理员:

Manager(MID,Name,RoomID)

4、书目:

CIP(ISBN,BookName,Author,Publisher,Pyear,Number)

5、馆室:

Room(RoomID,RoomName)

(二)各E-R图中联系的属性如下所示:

6、借阅信息:

Borrow(BookID,RID,BDate,SRDate)

7、借阅历史:

History(BookID,RID,BDate,RDate)

8、罚款信息:

Fine(RID,BookID,BDate,RDate,Fine,CLState,MID)

9、预约信息:

Appiontmnet(RID,ISBN,RDate,AppLimit,MID)

3.1.1将E-R图转换为关系模型

实体型转换为关系模式。

实体的属性就是关系的属性,实体的码就是关系的码。

对于实体间的联系则有以下不同的情况:

一个m:

n联系转换为一个关系模式。

与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

一个1:

n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。

如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

一个1:

1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

三个或三个以上实体间的一个多元联系可以转换为一个关系模式。

与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并。

由于图书与CIP、资料室与图书的联系方式是1:

n(一对多),可以将其之间的联系与n端实体CIP、图书合并,管理员与图书之间的维护联系也是1:

n(一对多),同样也将其之间的联系与n端实体合并,而读者与图书之间的借阅和归还联系方式则是n:

m(多对多),这样要把它们之间的联系转化为独立的关系模式,读者与管理员之间的罚款联系是m:

n(多对多),将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:

图书:

Book(BookID,ISBN,SPlace,State)

读者:

Reader(RID,Name,Tel,Email,BNumeber)

管理员:

Manager(MID,Name,RoomID)

书目:

CIP(ISBN,BookName,Author,Publisher,Pyear,Number)

馆室:

Room(RoomID,RoomName,)

借阅信息:

Borrow(BookID,RID,BDate,SRDate)

借阅历史:

History(BookID,RID,BDate,RDate)

罚款信息:

Fine(RID,BookID,BDate,SRDate,RDate,Fine,CLState,MID)

预约信息:

Appiontmnet(RID,ISBN,RDate,AppLimit,MID)

(注:

标有直线下划线的为主属性,标有波浪线下划线的是外键属性,主属性与外键属性一起构成主码)

3.2.1模型优化

关系模式Book,Reader,Room,Maneger,CIP,Room不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是借阅关系模式、借阅历史关系模式、罚款关系模式及预约信息模式(Borrow,History,Fine,Appontment)中存在着一些数据冗余,现将四个关系模型进行合并,消除冗余,优化为:

借阅信息:

Borrow(BookID,RID,ISBN,BDate,RDate,SRDate,Fine,AppLimitCLStaete,MID)

四、系统实现(SQL编程)

4.1.1建立视图

1、建立Book表

CREATETABLEBook

BookIDvarchar(20)PRIMARYKEY,

ISBNvarchar(50)NOTNULL,

SPlacevarchar(50)NOTNULL,

Statechar

(2)

);

2、建立Reader表

CREATETABLEReader

RIDvarchar(10)PRIMARYKEY,

Namevarchar(18)NOTNULL,

Telvarchar(18)NOTNULL,

Emailvarchar(18)NOTNULL,

BNumberintcheck(BNumber<

=10andBNumber>

=0)default10,--可借书的数量

3、建立CIP表

CREATETABLECIP

ISBNvarchar(10)PRIMARYKEY,

BookNamevarchar(20)NOTNULL

Authorvarchar(20)

Publishervarchar(50),

Pyearchar(8)

Numberintcheck(Number>

=0)

4、建立Manager表

CREATETABLEManager

MIDvarchar(8)PRIMARYKEY,

RoomIDvarchar(18)

CONSTRAINTFK_Manager_RoomID

FOREIGNKEY(RoomID)REFERENCESRoomID(RoomID),

5、建立Room表

CREATETABLERoom

RoomIDvarchar(8)PRIMARYKEY,

RoomNamevarchar(18)NOTNULL,

6、建立Borrow表

CREATETABLEBorrow

BookIDvarchar(20)NOTNULL,

RIDvarchar(10)NOTNULL,

ISBNvarchar(50)NOTNULL,

BDatedatetimeNOTNULL,

SRDatedatetimeNOTNULL,

primarykey(BookID,RID),

CONSTRAINTFK_Borrow_BookID

FOREIGNKEY(BookID)REFERENCESBook(BookID),

CONSTRAINTFK_Borrow_ISBN

FOREIGNKEY(ISBN)REFERENCESCIP(ISBN),

CONSTRAINTFK_Borrow_RID

FOREIGNKEY(RID)REFERENCESReader(RID)

7、建立History表

CREATETABLEHistory

BookIDvarchar(20)NOTNULL,

RDatedatetimeNOTNULL,

CONSTRAINTFK_History_BookID

CONSTRAINTFK_History_RID

8、建立Fine表

CREATETABLEFine

RIDvarchar(20)NOTNULL,

MIDvarchar(8)NOTNULL,

BookIDvarchar(20)NOTNULL,

BDatedatetimeNOTNULL,

Finevarchar(20)

CLStatechar(8),

CONSTRAINTFK_Fine_RID

FOREIGNKEY(RID)REFERENCESReader(RID),

CONSTRAINTFK_Fine_MID

FOREIGNKEY(MID)REFERENCESManager(ID),

CONSTRAINTFK_Fine_BookID

FOREIGNKEY(BookID)REFERENCESBook(BookID)

9、建立Appiontmnet表

CREATETABLEAppiontmnet

RIDvarchar(8)NOTNULL,

MIDvarchar(6)NOTNULL,

ISBNvarchar(20)NOTNULL,

RDatedatetime

BDatedatetime

AppLimitvarchar(20)default‘10’

primarykey(ISBN,RID),

CONSTRAINTFK_Appiontment_RID

FOREIGNKEY(RID)REFERENCESReader(ID),

CONSTRAINTFK_Appiontment_MID

CONSTRAINTFK_RETURN_ISBN

FOREIGNKEY(ISBN)REFERENCESCIP(ISBN)

4.1.2建立视图

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

createviewBookview(索书号,书号,书名,出版社,册数,存放位置,当前状态)

as

selectCIP.ISBN,BookID,BookName,Publisher,Number,Splace,State

fromCIP,Book

whereCIP.ISBN=Book.ISBN

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

createviewReaderview(读者姓名,编号,电话,邮箱)

selectName,RID,Tel,Email

fromReader

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

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

selectRID,BookName,Author,BDate,SRDate

fromBorrow,CIP

whereBorrow.ISBN=CIP.ISBN

(4)用于借阅历史信息查询的视图定义如下:

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

selectBorrow.RID,BookName,BDate,SRDate

fromBorrow,CIP,Reader

whereBorrow.RID=Reader.RID

(5)用于查询罚款信息的视图定义如下:

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

selectBorrow.RID,BookName,Borrow.BDate,RDate,Fine,CLState

fromBorrow,CIP,Fine

whereBorrow.ISBN=CIP.ISBNandFineisnotnull

(6)用于预定信息的视图如下:

CreateviewAppiontmentview(读者编号,索书号,预约时间,预约期限天)

As

SelectAppiontment.RID,Appiontment.ISBN,BDate,Applimit

FromAppiontment,CIP

WhereAppiontment.ISBN=CIP.ISBNand

CIP.Numberisnull/*当某书目可借书数量为零时*/

4.1.3建立触发器

本系统创建了三个触发器,它们分别实现删除图书、统计图书可借数量、借阅图书信息的功能。

其代码如下。

1创建删除图书的触发器

createtriggerdeletebook

onBookinsteadofdelete

deletefromBorrowwhereRIDin(selectRIDfromdeleted)

deletefromBookwhereidin(selectBookIDfromdeleted)

2创建统计图书可借数量的触发器

createtriggerReadercountable

onBorrowafterinsert

updateReadersetBNumber=BNumber-1whereRIDin(selectRIDfrominserted)

--借书后用户的可借数量减1—

3创建借阅图书信息功能的触发器

/*借书管理,当在中增加一条借阅记录时,使该图书的状态由“未借”变为“已借出*/

createtriggerBorrow_insert1

onBorrow

forinsert

as

declare@BookIDchar(9)

select@BookID=BookID

frominserted

updateBook

setState='

已'

/*已借出*/

whereBookID=@BookID

/*验证*/

insertintoBorrowvalues('

07'

'

04'

806'

2012-2-4'

2012-4-4'

4还书管理

/*还书管理(举实例论证,预约功能在上一触发器中实现)*/

BEGINTRANSACTION

INSERTINTOHistory(BookID,RID,BDate,RDate)

VALUES('

11'

02'

2012-4-6'

2012-4-8'

UPDATEBOOKSETState='

0'

WHEREBookID='

COMMIT;

5自动计算罚金公式

/*若超过时间限制,计算罚金公式*/

/*1.把没归还日期的归还日期改为系统时间*/

UPDATEHistorySETRDate=getdate()whereRDateisnulll

/*2.假设有个可借天数字段天*/

updateFinesetfine=(datediff(day,'

2012-3-1'

2012-6-3'

)-60)*0.2

/*没有可借天数的话把-可借天数以及外面的一对括号删除*/

4.1.4管理员操作

1)入库管理:

/*入库管理,新书入库*/

insertintoCIP(ISBN,BookName,Number,Author,Publisher,Pyear)

values(813,'

中外通史'

5,'

方严'

高教'

2007.5'

/*旧书入库*/

updateCIP

setNumber=Number+1

whereISBN='

805'

2)增加读者:

INSERTINTOReader(RID,Name,Tel,Email,BNumber)VALUES(#RID,#Name,#Tel,#BNumber);

3)删除读者:

DELETEFROMReaderWHERE(RID=#RID);

4)修改读者信息:

UPDATEReaderSETName=#Name,Tel=#TelWHERE(RID=#RID);

5)增加书籍:

INSERTINTOCIP(ISBN,BookName,Author,Publisher,Pyear,Number)VALUES(#ISBN,#BookName,#Author,#Publisher,#Pyear,#Number);

6)删除书籍:

DELETEFROMBookWHERE(BookID=#BookID);

7)修改书籍信息:

UPDATEBookSETBookName=#BookName,Author=#Author,Publisher=#Publisher,

Pyear=#Pyear,Number=#NumberWHERE(BookID=#BookID);

8)学生借阅图书:

INSERTINTOBorrow(RID,BookID,SRDate,BDate)

VALUES(#RID,#BookID,#SRDate,#BDate);

UPDATEBOOKSETState=’2’WHEREBookID=#BookID

9)学生归还图书:

INSERTINTOHistory(RID,BookID,RDate,BDate)

VALUES(#RID,#BookID,#RDate,#BDate);

UPDATEBOOKSETState=’0’WHEREBookID=#BookID

(说明:

要知道图书当前的状态,是图书馆存放,还是被借阅等,需要再Book模式中增加对应项用以表示图书当前的状态。

比如我们增加State,并且约定取值和状态的对应关系如下:

0:

在图书馆中并且没有被

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

当前位置:首页 > 求职职场 > 简历

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

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