今天主题是数据模型讨论并看一下数据交换模型。我是因为接触过几次过于复杂的数据交换模型而对这个领域开始感兴趣的。
数据交换模型
数据交换模型使得不同应用程序之间的数据交换成为可能。这里是一个最基本的动机:不同应用程序之间的组对会导致有 n*(n-1) 个数据接口。
而对作为对比,如果使用一个中间表示层,将只需要 2*n 个接口。数据交换模型,就是这个中间表示层。
交换模型可以作为数据传输的规范,也可以用来定义一个交换数据库的模式。源应用必须将他们的数据转换成这种可交换格式,类似的,目标应用必须使用交换格式来填充他们的内部数据结构。所以,数据交换格式在应用程序之前起到衔接作用,并把他们区分开来。
数据交换格式并不是用来建立应用程序的,(所以他们的)模式应当不很复杂并且容易解析。它并不需要刻意强调数据质量。数据交换格式的全部意义就在于提供从源到目标的一个方式 。
鉴于对于小规模Schema和灵活性的需求,典型的数据交换模型通常包含元数据和数据。而如何定义并理解这些元数据以及数据就有些烧脑筋了。
数据交换模型 对 应用程序数据模型
数据交换模型和应用程序数据模型是有很大区别的。交换式数据是临时的,而相对的,应用程序数据则是持久性的,提供了应用程序的“记忆”。
而且, 数据交换模型通常比较抽象,体积较小。他们的目的就是移动数据。而应用程序数据则相反,他们的目的是使业务数据可以操作并直接体现业务数据。应用程序数据模型通常比较大(通常有好几百个表甚至更多),因为他们需要尽可能较精确的描述数据以提高数据质量。
结论
有经验的开发者很明白数据模型的重要性,数据模型是你能够定义数据以及数据库还有操作这些数据的应用程序。
具体的数据内容和数据模型的定义取决于目的。有很多种数据模型,包括应用程序模型,数据仓库模型,企业模型,以及交换模型。本文关注了数据交换模型并和应用程序数据模型进行了对比。