数据库.docx

上传人:b****5 文档编号:6244166 上传时间:2023-01-04 格式:DOCX 页数:20 大小:36.71KB
下载 相关 举报
数据库.docx_第1页
第1页 / 共20页
数据库.docx_第2页
第2页 / 共20页
数据库.docx_第3页
第3页 / 共20页
数据库.docx_第4页
第4页 / 共20页
数据库.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

数据库.docx

《数据库.docx》由会员分享,可在线阅读,更多相关《数据库.docx(20页珍藏版)》请在冰豆网上搜索。

数据库.docx

数据库

滨江学院

 

数据库原理课程设计

题目中学生图书馆管理系统

院系滨江学院计算机系

专业软件工程

(1)班

指导教师姜青山

 

二0一四年十二月一日

 

1、需求分析

利用计算机提供给我们的信息对学生们的借阅过程形成一整套动态的管理。

本系统将会涉及到图书馆日常管理工作的基本常见细节,诸如新图书的入库登记,图书馆所有书籍的分类管理,图书的查询,图书的借阅、退还手续的登记,费旧图书的清理撤除等,本系统所要实现的这些功能基本上涵盖了图书馆的日常管理工作,基本能够满足校园图书馆的工作人员的管理需要。

1.1可行性研究

1.1.1技术可行性

目的:

方便图书馆对书籍借阅的管理

主要功能:

学生基本信息查询,书籍借阅管理,书籍管理

图书管理系统主要有三种角色,分别是读者、图书、工作人员.

主要分成五个功能模块:

图书管理,图书流通管理,读者管理,统计查询,系统管理.

技术可行性包括一下几个方面:

硬件,系统软件,应用软件,技术人员。

针对这四个方面可行性都是没有问题的,本系统预采用Java编程语言加SQLServer2008数据库。

1.1.2经济可行性

系统建设不需要很大的投入、可缩减人力投入,减少手工工作人员及费用等,这些都是使用系统所带来的间接收益。

1.1.3社会可行性

本图书管理系统的操作简单,而且界面友好,系统的操作流程是图书管理工作者所熟悉的。

并且本图书管理系统能够实现其各个功能,在当前操作环境下也能够很好的运行。

综上所述,不管是从技术上考虑,还是从经济以及社会上考虑,我们的系统都具有一定的可行性,因此我们才开发研究这个系统供广大读者使用。

1.2DFD图

(1)、顶层数据流图

查询

图书号

图书号

借书

注册信息

学生注册

图书号

图书号

还书

 

学生

(2)、0层数据流图

删除学生信息

 

可借书

学生信息是否存在

有效

图书号

图书号

图书名/号

无效

用户注册

有效

可还书

针对图书馆管理系统的需求,通过对图书馆管理工作过程的内容和数据流程分析,设计出如下的数据项

(1)图书入库信息,包括数据项有:

图书编号、书名、作者、出版社、入库时间、入库总数

(2)学生信息,包括数据项有:

学生学号、姓名、性别、系别、班级

(3)图书查询信息,包括数据项有:

图书编号、书名、作者、出版社、入库时间、入库总数

(4)借书信息,包括数据项有:

图书编号、学生学号、是否归还。

1.3加工说明

功能描述

普通用户登录,管理员登录

输入

用户名,密码

加工

找到需登录的相关用户信息

输出

登录用户管理界面

功能描述

新用户注册

输入

用户名,密码等详细用户信息

加工

将相关用户信息录入数据库

输出

用户信息

功能描述

图书查询

输入

图书编号

加工

根据查询条件,检索符合查询条件的图书信息

输出

图书的相关信息

功能描述

图书借阅

输入

图书编号,用户编号

加工

根据信息,形成借书信息录入借书登记数据表中

输出

借阅成功或者失败

功能描述

图书归还

输入

图书编号,用户信息

加工

根据信息,删除符合查询条件的借书登记信息

输出

归还成功或者失败

功能描述

借书登记

输入

加工

访问数据库中借书登记的表

输出

被借的书和相关借书人的信息

功能描述

新书入库

输入

图书编号,图书名,作者,入库时间,图书量

加工

根据信息,形成图书信息录入图书数据表中

输出

新的图书信息

功能描述

旧书删除

输入

图书编号

加工

根据信息,删除图书数据表中相关图书信息

输出

新的图书信息

功能描述

删除会员

输入

用户编号

加工

根据信息,删除用户表中相关用户信息

输出

新的用户信息表

开始

        

学生注册

        

 

