图书管理系统数据库设计
目 录
1开发背景 1
2需求分析
21系统目标
22需求定义
23数据流程3功能描述
4概念模型设计41读者与书籍之间的关系(借阅三元关系)
5逻辑模型设计和优化
51图书信息表
52读者信息表
53管理员信息表
55管理员_书籍
56管理员_学生
6物理设计和实施
61建立索引
62 SQL语句
7、主要数据 *** 作语句
71管理员 *** 作
72读者 *** 作
73管理员对借阅关系的 *** 作
8参考文献
1开发背景
数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的树木逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,通过使用PowerBuilder创建的图书管理系统可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。
2需求分析
21系统目标
图书管理信息系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
系统开发的总体任务是实现各种信息的系统化,规范化和自动化。
22需求定义
图书馆管理系统开发。系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。
本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。本系统结构分为读者类别管理、读者档案管理、图书类型管理、图书档案管理以及图书流程管理,读者管理可以浏览读者的信息,可以对读者信息进行维护。图书管理可以浏览图书的信息,可以对图书信息进行维护。借阅管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。本系统主要解决的问题是利用关键字对数据库进行查询。
其系统的功能模块图如下:
图2-1 系统功能模块图
针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:
读者信息
属性:读者学号,读者姓名,读者性别,联系电话,所在院系,生效日期,失效日期,违章状况,累计借书
主键:读者学号
书籍信息
属性:ISBN,书名,作者,出版社,出版日期,简介
主键:ISBN
管理员信息
属性:工作号,姓名,性别,电话,家庭住址
主键:工作号
23数据流程
231 读者
作为学生对图书管理系统的要求有:
1 能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。
2 能够方便地借阅图书、续借图书、归还图书。
3 能够查询自己的基本资料、借阅图书情况。
4 能够熟悉图书管理系统的使用。
读者进入系统工作的流程图为:
2-1进入系统工作的流程图
232 图书管理员
作为图书管理员,他们对图书管理系统的要求有:
1 能方便的对图书进行录入登记,注销陈旧的书籍。
2 能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。
3 能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。
图书管理员工作的流程图为:
2-2图书管理员工作流程图
3功能描述
系统功能分析是在系统开发的总体任务的基础上完成。本系统需要完成的功能主要有5部分:
(1) 图书基本情况的录入,修改,删除等基本 *** 作。
1.书籍类别标准的制定,类别信息的输入,包括类别编号,类别名称,关键词,备注信息等。
2.书籍类别信息的查询,修改,包括类别编号,类别名称,关键词,备注信息等。
3.书籍信息的输入,包括书籍编号,书籍名称,书籍类别,作者名称,出版社名称,出版日期,书籍页数,关键词,登记日期,备注信息等。
(2) 办理借书卡模块。
1.新生办理借书证。
2.丢失办理借书证。
(3) 实现借书功能。
1.借书信息的输入,包括借书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
2.借书信息的查询,修改,包括借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
(4) 实现还书功能。
1.还书信息的输入,包括还书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
2.还书信息的查询和修改,包括还书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
(5) 能方便的对图书进行查询。对超期的情况能自动给出提示信息
4概念模型设计
各部分E-R图如下:
(1)读者信息类别实体E-R图
4-1 读者类别实体E-R图
(2)书籍信息类别实体E-R图
4-2 书籍类别实体E-R图
(3)图书借阅实体E-R图:
4-3 图书借阅实体E-R图
(4)投诉管理实体E-R图:
4-4 投诉管理实体E-R图
4-5实体之间关系的E-R图
借阅关系(读者、管理员、书籍三元关系)
图4-6 CDM图
5逻辑模型设计和优化
从理论‘E-R模型’到理论‘关系模型’的整理转换,通过E-R模型到关系模型的转化,可以得到如下关系模式:
借阅关系
属性:工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注。
主键:工作号,读者学号,ISBN
管理员_书籍关系
属性:工作号,ISBN,添加时间,是否在馆
主键:工作号,ISBN
管理员_学生关系
属性:工作号,读者学号,确认借还
主键:工作号,读者学号
通过由概念模型设计得到CDM图powerdesigner转换成对应的PDM图:
PDM图
51图书信息表
列名 数据类型 可否为空
ISBN varchar 否
书名 varchar 否
作者 varchar 否
出版社 varchar 是
出版日期 datetime 是
简介 varchar 是
52 读者信息表
列名 数据类型 可否为空
读者学号 varchar 否
读者姓名 varchar 否
读者性别 varchar 否
联系电话 varchar 是
所在院系 varchar 否
53 管理员信息表
列名 数据类型 可否为空
工作号 varchar 否
姓名 varchar 否
性别 varchar 否
电话 varchar 是
家庭住址 varchar 是
54 借阅表
列名 数据类型 可否为空
工作号 char 否
ISBN char 否
读者学号 char 否
借阅日期 datetime 否
还书日期 datetime 否
是否续借 char 否
55 管理员_书籍
列名 数据类型 可否为空
工作号 char 否
ISBN char 否
添加时间 datatime 是
是否在馆 char 是
56 管理员_学生
列名 数据类型 可否为空
工作号 char 否
读者学号 char 否
借还确认 char 否
6物理设计和实施
从理论‘关系模型’到实现\实施‘数据库建立’,物理文件的安排和建立索引
61 建立索引
为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项:
(1)读者信息(读者学号)
(2)书籍信息(ISBN)
(3)管理员信息(工作号)
(4)借阅(工作号,读者学号,ISBN)
(5)管理员_书籍(工作号,ISBN)
(6)管理员_学生(工作号,读者学号)
62 SQL语句
如下所示:
/==============================================================/
/ Table: 书籍信息 /
/==============================================================/
create table 书籍信息
(
ISBN char(20) not null,
书名 char(20),
作者 char(10),
出版社 char(15),
出版日期 char(30),
简介 char(160),
constraint PK_书籍信息 primary key (ISBN)
);
/==============================================================/
/ Index: 书籍信息_PK /
/==============================================================/
create unique index 书籍信息_PK on 书籍信息 (
ISBN ASC
);
/==============================================================/
/ Table: 投诉 /
/==============================================================/
create table 投诉
(
工作号 char(10) not null,
学号 char(10) not null,
投书意见 char(100),
投诉日期 char(30),
受诉日期 char(30),
constraint PK_投诉 primary key (工作号, 学号)
);
/==============================================================/
/ Index: 投诉_PK /
/==============================================================/
create unique index 投诉_PK on 投诉 (
工作号 ASC,
学号 ASC
);
/==============================================================/
/ Index: 投诉_FK /
/==============================================================/
create index 投诉_FK on 投诉 (
工作号 ASC
);
/==============================================================/
/ Index: 投诉2_FK /
/==============================================================/
create index 投诉2_FK on 投诉 (
学号 ASC
);
/==============================================================/
/ Table: 登记 /
/==============================================================/
create table 登记
(
工作号 char(10) not null,
学号 char(10) not null,
ISBN char(20) not null,
证书日期 char(30) not null,
还书日期 char(30) not null,
违章状况 char(160),
累计借书 char(160),
备注 char(160),
constraint PK_登记 primary key (工作号, 学号, ISBN)
);
/==============================================================/
/ Index: 登记_PK /
/==============================================================/
create unique index 登记_PK on 登记 (
工作号 ASC,
学号 ASC,
ISBN ASC
);
/==============================================================/
/ Index: 登记_FK /
/==============================================================/
create index 登记_FK on 登记 (
工作号 ASC
);
/==============================================================/
/ Index: 登记2_FK /
/==============================================================/
create index 登记2_FK on 登记 (
学号 ASC
);
/==============================================================/
/ Index: 登记3_FK /
/==============================================================/
create index 登记3_FK on 登记 (
ISBN ASC
);
/==============================================================/
/ Table: 管理员信息 /
/==============================================================/
create table 管理员信息
(
工作号 char(10) not null,
姓名 char(10),
性别 char(5),
电话 char(15),
所在院系 char(25),
constraint PK_管理员信息 primary key (工作号)
);
/==============================================================/
/ Index: 管理员信息_PK /
/==============================================================/
create unique index 管理员信息_PK on 管理员信息 (
工作号 ASC
);
/==============================================================/
/ Table: 读者信息 /
/==============================================================/
create table 读者信息
(
学号 char(10) not null,
姓名 char(10),
性别 char(5),
电话 char(15),
所在院系 char(25),
constraint PK_读者信息 primary key (学号)
);
/==============================================================/
/ Index: 读者信息_PK /
/==============================================================/
create unique index 读者信息_PK on 读者信息 (
学号 ASC
);
7主要数据 *** 纵语句
71管理员 *** 作
(1)注册(register)
INSERT INTO 管理员 (工作号,姓名,性别,电话,家庭住址,备注)
VALUES(#工作号,#姓名,#性别,#电话,#家庭住址,#备注)
说明:在登记 *** 作后,管理员得到一个唯一的工作号,可以根据这个工作号采查询和修改数据。
(2)注销(unregister)
DELETE
FROM Provider
WHERE(工作号=#工作号);
(3)修改个人信息(update)
UPdate 管理员
Set (工作号=#工作号,姓名=#姓名,性别=#性别,电话=#电话,家庭住址=#家庭住址)
WHERE(工作号=#工作号)
(4)增加书籍(addbooks)
INSERT INTO 图书 (ISBN,书名,作者,出版社,出版日期,简介,)
VALUES(#ISBN,#书名,#作者,#出版社,#出版日期,#简介,#备注) INSERT INTO
管理员_书籍表(工作号,ISBN,添加时间,是否在馆)
VALUES(#工作号,#ISBN,#添加时间,#是否在馆)
(5)删除书籍(deletebooks)
DELETE 图书
WHERE(ISBN =# ISBN)
(6)修改书籍(updatebooks)
UPDATE 图书(书名=#书名, 作者=#作者, 出版社=#出版社, 出版日期=
#出版日期, 简介=#简介)
WHERE(ISBN =# ISBN)
72读者 *** 作
(1)注册(register)
INSERT INTO 读者(读者学号,读者姓名,读者性别,联系电话,所在系,
生效日期,失效日期,违章状况,累计借书,备注)
VALUES(#读者学号,#读者姓名,#读者性别,#联系电话,#所在系,
#生效日期,#失效日期,#违章状况,#累计借书,#备注)
说明:在登记 *** 作后,读者得到一个唯一的ID,可以根据这个ID来查询和修改自己的信息。
(2)注销(unregister)
DELETE 读者
WHERE(读者学号=#读者学号)
(3)修改个人信息(update)
UPDATE 读者 Set(读者姓名=#读者姓名,联系电话=#联系电话,
所在系=#所在系,生效日期=#生效日期,失效日期=#失效日期,
违章状况=#违章状况,累计借书=#累计借书,备注=#备注)
WHERE(读者学号=#读者学号)
(4)查询(select)
SELECT ISBN,书名,作者,出版社
FROM图书
WHERE ISBN=#ISBN OR书名=#书名
73管理员对借阅关系的 *** 作
(1)插入读者的信息(insert)
INSERT INTO 借阅(工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注)
VALUES(#工作号,#读者学号,#ISBN,#是否续借,#借书日期,
#还书日期,#备注)
(2)更新信息(update)
①更新借出信息
UPDATE借阅
SET(借书日期=#借书日期,还书日期=借书日期+30,是否续借=0)
WHERE(工作号=#工作号 AND 读者学号=#读者学号 AND ISBN =#ISBN)
UPDATE管理员_图书
SET(是否在馆=0)
WHERE(ISBN=#ISBN)
UPDATA 学生
SET (累积借书=累积借书+1)
WHERE(读者学号=#读者学号)
INSERT INTO管理员_学生(工作号,读者学号,确认借还,ISBN)
VALUES(#工作号,#读者学号,”0”, #ISBN))
②更新续借信息
UPDATE 借阅
SET(是否续借=#是否续借)
WHERE(工作号=#工作号 AND 读者学号=#读者学号 AND ISBN =#ISBN)
③更新还书信息
UPDATE管理员_图书
SET(是否在馆=1)
WHERE(ISBN=#ISBN)
UPDATE管理员_学生
SET(确认借还=”1”)
WHERE(工作号=#工作号 AND 读者学号=#读者学号 AND ISBN=#ISBN)
8参考文献
[1]赵斯思编著 Visual Basic数据库编程技术与实例 北京:人民邮电出版社, 2004
[2]白庆华 管理信息系统交互设计的研究及其设计方法[J] 计算机技术与发展2008,(01)
[3]杨志姝,李光海编著 SQL应用与开发标准教程 北京:清华大学出版社, 2006
[4]李爱武编著 SQL Server2000数据库系统实训教程 北京:北京邮电大学出版社,2004
[5]冯凤娟编著 SQL与PL/SQL程序设计基础 北京:清华大学出版社, 2002
[6]王越, 刘加伶, 李粱编著 大型数据库技术及应用 重庆:重庆大学出版社, 2001
[7]林桂花编著 数据库应用技术 大连:大连理工大学出版社,,2003
我不误导你,说真的,你要是找一本数据库设计的书,目前来看,完全没有必要,因为那种书你真的看不懂,凡是将数据库设计方面的东西,无不是从性能,安全,业务逻辑等等诸多方面考虑的,你如果接触数据库时间不是特别长的话,看这种书,会严重打击你,我建议你现在如果是为了这项目的话,可以准备两方面的东西:
1数据库范式看一看
2去网上下几个别人的源代码下来,自己分析分析别人的数据库,这样比你去看数据库设计的书要好很多。
等你真正对于某一个数据库产品理解的比较透了之后,再去看这个数据库的书,因为你要知道不同的数据库在实现机制上完全是不同的,有的是行式存储,有的是列式存储,有的数据库查询要加锁,有的查询不需要锁资源等等,太多不一样了。不能通用的
数据库损坏,修复的书本名称有《SQLServer2012数据库恢复实战》,《MySQL数据库故障排除与恢复》,《Oracle数据库故障排除与恢复》。
1、《SQLServer2012数据库恢复实战》:该书从实践出发,介绍了SQLServer2012数据库损坏的原因、分类、诊断和修复方法,详细讲解了如何使用备份和日志来恢复数据库,以及如何使用工具来修复损坏的数据库。
2、《MySQL数据库故障排除与恢复》:该书详细介绍了MySQL数据库的故障排除和恢复,包括如何诊断和修复各种常见的数据库问题,如数据丢失、损坏和不一致等。
3、《Oracle数据库故障排除与恢复》:该书从Oracle数据库的体系结构出发,介绍了如何诊断和修复各种常见的Oracle数据库问题,包括数据块损坏、表空间故障等。
以上就是关于你好,我看到你回答的问题,想要那个图书馆系统的数据库,请你发下给我,谢谢!急求!!!全部的内容,包括:你好,我看到你回答的问题,想要那个图书馆系统的数据库,请你发下给我,谢谢!急求!!!、谁了解数据库的书啊、数据库损坏,如何修复的书本名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)