数据库是按照数据结构来组织、存储和管理数据的仓库。数据库是非常重要的基础软件类型,在为工业软件提供高效、稳定、安全的数据存储的同时,为后面的业务应用与计算分析等环节提供服务与支持,绝大多数的工业软件要基于数据库去存储、管理和处理数据,数据库直接影响工业软件的运行效率、可拓展性、灵活度和可靠性等。
根据数据结构的不同,数据库一般可分为关系型数据库和非关系型数据库。关系型数据库主要有Oracle、MySQL、SQL Server、PostgreSQL、DB2等;非关系型数据库主要包括非关系型文档数据库(如Elasticsearch、MongoDB、Couchbase、Firebase、CouchDB等)、非关系型键值数据库(如Redis、Memcached等)、非关系型图数据库(如Neo4j等)、非关系型实时数据库(如PI等)、非关系型时序数据库(如InfluxDB、IoTDB等)、非关系型列簇式数据库(如CloudTable、Hyperbase、GeminiDB等)等。不同类别的工业软件应用的是不同类型的数据库。
一、研发设计类工业软件——关系型数据库和非关系型数据库
对于研发设计类工业软件,其中涉及大量的设计文件、工艺文件等文本型数据,这些文本往往需要存储在非关系型文档数据库之中,而其元信息则存储于关系型数据之中;BOM信息、设计信息等半结构化数据则存储于非关系型图数据库之中。以Dassault的ENOVIA PLM为例,底层的数据资源层包括数据服务器、文件服务器、企业异构系统等,数据对象和业务模型等保存在Oracle或者DB2等关系型数据库中,实体文件存储于Elasticsearch等非关系型文档数据库中,知识数据存储于Neo4j等非关系型图数据库中。
二、生产控制类工业软件——非关系型实时数据库
在生产控制类工业软件中,涉及大量的工业自动化系统,其生产制造要求系统能够快速、高效地进行数据采集、存储和显示,数据库应具有强大的实时数据采集功能,可实时地采集来自不同数据源的原始数据,并为上层的报表、分析工具和软件工具等提供数据服务,支持实时数据的显示、控制与分析,因此生产控制类工业软件主要应用的是非关系型实时数据库。以SCADA为例,SCADA是工业控制和调度自动化系统的基础和核心,其超高的实时性要求决定了核心数据库类型为实时数据库,一方面将现场实时采集的数据传输并存放在实时数据库中,另一方面系统通过访问实时数据库实现实时监控等功能。
三、经营管理类和运维服务类工业软件——关系型数据库
传统的经营管理类和运维服务类工业软件,如ERP、MES、SCM、MRO,其所涉及的数据主要是结构化的业务数据,因此这类工业软件主要应用的数据库是关系型数据库。在这两类工业软件之中,对于采购、生产、库存、销售等各类业务对象和资源信息,每一个对象都包括众多信息,例如员工对象包含性别、年龄、职位、学历等信息,这些数据都是以二维表的方式来组织、存储和处理的,所有数据都存储于关系型数据库之中。以ERP为例,德国的SAP支持的数据库包括Microsoft SQL Server、IBM DB2和Oracle,美国的Oracle ERP主要采用Oracle数据库,用友和金蝶的ERP则采用的是Oracle和SQL server。
四、新型工业软件——非关系型数据库
对于工业物联网、工业互联网等新型工业软件,其中有大量来自工业设备24h不间断采集的时序数据,工业设备采集频率快、测点众多、数据量大,而且在业务应用和分析时有条件过滤和数据聚合等复杂查询需求,关系型数据库无法满足对时序数据的有效存储与处理,因此这类工业软件往往采用非关系型时序数据库。以工业物联网时序数据库IoTDB为例,其凭借出众的时序数据一体化存储管理能力,已经成为航空航天、船舶、轨道交通等众多行业平台和系统的核心数据库。另外,工业互联网和工业APP也同样涉及文件数据,这些数据需存储在非关系型文档数据库中,知识图谱等半结构化数据的存储和管理则往往利用非关系型图数据库。