系统设计与数据库设计.docx

上传人:牧羊曲112 文档编号:1674635 上传时间:2022-12-13 格式:DOCX 页数:25 大小:419.92KB
返回 下载 相关 举报
系统设计与数据库设计.docx_第1页
第1页 / 共25页
系统设计与数据库设计.docx_第2页
第2页 / 共25页
系统设计与数据库设计.docx_第3页
第3页 / 共25页
系统设计与数据库设计.docx_第4页
第4页 / 共25页
系统设计与数据库设计.docx_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《系统设计与数据库设计.docx》由会员分享,可在线阅读,更多相关《系统设计与数据库设计.docx(25页珍藏版)》请在三一办公上搜索。

1、第三章 系统设计3.1系统需求分析鉴于高校设备管理的现状以及设备管理信息化的要求,开展计算机辅助设备管理,并在此基础上为上级部门进行决策分析提供帮助,极大地提高了设备管理的工作水平和信息化水平。系统分析阶段开展的主要工作包括:收集和分析系统需求、提供系统说明书等。系统需求分析就是通过系统调查,了解用户实际需求,进行系统分析,提炼出系统需求。业务流程是系统设计的关键,要开发一个系统,必须确定系统的功能需求,这就必须先了解实际的业务流程,从业务流程中分析系统的需求。设备信息是系统进行管理的主线,它描述了设备的基本情况,主要包括:设备名称、设备编号、分类号、型号、规格等;编码设计应完全符合国家信息标

2、准。系统工作流程主要是用户进行设备信息的入库以及维护处理;对设备信息的查询统计、打印报表,检核设备信息、上传设备信息,以及采集信息等。不同权限的用户进行不同的工作操作,具有不同的工作流程。通常信息管理系统按照对信息的操作,将系统划分为:数据采集、数据处理、数据传输以及系统维护等功能组成部分。所以,通过综合分析,本系统主要需求有:1.设备基本信息的收集与处理;2.设备基本信息的存储与维护;3.能方便、快捷地上报设备信息;4.能进行查询统计并形成各种有价值的信息;5.具有一定的报表处理功能;6.将共享的设备信息对外发布,实现浏览查询;7.有辅助系统进行系统的管理与维护。3.2 系统设计 3.2.1

3、系统设计的目标与内容高校设备管理系统的开发,其目的是要将先进的管理技术运用到高校设备的管理中来。设备管理系统不但能完成高校设备的日常管理工作,还可以及时向各级领导、上级主管部门提供报表、数据信息,为领导的决策提供一定的参考。通过该系统的实施,逐步把高校设备信息统一规化,使之能更好地为教育事业服务。 具体包括:1.上级主管部门可以对所采集的设备进行汇总、统计、查询等,并形成各种有价值的信息,实现高校设备信息宏观和微观的动态管理;2.高校能方便、快捷地上报设备信息,以便上级主管部门可及时了解、汇总各高校设备信息的情况。3.共享的设备信息可通过web对外发布,实现浏览查询。4.系统应该具有一定伸缩性

4、,能有效地集成其他系统;而且系统后台可采用不同操作系统和多种数据库系统。5.系统数据安全,具有良好的权限管理机制。6.应该具有一定的通用性、灵活性、实用性和可靠性,以满足高校对设备信息管理的要求。3.2.2系统总体设计 系统的总体设计包括运行网络结构、功能模块设计等。运行网络结构,确定软件运行的软硬件环境;功能模块设计,确定系统的功能模块,将整个系统划分为多个相对独立的模块,确定每个模块的功能。3.2.2.1系统运行网络结构由于网站采用的是B/S结构服务体系即客户端应用服务器数据库服务器三层体系结构。在这种结构中,Web浏览器作为客户层,提供图形用户界面,负责与用户进行交互。它通过HTTP协议

