数据库大作业.docx
《数据库大作业.docx》由会员分享,可在线阅读,更多相关《数据库大作业.docx(16页珍藏版)》请在冰豆网上搜索。
![数据库大作业.docx](https://file1.bdocx.com/fileroot1/2023-1/31/8da65893-f0ef-4e93-89e4-42ffa75c42e7/8da65893-f0ef-4e93-89e4-42ffa75c42e71.gif)
数据库大作业
目录
1.项目设计目的与内容3
1.1目的3
2.方案图表设计3
2.1E-R图3
3.数据库源代码5
3.1数据库建立6
3.2数据初始化7
4.结果数据处理10
4.1单表查询10
4.2还书操作12
4.3借书操作13
4.4书籍状态14
4.5读者状态15
5.结束语16
5.1课程设计心得16
图书库存管理系统
一、实验目的及内容
目的:
1.掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织和实施。
2.关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试运行等工作。
3.培养把所学知识运用到具体对象,并能求出解决方案的能力。
二、图书管理系统E-R图:
2.1E-R图
根据1)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。
图书管理信息系统可以划分的实体有:
书籍类别信息实体、读者信息实体、书籍信息实体、借阅记录信息实体,归还记录信息实体。
用E-R图一一描述这些实体。
2.1.1类别实体E-R图:
图2-1类别实体E-R图
2.1.2读者信息实体E-R图:
图2-2读者信息实体E-R图
2.1.3信息实体E-R图:
图2-3信息实体E-R图
2.1.4.记录信息实体E-R图:
图2-4记录信息实体E-R图
2.1.5记录信息实体E-R图:
图2-5记录信息实体E-R图
2.1.5.总的信息实体E-R图:
总的信息实体E-R图
三、数据库源代码
3.1数据库建立
3.1.1创建数据库
USEmaster
GO
CREATEDATABASElibrarysystem
ON
(NAME=librarysystem,
FILENAME='d:
\librarysystem.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5)
LOGON
(NAME='library',
FILENAME='d:
\librarysystem.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB)
GO
3.1.2书本类别表建立
createtablebook_style
(
bookstylenovarchar(30)primarykey,
bookstylevarchar(30)
)
3.1.3创建书库表
createtablesystem_books
(
bookidvarchar(20)primarykey,
booknamevarchar(30)Notnull,
bookstylenovarchar(30)Notnull,
bookauthorvarchar(30),
bookpubvarchar(30),
bookpubdatedatetime,
bookindatedatetime,
isborrowedvarchar
(2),
foreignkey(bookstyleno)referencesbook_style(bookstyleno),
)
3.1.4借书证表建立
createtablesystem_readers
(readeridvarchar(9)primarykey,
readernamevarchar(9)notnull,
readersexvarchar
(2)notnull,
readertypevarchar(10),
regdatedatetime
)
3.1.5借书记录表建立
createtableborrow_record
(bookidvarchar(20)primarykey,
readeridvarchar(9),
borrowdatedatetime,
foreignkey(bookid)referencessystem_books(bookid),
foreignkey(readerid)referencessystem_readers(readerid),
)
3.1.6还书记录表建立
createtablereturn_record
(bookidvarchar(20)primarykey,
readeridvarchar(9),
returndatedatetime,
foreignkey(bookid)referencessystem_books(bookid),
foreignkey(readerid)referencessystem_readers(readerid)
)
3.2数据初始化
3.2.1将书籍类别加入表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','语言技能类')
3.2.2将已有的图书加入system_books表中(定义相同的作者出版社的书本编号不一样)
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('00125415152','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('00125415153','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('00456456','数据库原理','6','萨师煊','高等教育出版社','2007-07-02','2007-09-15','1');
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('12215121','C程序设计','6','谭浩强','清华大学出版社','2002-04-02','2004-03-14','1');
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('9787308020558','计算机体系结构','6','石教英','浙江大学出版社','2004-10-03','2006-11-15','1');
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('45456141414','数据结构(C语言版)','6','吴伟民,严蔚敏','清华大学出版社','2002-06-28','2004-01-21','1');
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('5455515','中华历史5000年','1','吴强','北京大学出版社','2005-04-03','2006-05-15','1');
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('015115','古代埃及','3','赵文华','北京大学出版社','2001-02-02','2002-09-15','1');
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('1514514','日本文化','1','吴小鹏','北京大学出版社','2002-04-02','2004-03-14','1');
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('15154656','微观经济学','5','李小刚','北京大学出版社','2000-10-03','2001-11-15','1');
insert
intosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('5658','影视文学','4','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');
insertinto
system_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('565800020','探索宇宙奥秘','2','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');
3.2.3将已有图书证的读者加入system_readers表中*/
insertintosystem_readers(readerid,readername,readersex,readertype,regdate)
values('X05620207','陈远鹏','男','学生','2005-9-2314:
23:
56')
insertintosystem_readers(readerid,readername,readersex,readertype,regdate)
values('X05620206','陈特','男','学生','2005-09-3013:
24:
54.623')
insertintosystem_readers(readerid,readername,readersex,readertype,regdate)
values('X05620204','赵铭静','女','学生','2005-09-2711:
24:
54.123')
insertintosystem_readers(readerid,readername,readersex,readertype,regdate)
values('X05620202','潘虹','女','学生','2005-09-3013:
24:
54.473')
insertintosystem_readers(readerid,readername,readersex,readertype,regdate)
values('008415','蒋伟','男','教师','2004-04-3009:
24:
54.478')
insertintosystem_readers(readerid,readername,readersex,readertype,regdate)
values('001456','李叶风','女','教师','2004-04-3009:
24:
54.478')
3.2.4添加已借书读者的记录,同时将在已借出的借阅标记置0*/
insertintoborrow_record(bookid,readerid,borrowdate)
values('00125415152','X05620202','2007-09-2711:
24:
54.123')
updatesystem_books
setisborrowed=0
wherebookid='00125415152'
insertintoborrow_record(bookid,readerid,borrowdate)
values('00125415153','X05620206','2007-12-2708:
26:
51.452')
updatesystem_books
setisborrowed=0
wherebookid='00125415153'andisborrowed='1'
insertintoborrow_record(bookid,readerid,borrowdate)
values('5455515','X05620207','2007-12-2708:
26:
51.452')
updatesystem_books
setisborrowed=0
wherebookid='5455515'andisborrowed='1'
insertintoborrow_record(bookid,readerid,borrowdate)
values('015115','X05620204','2007-10-2112:
11:
51.452')
updatesystem_books
setisborrowed=0
wherebookid='015115'andisborrowed='1'
insertintoborrow_record(bookid,readerid,borrowdate)
values('15154656','001456','2007-12-2814:
11:
51.312')
updatesystem_books
setisborrowed=0
wherebookid='15154656'andisborrowed='1'
insertintoborrow_record(bookid,readerid,borrowdate)
values('565800020','008415','2007-08-2815:
11:
31.512')
updatesystem_books
setisborrowed=0
wherebookid='565800020'andisborrowed='1'
四、实验数据示例:
测试阶段
4.1单表查询
4.1.1表book_style中查询演示:
图4-1表book_style中内容
4.1.2表system_books中查询演示:
图4-2表system_books中内容
4.1.3将已有图书证的读者加入system_readers表中结果查询:
图4-3表system_readers中内容
4.1.4借书纪录表borrow_record结果查询:
图4-4表borrow_record中内容
4.2还书操作
4.2.1现在对某一读者进行还书操作:
1.首先还书要在还书纪录中添加一条还书纪录
2.其次删除相应书本的借阅纪录
3.最后在书库中标记该本书为1,表示归还了未借,可供其他读者借阅
说明:
学号为X05620207姓名为陈远鹏借阅的565800020书籍编号进行归还。
SQL语言:
insertintoreturn_record(bookid,readerid,returndate)
selectbookid,readerid,getdate()
fromborrow_record
wherebookid='565800020'
(所影响的行数为1行)
delete
fromborrow_record
wherebookid='565800020'
(所影响的行数为1行)
updatesystem_books
setisborrowed=1
wherebookid='565800020'
(所影响的行数为1行)
三个表的结果如图:
图4-5增加了565800020纪录
图4-6565800020这本书在借书纪录里没有了
图4-7标记设为了‘1’
说明:
这本书重新回到未被借出标记为1(注,相同的书其编号是不同的)
其结果为还书成功,相应的各表都有变化,对于罚款单通过借阅记录表borrow_record中更新。
4.3借书操作
4.3.1查询未被借出的书本:
图4-8
4.3.2查询已被借出的书本:
图4-9
4.3.3申请借书证:
SQL语言:
Insertintosystem_readers(readerid,readername,readersex,readertype,regdate)
values('X05620211','小华','男','学生',getdate())
图4-10
说明:
查询相应的纪录增加了小华这样一个读者的借书证纪录:
4.3.4注销借书证:
说明:
1.在注销之前执行所有的还书过程,就是上面写到的所述SQL语句,然后执行
deletefromsystem_readerswherereaderid='X05620211',
2.小华借书证纪录就被删除了,同时要删除和小华归还纪录的内容
deletefromreturn_recordwherereaderid='X05620211',
4.3.5查询所有书所对应的类别:
图4-11
4.4书籍状态
4.4.1查询所有工技术类的书:
图4-12
4.4.2查询清华大学出版社出版的书:
图4-13
4.5读者状态
4.5.1查询什么人借了什么书:
图4-14
4.5.2查询潘虹借了什么书:
图4-15
五、课程设计心得
在大二的下学期我们学校了数据库这门课,对这门课的第一印象就是书本不厚,感觉学起来应该会很轻松。
但随着这门课学习的深入,我发现这门课并不是那么容易的,涉及的范围比较广,而且有的时候,使用不同的方法解题往往会发现,原来那样做这么简单,所以,针对不同的情况要具体分析,千万不要生搬硬套,这样虽然可能也会达到最终的效果,但是会使解题过程太过复杂,往往会造成事倍功半的后果。
同样,通过这次数据库课程设计,我也是受益匪浅。
从搜集资料到完成,差不多花了两个星期的时间,其实这个图书库存管理系统不是很难,但是,里面涉及到了一些上课没有涉及到的,后来去查找资料,才发现原来我们上课时学习的只是一些皮毛,还有许多需要我们掌握的东西我们根本不知道。
同时也发现有很多已经学过的东西我们没有理解到位,不能灵活的运用于实际,不能很好的解决问题,而这一点恰恰需要我们不断的大量的实践,通过不断的学习,不断的发现问题,思考问题,进而解决问题。
这是一个温故知新的过程。