图书管理系统数据库结构说明书

《数据库应用开发项目技术》课程设计

学号:1302012109

姓名:钟威

学院:电气与信息工程学院

专业:计算机科学与技术

指导教师:梁君霞

分数:

2015年6月24 日

目录1.课程设计目的

2.课程设计内容

2.1 课程设计题目及要求

2.2 数据库需求分析

2.2.1 功能分析

2.2.2 数据流图

2.2.3 数据字典

2.3 数据库概念设计

2.3.1 局部E-R图

2.3.2 全局E-R图

2.4 数据库逻辑设计

2.4.1 读者信息表表的逻辑结构

2.4.2 图书信息表的逻辑结构

2.4.3 借书证表的逻辑结构

2.5 数据库物理设计

2.5.1 数据表的创建

2.5.2 表中约束,规则的创建

2.5.3 视图的创建

2.5.4 存储过程的创建

2.5.5 触发器的使用

2.6 数据的测试

2.6.1 数据插入,修改,删除的测试

2.6.2 存储过程的测试

2.6.3 触发器的测试

3.课程设计总结及心得体会

4.参考文献

1.课程设计目的:

数据库应用开发项目设计是数据库系统原理实践环节的及为重要的一部分,其目的是:

(1)培养学生能够应用数据库系统原理在需求分析的基础上对系统进行概念设计,

学会设计局部ER,全局ER图。

(2)培养学生能够应用数据库系统原理在概念设计的基础上应用关系规范化理论

对系统进行逻辑设计,学会在ER图基础上设计出易于查询和操作的合理的规范化关系模型。

(3)培养学生能够应用SQL语言对所设计的规范化关系模型进行物理设计,并且能

够应用视图,存储过程,触发器,游标技术以保证数据库系统的数据完整性,安全性,一致性,保证数据共享和防止数据冲突.

(4) 培养学生理论与实际相结合能力, 培养学生开发创新能力

2.课程设计内容:

2.1 课程设计题目及要求

本文研究的图书管理系统的数据库。计算机主要是借助软件用来存储、更新数据的,并有统计书目的功能。使用管理系统软件,虽然需要投入一定的资金,但同时却可以使处理速度成倍、成十倍的增加,使在固有的时间内能让尽量多的会员办理完手续,增加了处理速度,而且可以减少员工数量,是公司更加精简;

由于计算机是一种高精度的机器,所以使用计算机软件辅助后,出错的几率也就变得非常低了。

2.2 数据库需求分析

2.2.1 功能分析

根据这些需要,本系统需要建立“用户信息”表,“图书借阅”表,“读者信

息”表,“借阅逾期”表,“系统日志”表,“图书信息”表,“日志”表,“预

借”表,“罚款日志”表和“续借信息”表等。

事务需求分析

经过实际考察、咨询和分析,图书管理系统主要应该具有以下功能模块。(1)读者登录界面部分,要求有如下功能:

①可以显示读者信息(包括当前借书情况以及是否有罚款在身等相关

信息);

②图书查询功能;

③借书操作;

④续借操作;

(2)管理员登录界面部分,要求有如下功能:

①新书上架操作(完成新书录入工作);

②图书信息修改操作;

③图书相关统计操作;

④办理借书证操作;

⑤借书证的挂失与解封等操作;

⑥接收还书;

⑦接收罚金

2.2.2 数据流图

“图书管理系统”顶层数据流图:

“图书管理系统”1层数据流图:

加工2“图书管理”的数据流图:

加工4“借书管理”数据流图:

2.2.3 数据字典

数据字典是以数据库中数据基本单元为单位,按一定顺序排列,对其内容作详细说明的数据集。针对图书管理系统得到过程和数据流程分析,设计得到如下的数据项

和数据结构:

图书信息:包括的数据项主要有:编号,书名,主编,出版社,借书日期。

读者信息:包括的数据项主要有:姓名,借书证号,身份,可借书数目,借书限制和已借书数量。

借书证:包括的数据项主要有:借书证号,读者姓名,读者类型,借书时间,借阅图书数量和是否逾期。

管理员:包括的数据项主要有:账号,密码,性别,年龄。