5、从应用层的HTTP月及务器下载超文本页面,同时下载并执行内嵌在页面中的客户端程序或中间代码(如JAVA字节码)。这些客户端程序能通过内部通信机制向应用服务器中有关服务对象发出请求。服务对象封装了相关的业务逻辑,它们之间可通过内部协议彼此通信,并能访问数据层的数据库对象或其它的应用程序,以协同完成客户请求。设备管理系统采用的网络运行结构如图2.l所示:图3.1 网络运行结构3.2.2.2 系统的功能设计在充分分析设备管理需求的基础上,结合信息系统所要达到的目标,以设备日常管理、数据采集与上报需求为重点,确定了系统的总体功能结构。系统主要由设备信息管理、数据采集与上报、信息发布、系统管理等四个子系

6、统组成。每个子系统又由多个模块构成,各模块之间相对独立实现不同的处理功能,但相互之间又能很好地联系起来。下面简单介绍各子系统功能设计。1.设备信息管理子系统信息管理子系统主要包括信息录入、信息修改、信息查询、信息统计、打印报表等模块。数据录入模块:主要包括设备数据的录入,采取灵活、简捷、快速的输入方式来减轻用户繁重的输入数据的工作。如对具有相同属性的多条记录可通过成批录入方式一次录入完成;对一些数据项可进行实时校验。数据修改模块:对所有录入的数据均可进行修改,其主要特色如下:只有拥有相应权限的用户才能修改数据,从而保证了重要数据的安全性;为了保持数据的一致性,对于一些关键参数不能直接修改,系统

7、应自动保持其正确性。数据查询模块:根据用户权限查询所需数据,主要包括固定查询和自定义查询两部分。固定查询:用户通过选择设备信息的某一个字段,并输入相关关键字内容即可查询出结果。大概有:1.名称.2分类号.3型号4.规格5.编号等。自定义查询:用户可以把以上几个查询的条件结合起来,提供一定灵活性的组合查询。此外,可以对查询结果进行范围限制,也可以对查询结果按照某个字段值行排序。在查询的过程中,系统还可根据用户的要求,在验证用户的身份后,为其提供部分修改功能。数据统计模块:信息统计是按各字段值进行统计并自动生成报表;以数据库中存储的数据为基础,进行设备信息的查询、统计;进行数据的职能分析,生成直观

8、的柱图、饼图、折线图,为各级设备管理与经营决策提供数据依据。打印报表模块:主要是打印设备信息以及各种统计报表。该模块具有生成和打印报表的功能,可打印多种报表,包括:系统基础数据、设备、人员、上报报表等报表,操作简单、使用方便。2.数据采集与上报子系统上报数据按教育部统一规定的上报格式提供的基础数据,并可实现集中式管理。按上级部门的要求形成标准的上报数据,在形成上报数据时,应具有数据查错功能,并能提供方便、快捷的数据传送功能。3.信息发布子系统主要包括信息浏览和信息查询;主要是对共享信息进行网络提交,对外发布,实现共享。以数据库中存储的数据为基础,进行人员信息、设备信息等方面的信息发布,以Web

9、页面的形式进行。被授权访问的有关人员可从办公室或任何地方通过Internet访问,浏览或查询各种相关信息。4.系统管理子系统系统管理子系统主要负责系统的管理和维护工作,包括单位管理、用户管理、日志管理、数据备份与恢复等。用户管理:管理系统的用户,提供对系统角色和用户的管理。具体完成用户的管理、用户的权限设置;通过该模块,可以有效屏蔽非授权用户的各种操作;日志管理:主要完成记录用户对系统的重要操作(如删除、修改等)及其结果的记录、查询和统计,以确保系统操作的可追述性;数据备份与恢复:提供数据备份恢复功能,根据设置,备份系统中的数据库。严格定期备份,保证己有数据的安全性,在数据库崩溃和硬件系统瘫痪

10、时不会造成大的损失。为了保证系统的安全性,只有系统管理员才能使用该模块。系统的功能图如下所示:设备管理系统登陆/注销用户管理 类别管理 设备管理 台账管理 台账报表 动态信息 系统维护 JDK+TOMCAT运行平台 数据库图3.2 系统功能图系统的用例图如下所示:登陆系统动态信息查询设备信息查询系统帮助查询报表查询退出系统图3.3 普通用户用例图查看用户信息修改用户信息查询动态信息登录系统查询设备信息修改设备信息查看报表信息修改动态信息退出系统帮助栏目管理修改报表信息图3.4 管理员用例图系统流程图如下所示:开始选定登陆模块登入普通用户模块否是否登入管理员模块?普通用户模块是管理员界面设备查询

