数据库综合作业图书管理系统.docx

上传人:b****6 文档编号:5891167 上传时间:2023-01-01 格式:DOCX 页数:15 大小:212.22KB
下载 相关 举报
数据库综合作业图书管理系统.docx_第1页
第1页 / 共15页
数据库综合作业图书管理系统.docx_第2页
第2页 / 共15页
数据库综合作业图书管理系统.docx_第3页
第3页 / 共15页
数据库综合作业图书管理系统.docx_第4页
第4页 / 共15页
数据库综合作业图书管理系统.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数据库综合作业图书管理系统.docx

《数据库综合作业图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据库综合作业图书管理系统.docx(15页珍藏版)》请在冰豆网上搜索。

数据库综合作业图书管理系统.docx

数据库综合作业图书管理系统

图书馆数据管理系统

一、图书馆数据管理系统的描述

1、概念模型(E-R图)

2、关系模式

(1)书籍类别(种类编号、种类名称)

(2)读者(借书证编号,读者姓名、读者性别、读者种类、登记时间)

(3)书籍(书籍编号、书籍名称、书籍类别、书籍作者、出版社名称、出版日期、登记日期)

!

(4)借阅(借书证编号、书籍编号、读者借书日期)

(5)还书(借书证编号、书籍编号、读者还书时间)

(6)罚款(借书证编号、读者姓名、书籍编号、读者借书时间、读者还书日期)

二、图书馆数据库的建立

--

(1)书本类别表

createtablebook_style

(bookstylenovarchar(30)primarykey,--种类编号

bookstylevarchar(30))--种类名称

go

--

(2)书库表

createtablesystem_books

(bookidvarchar(20)primarykey,--书籍编号

booknamevarchar(30)notnull,--书籍名称

bookstylenovarchar(30)notnull,--书籍种类

bookauthorvarchar(30),--书籍作者

bookpubvarchar(30),--出版社

bookpubdatedatetime,--出版日期

bookindatedatetime,--登记日期

isborrowedvarchar

(2),--是否借出

foreignkey(bookstyleno)referencesbook_style(bookstyleno))

go

--(3)借书证表

createtablesystem_readers

(readeridvarchar(9)primarykey,--读者借书证号

readernamevarchar(9)notnull,--读者姓名

readersexvarchar

(2)notnull,--读者性别

readertypevarchar(10),--读者种类

regdatedatetime)--登记日期

go

--(4)借书记录表

createtableborrow_record

(bookidvarchar(20)primarykey,--书籍编号

·

readeridvarchar(9),--读者借书证编号

borrowdatedatetime,--读者借书时间

foreignkey(bookid)referencessystem_books(bookid),

foreignkey(readerid)referencessystem_readers(readerid))

go

--(5)还书记录表

createtablereturn_record

(bookidvarchar(20)primarykey,--书籍编号

!

readeridvarchar(9),--读者借书证编号

returndatedatetime,--读者还书时间

foreignkey(bookid)referencessystem_books(bookid),

foreignkey(readerid)referencessystem_readers(readerid))

go

--(6)罚款单表

createtablereader_fee

(readeridvarchar(9)notnull,--读者借书证号

<

readernamevarchar(9)notnull,--读者姓名

bookidvarchar(20)primarykey,--书籍编号

booknamevarchar(30)notnull,--书籍名称

bookfeevarchar(30),--罚款金额

borrowdatedatetime,--借书时间

foreignkey(bookid)referencessystem_books(bookid),

foreignkey(readerid)referencessystem_readers(readerid))

go

数据库的表的截图:

三、图书馆数据库数据的添加

uselibrary

--书籍类别导入book_style表中

insertintobook_style(bookstyleno,bookstyle)values('1','恐怖小说')

insertintobook_style(bookstyleno,bookstyle)values('2','穿越小说')

insertintobook_style(bookstyleno,bookstyle)values('3','恐怖小说')

<

insertintobook_style(bookstyleno,bookstyle)values('4','都市小说')

insertintobook_style(bookstyleno,bookstyle)values('5','科幻小说')

insertintobook_style(bookstyleno,bookstyle)values('6','仙侠小说')

insertintobook_style(bookstyleno,bookstyle)values('7','言情小说')

--已有书籍导入system_books表中

insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)

values('901','飘邈之旅','1','萧乾','向往','2015-09-01','2018-03-25','1')

insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)

