基于数据模型的编程应用

2012-11-26 05:45邢光林魏文刚
关键词:数据表数据模型数据结构

邢光林,魏文刚

(中南民族大学计算机科学学院,武汉430074)

面对不同的客户,就是面对不同的需求和不同的数据.软件必须能够容忍并处理这些变化,才可能支持多种客户数据结构,从而满足多个客户的多种数据结构的需求.数据模型可实现对多种客户数据的统一分类管理,使得原本针对每一种客户数据的编程提升到针对一类数据编程,从而使编程的效率和接口的复用性得到提升.

1 数据模型

数据模型是对客观事物及其联系的逻辑组织描述[1,2],由多种抽象数据结构和通过抽象数据结构访问用户数据的接口组成,如图1所示.

基于数据模型编程,实质上就是调用数据模型提供的接口取得用户数据表以及用户数据表字段[3,4].如图2所示,从众多用户数据抽象出的通用数据结构结合相关数据操纵接口,即得到能够统一管理众多数据的数据模型.

图1数据模型 对多种数据结构的抽象实现Fig.1 Data model abstract implementation for various kinds of data structure

2 基于数据模型的存取数据接口流程

在需要用同一套软件满足不同客户需求的时候,接口的复用性显得格外重要.对接口复用性要求最高的部分,是负责数据存取的接口.下面重点探讨如何基于“数据模型”实现存取数据接口的流程.

图2 基于数据模型编程原理Fig.2 Programming principle based on data model

在面对不同的客户的不同数据库时,要使接口不变,接口中的SQL语句必须改变.也就是说,需要封装一个单独的子接口来专门负责得到SQL语句.或者,至少需要一套单独的接口来取得不同数据库中的数据表名和字段名,然后对这些数据表名和字段名进行组装,从而得到不同的SQL语句.存取数据接口的实现流程如图3所示.

3 基于数据模型的编程实例

在地质勘探行业,专业人员需要对勘探得到的海量数据进行管理和分析,以辅助研究地质构造、各种矿物勘探和预测地质灾害等[5,6].电测深法[7,8]是地球物理勘探中电法勘探的一种,下面以此为例来探讨基于数据模型的编程应用.

先构建数据模型,数据模型实例如表1所示.

图3 存取数据接口的一种实现流程Fig.3 Flowchart of data access

表1 原始数据的数据模型Tab.1 Data model of meta data

用户数据结构实例如表2所示.

表2 电阻率测深原始数据表Tab.2 Meta data table of electrical sounding

数据模型和用户数据结构绑定关系实例如表3所示.

表3 电阻率测深专业数据模型和用户表绑定关系Tab.3 Binding relation of electrical sounding data model and user table

相关功能接口实现之后,按照图4所示的操作说明将数据模型和用户数据绑定,然后调用功能接口,便可以实现对不同用户的数据的存取等各种操作.

图4 数据模型和用户数据的绑定操作说明Fig.4 Binding operation of data model and user data

从图4中可以很清楚地看到数据模型表与用户表的对应关系以及数据模型字段和用户表字段的对应关系.利用这种对应关系,结合不同的专业,便可实现对用户数据的访问.针对不同的用户,将系统当前使用的数据库更换为该用户的数据库之后,只需为该用户配置相似的数据模型并将数据模型的相关信息存放在该用户的数据库中供系统使用即可.

4 结语

为了有效地管理众多软件客户的各种数据,引入了数据模型的概念,对数据模型的原理和实现方法作了简介,并给出了具体的基于数据模型的编程应用.基于数据模型开发的软件对所有用户是通用的,针对不同的用户,仅需为其单独配置一套数据模型,而不需要为每一个客户单独提供一套软件,这在一定程度上降低了软件开发的成本.

[1]Peuquct D J,Duan N.An event-based spatial temporal data model(ESTDM)fortemporalanalysis of geographical data[J].International Journal of Geographical Information Systems,1995,9(1):7-24.

[2]Worboys M F.A unified model for spatial and temporal information[J].The Computer Journal,2009,33(4):400-402.

[3]吴慧欣.三维GIS空间数据模型及可视化技术研究[D].兰州:西北工业大学博士学位论文,2007.

[4]张 林.基础地质数据管理与三维地质模型构建方法研究[D].西安:西安科技大学,2007.

[5]底青云,王光杰,安志国,等.南水北调西线千米深长隧洞围岩构造地球物理勘探[J].地球物理学报,2006,49(6):1836-1842.

[6]滕吉文.石油地球物理勘探的发展空间与自主创新[J].石油物探,2007,46(3):214-225.

[7]李大虎,何 强,邵昌盛,等.综合地球物理勘探在青川县城区活动断层探测中的应用[J].成都理工大学学报:自然科学版,2010,37(6):666-672.

[8]杨宏章.电法在非洲找水中的应用[J].物探与化探,2009,33(6):660-662.

猜你喜欢
数据表数据模型数据结构
数据结构线上线下混合教学模式探讨
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
基于Pro/E 的发射装置设计数据快速转化方法
湖北省新冠肺炎疫情数据表
为什么会有“数据结构”?
面板数据模型截面相关检验方法综述
高职高专数据结构教学改革探讨
经济全球化对我国劳动收入份额影响机制研究——基于面板数据模型
QH165点焊机器人数据库开发技术