11、动态信息用户管理设备报表台账管理系统帮助设备查询动态信息 设备报表系统帮助退出图3.5 系统流程图第四章 数据库设计 数据库是信息系统的核心组成部分。数据库系统将数据信息以某种数据模型组织起来进行存储,通过数据库管理系统能够方便有效地完成数据信息的插入、删除、修改、查询等操作,并保持数据信息的完整性、一致性和安全性。一个数据库由若干张表组成,一张表是若干相关数据信息的集合。表的一行就是一条数据信息记录,而一列就是一个字段(也就是一条数据信息内容的一项),每一个字段都有相应的数据类型和数据宽度。在本系统中使用的是SQL Server2000数据库系统,在数据库中各表的创建如下所述。4.1 总体表

12、的设计 系统共创建了4个数据表,依次为:(1)yh表:用户信息,含数据项有用户名、真姓名、密码、部门、角色等。(2)lb表:类别信息,含数据项有编号、名称。(3)sb表:设备信息,含数据项有编号、名称、购置日期、型号、购置价格、备注等。(4)dt表:动态信息,含数据项有编号、名称、日期、备注。4.2 数据库概念结构设计得到上面的数据项和数据结构后,就可以设计出满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据上面的描述,本系统的实体有:类别信息实体、用户信息实体、设备信息实体、动态信息实体。用户信息实体的E-R图如图4.1所示密码姓名用户用户名角色图4.1 用户信息

13、实体E-R图类别信息实体的E-R图如图4.2所示名称编号类别图 4.2 类别信息实体E-R图设备信息实体的E-R图如图4.3所示备注编号购置日期型号名称设备信息图 4.3 设备信息实体E-R图动态信息实体的E-R图如图4.4所示动态信息内容编号类别标题图 4.4 动态信息实体的E-R图4.3 数据库的链接在系统中,用户通过WEB方式来使用系统,完成相关的操作,而系统涉及到的大量数据都是存储在数据库中,系统在使用过程中需要频繁地访问数据库。数据库连接池是数据访问中的重要技术,在某些情况下对访问数据库的性能有巨大的提高。它的核心思想是连接复用,通过建立一个数据库连接池以及一套连接使用、分配、管理策

14、略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的系统开销。连接池对JDBC中的原始连接进行了封装,从而方便了数据库应用对于连接的使用,提高了开发效率。数据库的连接与关闭,并不是真正意义上的数据库连接与建立,当数据库连接的时候,它是从连接池中取得的一个连接,而关闭的时候,实际上是将连接返回到连接池中,连接池是与数据库保持常连接的。也正是因为这个封装层的存在,隔离了应用本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能。本系统使用Tomcat应用服务器中自带的DBCP(DataBase Connection pool)来建立数据库连接池。利用DBCP,我们

15、无须再进行复杂的相关代码开发,而且安全性和效率等性能更有保证。其中主要是进行了一些配置工作和编写连接池类(ConnPool class)。分别是,在$CATALINA_HOME/conf/server.xml里设置数据库连接池,在系统应用程序目录下的WEB-INF文件夹中的web.xml里设置被引用的资源,其中要合理地设置相关参数,以便保证连接池的性能,比如最小和最大数据库连接数,removeAbandoned参数(用于回收被遗弃的数据库连接到连接池中)等;在ConnPool类中,我们使用了Singleton单例模式来保证返回唯一的连接池管理器实例,避免了每次实例化时重复创建。链接数据库的代码

16、为:package sbgl.util;import java.sql.*;public class DataBase public Connection conn; public Statement stmt; public ResultSet rs=null; public String sqlStr=; public DataBase() this.connect(); public boolean connect() try/sql 2000数据库/Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstan

