系统设计与数据库设计说明.docx
《系统设计与数据库设计说明.docx》由会员分享,可在线阅读,更多相关《系统设计与数据库设计说明.docx(31页珍藏版)》请在冰豆网上搜索。
系统设计与数据库设计说明
第三章系统设计
3.1系统需求分析
鉴于高校设备管理的现状以及设备管理信息化的要求,开展计算机辅助设备管理,并在此基础上为上级部门进行决策分析提供帮助,极大地提高了设备管理的工作水平和信息化水平。
系统分析阶段开展的主要工作包括:
收集和分析系统需求、提供系统说明书等。
系统需求分析就是通过系统调查,了解用户实际需求,进行系统分析,提炼出系统需求。
业务流程是系统设计的关键,要开发一个系统,必须确定系统的功能需求,这就必须先了解实际的业务流程,从业务流程中分析系统的需求。
设备信息是系统进行管理的主线,它描述了设备的基本情况,主要包括:
设备名称、设备编号、分类号、型号、规格等;编码设计应完全符合国家信息标准。
系统工作流程主要是用户进行设备信息的入库以及维护处理;对设备信息的查询统计、打印报表,检核设备信息、上传设备信息,以及采集信息等。
不同权限的用户进行不同的工作操作,具有不同的工作流程。
通常信息管理系统按照对信息的操作,将系统划分为:
数据采集、数据处理、数据传输以及系统维护等功能组成部分。
所以,通过综合分析,本系统主要需求有:
1.设备基本信息的收集与处理;
2.设备基本信息的存储与维护;
3.能方便、快捷地上报设备信息;
4.能进行查询统计并形成各种有价值的信息
5.具有一定的报表处理功能;
6.将共享的设备信息对外发布,实现浏览查询;
7.有辅助系统进行系统的管理与维护。
3.2系统设计
3.2.1系统设计的目标与内容
高校设备管理系统的开发,其目的是要将先进的管理技术运用到高校设备的管理中来。
设备管理系统不但能完成高校设备的日常管理工作,还可以及时向各级领导、上级主管部门提供报表、数据信息,为领导的决策提供一定的参考。
通过该系统的实施,逐步把高校设备信息统一规化,使之能更好地为教育事业服务。
具体包括:
1.上级主管部门可以对所采集的设备进行汇总、统计、查询等,并形成各种有价值的信息,实现高校设备信息宏观和微观的动态管理;
2.高校能方便、快捷地上报设备信息,以便上级主管部门可及时了解、汇总各高校设备信息的情况。
3.共享的设备信息可通过web对外发布,实现浏览查询。
4.系统应该具有一定伸缩性,能有效地集成其他系统;而且系统后台可采用不同操作系统和多种数据库系统。
5.系统数据安全,具有良好的权限管理机制。
6.应该具有一定的通用性、灵活性、实用性和可靠性,以满足高校对设备信
息管理的要求。
322系统总体设计
系统的总体设计包括运行网络结构、功能模块设计等。
运行网络结构,确定软件运行的软硬件环境;功能模块设计,确定系统的功能模块,将整个系统划分为多个相对独立的模块,确定每个模块的功能。
3.2.2.1系统运行网络结构
由于网站采用的是B/S结构服务体系即客户端一一应用服务器一一数据库服务器三层体系结构。
在这种结构中,Web浏览器作为客户层,提供图形用户
界面,负责与用户进行交互。
它通过HTTP协议从应用层的HTTP月及务器下载超文本页面,同时下载并执行内嵌在页面中的客户端程序或中间代码(如JAVA
字节码)。
这些客户端程序能通过内部通信机制向应用服务器中有关服务对象发出请求。
服务对象封装了相关的业务逻辑,它们之间可通过内部协议彼此通信,并能访问数据层的数据库对象或其它的应用程序,以协同完成客户请求。
设备管理系统采用的网络运行结构如图2.1所示:
WEB
浏
器
图3.1网络运行结构
3.2.2.2系统的功能设计
在充分分析设备管理需求的基础上,结合信息系统所要达到的目标,以设备日常管理、数据采集与上报需求为重点,确定了系统的总体功能结构。
系统主要由设备信息管理、数据采集与上报、信息发布、系统管理等四个子系统组成。
每个子系统又由多个模块构成,各模块之间相对独立实现不同的处理功能,但相互之间又能很好地联系起来。
下面简单介绍各子系统功能设计。
1.设备信息管理子系统信息管理子系统主要包括信息录入、信息修改、信息查询、信息统计、打印报表等模块。
数据录入模块:
主要包括设备数据的录入,采取灵活、简捷、快速的输入方式来减轻用户繁重的输入数据的工作。
如对具有相同属性的多条记录可通过成批录入方式一次录入完成;对一些数据项可进行实时校验。
数据修改模块:
对所有录入的数据均可进行修改,其主要特色如下:
只有拥有相应权限的用户才能修改数据,从而保证了重要数据的安全性;为了保持数据的一致性,对于一些关键参数不能直接修改,系统应自动保持其正确性。
数据查询模块:
根据用户权限查询所需数据,主要包括固定查询和自定义查
询两部分。
固定查询:
用户通过选择设备信息的某一个字段,并输入相关关键字内容即
可查询出结果。
大概有:
1.名称.2分类号.3型号4.规格5.编号等。
自定义查询:
用户可以把以上几个查询的条件结合起来,提供一定灵活性的组合查询。
此外,可以对查询结果进行范围限制,也可以对查询结果按照某个字段值行
排序。
在查询的过程中,系统还可根据用户的要求,在验证用户的身份后,为其提供部分修改功能
数据统计模块:
信息统计是按各字段值进行统计并自动生成报表;以数据库
中存储的数据为基础,进行设备信息的查询、统计;进行数据的职能分析,生成直观的柱图、饼图、折线图,为各级设备管理与经营决策提供数据依据。
打印报表模块:
主要是打印设备信息以及各种统计报表。
该模块具有生成和打印报表的功能,可打印多种报表,包括:
系统基础数据、设备、人员、上报报表等报表,操作简单、使用方便。
2.数据采集与上报子系统上报数据按教育部统一规定的上报格式提供的基础数据,并可实现集中式管理。
按上级部门的要求形成标准的上报数据,在形成上报数据时,应具有数据查错功能,并能提供方便、快捷的数据传送功能。
3.信息发布子系统
主要包括信息浏览和信息查询;主要是对共享信息进行网络提交,对外发布,实现共享。
以数据库中存储的数据为基础,进行人员信息、设备信息等方面的信息发布,以Web页面的形式进行。
被授权访问的有关人员可从办公室或任何地方
通过Internet访问,浏览或查询各种相关信息。
4.系统管理子系统系统管理子系统主要负责系统的管理和维护工作,包括单位管理、用户管理、日志管理、数据备份与恢复等。
用户管理:
管理系统的用户,提供对系统角色和用户的管理。
具体完成用户的管理、用户的权限设置;通过该模块,可以有效屏蔽非授权用户的各种操作;
日志管理:
主要完成记录用户对系统的重要操作(如删除、修改等)及其结
果的记录、查询和统计,以确保系统操作的可追述性
数据备份与恢复:
提供数据备份恢复功能,根据设置,备份系统中的数据库。
严格定期备份,保证己有数据的安全性,在数据库崩溃和硬件系统瘫痪时不会造
成大的损失。
为了保证系统的安全性,只有系统管理员才能使用该模块。
系统的功能图如下所示:
设备管理系统
JDK+TOMCAT运行平台
图3.2系统功能图
系统的用例图如下所示:
图3.4管理员用例图
开始
系统流程图如下所示:
退出
图3.5系统流程图
第四章数据库设计
数据库是信息系统的核心组成部分。
数据库系统将数据信息以某种数据模型组织起来进行存储,通过数据库管理系统能够方便有效地完成数据信息的插入、删除、修改、查询等操作,并保持数据信息的完整性、一致性和安全性。
一个数据库由若干张表组成,一张表是若干相关数据信息的集合。
表的一行就是一条数据信息记录,而一列就是一个字段(也就是一条数据信息内容的一项),每一个字段都有相应的数据类型和数据宽度。
在本系统中使用的是SQLServer2000数据库系统,在数据库中各表的创建如下所述。
4.1总体表的设计
系统共创建了4个数据表,依次为:
(1)yh表:
用户信息,含数据项有用户名、真姓名、密码、部门、角色等。
(2)lb表:
类别信息,含数据项有编号、名称。
(3)sb表:
设备信息,含数据项有编号、名称、购置日期、型号、购置价格、备注等。
(4)dt表:
动态信息,含数据项有编号、名称、日期、备注。
4.2数据库概念结构设计
得到上面的数据项和数据结构后,就可以设计出满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
根据上面的描述,本系统的实体有:
类别信息实体、用户信息实体、设备信
息实体、动态信息实体。
用户信息实体的E-R图如图4.1所示
用户
图4.1用户信息实体E-R图
类别信息实体的E-R图如图4.2所示
图4.2类别信息实体E-R图
设备信息实体的E-R图如图4.3所示
图4.3设备信息实体E-R图
动态信息实体的E-R图如图4.4所示
4.3数据库的链接
在系统中,用户通过WEB方式来使用系统,完成相关的操作,而系统涉及到的大量数据都是存储在数据库中,系统在使用过程中需要频繁地访问数据库。
数据库连接池是数据访问中的重要技术,在某些情况下对访问数据库的性能
有巨大的提高。
它的核心思想是连接复用,通过建立一个数据库连接池以及一套连接使用、分配、管理策略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的系统开销。
连接池对JDBC中的原始连接
进行了封装,从而方便了数据库应用对于连接的使用,提高了开发效率。
数据库的连接与关闭,并不是真正意义上的数据库连接与建立,当数据库连接的时候,它是从连接池中取得的一个连接,而关闭的时候,实际上是将连接返回到连接池中,连接池是与数据库保持常连接的。
也正是因为这个封装层的存在,隔离了应用本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能
本系统使用Tomcat应用服务器中自带的DBCP(DataBaseConnection
pool)来建立数据库连接池。
利用DBCP,我们无须再进行复杂的相关代码开发,而且安全性和效率等性能更有保证。
其中主要是进行了一些配置工作和编写连接池类(ConnPoolclass)。
分别是,在$CATALINA_HOME/conf/server.xml里设置数据库连接池,在系统应用程序目录下的WEB-INF文件夹中的web.xml里设置被引用的资源,其中要合理地设置相关参数,以便保证连接池的性能,比如最小和最大数据库连接数,removeAbandoned参数(用于回收被遗弃的数据
库连接到连接池中)等;在ConnPool类中,我们使用了Singleton单例模式来保证返回唯一的连接池管理器实例,避免了每次实例化时重复创建。
链接数据库的代码为:
packagesbgl.util;
importjava.sql.*;
publicclassDataBase{
publicConnectionconn;
publicStatementstmt;
publicResultSetrs=null;
publicStringsqlStr="";
publicDataBase(){
this.connect();
}
publicbooleanconnect(){
try{
//sql2000数据库
//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
DriverManager.registerDriver(newcom.microsoft.jdbc.sqlserver.SQLServerDriver());
Stringurl="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=sbgl";
conn=DriverManager.getConnection(url,"sa","");
stmt=conn.createStatement();
}catch(Exceptionee){
System.out.println("connectdberror:
"+ee.getMessage());
returnfalse;
}
returntrue;
}
publicConnectiongetConn(){
try{
DriverManager.registerDriver(new
com.microsoft.jdbc.sqlserver.SQLServerDriver());
String
url="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=sbgl";
Connectionconn=DriverManager.getConnection(url,"sa","");
//stmt=conn.createStatement();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnconn;
}
//用于执行查询数据库的操作
//返回查询结果集
publicResultSetexecQuery(Stringsql){
〃sql2000数据库
Stringurl="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=sbgl"
ResultSetrs=null;
try{
//sqlserver数据库
conn=DriverManager.getConnection(url,"sa","");
Statementstmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}catch(SQLExceptionex){
System.err.println("DataBase.execQuery():
"+ex.getMessage());
}returnrs;
}//sql执行
publicvoidexecute(Stringsql){
//sql2000数据库
Stringurl="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=sbgl"try{
conn=DriverManager.getConnection(url,"sa","");
Statementstmt=conn.createStatement();
stmt.execute(sql);
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicvoidcloseStmt(){
try{
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicvoidcloseConn(){try{
conn.close();
}catch(SQLExceptione){e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){DataBasedb=newDataBase();
System.out.println(db.getConn());}
第五章系统的实现
5.1共用模块设计的实现为了提高代码的重用性,把共用部分做成独立的文件保存,保存在inc目录里。
这些文件都是纯HTML代码。
调用方式:
<%@includefile="../inc/gs.inc"%>页面格式
<%@includefile="../inc/session.inc"%>变量文件
5.2主登陆界面
系统设置了两个不同的权限,登陆时首先对权限进行判断,然后对所属权限范围内的用户进行用户名和密码验证,验证成功才进入相应的功能界面。
主登陆界面图如下:
图5.1主登陆界面
当输入用户名和密码时,系统对用户角色及密码进行判断和验证,无误时方
能进图相应的界面。
登陆的代码为:
publicbooleangetOneyh(intnewid)throwsException{
DataBasedb=newDataBase。
;
db.connect();
stmt=db.conn.createStatement();
try{
sqlStr="select*fromyhwhereId="+newid;
rs=stmt.executeQuery(sqlStr);
if(rs.next())
{yhlist=newVector
(1);
yhyh=newyh();
yh.setId(rs.getLong("id"));
yh.setdlm(rs.getString("dlm"));
yh.setyhbh(rs.getString("yhbh"));
yh.setname(rs.getString("name"));
yh.setdh(rs.getString("dh"));
yh.setyj(rs.getString("yj"));
yh.setmima(rs.getString("mima"));
yh.setacl(rs.getString("acl"));
yhlist.addElement(yh);
}else{
rs.close();
returnfalse;
}
rs.close();
db.closeConn();
db.closeStmt();returntrue;
}
catch
(SQLExceptione)
{
returnfalse;
}
5.2普通用户界面
普通用户经过验证后进入此页面:
LqLilpinFhtNnn^geiilPilitH■常雲t叵hi
&H99I业器罰|竝荷息|迎齐■震|和肪|
图5.2普通用户界面
普通用户进入页面,系统在右上角显示角色的相关信息。
普通用户界面有些
功能是受限查询的,如台账管理功能,当普通用户点击台账管理时系统会显示:
图5.3权限显示
5.3普通用户功能的实现
进入设备查询页面:
r^linii^i^ii'iirril^yshiiri绅】叶0誌応日耳金s;刃闻
倆户I:
uscr21丽】圧E芭]..T«人員{曲常
vaxmaiiRW
巾曲=!
;|
ift畫*45希
谢爭乏剔所H*
|豐严丰囱|
Sil
世丰乳JH
设哥皐号
“Er前E
W6«1S
»ena
厂1
毗金工
LO-LIO
1Q0
4QX
澤郭
1神
厂2
SKL
电
H20Q1
23
H2OD]
KM
厂J
nft!
mp3
电fi
TL-K1*
io
jlDO^Dm
吃电討R
厂T
ilBifEJO
町干占事
B70
10
=5口氓于
厂S
电越
EJlOOi*
21
wow
p*
rt
應CM
电芋设<6
ZDDDL
io
jlna-ntK
AT
鸿
r?
17色屯亦L
电芋总豪
DSJaO?
10
jllQ^OCH
p□电孑
l™
rB
硕CM
E¥1M
10
jiao-ok
页耳羽冃srjf
匕凤上1西下1帀
图5.4设备查询页面
点击“详细”就看到所选设备的额相关信息,如点击“电脑-详细”,系统显
示为:
LnnipmnriTMori-anBimiiniif右丫別也小uriwrif-wr-庄:
*c4
【FB尸]:
U3er2〔姓注]:
王[iM.l—.EAfi[由噩】
CXXJiJIS
art^iE哥:
吐emaI零i融则
Mt(WO3J3LKBJCXft-V12130凶
I3htf9:
//icca]h«7»:
ftafta/jbri/^b_dttAn.dj»«id=e
Itcr^saftTn*八匚,晅X||J
图5.5设备详情
在查询页面,用户可按编号、名称等查询设备,如按编号查询,显示为:
EquipmentMardqementSystem
血軒右恥日SJh畑皿
矽];」丽附1:
王:
馳]HFAM盘】
绅就1髓蒯1动詐則镰探藉礪1
玫薛寻丽I磐師1薛翹];輛巒牧颤;—iU
鹅強邮
權無谡酒影噩繇躺欝為
「1樹
电褪各E31D0?
竝JID0-D03联电觀
靠示射遏
曲口揃购顶额上TU-仄
图5.6查询设备信息
查询功能的代码为:
publicbooleangetOnesb(intnewid)throwsException{
DataBasedb=newDataBase。
;
db.connect();
stmt=db.conn.createStatement();
try{
+newid;
sqlStr="select*fromsbwhereId="
rs=stmt.executeQuery(sqlStr);
if(rs.next())
}
rs.close();returntrue;
}
catch(SQLExceptione)
{
returnfalse;
}
}
进入帮助页面:
工币皿Jiwt力屮i&存笨g旦•■■>':
!
»ii■i.il-w»■I
JbSE-ISj*-M¥St?
L
.KA±BX^«lE*aji
图5.7系统帮助界面
用户进入此界面查看相关的系统描述。
5.4管理员界面功能的实现
管理员通过身份验证后进入此界面:
图5.8管理员模块界面
进入用户管理界面:
EquifibtietitMianaiiemiaritSusterri
■■■-*u|.■i—ir*b.qrij*__ij*I
JOiL畔越月工5白呈111丸
1E.57=DO
口|.-=(4X
口.E-Au«—X.F/UU*,Hgt,|
也脚mitiEMWffJHrAhrr
ri如丁