填写注册信息

新书入库

学生信息表

图书信

息录入

学生登陆

 

N

借书

还书

图书信息管理

Y

输入图书编号

 

图书库

 

此书是否存在

N

 

Y

正常借书,并将借书证信息录入借书登记库

 

end

 

1.4数据字典

(1)、名字:

注册信息

别名:

描述:

定义:

注册信息=学生学号+{姓名+用户密码}

位置:

学生信息表

(2)、名字:

图书

别名:

图书信息

描述:

标识图书的一些相关信息

定义:

图书信息=书名+作者+出版社名+入库时间+入库总数

位置:

图书信息表

(3)、名字:

剩余库存量

别名:

描述:

在书被借出时,图书库里各图书所剩的图书量

定义:

剩余库存量=1{数字}100

位置:

图书信息表

(4)、名字:

用户姓名

别名:

用户名

描述:

用户的登录名

定义:

用户姓名=字母字符+字母数字串

位置:

用户信息表

(5)、名字:

图书编号

别名:

描述:

图书的条形码

定义:

图书编号=字母数字串

字母数字串=0{字母或数字}9

位置:

图书信息表

(6)、名字:

学生的学号

别名:

学号

描述:

唯一标识学生的关键字

定义:

学生的学号=1{数字}100

位置:

学生信息表

(7)名字:

借书登记信息

别名:

描述:

学生借书信息登记

定义:

借书登记信息=书号+学号

位置:

借书登记信息表

2、软件总体设计

2.1系统总体设计方案

本图书馆主要分成五个功能模块:

图书管理,图书流通管理,读者管理,统计查询,系统管理.

系统管理

2.2系统各功能模块设计方案及说明

2.2.1图书管理

1)新的图书录入,并更新系统图书库存

2)根据图书编号,进行旧书删除

旧书删除

2.2.2图书流通管理

1)根据图书编号,对图书的查询

2)图书的借阅

3)图书的归还

图书查询

2.2.3读者管理

1)用户登录

2)新用户注册

读者管理

2.2.4统计查询

1)借书登记查询

2)图书库存信息查询

3)会员信息查询

借书登记

2.2.5系统管理

1)管理员登录

2)删除会员信息

删除会员

3、软件详细设计

3.1本软件系统中各程序(模块)的设计说明

(1)模块名称:

新书入库

模块功能:

实现系统内增加图书功能

限制条件:

只有系统管理员才能执行本模块。

输入:

输入项参考图书馆图书信息表(book)

输出:

输出方式为屏幕显示及图书信息表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象。

新书入库按钮:

检查数据窗口各个非空数据项是否为空,若有非空项为空值,则提示不能为空,要求重新输入;若没有非空项为空,则增加新记录,更新图书信息表,提交事务对象。

(2)模块名称:

旧书删除

模块功能:

实现系统内删除图书功能

限制条件:

只有系统管理员才能执行本模块。

输入:

输入要删除的图书编号

输出:

输出方式为屏幕显示及图书信息表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象。

旧书删除按钮:

检查数据窗口各个非空数据项是否为空,若有非空项为空值,则提示不能为空,要求重新输入;若没有非空项为空,则删除旧记录,更新图书信息表,提交事务对象。

(3)模块名称:

查询图书

模块功能:

实现系统内查询图书的功能

限制条件:

只有学生用户才能执行本模块

输入:

输入要查询图书的编号

输出:

输出方式为屏幕显示及图书信息表的记录保存

算法逻辑:

在窗口打开之前,数据窗口连接事务对象。

图书查询按钮:

检查数据窗口各个非空数据项是否为空,若有非空项为空值,则提示不能为空,要求重新输入;若没有非空项为空,则查询记录。

(4)模块名称:

图书借阅

模块功能:

实现学生用户借阅图书的功能

限制条件:

只有学生用户才能执行本模块

输入:

输入要借阅图书的编号和借书学生的学号

输出:

输出方式为屏幕显示及借书登记表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象。

图书借阅按钮:

检查数据窗口各个非空数据项是否为空,若有非空项为空值,则提示不能为空,要求重新输入;若没有非空项为空,则增加借阅记录,同时更新图书信息表,提交事务对象。

(5)模块名称:

归还图书

模块功能:

实现学生用户归还已借图书的功能

限制条件:

只有学生用户才能执行本模块

输入:

输入已被借阅图书的编号和借书学生的学号

输出:

输出方式为屏幕显示及借书登记表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象。

图书归还按钮:

