数据库图书馆管理系统.docx
《数据库图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《数据库图书馆管理系统.docx(39页珍藏版)》请在冰点文库上搜索。
![数据库图书馆管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-7/5/986b96ca-b043-4895-b9e1-21b98513a59c/986b96ca-b043-4895-b9e1-21b98513a59c1.gif)
数据库图书馆管理系统
一.课程设计目的
数据库课程设计是为数据库原理及应用课程而独立开设的实践性课程,关于稳固数据库知识,增强学生
的实质着手能力和提升学生综合素质十分必需。
经过本实验达到以下目的:
娴熟掌握一种数据库系统(如SQLSERVER)的使用。
娴熟掌握一种数据库应用软件开发工具的使用。
经过设计实质的数据库系统应用课题,进一步熟习数据库管理系统的操作技术,提升着手能力,提升剖析问题和解决问题的能力。
二.课程设计任务与要求:
1、任务:
图书管理系统
问题描绘:
学校图书馆有各样图书几十万余册。
每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、第一版社等。
借书证记录有借阅者的借书证编号,读者姓名,读者性别,读者种类,登记期间等。
4)依靠书证借书,学生每次最多能借5本书,借书限期最长为30天,老师每次最多能借10本,借书
限期最长为60天。
2、设计要求:
实现新进图书的数据录入和下架图书的数据删除。
实现借阅者图书证信息的录入和删除。
实现对全部购进图书的分类查问和分类统计。
能够按书名、作者平分类查问现有图书的数目。
能够记录借阅者的个人资料和所借图书的书名、书号、借书时间等
能够进行借书还书办理。
能够进行借书逾期罚款办理。
能够进行用户管理。
9)设计一完好的数据库。
要求掌握数据库的设计的每个步骤;掌握数据设计各阶段的输入、输出、设
计环境、目标和方法;娴熟的使用SQL语言实现数据库以及数据库重要对象的成立、应用和保护。
三.课程设计说明书
需求剖析
(1)数据需求
图书馆管理信息系统需要达成功能主要有:
①读者基本信息的输入,包含借书证编号、读者姓名、读者性别等。
②读者基本信息的查问、改正,包含读者借书证编号、读者姓名、读者性别等。
③书本类型标准的拟订、类型信息的输入,包含类型编号、类又名称。
④书本类型信息的查问、改正,包含类型编号、类又名称。
⑤书本库存信息的输入,包含书本编号、书本名称、书本类型、作者姓名、第一版社名称、第一版日期、
登记日期。
⑥书本库存信息的查问,改正,包含书本编号、书本名称、书本类型、作者姓名、第一版社名称、第一版
日期,登记日期等。
⑦借书信息的输入,包含读者借书证编号、书本编号、借书日期。
⑧借书信息的查问、改正,包含借书证编号,读者姓名、书本编号、书本名称、借书日期等。
⑨还书信息的输入,包含借书证编号、书本编号、还书日期。
⑩还书信息的查问和改正,包含还书读者借书证编号、读者姓名、书本编号、书本名称、借书日期、
还书日期等。
⑾超期还书罚款输入,还书高出限期包含高出限期还书的读者借书证号,书本编号,罚款金额。
⑿超期还书罚款查问,删除,包含读者借书证编号、读者姓名、书本编号、书本名称,罚款金额等
⒀管理员管理:
包含创立读者用户信息、删除读者用户信息、增添图书信息、删除图书信息。
⒁超级管理员管理:
包含创立管理员用户信息、删除管理员用户信息、创立读者用户信息、删除读者
用户信息、增添图书信息、删除图书信息。
(2)事物需求
①在读者信息管理部分,要求:
a.能够查问读者信息。
b.能够对读者信息进行增添及删除的操作。
②在书本信息管理部分,要求:
a.能够阅读书本信息
b.能够对书本信息进行保护,包含增添及删除的操作。
③在借阅信息管理部分,要求:
。
a.能够阅读借阅信息。
b.能够对借阅信息进行保护操作。
④在送还信息管理部分,要求:
a.能够阅读送还信息
b.对送还信息可改正保护操作
⑤在管理者信息管理部分,要求:
a.显示目前数据库中管理者状况。
b.对管理者信息保护操作。
⑥在罚款信息管理部分,要求:
a.能够阅读罚款信息
b.对罚款信息能够更新
关系模式
书本类型(类型编号,类又名)
(2)读者(借书证编号,读者姓名,读者性别,读者种类,登记期间,可借书数,已借书数,逾期未还书数)
(3)管理员(管理员编号,管理员姓名,管理员密码,管理员权限)
(4)超级管理员(管理员编号,管理员姓名,管理员密码,管理员权限)
(5)书本(书本编号,书本名称,书本类型,书本作者,第一版社名称,第一版日期,登记日期)
(6)借阅(借书证编号,书本编号,读者借书时间)
(7)还书(借书证编号,书本编号,读者还书时间)
(8)罚款(借书证编号,读者姓名,借书证编号,书本编号,读者借书时间)
纲要设计
(1)实体图及E-R图
依据1)所要实现的功能设计,可能成立它们之间的关系,从而实现逻辑构造功能。
图书管理信息系统能够区分的实体有:
书本类型信息实体、读者信息实体、书本信息实体、借阅记录
信息实体,送还记录信息实体。
用E-R图一一描绘这些实体。
a.读者信息实体图:
逾期未还书数可借书数已借书数
登记时间
读者借书
读者
证编号
读者种类
读者姓名
e
读者性别
图2-1读者实体及其属性图
b.管理员实体图
管理员
管理员编管理员权
号限
管理员姓管理员密
名码
图2-2管理员实体及其属性图
c..书本实体图:
收录时间
书本编号
书本名称
d.借阅记录信息实体图:
读者借书证
编号
能否被借
第一版社
第一版时间
书本
书本作者
书本类型编号
图2-3书本实体及其属性图
借阅记录信息
借阅时间
隔
书本类型
编号
图2-4借阅记录信息实体及其属性图
e.送还记录信息实体图:
送还记录信息
送还时间
读者借书证
编号书本类型
编号
图2-5记录信息实体及其属性图
罚款信息实体图:
罚款金额书本名称
读者姓名
罚款信息实体
实体
借阅时间
读者借书
证编号书本类型
编号
图2-6罚款信息实体及其属性图
g.总的信息实体E-R图
n
还书信息
n
管理
m
m
n
送还
书本
信息登记
m
1
n
书类型
m
借阅
n
读者
m
借阅信息
n
罚款
罚款信息
n
n
管理员
出具罚款单
1
m
管理
1
n
1
1
超级管理员
创立
创立
图2-7总的信息实体E-R图
逻辑设计
表3-1book_sytle书本类型信息表
表中列名
数据种类
能否为空
说明
类型编号
varchar
notnull(主键)
种类编号
类又名称
Varchar
notnull
种类名称
表3-2system_readers读者信息表格
表中列名
数据种类
能否为空
说明
读者借书证号
varchar
notnull(主键)
读者借书证号
读者姓名
varchar
notnull
读者姓名
读者性别
varchar
notnull
读者性别
读者种类
varchar
notnull
读者种类
可借书数
datetime
null
登记日期
书名
int
null
可借书数
已借书数
int
null
已借书数
逾期未还书数
int
null
逾期未还书数
表3-3
system_book书本信息表
表中列名
数据种类
能否为空
说明
书本编号
Varchar
Notnull(主键)
书本编号
书本名称
Varchar
Notnull
书本名称
续表3-3
书本类型
Varchar
Notnull
书本类型
书本作者
Varchar
Notnull
书本作者
书本第一版社
Varchar
Null
第一版社名称
第一版时间
Datetime
Null
第一版日期
收录时间
Datetime
Null
登记日期
能否被借
Bit
NotNull
能否被借出
表3-4borrow_record借阅记录信息表
表中列名
数据种类
能否为空
说明
读者借书证号
Varchar
Notnull(外主键)
读者借阅证编号
书本类型编号
Varchar
Notnull(外主键)
书本编号
借阅时间
Datetime
Notnull
读者借书时间
表3-5return_record借阅记录信息表
表中列名
数据种类
能否为空
说明
读者姓名
Varchar
Notnull(外主键)
读者借阅证编号
读者借书证号
Varchar
Notnull(外主键)
书本编号
送还时间
datetime
Notnull
读者还书时间
表3-6reader_fee罚款记录信息表
表中列名数据种类能否为空说明
读者借书证号
varchar
Notnull
读者借书证编号
读者姓名
varchar
Notnull
读者姓名
书本类型编号
varchar
Notnull(外主键)
书本编号
书本名称
varchar
Notnull
书本名称
罚款金额
Smallmoney
NotNull
罚款金额
借阅时间
datetime
NotNull
借阅时间
表3-7system_Administrator管理员信息表
表中列名
数据种类
能否为空
说明
管理员编号
varchar
notnull(主键)
管理员编号
管理员姓名
varchar
notnull
管理员姓名
管理员密码
varchar
notnull
管理员密码
管理员权限
varchar
notnull
管理员权限
表3-8system_Super_Administrator管理员信息表
表中列名
数据种类
能否为空
说明
管理员编号
varchar
notnull(主键)
管理员编号
超级管理员姓名
varchar
notnull
管理员姓名
超级管理员密码
varchar
notnull
管理员密码
超级管理员
varchar
notnull
管理员权限
4关系图:
图2-8数据库存表关系图
物理设计
数据库物理设计阶段的任务是依据详细计算机系统(DBMS和硬件等)的特色,为给定的数据库模型确立
合理的储存构造和存取方法。
所谓的“合理”主要有两个含义:
一个是要使设计出的物理数据库占用较少的
储存空间,另一个对数据库的操作拥有尽可能高的速度。
主要表此刻后者。
(1)成立索引:
①对book_style表在bookstyleno属性列上成立齐集索引,在bookstyle属性列上成立非齐集索引。
②对System_book表在bookid上成立齐集索引,在bookname、bookstyleno、boookauther、bookpub
上成立非齐集索引。
③对return_record表在bookid上成立齐集索引,在readerid上成立非齐集索引
④对reader_fee表在bookid上成立齐集索引,在readerid上成立非齐集索引。
⑤对system_reader表在readerid列上成立齐集索引
⑥对boorow_record表在bookid上成立齐集所以,在readerid上成立非齐集索引
⑦对system_Administrator表在administratorid列上成立齐集索引。
⑧对system_Super_Administrator表在superadministratorid上成立齐集索引。
(2)储存构造
确立数据库的储存构造主要指确立数据的寄存地点和储存构造,包含确立关系、索引、日记、备份等的储存安排及储存构造,以及确立系统储存参数的配置。
将日记文件和数据库对象(表、索引等)分别放在不同的磁盘能够改良系统的性能。
所以系统将日记文件和数据文件寄存在不同磁盘上。
数据库成立
(1)创立数据库
USEmaster
GO
CREATEDATABASElibrarysystem
ON
(NAME=librarysystem,
FILENAME='d:
\librarysystem.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5)
LOGON
(NAME='library',
FILENAME='e:
\librarysystem.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB)
GO
(2)书本类型表成立
createtablebook_style
(
类型编号varchar(30)primarykey,
类又名称varchar(30)
)
go
(3)创立书库表
createtablesystem_books
(
书本编号varchar(20)primarykey,
书本名称varchar(30)Notnull,
书本类型编号varchar(30)Notnull,
书本作者varchar(30),
书本第一版社varchar(30),
第一版时间datetime,
书本收录时间datetime,
能否被借bit,
foreignkey(书本类型编号)referencesbook_style(书本类型编号),
)
go
(4)读者信息表成立
createtablesystem_readers
(读者借书证号varchar(9)primarykey,
读者姓名varchar(9)notnull,
读者性别varchar
(2)notnull,
读者种类varchar(10),
登记时间datetime,
可借书数int,
已借书数int,
逾期未还书数int
)
go
(5)借书记录表成立
createtableborrow_record
(书本编号varchar(20)primarykey,
读者借书证号varchar(9),
借阅时间datetime,
foreignkey(书本编号)referencessystem_books(书本编号),
foreignkey(读者借书证号)referencessystem_readers(读者借书证号),
)
go
(6)还书记录表成立
createtablereturn_record
(书本编号varchar(20)primarykey,
读者借书证号varchar(9),
送还时间datetime,
foreignkey(书本编号)referencessystem_books(书本编号),
foreignkey(读者借书证号)referencessystem_readers(读者借书证号)
)
go
(7)罚款单表成立*/
createtablereader_fee
(读者借书证号varchar(9)notnull,
读者姓名varchar(9)notnull,
书本编号varchar(20)primarykey,
书本名称varchar(30)Notnull,
罚款金额smallmoney,
借书时间datetime,
foreignkey(书本编号)referencessystem_books(书本编号),
foreignkey(读者借书证号)referencessystem_readers(读者借书证号)
)
go
--(8)管理员表成立
createtablesystem_Administrator
(管理员编号varchar(9)primarykey,
管理员姓名varchar(9)notnull,
管理员密码varchar
(2)notnull,
管理权限varchar(10)
)
go
--(9)超级管理员表成立
createtablesystem_super_Administrator
(超级管理员编号varchar(9)primarykey,超级管理员姓名varchar(9)notnull,超级管理员密码varchar
(2)notnull,
超级管理员权限varchar(10)
)
go
索引的创立
uselibrarysystem
go
createindex
bookstyle_index_style
on
book_style(书本类型)
createindex
borrow_record_index_readerid
on
borrow_record(读者借书证号)
createindex
reader_fee_index_readerid
on
reader_fee(读者借书证号)
createindex
return_record_index_readerid
on
return_record(读者借书证号)
createindex
system_books_index_bookname
onsystem_books(书本名称)
createindex
system_books_index_styleno
on
system_books(书本类型编号)
createindex
system_books_index_bookauthor
on
system_books(书本作者)
数据初始化
(1)将书本类型加入表book_style中
insertintobook_style(insertintobook_style(insertintobook_style(insertintobook_style(insertintobook_style(insertintobook_style(insertintobook_style(
书本类型编号,书本类型)values('1','人文艺术类')
书本类型编号,书本类型)values('2','自然科学类')
书本类型编号,书本类型)values('3','社会科学类')
书本类型编号,书本类型)values('4','图片艺术类')
书本类型编号,书本类型)values('5','政治经济类')
书本类型编号,书本类型)values('6','工程技术类')
书本类型编号,书本类型)values('7','语言技术类')
(2)将已有的图书加入system_books表中(定义同样的作者第一版社的书本编号不同样)
insertintosystem_books(书本编号,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,
isborrowed)
values('00125415152','计算机构成原理','6','王爱英','清华大学第一版社','2001-01-03','2003-11-15','1');
insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,
isborrowed)
values('00125415153','计算机构成原理','6','王爱英','清华大学第一版社','2001-01-03','2003-11-15','1');
insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,
isborrowed)
values('00456456','数据库原理','6','萨师煊','高等教育第一版社','2007-07-02','2007-09-15','1');
insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('12215121','C程序设计','6','谭浩强','清华大学第一版社','2002-04-02','2004-03-14','1');
insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('9787308020558','计算机系统构造','6','石教英','浙江大学第一版社','2004-10-03','2006-11-15','1');
insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('45456141414','数据构造(C语言版)','6','吴伟民,严蔚敏','清华大学第一版社','2002-06-28','2004-01-21','1');
insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('5455515','中华历史
5000年','1','吴强','北京大学第一版社
','2005-04-03','2006-05-15','1');
insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('015115','古代埃及','3','赵文华','北京大学第一版社','2001-02-02','2002-09-15','1');
insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('1514514','日本文化','1','吴小鹏','北京大学第一版社','2002-04-02','2004-03-14','1');
insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isb