王凯林
(华北计算技术研究所,北京 100083)
基于消防一体化的灭火救援知识库的研究与设计
王凯林
(华北计算技术研究所,北京 100083)
随着社会的不断进步和发展,灭火救援事业面临更大的挑战;根据消防一体化建设项目的需求,每个业务系统交互愈加繁复,产生的问题愈加复杂,由此提出一个可以解决双方面问题的知识库。分析此知识库在整个消防一体化项目中的位置,并对系统中海量数据查询的优化做出研究。
消防一体化;灭火救援;知识库;查询优化
随着国民经济的飞速发展,灭火救援任务工作量日益繁重,任务种类日益复杂,且危险化学品所引起的事故频繁发生,其种类已达8万种以上,极少有人能够熟记每一种危险化学品的特性与处置要点,一旦处置不当,就会造成严重的后果。另外,随着城市建设速度的加快,各种超高层、超大型建筑发生火灾或非常规突发事件的数量上升,扑救和处置难度越来越大。由于以往信息交流和共享存在桎梏,使得大多基层和中级指挥员缺乏应对复杂火灾事件的实战经验,在第一出动力量到达灾害现场后,通常采取保护性的战术措施,贻误了战机,失去控制和消灭灾害事故的最佳时机[1-4]。
如果能够建立一个开放的知识库,让有相关经验的人员将其经验、心得写入其中,使其不断进行丰富,当此类事件再次发生时,无此类经验的人员可以在此知识库中及时查找到相关资料,以保障灭火救援行动顺利进行。而对于知识库中尚欠缺的信息,可以通过知识库的发布系统,得到全国灭火救援专家的解答和完善,即可又好又快地辅助灭火救援任务。
消防一体化建设项目按照“深化应用、资源整合、信息共享”的原则以建立统一的工作平台、统一的身份认证和统一的权限管理[5]。从结构上,消防信息化建设项目软件架构分为三层:基础数据平台、公共服务平台及业务信息系统。这些分布式的系统数量众多,功能独立,却又相互依赖。在消防业务中,一个业务流程一般会涉及到多个系统,因此,需要这些系统能够协同工作。工作过程中产生的大量的工作经验和业务信息都是知识库宝贵的资源,将这些信息整合到知识库中可以有效的指导各个业务系统,提高工作效率。
灭火救援知识库的目标是更好的解决实际工作中的问题,并且提高其他业务系统的工作效率,依据消防一体化的要求,其功能框架图如图1所示。
图1 灭火救援知识库整体架构
灭火救援知识应用平台是直接和用户交互的前端界面,主要作用就是加强灭火救援工作实际参与者的交流,共分为五个模块:
(1)用户管理:用于添加和删除用户,管理用户权限,不同权限的用户对应不同的功能。
(2)系统管理:包括信息同步周期的设置,日志管理,版本号管理等涉及系统的功能。
(3)博客模块:用户可以将自己在工作中的心得体会以博客的形式上传到知识库,开放浏览,上传模式可以是文档直接上传,也可以在线编辑,博客开放评论,可以使更多的人参与讨论。
(4)查询模块:用户可以得到包含输入关键字所有内容,排序按照每条知识点击量降序排列,对于查询结果可以做时间段、使用范围等方面的限制,得到最符合用户需求的结果。
(5)问答模块:用户在查询模块无法得到自己想要的答案的情况下,可以在问答区提问,将有他人给出答案,并且对于给出的答案进行投票,或者是由提问者根据自己的实践选择最佳答案。
知识管理平台是整个灭火救援知识库的核心。主要职能是数据处理:
(1)与其他业务系统之间的交互。基于消防一体化的项目需求,灭火救援知识库和其他业务系统比如灭火预案系统、信息直报系统、业务训练系统、运维业务系统等之间有着紧密的联系,就运维问题举例说明:运维系统中有大量的其他的业务系统运行过程中遇到的问题及对应的解决方案,知识库接收这些记录,经过一定处理存储在数据库中;而再遇到相应问题时,可以直接从知识库中获取解决方案,不用再去寻求运维人员的帮助。
(2)文本数据处理。知识库系统需要采集各个系统产生的业务信息,也需要分析用户自己向系统中输入的知识,这些信息大多数都是以文本形式进入知识管理平台的,但是这种非结构化得数据是无法直接存储使用的,所以知识管理平台需要对于文本数据进行处理,主要工作是文本分词、文本聚类分析和文本关键字、摘要的提取,将其结构化存储到数据库中。
(3)智能查询。对于用户提出的查询请求,知识管理平台负责将其“正确化”,根据已知的搜索结果,优化用户的表达得到最合适的结果,比如用户输入了一串汉语拼音作为关键字搜索,知识管理平台可以将其转化为文字,然后再去数据库中得到对应的结果。
知识库系统中用户使用最频繁的就是查询操作,而随着知识库中的数据量不断增加,查询操作的难度也不断增加,所以尽可能提高查询操作的效率成为了知识库系统成功的关键。提高数据库查询效率,一般从两个方面入手,一种是优化程序,改变程序逻辑;一种是从数据库性能提高方面,优化SQL语句的执行效率[6]。
笔者从如何提高数据库的查询效率,优化SQL语句执行速度做出研究,结合自己在工作中的实际经验,从合理的创建和使用索引,提高SQL语句质量和分页查询方面解决上述问题,事实表明是有一定的效果的。
使用索引可以有效加快数据库查询速度,这是业内人的共识,但是大量的创建索引也会带来相应的维护的工作,所以要达到一个相对的平衡,就必须合理的创建索引。
依据实际经验索引的创建可以遵循以下原则:
(1)表的主键和外键必须建立索引;
(2)对于经常被用于连接查询的表建立索引;
(3)选择性比较高的列创建索引;
(4)对于需要频繁插入或者删除数据的表尽量不建立索引。
(1)SQL语句中不对列进行运算。任何对于列的运算都会导致全表搜索,导致索引的浪费例如:select * from person where age*12 < 60,select * from person where upper(name) < S;类似这样的SQL语句都会导致全表搜索,而不会使用索引,应该尽量避免。
(2)避免隐藏的类型转换。在编写SQL语句的时候,容易忽视某些列的本来属性,在做条件查询的同时,导致不必要的类型转换,最后导致全表搜索,SQL语句无法使用索引查询,比如在person表中age设置属性为varchar,编写SQL语句select * from person where age = 20;看似这句SQL没有问题,实际上却隐藏着对age列的类型转换,即把varchar转化为int型的过程,最后导致索引无法使用,原句改为select * from person where age = ‘20’就可以完美使用索引。
(3)尽量减少“in”“or”和“not in”的使用。含有“in”“or”的where语句经常会导致索引失效,因此应该将这些条件分开写,在每个SQL语句中使用索引。
(4)尽量避免使用“null”“not null”。理论上讲索引列中是不包含“null”值的,所以如果where条件句中包含“null”关键字,索引是无法被使用的。
(5)尽量避免使用“<>”。不等号的使用会导致索引失效,应该尽量避免。最好根据实际情况将其改写为其他形式。
(6)尽量避免两个列之间的比较操作。两个列的比较操作,可能导致索引不能被使用。
在系统实现查询功能时,采用分页显示的方式,可以大幅提高系统的响应速度,即在用户使用查询功能时,系统不一次性显示所有的查询结果,采用每页显示n条数据的方式,这样数据库在做查询操作的时候,一次查询n条数据,可以大幅度提高工作效率。
本文根据消防一体化的项目建设原则,为了提高整个灭火救援的工作效率,提出了灭火救援知识库,并且给出了知识库的基本构架,以及每个框架构件的主要职责;然后针对知识库数据查询优化做出研究,提出了几种优化数据库查询性能的方法,实现了数据查询性能的提高。
[1] 郑儒欣, 康青春. 基于BS模式灭火救援知识库的设计与实现[J]. 消防管理研究, 2010(3): 265-268.
[2] 刘传军, 任钢. 基于移动互联网的山东消防移动指挥系统的设计和实现[J]. 软件, 2014, 35(11): 14-21.
[3] 段祥永. 灭火救援中数字化建设的应用[J]. 软件, 2013, 34(7): 37-38.
[4] 巩思汉. 基于工作流的应急预案管理系统的设计与实现[J].软件, 2015, 36(11): 89-91.
[5] 郑杨飞, 金辉, 张勇等. 消防一体化环境下的信息交换平台关键技术研究[J]. 计算机应用与工程, 2012, 48(7): 219-223.
[6] 钟小权, 叶猛. Oracle数据库的SQL语句优化[J]. 计算机与现代化, 2011, 187(3): 124-130.
Research and Design of the Knowledge Base of Fire Fighting and Rescue Based on the Integration of Fire Control
WANG Kai-lin
(North China Institute of computing technology, Beijing, 100083)
With the continuous development and progress of the society, the cause of the fire fighting and rescue are facing greater challenges; according to the fire integration requirements of the project, each business system interaction even more complicated, more complex problems, this paper presents a double can solve the problems of knowledge base. The position of this knowledge base in the whole fire control project is analyzed, and the optimization of massive data query in the system is studied.
Fire fighting integration; Fire fighting and rescue; Knowledge base; Query optimization
TP311
A
10.3969/j.issn.1003-6970.2016.10.026
王凯林(1993-),男,硕士研究生,主要研究方向为企业信息化,分布式系统。
本文著录格式:王凯林. 基于消防一体化的灭火救援知识库的研究与设计[J]. 软件,2016,37(10):118-120