检查数据窗口各个非空数据项是否为空,若有非空项为空值,则提示不能为空,要求重新输入;若没有非空项为空,则删除借阅记录,更新图书信息表,提交事务对象。

(6)模块名称:

学生登录

模块功能:

实现学生用户登录本系统的功能

限制条件:

只有学生用户才能执行本模块

输入:

输入学生学号和学生登录密码

输出:

输出方式为屏幕显示及数据表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象

学生登录按钮:

检查数据窗口各个非空数据项是否为空,若有非空项为空值,则提示不能为空,要求重新输入;若没有非空项为空,则检测数据是否存在数据库,提交事务对象。

(7)模块名称:

管理员登录

模块功能:

实现管理员登录本系统的功能

限制条件:

只有管理员才能执行本模块

输入:

输入管理员编号和管理员登录密码

输出:

输出方式为屏幕显示及数据表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象

学生登录按钮:

检查数据窗口各个非空数据项是否为空,若有非空项为空值,则提示不能为空,要求重新输入;若没有非空项为空,则检测数据是否存在数据库,提交事务对象。

(8)模块名称:

新用户注册

模块功能:

实现新用户注册账号的功能

限制条件:

只有学生用户才能执行本模块

输入:

输入项参考图书馆学生表(student)

输出:

输出方式为屏幕显示及数据表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象

新用户注册按钮:

检查数据窗口各个非空数据项是否为空,若有非空项为空值,则提示不能为空,要求重新输入;若没有非空项为空,则更新学生信息表,提交事务对象。

(9)模块名称:

借书登记

模块功能:

实现系统内查询借书登记情况功能

限制条件:

只有本系统用户才能执行本模块。

输入:

输出:

输出方式为屏幕显示及借书登记信息表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象

显示数据库内借书登记信息表相关信息。

(10)模块名称:

图书库存

模块功能:

实现系统内查阅图书馆库存图书情况功能

限制条件:

只有管理员才能执行本模块

输入:

输出:

输出方式为屏幕显示及图书信息表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象

显示数据库内图书信息表相关信息。

(11)模块名称:

会员信息

模块功能:

实现系统内查阅会员信息功能

限制条件:

只有管理员才能执行本模块

输入:

输出:

输出方式为屏幕显示及学生信息表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象

显示数据库内学生信息表相关信息。

(12)模块名称:

删除会员

模块功能:

实现系统删除会员信息的功能

限制条件:

只有管理员才能执行本模块

输入:

要删除的学生学号

输出:

输出方式为屏幕显示及学生信息表的记录保存。

算法逻辑:

在窗口打开之前,数据窗口连接事务对象

会员删除按钮:

检查数据窗口各个非空数据项是否为空,若有非空项为空值,则提示不能为空,要求重新输入;若没有非空项为空,则删除会员信息,更新学生信息表,提交事务对象。

4、数据库设计

4.1概念模型设计

出版社

(1)实体图属性

图书名

入库时间

姓名

图书编号

学号

密码

入库量

图书

学生

学生实体属性图图书实体属性图

密码

编号

管理员

管理员实体属性图

出版社

(2)E-R图及联系

图书名

入库时间

姓名

图书编号

学号

密码

入库量

图书

学生

管理

1nn

管理

n

mm

编号

密码

管理员

4.2逻辑结构设计

4.2.1关系模式

图书信息表(编号、书名、作者、出版社、入库时间、入库量)

学生信息表(学号、姓名、密码)

借书登记信息表(编号、学号)

4.2.1数据表设计

图书信息表

数据项名

别名

数据类型

长度

备注

允许NULL值

编号

BookNO

int

11

主键

NOTNULL

书名

BookName

varchar

50

NOTNULL

作者

Autor

varchar

50

NULL

出版社

Publishment

varchar

50

NULL

入库时间

Time

varchar

50

NULL

入库量

Number

int

11

NOTNULL

学生信息表

数据项名

别名

数据类型

长度

备注

允许NULL值

学号

StuNO

int

11

主键

NOTNULL

姓名

StuName

varchar

50

NOTNULL

密码

Password

varchar

20

NOTNULL

借书登记表

数据项名

别名

数据类型

长度

备注

允许NULL值

图书编号

BookNO

int

11

主键

NOTNULL

学号

StuNO

int

11

主键

NOTNULL

管理员信息表

数据项名

别名

数据类型

长度

备注

允许NULL值

管理员编号

mgNo

int

11

主键

NOTNULL

密码

Password

varchar

20

NOTNULL

