资源描述
安徽省巢湖学院计算机和信息工程 学院
课程设计汇报
课程名称 《数据库课程设计》
课题名称 图书管理系统
专 业 计算机科学和技术
姓 名 欧佳佳
学 号 10012061
班 级 10计本1班
联络方法
指导老师 王宏卫
摘 要
数据库原理及应用课程设计是软件工程专业集中实践性步骤之一,是学习完《数据库原理及应用》课程后进行一次全方面综合练习。其目标在于加深对数据库基础理论和基础知识了解,掌握使用数据库进行软件设计基础方法,提升利用数据库处理实际问题能力,最终实现对于给定应用环境,结构最优数据库模式,建立数据库及其应用系统,使之能够有效地存放数据,满足多种用户应用需求(信息要求和处理要求)。
数据库及其应用系统是含有管理功效计算机系统,而数据库原理及应用课程设计在开发应用程序中至关关键,合理数据表结构不尽有利于软件快速开发,而且有利于以后对软件维护。
现在,中国科技水平高速发展,计算机作为今天使用最广现代化工具已深入到各个领域,而且正在成为未来社会——信息社会关键支柱。在这么大背景下,现代图书馆管理方法,资源建设等方面全部发生了重大改变,这种改变表现在图书馆工作,管理和服务平台发生改变,图书馆不再是传统手工操作,人工管理,而是全方面实施计算机管理。
一个简单图书管理系统包含图书馆内书籍信息、学校在校学生信息和学生借阅信息。系统在IBMDB2平台上用SQL语言来编写实现。此系统功效分为面向学生和面向管理员两部分,其中学生能够进行借阅、续借、归还和查询书籍等操作,管理员能够完成书籍和学生增加,删除和修改和对学生,借阅、续借、归还确实定。
关键词:SQL语言;数据库设计;图书管理系统
图书馆管理系统设计
一、 需求分析
数据库名:library.mdb
1)数据库内含下列表
admininfo (管理员资料)
board (公告统计)
bookinfo (图书资料)
class (学生班级资料)
classify (图书分类资料)
landinfo (图书借阅登记资料)
libraryinfo (图书馆基础配置统计)
studentinfo (学生资料)
2)数据库表具体设计
admininfo,管理员资料统计表
字段名称
数据类型
说明
长度
id
自动编号
管理员标识号
长整型
adminname
文本
登陆名
10
lpassword
文本
登陆密码
10
logins
数字
登陆次数
长整型
lastlogin
日期/时间
上次登陆时间
\
tiptop
数字
是否最高管理员,是:1,否:0
字节
board,公告资料统计表
字段名称
数据类型
说明
长度
id
自动编号
公告标识号
长整型
content
文本
公告内容
60
admin
数字
发表公告管理员ID
长整型
addtime
日期/时间
公告发表时间,默认:now()
\
bookinfo,图书资料统计
字段名称
数据类型
说明
长度
id
自动编号
图书标识号
长整型
name
文本
图书名
20
classify
数字
图书分类
整型
author
文本
图书作者
20
bookconcern
文本
图书出版社
25
addtime
日期/时间
进馆时间,默认:now()
\
amount
数字
图书数量
整型
remain
数字
剩下数量
整型
loandegree
数字
借出次数
长整型
display
数字
是否显示,是:0,否:1
字节
class,学生班级资料统计
字段名称
数据类型
说明
长度
id
自动编号
班级标识号
长整型
name
文本
班级名
20
classify,图书分类资料
字段名称
数据类型
说明
长度
id
自动编号
分类标识号
长整型
name
文本
分类名
10
landinfo,图书借阅登记资料统计
字段名称
数据类型
说明
长度
id
自动编号
借出图书标识号
长整型
bookid
数字
借出图书标识号
长整型
studentid
数字
借书学生标识号
长整型
landtime
日期/时间
借出时间,默认:Now()
\
returntime
日期/时间
实际还书时间
\
shouldreturntime
日期/时间
应该还书时间
\
hadreturn
数字
标识是否已经归还,是:1,否:0
字节
canreland
数字
续借次数
长整型
libraryinfo,图书馆基础配置统计
字段名称
数据类型
说明
长度
canland
数字
是否可借出图书,是:1,否:0
字节
canlandnum
数字
能够借出图书数量 默认:0
整型
canlanddays
数字
图书能够借阅时间 默认:60天
整型
canreland
数字
能够续借次数 默认:5次
整型
boardreflash
数字
公告刷新时间 默认时间为6000毫秒
长整型
studentinfo,学生资料统计
字段名称
数据类型
说明
长度
id
自动编号
学生标识号
长整型
name
文本
学生名
5
lpassword
文本
学生登陆密码
10
learnid
文本
学生学号
12
class
数字
班级标识号
整型
phone
文本
联络电话
11
lands
数字
借阅次数
长整型
logins
数字
登陆次数
长整型
lastlogin
日期/时间
最终登陆时间
\
islock
数字
是否超时锁定是:1否:0
字节
3)安全性和完整性要求
本程序实现学生和图书馆管理员界面分离模式,同时实现管理员对学生有全方面资料管理功效。有多个图书、学生、系统动态管理功效,如:图书查询、添加、删除、修改和及学生具体资料查询、添加、删除、修改等等多样、动态管理。同时能够放权给非最高级管理员查询、添加、删除、修改能力,实现密码修改。
图书管理需要针对书籍、读者、职员和查询和借阅信息进行有效管理。此系统在功效上要实现信息查询、借阅图书(包含借阅日期、归还日期和借阅时间)等功效。
步骤图:
读者情况
图书情况
图书信息
P2
借书
管理
P3
安全
管理
D3 借书统计
D2 读者统计
图书
读者
管理员
P1
内部
管理
D1 图书统计
图书
读者
管理员
情况
读者信息
借还书要求
二、E-R图模型
预约期限
图书信息
图书编号
书名
类别
库存量
借阅信息
管理
借阅人
职员
借书时间
图书编号
姓名
学号
编号
姓名
存放位置
图书编号
归还时间
m
n
m
n
借阅书籍
图书编号
书名
归还书籍
图书编号
书名
n
n
图书编号
三、关系模式(带下划线为主码,带波浪线为外码)
图书信息(图书编号,书名,类别,库存)
借阅信息(借书时间,归还时间,图书编号,)
借阅人(图书编码,姓名,学号)
借阅书籍(图书编号,书名)
归还书籍(图书编号,书名)
管理信息(图书编号,存放位置)
职员(职员编号,姓名)
四、函数依靠
T_1={图书编号→书名,书名→类别,图书编号→类别}(传输依靠)
T_2={(借书时间,归还时间)→图书编号,图书编号→借书时间,图书编号→归还时间}(完全函数依靠)
T_3={学号→姓名,(姓名,学号)→图书编号,学号→图书编号}(部分函数依靠)
T_4={图书编号→存放位置}
T_5={职员编号→姓名}(非平凡函数依靠)
五、Sql语句,建立数据库和表
(1)、建立数据库
CREATE DATABASE LIBER
ON
PRIMARY
( NAME = 'liber_data',
FILENAME = 'e:\sql\liber\liber_data.mdf',
SIZE = 20MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10%
),
( NAME = 'liber_data1',
FILENAME = 'e:\sql\liber\liber_data.ndf',
SIZE = 20MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10%
)
LOG ON
( NAME = 'liber_log',
FILENAME = 'e:\sql\liber\liber_data.ldf',
SIZE = 50MB,
MAXSIZE = 100MB,
FILEGROWTH = 10MB
)
GO
(2)建表
1、 书籍表
create table 书籍(
图书编号 char(10) primary key,
书名 char(15),
作者 char(10),
出版社编号 char(10),
价格 char(5),
出版日期 char(10),
)
2、 出版社表
create table 出版社(
出版社编号 char(10) primary key,
出版社名称 char(10),
地址 char(10),
电话 char(15),
)
3、 客库户信息表
create table 用户信息(
用户编号 char(10) primary key,
姓名 char(10),
性别 char(5),
电话 char(15),
身份证号 char(20),
会员 char(5),
积分 char(10),
)
4、 书籍采购表
create table 采购信息(
图书编号 char(10) primary key,
单价 char(5),
厂家 char(10),
日期 char(15),
采购员 char(5),
)
5、 入库表
create table 销售信息(
图书编号 char(10) primary key,
售价 char(5),
销售数量 char(5),
销售日期 char(10),
单价 char(5),
销售员 char(5),
)
6、 销售表
create table 工作人员(
工作编号 char(10) primary key,
姓名 char(10),
性别 char(5),
工作类型 char(5),
)
7、 工作人员表
create table 工作人员(
工作编号 char(10) primary key,
姓名 char(10),
性别 char(5),
工作类型 char(5),
)
8、 供货商信息表
create table 供货商(
供货编号 char(10)primary key,
供货商 char(5),
地址 char(5),
联络电话 char(10),
)
三、插入数据
1、对书籍表插入书籍
insert into 书籍
values('001','《英语》','周凯','01','20','-10-12')
insert into 书籍
values('002','《数学》','邢星','02','27','-09-01')
insert into 书籍
values('003','《语文》','王博轩','03','32','-08-27')
insert into 书籍
values('004','《物理》','胡森','04','25','-12-25')
insert into 书籍
values('005','《化学》','史佩玉','05','39','-10-01')
2、对出版社表插入
insert into 出版社
values('01','长江出版社','武汉','12345678')
insert into 出版社
values('02','西南出版社','重庆','12233445')
insert into 出版社
values('03','人民出版社','北京','11223344')
insert into 出版社
values('04','西北出版社','西安','87654321')
insert into 出版社
values('05','大众出版社','郑州','88776655')
3、对用户信息表插入
insert into 用户信息
values('1001','周特','男','6923','','是','108')
insert into 用户信息
values('1002','刘一','女','64466611','','是','120')
insert into 用户信息
values('1003','马池','男','67324613','','否','0')
insert into 用户信息
values('1004','武乐','女','69272314','','否','0')
insert into 用户信息
values('1005','邢泽','男','69260038','','是','60')
4、 对采购表插入
insert into 采购信息
values('001','20','星火','-02-27','马特')
insert into 采购信息
values('002','27','速递','-03-21','张弛')
insert into 采购信息
values('003','32','盛达','-04-10','马特')
insert into 采购信息
values('004','25','捷运','-05-06','唐唐')
insert into 采购信息
values('005','39','书城','-06-06','唐唐')
5、 对入库表插入
insert into 入库表
values('101','001','20','-02-27','马特','星火','270')
insert into 入库表
values('102','002','27','-03-21','张弛','速递','300')
insert into 入库表
values('103','003','32','-04-10','马特','盛达','350')
insert into 入库表
values('104','004','25','-05-06','唐唐','捷运','280')
insert into 入库表
values('105','005','39','-06-06','唐唐','书城','390')
6、 对销售部表插入
insert into 销售信息
values('001','25','200','-07-21','20','李珀')
insert into 销售信息
values('002','30','270','-07-22','27','周浔')
insert into 销售信息
values('003','37','300','-07-21','32','李珀')
insert into 销售信息
values('004','31','180','-08-01','25','周浔')
insert into 销售信息
values('005','45','90','-08-05','39','周浔')
7、 对工作人员表插入
insert into 工作人员
values('1','马特','男','采购')
insert into 工作人员
values('2','张弛','男','采购')
insert into 工作人员
values('3','唐唐','女','采购')
insert into 工作人员
values('4','李珀','男','销售')
insert into 工作人员
values('5','周浔','女','销售')
8、 对供货商信息表插入
insert into 工作人员
values('1001','星火','武汉','13077')
insert into 工作人员
values('1002','速递','重庆','69000')
insert into 工作人员
values('1003','盛达','南宁','82456')
insert into 工作人员
values('1004','捷运','南京','62817')
insert into 工作人员
values('1005','书城','汉口','57795')
六、表修改
(1)、插入
INSERT INTO 图书信息
VALUES('00001','计算机专业英语','计算机类','10')
GO
INSERT INTO 图书信息
VALUES('00002','SQL Server ','计算机类','7')
GO
INSERT INTO 图书信息
VALUES('00003','C语言程序设计','计算机类','5')
GO
INSERT INTO 图书信息
VALUES('00004','钢铁是怎样炼成','文学类','7')
GO
INSERT INTO 图书信息
VALUES('00005','红和黑','文学类','4')
GO
INSERT INTO 图书信息
VALUES('00006','飞鸟集','文学类','7')
GO
INSERT INTO 图书信息
VALUES('00007','熟读唐诗三百首','文学类','6')
GO
INSERT INTO 图书信息
VALUES('00008','市场营销','经济学类','8')
GO
INSERT INTO 图书信息
VALUES('00009','商务英语','语言类','9')
GO
INSERT INTO 图书信息
VALUES('00010','经济法','经济学类','5')
GO
INSERT INTO 借阅信息
VALUES('-3-4','-4-1','00001')
GO
INSERT INTO 借阅信息
VALUES('-4-5','-5-3','00004')
GO
INSERT INTO 借阅信息
VALUES('-2-15','-3-6','00010')
GO
INSERT INTO 借阅信息
VALUES('-5-4','-5-24','00005')
GO
INSERT INTO 借阅信息
VALUES('-3-7','-4-4','00003')
GO
INSERT INTO 借阅信息
VALUES('-1-8','-2-1','00003')
GO
INSERT INTO 管理信息
VALUES('00001','三楼')
GO
INSERT INTO 管理信息
VALUES('00002','三楼')
GO
INSERT INTO 管理信息
VALUES('00003','三楼')
GO
INSERT INTO 管理信息
VALUES('00004','一楼')
GO
INSERT INTO 管理信息
VALUES('00005','一楼')
GO
INSERT INTO 管理信息
VALUES('00006','一楼')
GO
INSERT INTO 管理信息
VALUES('00007','一楼')
GO
INSERT INTO 管理信息
VALUES('00008','二楼')
GO
INSERT INTO 管理信息
VALUES('00009','一楼')
GO
INSERT INTO 管理信息
VALUES('00010','二楼')
GO
INSERT INTO 职员
VALUES('11311','张晓')
GO
INSERT INTO 职员
VALUES('11312','李晓琴')
GO
INSERT INTO 职员
VALUES('11313','周晓玉')
GO
INSERT INTO 职员
VALUES('11314','王梅')
GO
INSERT INTO 借阅人
VALUES('00001','张丽','40901110')
GO
INSERT INTO 借阅人
VALUES('00003','李秋','40902113')
GO
INSERT INTO 借阅人
VALUES('00003','王文元','40903322')
GO
INSERT INTO 借阅人
VALUES('00004','朱梅','40904103')
GO
INSERT INTO 借阅人
VALUES('00005','周柳','40900115')
GO
INSERT INTO 借阅人
VALUES('00010','钱复','40900709')
GO
INSERT INTO 借阅书籍
VALUES('00001','计算机专业英语')
GO
INSERT INTO 借阅书籍
VALUES('00004','钢铁是怎样炼成')
GO
INSERT INTO 借阅书籍
VALUES('00010','经济法')
GO
INSERT INTO 借阅书籍
VALUES('00005','红和黑')
GO
INSERT INTO 借阅书籍
VALUES('00003','C语言程序设计')
GO
INSERT INTO 借阅书籍
VALUES('00003','C语言程序设计')
GO
INSERT INTO 归还书籍
VALUES('00001','计算机专业英语')
GO
INSERT INTO 归还书籍
VALUES('00004','钢铁是怎样炼成')
GO
INSERT INTO 归还书籍
VALUES('00010','经济法')
GO
INSERT INTO 归还书籍
VALUES('00005','红和黑')
GO
INSERT INTO 归还书籍
VALUES('00003','C语言程序设计')
GO
INSERT INTO 归还书籍
VALUES('00003','C语言程序设计')
GO
(2)、修改数据
UPDATE 职员
SET 姓名='李小琴'
WHERE 职员编号='11312';
(3)、删除数据
DELETE
FROM 职员
WHERE 姓名='周晓玉';
七、查询功效
(1)、能依据图书编号或图书名称查询此书在图书馆中是否存在和此书书目类别、存在位置、数量等等。
SELECT 类别,存放位置,库存
FROM 图书信息,管理信息
WHERE 图书信息.图书编号=管理信息.图书编号 AND 图书信息.图书编号='00010'
GO(2)、借阅信息查询。输入借阅人编号后,能查出该借阅人全部信息。
SELECT *
FROM 借阅人
WHERE 图书编号='00003'
GO
(3)、连接查询
SELECT 图书信息.*
FROM 图书信息,管理信息,借阅信息
WHERE 图书信息.图书编号=管理信息.图书编号 AND (GETDATE()-借书时间>=30)
GO
(4)、分组查询
SELECT 类别,书名
FROM 图书信息
GROUP BY 类别,书名;
(5)、排序查询
SELECT 书名,图书编号
FROM 借阅书籍
ORDER BY 图书编号
参考文件
[1] 龚沛曾,袁科萍,杨志强.数据库技术和应用[M].北京:高等教育出版社,
[2]王珊,萨师煊.数据库系统概论(第四版).北京:高等教育出版社,
[3]郑玲利.数据库原理和应用案例教程.北京:清华大学出版社,
[4]钱雪忠,罗海驰,陈国俊.数据库原理及技术课程设计.北京:清华大学出版社,
[5]胡海璐.Visual Basic.NET 控件应用实例.北京:电子工业出版社,
[6]施伯乐,丁宝康,汪卫.数据库系统教程[M].北京:高等教育出版社,
[7] 龚沛曾,杨志强,陆慰明. Visual Basic.NET程序设计教程[M].北京:高等教育出版社,
展开阅读全文