values('902','明朝那些事儿','2','多一半','新星出版社','2015-05-09','2018-05-23','1')

insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)

values('903','鬼吹灯','3','天下霸唱','安徽文艺出版社','2014-09-18','2018-05-27','1')

insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)

values('904','盛夏晚晴天','4','顾漫','中国海关出版社','2015-09-01','2018-05-28','1')

insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)

values('905','三体','5','刘慈欣','凤凰出版社','2015-10-11','2018-05-29','1')

/

insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)

values('906','凡人修仙传','6','三十','凡人出版社','2013-04-21','2018-05-30','1')

insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)

values('907','霸道总裁爱上我','7','桐华','民族出版社','2012-06-20','2018-05-31','1')

--将已有图书证的读者加入system_readers表中

insertintosystem_readers(readerid,readername,readersex,readertype,regdate)

values('Q','白一','男','学生','2018-01-1812:

20')

insertintosystem_readers(readerid,readername,readersex,readertype,regdate)

/

values('Q','白二','男','学生','2018-01-1913:

15')

insertintosystem_readers(readerid,readername,readersex,readertype,regdate)

values('Q','白三','男','学生','2018-01-2013:

33')

insertintosystem_readers(readerid,readername,readersex,readertype,regdate)

values('Q','白四','男','学生','2018-01-2112:

01')

insertintosystem_readers(readerid,readername,readersex,readertype,regdate)

values('Q','白五','男','学生','2018-01-2215:

23')

insertintosystem_readers(readerid,readername,readersex,readertype,regdate)

values('201005','黑五','男','教师','2018-01-2318:

50')

insertintosystem_readers(readerid,readername,readersex,readertype,regdate)

values('201006','黒六','男','教师','2018-01-2418:

25')

insertintosystem_readers(readerid,readername,readersex,readertype,regdate)

values('GL001','空一','女','管理','2018-01-0116:

20')

--添加已借书读者的记录导入borrow_record表中,同时将在已借出的标记0

insertintoborrow_record(bookid,readerid,borrowdate)

values('901','Q','2018-01-1812:

20')

updatesystem_books

setisborrowed=0

wherebookid='901'andisborrowed='1'

insertintoborrow_record(bookid,readerid,borrowdate)

values('902','Q','2018-01-1913:

15')

updatesystem_books

setisborrowed=0

/

wherebookid='902'andisborrowed='1'

insertintoborrow_record(bookid,readerid,borrowdate)

values('903','Q','2018-01-2013:

33')

updatesystem_books

setisborrowed=0

wherebookid='903'andisborrowed='1'

insertintoborrow_record(bookid,readerid,borrowdate)

values('904','Q','2018-01-2112:

01')

·

updatesystem_books

setisborrowed=0

wherebookid='904'andisborrowed='1'

insertintoborrow_record(bookid,readerid,borrowdate)

values('905','Q','2018-01-2215:

23')

updatesystem_books

setisborrowed=0

wherebookid='905'andisborrowed='1'

insertintoborrow_record(bookid,readerid,borrowdate)

values('906','201005','2018-01-2318:

50')

updatesystem_books

setisborrowed=0

wherebookid='906'andisborrowed='1'

insertintoborrow_record(bookid,readerid,borrowdate)

values('907','201006','2018-01-2418:

25')

updatesystem_books

{

setisborrowed=0

wherebookid='907'andisborrowed='1'

四、图书馆数据库的查询

--

(1)查询所有书对应的类型

selectdistinctbookname书籍名称,bookstyle书籍类别

frombook_style,system_books

where=

go

--

(2)查询所有穿越小说类的书

selectdistinctbookname书籍名称,bookstyle书籍类别

frombook_style,system_books

where=

and='2'

go

|

--(3)查询中国海关出版社出版的书

selectdistinctbookname书籍名称,bookpub

frombook_style,system_books

wherebookpub='中国海关出版社

go

'

--(4)查询白三借了什么书

"

selectreadername读者姓名,bookname书籍名称

fromborrow_record,system_books,system_readers

where=

and=

andreadername='白三'

Go

--(5)查询同名同姓读者,同时统计同名同姓人数(先插入一个同名同姓读者)

.

insertintosystem_readers(readerid,readername,readersex,readertype,regdate)

values('Q','白五','男','学生','2018-01-2215:

26')

selectreadername读者姓名,count(readername)as'同名人数'

fromsystem_readers

groupbyreadername

havingcount(*)>1

go

&

--(6)查询书名包括“盛”关键词的图书,输出书籍编号、书籍名称、作者

selectbookstyleno,bookname,bookauthor

fromsystem_books

wherebooknamelike'%盛%'

go

--(7)查询当前借了《三体》却没有借《盛夏晚晴天》的读者,输出其读者借书证编号,并按编号降序排列

select书籍编号,bookname书籍名称,bookauthor作者,readerid读者借书证编号

#

fromsystem_books,borrow_record

where=

andbookname='三体'

andreaderidnotin

(selectreaderid

fromsystem_books,borrow_record

where=

andbookname='盛夏晚晴天')

~

go

--(8)创建一个视图account,显示所有学生的借书信息(只显示姓名和书名)

createviewaccount

as

select,

fromborrow_record,system_books,system_readers

where=

and=

and='学生'

go

select*

fromaccount

--(9)查询已借书的读者借书是否超期(30天)

select读者借书证编号,readername读者姓名,

"

书籍编号,bookname书名,borrowdate借书时间,

datediff(day,convert(smalldatetime,borrowdate),getdate())-30超过时间

fromborrow_record,system_readers,system_books

where=

and=

anddatediff(day,convert(smalldatetime,borrowdate),getdate())>=30

go

--(10)对超过天数的读者进行罚款,一天以结算,添加进reader_fee表里,再进行select查询

insertintoreader_fee(readerid,readername,bookid,bookname,bookfee,borrowdate)

select读者借书证编号,readername读者姓名,

书籍编号,bookname书名,borrowdate借书时间,

*(datediff(day,convert(smalldatetime,borrowdate),getdate())-30)超过时间

fromborrow_record,system_readers,system_books

where=

and=

@

anddatediff(day,convert(smalldatetime,borrowdate),getdate())>=30

go

selectreaderid书读者借书证编号,readername读者姓名,bookid书籍编号,bookfee超期罚款

fromreader_fee

五、图书馆数据库的更新

--

(一)还书操作

--1、添加一条还书记录

*

insertintoreturn_record(bookid,readerid,returndate)

selectbookid,readerid,getdate()

fromborrow_record

wherebookid='901'

go

selectbookid书籍编号,readerid读者借书证编号,returndate归还时间

fromreturn_record

--2、删除相应书籍的借书记录

delete

fromborrow_record

wherebookid='901'

go

selectbookid书籍编号,readerid读者借书证编号,borrowdate归还时间

fromborrow_record

--3在书库中标记该书籍为1,表示已归还,其他读者可借阅

updatesystem_books

setisborrowed=1

wherebookid='901'

go

selectbookid书籍编号,bookname书籍名称,isborrowed是否借出

fromsystem_books

wherebookid='901'

--

(二)借书证

--1、申请借书证

insertintosystem_readers(readerid,readername,readersex,readertype,regdate)

values('Q','白六','女','学生',getdate())

go

select*fromsystem_readers

wherereaderid='Q'

--2、注销借书证(借书和归还记录都要删除)

deletefromsystem_readers

wherereaderid='Q'

go

deletefromreturn_record

wherereaderid='Q'

Go

--确认是否删除

select*fromsystem_readers

wherereaderid='Q'

六、总结与分析

通过这次数据库的综合作业设计,经过独立的思考以及运用,增强了对数据库应用方面的理解。

当然与此同时,也发现了自己的许多不足,对于知识点掌握的不够纯熟,思考以及运用得时候都略嫌生疏,还是需要多加练习,积累一些属于自己的经验。

在数据库设计过程中,队数据库设计理念以及思想上有了更深层次的认识,从需求分析到概念设计,E-R模型的设计(由于WPS的模板功能的限制:

只能使用60个约束条件,导致数据库的E-R模型中的‘读者信息实体’无法展示出其各个属性,致使E-R模型图有些瑕疵,敬请见谅),关系模式的建立,弄清了不少之前有些模糊的概念。

而在数据库的查询与更新中,更加深了对于SQL语句的理解与运用,插入、删除、修改、查询以及表与表之间的联系,主键与外键的定义,约束项的定义等等,都让我养成了更加出色的逻辑分析能力。

在完成设计的过程中,也通过网络查询了一些资料以增添自己贫瘠的创造能力,学以致用并不断完善,最终完成了这份数据库综合实践作业。

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

当前位置:首页 > 初中教育 > 英语

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

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