4.3物理结构设计

存储方式:

信息存储结构的设计在系统的设计中至关重要,要考虑到数据冗余、系统执行效率、信息控制以及维护等方面的要求。

信息的管理离不开数据库的支持,我采用的是SQLServer2008数据库管理系统。

检索方式:

精确搜索,输入编号可以进行搜索

5、系统编码、测试

登录核心代码:

publicvoidactionPerformed(ActionEvente){

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}catch(ClassNotFoundExceptione1){System.out.println("加载驱动程序失败!

");}

StringdbURL="jdbc:

sqlserver:

";StringuserName="sa";StringuserPwd="111222";

try{

ConnectiondbConn=DriverManager.getConnection(dbURL,userName,userPwd);

if(e.getSource()==b1){

sql="select*fromstudentwhereStuNO="+t1.getText();

Statementstmt=dbConn.createStatement();

ResultSetrst=stmt.executeQuery(sql);

while(rst.next()){

if(t2.getText().equals(rst.getString(3))){

newStudentSystem();

}else{

JOptionPane.showMessageDialog(null,"登录失败!

","警告",JOptionPane.WARNING_MESSAGE);

break;

}

rst.close();stmt.close();dbConn.close();

}

}else{l3.setText("重新输入用户信息!

");}

if(e.getSource()==b2){

sql="select*frommanager";

Statementstmt=dbConn.createStatement();

ResultSetrst=stmt.executeQuery(sql);

while(rst.next()){

if(t2.getText().equals(rst.getString

(2))){newRoot();}

else{

JOptionPane.showMessageDialog(null,"登录失败!

","警告",JOptionPane.WARNING_MESSAGE);

break;

}

rst.close();stmt.close();dbConn.close();

}

}else{l3.setText("重新输入用户信息!

");}

if(e.getSource()==b3){newRegister();}

}catch(SQLExceptione1){e1.printStackTrace();}}

借书核心代码:

Stringsql="updatebooksetNumber=Number-1whereBookNO="+t1.getText();

Stringt="insertintorecordvalues("+t1.getText()+","+t2.getText()+")";

Statementstmt=dbConn.createStatement();

Statementst=dbConn.createStatement();

stmt.executeUpdate(sql);

st.executeUpdate(t);

JOptionPane.showMessageDialog(null,"借阅成功!

");

stmt.close();

st.close();

dbConn.close();

归还核心代码:

Stringsql="updatebooksetNumber=Number+1whereBookNO="+t1.getText();

Stringt="deletefromrecordwhereBookNO='"+t1.getText()+"'andStuNO='"+t2.getText()+"'";

Statementstmt=dbConn.createStatement();

Statementst=dbConn.createStatement();

stmt.executeUpdate(sql);

st.executeUpdate(t);

JOptionPane.showMessageDialog(null,"还书成功!

");

stmt.close();

st.close();

dbConn.close();

新书入库核心代码:

Stringt="insertintobookvalues('"+t1.getText()+"','"+t2.getText()+"','"+t3.getText()+"','"+t4.getText()+"','"+t5.getText()+"','"+t6.getText()+"')";

Statementst=dbConn.createStatement();

st.executeUpdate(t);

JOptionPane.showMessageDialog(null,"入库成功!

");

st.close();

dbConn.close();

旧书删除核心代码:

Stringt="deletefrombookwhereBookNO="+t1.getText();

Statementst=dbConn.createStatement();

st.executeUpdate(t);

JOptionPane.showMessageDialog(null,"删除成功!

");

st.close();

dbConn.close();

用户注册核心代码:

Stringt="insertintostudentvalues('"+t1.getText()+"','"+t2.getText()+"','"+t3.getText()+"')";

Statementst=dbConn.createStatement();

st.executeUpdate(t);

JOptionPane.showMessageDialog(null,"注册成功!

");

st.close();

dbConn.close();

借书登记核心代码:

t1.addAncestorListener(newAncestorListener(){

publicvoidancestorAdded(AncestorEventevt){

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}catch(ClassNotFoundExceptione1){System.out.println("加载驱动程序失败!

");}

StringdbURL="jdbc:

sqlserver:

//localhost:

1433;DatabaseName=libry";

StringuserName="sa";

StringuserPwd="111222";

try{

ConnectiondbConn=DriverManager.getConnection(dbURL,userName,userPwd);

Stringsql="select*fromrecord";

Statementstmt=dbConn.createStatement();

ResultSetrst=stmt.executeQuery(sql);

t1.a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1