17、ce(); DriverManager.registerDriver (new com.microsoft.jdbc.sqlserver.SQLServerDriver(); String url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=sbgl; conn=DriverManager.getConnection(url,sa,); stmt = conn.createStatement (); catch(Exception ee) System.out.println(connect db error:+ee.getMes

18、sage(); return false; return true; public Connection getConn() 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.createStatemen

19、t (); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); return conn; /用于执行查询数据库的操作/返回查询结果集public ResultSet execQuery(String sql) /sql2000数据库String url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=sbgl; ResultSet rs=null;try /sqlserver数据库 conn=DriverManager.getConn

20、ection(url,sa,); Statement stmt = conn.createStatement();rs = stmt.executeQuery(sql); catch(SQLException ex) System.err.println(DataBase.execQuery(): + ex.getMessage();return rs;/sql执行public void execute(String sql)/sql2000数据库String url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=sbgl; try

21、conn=DriverManager.getConnection(url,sa,);Statement stmt = conn.createStatement(); stmt.execute(sql);catch(SQLException e)e.printStackTrace();public void closeStmt()trystmt.close();catch(SQLException e)e.printStackTrace();public void closeConn()tryconn.close();catch(SQLException e)e.printStackTrace(

22、);public static void main(String args) DataBase db=new DataBase();System.out.println(db.getConn();第五章 系统的实现5.1 共用模块设计的实现 为了提高代码的重用性,把共用部分做成独立的文件保存,保存在inc目录里。这些文件都是纯HTML代码。调用方式: 页面格式 变量文件5.2 主登陆界面 系统设置了两个不同的权限,登陆时首先对权限进行判断,然后对所属权限范围内的用户进行用户名和密码验证,验证成功才进入相应的功能界面。主登陆界面图如下:图5.1 主登陆界面 当输入用户名和密码时,系统对用户角色及

23、密码进行判断和验证,无误时方能进图相应的界面。登陆的代码为:public boolean getOneyh(int newid ) throws Exception DataBase db = new DataBase(); db.connect(); stmt =db.conn.createStatement (); try sqlStr=select * from yh where Id = + newid ; rs = stmt.executeQuery(sqlStr); if (rs.next() yhlist = new Vector(1); yh yh = new yh(); yh

24、.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(); return false; rs.close(); db.closeConn

25、(); db.closeStmt(); return true; catch (SQLException e) return false; 5.2 普通用户界面 普通用户经过验证后进入此页面:图5.2 普通用户界面 普通用户进入页面,系统在右上角显示角色的相关信息。普通用户界面有些功能是受限查询的,如台账管理功能,当普通用户点击台账管理时系统会显示:图5.3 权限显示5.3普通用户功能的实现 进入设备查询页面:图5.4设备查询页面 点击“详细”就看到所选设备的额相关信息,如点击“电脑-详细”,系统显示为:图5.5 设备详情 在查询页面,用户可按编号、名称等查询设备,如按编号查询,显示为:图5.

26、6 查询设备信息查询功能的代码为:public boolean getOnesb(int newid ) throws Exception DataBase db = new DataBase(); db.connect(); stmt =db.conn.createStatement (); try sqlStr=select * from sb where Id = + newid ; rs = stmt.executeQuery(sqlStr); if (rs.next() sblist = new Vector(1); sb sb = new sb(); sb.setId(rs.get

27、Long(id); sb.setsbbh(rs.getString(sbbh); sb.setsbmc(rs.getString(sbmc);sb.setsblb(rs.getString(sblb);sb.setsbxh(rs.getString(sbxh);sb.setsbgg(rs.getString(sbgg);sb.setscdw(rs.getString(scdw);sb.setccrq_n(rs.getString(ccrq_n);sb.setccrq_y(rs.getString(ccrq_y);sb.setccrq_r(rs.getString(ccrq_r);sb.sets

28、bjg(rs.getString(sbjg);sb.setsbsl(rs.getString(sbsl);sb.setsyzh(rs.getString(syzh);sb.setsybm(rs.getString(sybm);sb.setgzrq_n(rs.getString(gzrq_n); sb.setgzrq_y(rs.getString(gzrq_y); sb.setgzrq_r(rs.getString(gzrq_r); sb.setzxrq_n(rs.getString(zxrq_n); sb.setzxrq_y(rs.getString(zxrq_y); sb.setzxrq_r

29、(rs.getString(zxrq_r); sb.setfjmc(rs.getString(fjmc); sb.setfjjs(rs.getString(fjjs); sb.setfjje(rs.getString(fjje); sb.setyzjl(rs.getString(yzjl); sb.setsynx(rs.getString(synx); sb.setbz(rs.getString(bz);sblist.addElement(sb); else rs.close(); db.closeConn(); db.closeStmt(); return false; rs.close()

30、; return true; catch (SQLException e) return false; 进入帮助页面:图5.7 系统帮助界面 用户进入此界面查看相关的系统描述。5.4 管理员界面功能的实现 管理员通过身份验证后进入此界面:图5.8 管理员模块界面 进入用户管理界面:图5.9 用户管理页面管理员可以对用户信息进行添加、修改和删除操作,删除功能的代码为:public boolean delete( int aid ) throws Exception sqlStr = delete from yh where id = + aid ; try DataBase db = new D

31、ataBase(); db.connect(); stmt =db.conn.createStatement (); stmt.execute(sqlStr); db.closeConn();db.closeStmt(); return true; catch (SQLException e) System.out.println(e); return false; 进入类别管理页面:图5.10 类别管理页面管理员可以对类别信息进行添加、修改和删除,添加功能的代码为:public boolean insert() throws Exception sqlStr = insert into lb

32、(lbbh,lbsm) values (; sqlStr = sqlStr + dataFormat.toSql(albs.getlbbh() + ,; sqlStr = sqlStr + dataFormat.toSql(albs.getlbsm() + ); try System.out.print(sqlStr); DataBase db = new DataBase(); db.connect(); stmt =db.conn.createStatement (); stmt.execute(sqlStr); db.closeConn(); db.closeStmt(); return

33、 true; catch (SQLException sqle) System.out.print(sqle.getMessage(); return false; 进入台账管理页面:图5.11 台账管理页面 管理员可以对台账信息进行添加、编辑、删除和查询等操作,点击功能键产生相应的功能页面,如:图5.12 台账编辑页面 在此页面,管理员可以对设备的相关信息进行编辑。进入设备查询页面:图5.13 设备查询页面 管理员在此界面查询设备信息,在相应设备的“详细”功能键中可添加、修改、删除设备信息。修改设备信息功能的代码为:public boolean update() throws Excepti

34、on sqlStr = update sb set ; sqlStr = sqlStr + sbbh = + dataFormat.toSql(asbs.getsbbh() + ,; sqlStr = sqlStr + sbmc = + dataFormat.toSql(asbs.getsbmc() + ,; sqlStr = sqlStr + sblb = + dataFormat.toSql(asbs.getsblb() + ,; sqlStr = sqlStr + sbxh = + dataFormat.toSql(asbs.getsbxh() + ,; sqlStr = sqlStr

35、+ sbgg = + dataFormat.toSql(asbs.getsbgg() + ,; sqlStr = sqlStr + scdw = + dataFormat.toSql(asbs.getscdw() + ,; sqlStr = sqlStr + ccrq_n = + dataFormat.toSql(asbs.getccrq_n() + ,; sqlStr = sqlStr + ccrq_y = + dataFormat.toSql(asbs.getccrq_y() + ,; sqlStr = sqlStr + ccrq_r = + dataFormat.toSql(asbs.g

36、etccrq_r() + ,; sqlStr = sqlStr + sbjg = + dataFormat.toSql(asbs.getsbjg() + ,; sqlStr = sqlStr + sbsl = + dataFormat.toSql(asbs.getsbsl() + ,; sqlStr = sqlStr + syzh = + dataFormat.toSql(asbs.getsyzh() + ,; sqlStr = sqlStr + sybm = + dataFormat.toSql(asbs.getsybm() + ,; sqlStr = sqlStr + gzrq_n = + dataFormat.toSql(asbs.getgzrq_n() + ,; sqlStr = sqlStr + gzrq_y = + dataFormat.toSql(asbs.g

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号