“借书”描述内容

“填写读者信息”描述内容

“借书证”描述内容

2.3 数据库概念设计

2.3.1 局部E-R图

下图实体读者的E-R模型图:

下图是实体书籍的E-R模型图:

2.3.2 全局E-R 图

整个图书管理系统的E-R 模型关系图如下所示:

2.4 数据库逻辑设计

2.4.1 读者信息表的逻辑结构

Reader (Number ,CardID ,ReaderName ,BorrowNumber ,Strichcode ,ReaderTypeID ,Mode ,RegistrationTime ,ValidTime ,Sex ,Dept ,Call )

编号

列名

数据类型

长度

是否允

许为空

默认

描述

1 Number Int 5 否 编号 2

CardID

char

5

借书证号(主键)

3 ReaderName varchar 10 否 读者姓名 4

BorrowNumber

Int

5

已借阅图书数量

5 Strichcode char 5 否 条形码

6 ReaderTypeID char 10 否 读者类型 7

Mode

varchar

10

书证状态

8RegistrationTi

me

varchar 16 否登记日期

9ValidTime varchar 16 否有效期至10Sex Char 2 否性别

11Dept varchar 20 否工作单位12Call varchar 15 否电话2.4.2 图书信息表的逻辑结构

编号列名数据类型长度是否允

许为空默认

描述

1Number Int 5 否编号

2BookID char 5 否图书编号

(主键)3Author varchar 20 否作者

4Slassification

ID

Int 5 否分类号

5BookName char 5 否书名

6Type1char 10 否图书类型7 Extant int 2 是可借数8Qty Int 5 是库存数2.4.3 借书证表的逻辑结构

编号列名数据类型长度是否允

许为空默认

描述

1Number Int 5 否编号

2CardID char 5 否借书证号

(主键)3BorrowNumber Int 5 否已借阅图

书数量4Strichcode char 5 否条形码5ReaderTypeID char 10 否读者类型6Mode varchar 10 否书证状态

varchar 16 否登记日期7RegistrationTi

me

8ValidTime varchar 16 否有效期至9Sex Char 2 否性别

10Dept varchar 20 否工作单位11Call varchar 15 否电话

2.5 数据库物理设计

2.5.1 数据表的创建

用户表的创建:

create table Users

(

u_Name varchar(16) not null,

u_Pass varchar(16) not null,

u_Type char(8),

u_Stopuser char(2)

)

insert into Users values ('cjp','110212','超级用户','否');

insert into Users values ('wlh','881104','普通用户','否');

图书借阅表的创建

create table Borrow

(

Number int, --编号

CardID char(5) not null, --借书证号

ReaderName varchar(10) not null, --读者姓名

BookID varchar(10), --图书编号

BookName varchar(20) not null, --图书名

Author varchar(20) not null, --作者

Publisher varchar(30), --出版社

Price int , --价格

BorrowDate varchar (16) not null, --借书日期

BorrowNumber varchar(2), --借书数量

UserName varchar(10), --操作员

BroTieme varchar(3), --借阅时长

IsOverdue Char(2) --是否超期

--primary key(BookID,CardID)

)

insert into Borrow values('1','C0001','刘星','B0001','网页制作基础','刘备','清华出版社','22','2008-9-12','1','cjp','90','否');

insert into Borrow values('2','C0007','马尔','B0002','C#程序设计','张清','水电工程出版社','45','2008-10-28','1','cjp','90','否');

insert into Borrow values('3','C0001','刘星','B0003','生活常识','李德奇','清华出版社','18','2008-9-22','1','cjp','90','否');

insert into Borrow values('4','C0004','刘莉','B0002','C#程序设计','张清','水电工程出版社','45','2008-9-24','1','cjp','90','否');

