SQL程序设计图书管理系统.docx
- 文档编号:13040563
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:44
- 大小:99.65KB
SQL程序设计图书管理系统.docx
《SQL程序设计图书管理系统.docx》由会员分享,可在线阅读,更多相关《SQL程序设计图书管理系统.docx(44页珍藏版)》请在冰点文库上搜索。
SQL程序设计图书管理系统
SQL程序设计—图书管理系统
学院:
计算机与信息工程学院
专业:
计算机科学与技术
班级:
2班
学号:
201110910521
姓名:
张亮亮
日期:
2013-12-3
分数等级:
中
1.开发背景
数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。
对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。
随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的树木逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,通过使用PowerBuilder创建的图书管理系统可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。
2.需求分析
2.1系统目标
图书管理信息系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强.数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
系统开发的总体任务是实现各种信息的系统化,规范化和自动化。
2.2需求定义
图书馆管理系统开发。
系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。
本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。
本系统结构分为读者类别管理、读者档案管理、图书类型管理、图书档案管理以及图书流程管理,读者管理可以浏览读者的信息,可以对读者信息进行维护。
图书管理可以浏览图书的信息,可以对图书信息进行维护。
借阅管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。
本系统主要解决的问题是利用关键字对数据库进行查询。
其系统的功能模块图如下:
图2-1系统功能模块图
针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:
读者信息
属性:
读者学号,读者姓名,读者性别,联系电话,所在院系,生效日期,失效日期,违章状况,累计借书
主键:
读者学号
书籍信息
属性:
ISBN,书名,作者,出版社,出版日期,简介
主键:
ISBN
管理员信息
属性:
工作号,姓名,性别,电话,家庭住址
主键:
工作号
2.3数据流程
2.3.1读者
作为学生对图书管理系统的要求有:
1.能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。
2.能够方便地借阅图书、续借图书、归还图书。
3.能够查询自己的基本资料、借阅图书情况。
4.能够熟悉图书管理系统的使用。
读者进入系统工作的流程图为:
2-1进入系统工作的流程图
2.3.2图书管理员
作为图书管理员,他们对图书管理系统的要求有:
1.能方便的对图书进行录入登记,注销陈旧的书籍。
2.能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。
3.能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。
图书管理员工作的流程图为:
2-2图书管理员工作流程图
3.功能描述
系统功能分析是在系统开发的总体任务的基础上完成。
本系统需要完成的功能主要有5部分:
(1)图书基本情况的录入,修改,删除等基本操作。
.书籍类别标准的制定,类别信息的输入,包括类别编号,类别名称,关键词,备注信息等。
.书籍类别信息的查询,修改,包括类别编号,类别名称,关键词,备注信息等。
3.书籍信息的输入,包括书籍编号,书籍名称,书籍类别,作者名称,出版社名称,出版日期,书籍
页数,关键词,登记日期,备注信息等。
(2)办理借书卡模块。
.新生办理借书证。
.丢失办理借书证。
(3)实现借书功能。
.借书信息的输入,包括借书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
.借书信息的查询,修改,包括借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
(4)实现还书功能。
.还书信息的输入,包括还书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
.还书信息的查询和修改,包括还书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
(5)能方便的对图书进行查询。
对超期的情况能自动给出提示信息
4.概念模
型设计
各部分E-R图如下:
(1)读者信息类别实体E-R图
(2)书籍信息类别实体E-R图
5.逻辑模型设计和优化
从理论‘E-R模型’到理论‘关系模型’的整理转换,通过E-R模型到关系模型的转化,可以得到如下关系模式:
借阅关系
属性:
工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注。
主键:
工作号,读者学号,ISBN
管理员_书籍关系
属性:
工作号,ISBN,添加时间,是否在馆
主键:
工作号,ISBN
管理员_学生关系
属性:
工作号,读者学号,确认借还
主键:
工作号,读者学号
通过由概念模型设计得到CDM图powerdesigner转换成对应的PDM图:
PDM图
5.1图书信息表
列名
数据类型
可否为空
ISBN
varchar
否
书名
varchar
否
作者
varchar
否
出版社
varchar
是
出版日期
datetime
是
简介
varchar
是
5.2读者信息表
列名
数据类型
可否为空
读者学号
varchar
否
读者姓名
varchar
否
读者性别
varchar
否
联系电话
varchar
是
所在院系
varchar
否
5.3管理员信息表
列名
数据类型
可否为空
工作号
varchar
否
姓名
varchar
否
性别
varchar
否
电话
varchar
是
家庭住址
varchar
是
5.4借阅表
列名
数据类型
可否为空
工作号
char
否
ISBN
char
否
读者学号
char
否
借阅日期
datetime
否
还书日期
datetime
否
是否续借
char
否
5.5管理员_书籍
列名
数据类型
可否为空
工作号
char
否
ISBN
char
否
添加时间
datatime
是
是否在馆
char
是
5.6管理员_学生
列名
数据类型
可否为空
工作号
char
否
读者学号
char
否
借还确认
char
否
6.物理设计和实施
从理论‘关系模型’到实现\实施‘数据库建立’,物理文件的安排和建立索引
6.1建立索引
为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项:
(1)读者信息(读者学号)
(2)书籍信息(ISBN)
(3)管理员信息(工作号)
(4)借阅(工作号,读者学号,ISBN)
(5)管理员_书籍(工作号,ISBN)
(6)管理员_学生(工作号,读者学号)
6.2SQL语句
如下所示:
/*==============================================================*/
/*Table:
书籍信息*/
/*==============================================================*/
createtable书籍信息
(
ISBNchar(20)notnull,
书名char(20),
作者char(10),
出版社char(15),
出版日期char(30),
简介char(160),
constraintPK_书籍信息primarykey(ISBN)
);
/*==============================================================*/
/*Index:
书籍信息_PK*/
/*==============================================================*/
createuniqueindex书籍信息_PKon书籍信息(
ISBNASC
);
/*==============================================================*/
/*Table:
投诉*/
/*==============================================================*/
createtable投诉
(
工作号char(10)notnull,
学号char(10)notnull,
投书意见char(100),
投诉日期char(30),
受诉日期char(30),
constraintPK_投诉primarykey(工作号,学号)
);
/*==============================================================*/
/*Index:
投诉_PK*/
/*==============================================================*/
createuniqueindex投诉_PKon投诉(
工作号ASC,
学号ASC
);
/*==============================================================*/
/*Index:
投诉_FK*/
/*==============================================================*/
createindex投诉_FKon投诉(
工作号ASC
);
/*==============================================================*/
/*Index:
投诉2_FK*/
/*==============================================================*/
createindex投诉2_FKon投诉(
学号ASC
);
/*==============================================================*/
/*Table:
登记*/
/*==============================================================*/
createtable登记
(
工作号char(10)notnull,
学号char(10)notnull,
ISBNchar(20)notnull,
证书日期char(30)notnull,
还书日期char(30)notnull,
违章状况char(160),
累计借书char(160),
备注char(160),
constraintPK_登记primarykey(工作号,学号,ISBN)
);
/*==============================================================*/
/*Index:
登记_PK*/
/*==============================================================*/
createuniqueindex登记_PKon登记(
工作号ASC,
学号ASC,
ISBNASC
);
/*==============================================================*/
/*Index:
登记_FK*/
/*==============================================================*/
createindex登记_FKon登记(
工作号ASC
);
/*==============================================================*/
/*Index:
登记2_FK*/
/*==============================================================*/
createindex登记2_FKon登记(
学号ASC
);
/*==============================================================*/
/*Index:
登记3_FK*/
/*==============================================================*/
createindex登记3_FKon登记(
ISBNASC
);
/*==============================================================*/
/*Table:
管理员信息*/
/*==============================================================*/
createtable管理员信息
(
工作号char(10)notnull,
姓名char(10),
性别char(5),
电话char(15),
所在院系char(25),
constraintPK_管理员信息primarykey(工作号)
);
/*==============================================================*/
/*Index:
管理员信息_PK*/
/*==============================================================*/
createuniqueindex管理员信息_PKon管理员信息(
工作号ASC
);
/*==============================================================*/
/*Table:
读者信息*/
/*==============================================================*/
createtable读者信息
(
学号char(10)notnull,
姓名char(10),
性别char(5),
电话char(15),
所在院系char(25),
constraintPK_读者信息primarykey(学号)
);
/*==============================================================*/
/*Index:
读者信息_PK*/
/*==============================================================*/
createuniqueindex读者信息_PKon读者信息(
学号ASC
);
7.主要数据操纵语句
7.1管理员操作
(1)注册(register)
INSERTINTO管理员(工作号,姓名,性别,电话,家庭住址,备注)
VALUES(#工作号,#姓名,#性别,#电话,#家庭住址,#备注)
说明:
在登记操作后,管理员得到一个唯一的工作号,可以根据这个工作号采查询和修改数据。
(2)注销(unregister)
DELETE
FROMProvider
WHERE(工作号=#工作号);
(3)修改个人信息(update)
UPdate管理员
Set(工作号=#工作号,姓名=#姓名,性别=#性别,电话=#电话,家庭住址=#家庭住址)
WHERE(工作号=#工作号)
(4)增加书籍(addbooks)
INSERTINTO图书(ISBN,书名,作者,出版社,出版日期,简介,)
VALUES(#ISBN,#书名,#作者,#出版社,#出版日期,#简介,#备注)INSERTINTO
管理员_书籍表(工作号,ISBN,添加时间,是否在馆)
VALUES(#工作号,#ISBN,#添加时间,#是否在馆)
(5)删除书籍(deletebooks)
DELETE图书
WHERE(ISBN=#ISBN)
(6)修改书籍(updatebooks)
UPDATE图书(书名=#书名,作者=#作者,出版社=#出版社,出版日期=
#出版日期,简介=#简介)
WHERE(ISBN=#ISBN)
7.2读者操作
(1)注册(register)
INSERTINTO读者(读者学号,读者姓名,读者性别,联系电话,所在系,
生效日期,失效日期,违章状况,累计借书,备注)
VALUES(#读者学号,#读者姓名,#读者性别,#联系电话,#所在系,
#生效日期,#失效日期,#违章状况,#累计借书,#备注)
说明:
在登记操作后,读者得到一个唯一的ID,可以根据这个ID来查询和修改自己的信息。
(2)注销(unregister)
DELETE读者
WHERE(读者学号=#读者学号)
(3)修改个人信息(update)
UPDATE读者Set(读者姓名=#读者姓名,联系电话=#联系电话,
所在系=#所在系,生效日期=#生效日期,失效日期=#失效日期,
违章状况=#违章状况,累计借书=#累计借书,备注=#备注)
WHERE(读者学号=#读者学号)
(4)查询(select)
SELECTISBN,书名,作者,出版社
FROM图书
WHEREISBN=#ISBNOR书名=#书名
7.3管理员对借阅关系的操作
(1)插入读者的信息(insert)
INSERTINTO借阅(工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注)
VALUES(#工作号,#读者学号,#ISBN,#是否续借,#借书日期,
#还书日期,#备注)
(2)更新信息(update)
①更新借出信息
UPDATE借阅
SET(借书日期=#借书日期,还书日期=借书日期+30,是否续借=0)
WHERE(工作号=#工作号AND读者学号=#读者学号ANDISBN=#ISBN)
UPDATE管理员_图书
SET(是否在馆=0)
WHERE(ISBN=#ISBN)
UPDATA学生
SET(累积借书=累积借书+1)
WHERE(读者学号=#读者学号)
INSERTINTO管理员_学生(工作号,读者学号,确认借还,ISBN)
VALUES(#工作号,#读者学号,”0”,#ISBN))
②更新续借信息
UPDATE借阅
SET(是否续借=#是否续借)
WHERE(工作号=#工作号AND读者学号=#读者学号ANDISBN=#ISBN)
③更新还书信息
UPDATE管理员_图书
SET(是否在馆=1)
WHERE(ISBN=#ISBN)
UPDATE管理员_学生
SET(确认借还=”1”)
WHERE(工作号=#工作号AND读者学号=#读者学号ANDISBN=#ISBN)
任务1
借书卡表:
CARD(CNO,CNAME,CLASS),其中CNO表示卡号,CNAME表示姓名,CLASS表示班级。
--------------------------------------------------
CNOCNAMECLASS
--------------------------------------------------
C01张三计算机1班
C02李四计算机1班
C03王五计算机2班
--------------------------------------------------
图书表:
BOOKS(BNO,BNAME,AUTHOR,PRICE,QUANTITY),其中BNO表示书号,BNAME表示书名,AUTHOR表示作者,PRICE表示单价,QUANTITY表示库存册数。
---------------------------------------------------------------------
BNOBNAMEAUTHORPRICEQUANTITY
---------------------------------------------------------------------
B01水浒施耐庵305
B02西游记吴承恩202
B03三国演义罗贯中503
B04红楼梦曹雪芹406
---------------------------------------------------------------------
借书记录表:
BORROW(CNO,BNO,RDATE),其中CNO表示借书卡号,BNO表示书号,RDATE表示还书日期。
-----------------------------------------------
CNOBNORDATE
-----------------------------------------------
C01B012012-12-1
C01B042012-12-5
C02B022012-12-12
C02B032012-12-4
C03B012012-12-1
C03B022012-12-15
C03B032012-12-1
C03B042012-12-6
-------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 程序设计 图书 管理 系统