insert into Borrow values('5','C0006','吴良华','B0003','生活常识','李德奇','清

华出版社','18','2008-9-12','1','cjp','90','否');

insert into Borrow values('6','C0006','吴良华','B0004','计算机英语','王城','人邮出版社','34','2008-10-11','1','cjp','90','否');

insert into Borrow values('7','C0008','徐明','B0004','计算机英语','王城','人邮出版社','34','2008-11-01','1','cjp','90','否');

insert into Borrow values('8','C0009','李明卫','B0003','生活常识','李德奇','清华出版社','18','2008-9-15','1','cjp','90','否');

insert into Borrow values('9','C000A','杨欣怡','B0002','C#程序设计','张清','水电工程出版社','45','2008-10-7','1','cjp','90','否');

读者信息表的创建:

go

create table Reader

(

Number int not null ,--编号

CardID char(5)primary key, --借书证号

ReaderName varchar(10) not null, --读者姓名

BorrowNumber int, --已借阅图书数量

Strichcode char(5) ,--条形码

ReaderTypeID char(10),--读者类型:1代表教师,2代表学生

Mode varchar(10),--书证状态

RegistrationTime varchar (16),--登记日期

ValidTime varchar (16),--有效期至

Sex char(2), --性别0--男1---女

Dept varchar(20) , --工作单位

Call varchar(15) --电话

)

go

insert into Reader values('1','C0001','刘星',2,'DZ001','教师','有效','2008-9-12','2012-9-11','女','培训部','138********');

insert into Reader values('2','C0004','刘莉',1,'DZ001','教师','有效','2008-9-11','2012-9-11','女','培训部','138********');

insert into Reader values('3','C0006','吴良华',2,'DZ001','职工','有效','2008-9-11','2012-9-11','男','人事处','134********');

insert into Reader values('4','C0007','马尔',1,'DZ001','教师','无效','2004-9-11','2008-9-11','男','财务部','134********');

insert into Reader values('5','C0008','徐明',1,'DZ001','教师','无效','2004-4-11','2008-9-11','男','财务部','134********');

insert into Reader values('6','C0009','李明卫',1,'DZ001','教师','有效','2008-9-11','2012-9-11','男','学生工作处','134********');

insert into Reader values('7','C000A','杨欣怡',1,'DZ001','学生','有效','2008-9-11','2012-9-11','女','学生工作处','');

借阅逾期表的创建:

create table OverdueInfo

(

Number int not null ,

CardID char(5) not null, --借书证号

ReaderName varchar(10) not null, --读者姓名

BookID varchar(10), --图书编号

BookName varchar(20) not null, --图书名

Author varchar(20) not null, --作者

Publisher varchar(30), --出版社

Price int , --价格

BorrowDate varchar (16) not null, --借书日期

BorrowNumber varchar(2), --借书数量

UserName varchar(10), --操作员

SpilthDay int --超期天数

--primary key(BookID,CardID)

)

-- insert into OverdueInfo values('C0001','刘星','B0001','网页制作基础','刘备','清华出版社','22','2008-9-12','1','cjp','0');

--insert into OverdueInfo values('C0007','马尔','B0002','C#程序设计','张清','水电工程出版社','45','2008-10-28','1','cjp','0');

--insert into OverdueInfo values('C0001','刘星','B0003','生活常识','李德奇','清华出版社','18','2008-9-22','1','cjp','0');

--insert into OverdueInfo values('C0004','刘莉','B0002','C#程序设计','张清','水电工程出版社','45','2008-9-24','1','cjp','0');

--insert into OverdueInfo values('C0006','吴良华','B0003','生活常识','李德奇','清华出版社','18','2008-9-12','1','cjp','0');

-- insert into OverdueInfo values('C0006','吴良华','B0004','计算机英语','王城','人邮出版社','34','2008-10-11','1','cjp','0');

--insert into OverdueInfo values('C0008','徐明','B0004','计算机英语','王城','人邮出版社','34','2008-11-01','1','cjp','0');

-- insert into OverdueInfo values('C0009','李明卫','B0003','生活常识','李德奇

','清华出版社','18','2008-9-15','1','cjp','0');

--insert into OverdueInfo values('C000A','杨欣怡','B0002','C#程序设计','张清','水电工程出版社','45','2008-10-7','1','cjp','0');

go

系统日志表的创建:

create table Journal

(

Number int not null, --编号

JournalName varchar(10) not null,--员工姓名

Status varchar(10),--身份

EnterTime varchar (16)--进入时间

primary key(EnterTime)

)

insert into Journal values('1','cjp','超级用户','2008-9-11');

图书信息表的创建:

create table Book

(

Number int not null ,--编号

BookID varchar(10) primary key, --图书编号

Strichcode varchar(10) ,--条形码

SlassificationID varchar(5) ,--分类号

BookName varchar(40) not null, --图书名

Type1 varchar(10) ,--类型

Author varchar(20) not null, --作者

Translator varchar(20),-- 译者

ISBN varchar(17),--ISBN码

Publisher varchar(30), --出版社

Revision varchar(8),--版次

Format varchar(2),--开本

Word int,--字数

Page int ,--页码

Price int , --价格

EnterTime varchar (16) not null,--入馆时间

Qty int ,--库存数

Extant int ,--可借数

Circulate bit --是否流通

)

go

insert into Book values('1','B0011','XS001','000AB','网页制作基础','专业类','刘备','Freax','XORSE','清华出版社','第一版

','16','235780','254','22','2006-01-08','20','19','0');

insert into Book values('2','B0002','XS001','000AB','C#程序设计','专业类','张清','Freac','XORSE','水电工程出版社','第二版

','16','234345','341','45','2006-01-08','50','49','0');

insert into Book values('3','B0003','XS001','100AB','生活常识','其它类','李德奇','','XORSE','清华出版社','第一版

','16','267688','349','18','2001-01-08','40','39','0');

insert into Book values('4','B0004','XS001','100AB','计算机英语','其它类','王城','Freac','XORSE','人邮出版社','第五版

','16','235676','419','34','2006-01-08','40','39','1');

insert into Book values('5','B0005','XS001','000AB','https://www.360docs.net/doc/bc5558642.html,简易教程','专业类','吴海波','Freac','XORSE','人邮出版社','第二版

','16','765474','389','69','2006-01-08','50','49','0');

insert into Book values('6','B0006','XS001','100AB','60岁登上健康之门','其它类','洪韶光','','XORSE','清华出版社','第一版

','16','156577','443','15','2006-01-08','40','39','1');

insert into Book values('7','B0007','XS001','000AB','JA V A程序设计','专业类','碧名','Freac','XORSE','机械工业出版社','第四版

','16','768657','661','25','2006-01-08','20','19','0');

insert into Book values('8','B0008','XS001','000AB','电脑组装与维修','专业类','赵村霞','Freat','XORSE','机械工业出版社','第一版

','16','257677','287','28','2006-01-08','20','19','0');

insert into Book values('9','B0009','XS001','000AB','读者','其它类','刘志明','Freat','XORSE','机械工业出版社','第三版

','16','357651','1187','38','2006-01-08','20','19','0');

insert into Book values('10','B0010','XS002','100AB','电子电工技术','专业类','李德奇','Freat','XORSE','清华出版社','第二版

','16','557677','716','28','2006-01-08','20','19','1');

创建日志表:

create table Backupinfo

(

Number int not null, --编号

lodUser varchar(12) not null, --登录用户

BackupTime varchar(16) not null, --登录时间

Type varchar(10) , --操作类型

BackupWay varchar(100) , --备份路径

)

insert into Backupinfo values ('1','cjp','2008-12-3','数据库还原','C:\');

操作日志表的创建:

create table HandleNote

(

HandleNumber int not null , --操作流水号

HandleType varchar(8) not null, --操作类别

HandleUser varchar(12) not null, --操作用户

BookName varchar(20), --图书名称

BookStrichcode varchar(10) not null, --图书编号

ReaderID char(5) not null,--读者卡号

ReaderName varchar(10), --读者姓名

ReaderSex char(2), --读者性别

BookNumber varchar(2), --借书数量

BookPrice int, --图书价格

HandleDate varchar (16)--操作日期

)

insert into HandleNote values('1','归还操作','cjp','JA V A程序设计

','B0007','C000A','杨欣怡','女','1','25','2006-12-08 08:10')

insert into HandleNote values('2','借阅操作','cjp','C#程序设计','B0002','C0006','吴良华','男','1','25','2008-12-25 08:10')

创建预借表:

create table ReserBroInfo

(

r_Number int , --编号

相关文档
最新文档