【IT168 技术】毫无疑问,Microsoft Access 2007 (Access 2007)是最被广泛使用的数据报表和维护工具之一。很多时候,我都看到客户们把大量繁琐的数据从企业系统输出到Access 2007中。他们告诉我这样做的原因是因为他们有很多的应用软件,并且信息技术人员习惯在软件开发时建立一个Access前端处理机。
这种方法所涉及的主要问题如下:
1.产生太多的数据拷贝,而保存这些拷贝将导致大量不必要的数据花销。
2.数据的延迟性。对于那些有需要的人们来说,获取最新的数据将花费太长的时间。另外,当数据被获取时,在不同的时间点看到的数据会有所不同。
3.解决方法过于复杂。转移这些数据需要其本身的生命周期:维护,批处理作业等等。
4.数据存储不安全。因为其可转移性,数据通常都被存储在安全性较低的笔记本电脑上。
5.这种解决方法过于昂贵。大量的组件会导致花销的增加。这些费用虽然都隐藏在不同部分的组织里,但它们的总量是相当巨大的 — 比如内核操作系统许可费用,额外的数据服务器许可费用,网络花销,补丁花销,新的数据存取层所带来的安全保障费用,等等。
除此之外,IT人员总需拼命地尝试控制数据的扩展和解决之前提到的问题。比如,良好的管理方法是解决数据库杂乱无序问题的促进因素。当遇到这样令人头痛的问题时,一些IT部门会采取把数据库转移到企业数据服务器的方法,比如Microsoft SQL Server。
在本系列文章中,我不会作出对这些数据服务器的竞争力的分析;但我想强调的是,我看到一些非常专著的DB2商店在解决这样的问题时,他们除了SQL Server之外没有其他的选择,否则将会导致对其项目发展周期工作效率的重创。我之所以写这一系列的文章就是想让您在面对数据处理方面的问题时能够有更多的自信,然后果断的做出决定。
现在假设把您所有的数据都保存在DB2的数据服务器上(包括z/OS的DB2)并且进行存取。毕竟,如果您的企业数据仓库(EDW)是基于DB2建立的,它就能无限度的拓展并处理各种不同的工作量。或者可以把那些Access 2007的表格移动到DB2数据服务器上,但要把所有的应用逻辑方法,报告,窗体等保存在Access中,这样才不会使您的分析结果和应用开发团队损失任何的工作效率。
如果您这样做,您可以获得如下收益:
1.数据拷贝数量的大幅度减少,它可以实现通过唯一反映事实的数据版本来提供唯一的商务观察角度的目标。
2.减少了延迟时间,其中包含更少的输入和存取路径,以及近乎实时的工作量和存取工具,为您提供最新的商务智能。
3.简化的框架结构使得操作环境更易于管理,从而获得更快捷的解决办法和投资净利率(ROI)!
4.解决办法更加安全,因为数据被封锁在受企业范围内约束的地方。
5.解决方法更加经济。减少的组件能够有效地在基础设施和人力资源方面节约开支;最后能够有效地降低总所有成本(TCO)。
下图概括了这些方法:
在前面的文章中,我详细的解答了当您使用Microsoft Excel来存储(而不仅仅是分析)企业数据时如何解决类似的问题。在本系列文章中,我将向您展示数据库的选择将不会因为工作效率和信息技术人员在Access方面的经验而有所不同;重要的是,我将告诉您在Windows数据服务器上如何使Access 2007(最新版本)与后端DB2连通,因为相比于Access 2003和之前的版本,如今的Access已经有了很大的变化。
准备工作
本系列文章假设您已经在本地机器上安装了适用于Windows的DB2;此外,您的本地机上也已经创建了样本数据库(SAMPLE database)。如果您没有,可以从操作系统的命令提示符中输入db2sampl –xml –sql来创建。如果您想得到DB2的免费试用版在工作中使用,请参阅DB2 Express-C。
您也可以与样本数据库进行远程连接,但是您需要确保拥有适当的权利来为服务器编成目录,执行ODBC设置,有权使用表格等等。大体上,我希望读者能够使用本地机,这样他们就能个人创建样本数据库,拥有管理员的权利从而普遍具有适当的权利来完成文章中所涉及到的所有步骤。
对于Access 2007文件格式的看法
Access 2007有两种方法来连接外部服务器。首先,您可以链接到目标服务器。当要连接到外部数据源时,您可以使用主数据库(MDB)文件或Access 2007数据库(ACCDB)文件。ACCDB文件格式在Access 2007中是全新的并且能取代MDB在之前版本中的作用。我所提出的看法对二者都将适用,因为您的企业很可能仍然有很多MDB文件。
作为选择,您可以采用ADP数据采集系统(Access Data Project)。ADP的接口是使用OLE文件建立的,只包含前端演示项目,比如您已创建的一个Access报表或窗体。在后方,这些对象都与远程的数据服务器连接。ADP已经被使用过一段时间,并且在Access 2007中它们的作用看起来并没有得到很大的提高。这很容易让人联想到它们已经被MDB和ACCDB文件所取代,但这只是我个人的看法。
在Access 2007中,MDB和ACCDB文件格式相对于ADP来说更为有效:它们可以链接到多数据源,没有ADP具有的数量限制,以及更多的优点。因此,我会尝试使用这些文件格式并避免使用ADP作为范例。
把您的DB2数据导入到Microsoft Access 2007
要使用Access 2007作为您DB2服务器的前端,您首先需要创建一个工程。当您启动Access 2007时,会默认打开Microsoft Office Access的启动台。本案例中,在Featuring栏,选择Blank Database,在File Name栏中输入名字DatabaseJournalAccess2DB2,然后点击Create。
要连接Access 2007到Linux, UNIX, 和Windows服务器的后端DB2,您需要启动一个数据链接。您可以使用Table Tools 部分中ODBC Database选项所包含的External Data栏来进行链接。
当您选择ODBC Database选项时,Get External Data – ODBC Database窗口将被打开。
在前面的窗口您可以看到Access 2007提供给您导出表格和所维护数据的选项。您也可以选择通过连接数据源和创建链接表格来把表格直接提取到前端。透过链接表格,Access 2007用户可以观察数据,但数据却存储在远程服务器上。之前我介绍过为什么从商业角度上来讲在多个地方存放同样的数据是有害的。为了避免这种情况发生,您可以选择Link to the data source by creating a linked table然后点击OK。
当Select Data Source(选择数据源)窗口开启时,如下所示。如果您之前使用过ODBC数据源,您将会很熟悉这个窗口。

假设您没有通过DSN文件来进行数据库连接,选择Machine Data Source栏,从Data Source Name栏中选择目标服务器(本案例中,选择SAMPLE),然后点击OK.
在“准备工作”段落中,我没有提到您需要把样本数据库设置成一个ODBC数据源(或者至少链接到DSN文件来代表与样本数据库的连接)。这是因为很多时候当您创建样本数据库时这项工作会自动被完成,而且通常情况下,在工作环境中您也不会使用样本数据库。当设置远程DB2服务器的时候,您可以指定把DB2数据库加入到刚才显示的Machine Data Source列表中。
例如,您可以使用Add Database using Wizard选项利用配置助手来添加一个新的服务器连接,在您的服务器上优化Access的DB2数据库连接并将其设置为一个ODBC数据源。
您也可以选择在DB2上创建一个DSN文件来重新分配连接信息或者使该连接只显示在您的服务器上所定义的具体使用者:
如果您想要连接的DB2目标服务器没有在Data Source Name列表中显示出来,只需点击New来添加它即可。Create New Data Source窗口将打开,在单选按钮中选择您所期望的相对于系统可以获取的目标服务器
在上图中,您可以看到Create New Data Source窗口中的两个IBM DB2 ODBC Drivers。这是因为DB2 9支持产品拷贝的多重安装。比如,在本案例中,我的机器上有DB2 9.5版本(由DB295Main指出)和另一个单独的DB2 9的安装在运行。这个属性是非常好的,特别是在转移和维护方面。
在您点击Finish之后,将打开ODBC IBM DB2 Driver – Add窗口。只需分别输入数据库的名字,及其别名和可选填的连接说明,然后点击OK。

在之前的窗口中,您可以使用Add键来快速添加一个数据库连接,就像您在Office 2007所做的那样,这是Microsoft API整合的很好的一点。例如,假设管理员只在您的机器上安装了DB2 Runtime Client,这意味着您没有任何工具来把数据库连接编成目录。不要担心!驱动器已经与Microsoft Windows结合为一体,这样很多在之前配置助手中详细设置过的选项依然能在Windows ODBC结构中适用:

在上图中您可以看到怎样把一个新的DB2服务器添加到系统中,指定安全选项等等;这些都可以在过程中设置而不需要停止您现在所做的事情。您甚至无需借助CLP或其他工具就可以添加一个适用于z/OS和i5/OS的DB2连接。您难道不为整合的力量而感到震惊么?
就算您喜欢用脚本来做任何事,您也可以利用用户存取概况中所包含的ODBC信息。除此之外,一些DB2 command line processor (CLP) commands允许您在为数据库编辑目录时与系统中的ODBC设置进行交互式操作。例如:
只要拥有资格认证,您就可以把DB2服务器连接到Access 2007上了。那就让我们来添加一些表格吧。在最初的Select Data Source窗口中选择样本数据库,然后点击OK。打开Link Tables窗口,它将显示出在您远程DB2服务器上的所有表格。在本文中,选择EMPLOYEE, INVENTORY, ORG, 和 STAFF表格,然后点击OK。
Access 2007将会遍历所有选择的表格然后把它们链接到Access 2007的前端图形接口。在遍历过程中,如果系统不能识别出其中的一个表格,将会提示您指定一个表格,这样系统就能确保整个数据集更新的完善。
例如,在样本数据库中,ORG表格没有任何区分标识(如主键),系统会提示您来选择定义一个标识:
当所有被选的表格连接好以后,它们都将显示在All Tables视图中,它默认显示在Access 2007软件的左侧。
提示:一些清理工作
无论何时,当您在Access 2007中创建了一个新的数据库,系统将默认创建一个表格模板Table 1。因为它与本文所涉及的内容无关,您可以通过以下步骤移除它:
1.选择Table1栏这样焦点将转移到此表上。您可以看到在Access 2007中焦点集中在Table1上会如下所示:

2.右键点击Table1栏,选择Close。因为您没有在默认的表格模板上改变和保存任何东西,它将会被直接关闭并不会再被创建。如果您确实创建了它,您需要右键点击All Tables视图中的表格然后点击Delete。
现在您已经把Access 2007连接成DEPT, EMPLOYEE, INVENTORY, ORG, 和STAFF DB2 表格的图形前端。可以留意到Access 2007把每个表格名默认前缀命名为_ qualifier。您也许想要修改它;但毕竟,Access 2007另一端的信息员工并不介意(或不知道)数据存放在哪里,他们只想要存取数据。想要为表格重命名,只需点击表格,右键点击,选择Rename选项,然后为表格输入一个新的名字即可。例如,在下图中你可以看到我已经把PAULZ.DEPT表格重命名为DEPARTMENT:
您可以留意到我没有把表格重命名为DEPT,因为那是样本数据库中的名字。您可以看到Access 2007允许我从数据图表中抛开数据库中的模式来提供一定范围的提取标准,然后翻译成商务术语。这样,分析专家可以探究这些商务实体而不是一个充满命名约定和局限的世界。
在本系列文章中,我把所有添加到Access 2007的表格都进行了重命名,这样All Tables视图应该如下所示:

这时,您会想观察一下数据。很简单,只要双击您的商业实体:
小结
在这篇文章中,我为您展示了如何把Access 2007配置成DB2数据操作的图形前端。特别的是,我们创建了一系列的链接表格,这样数据就没有真正存储在Access 2007的服务器上,但是信息技术人员是可以影响这个提供报表,窗体等庞大的数据集的。除此之外,我们还介绍了后端DB2服务器上的提取层,这样信息技术人员就可以从商务的角度来观察数据,避免了由潜在的命名约定,模式等所引起的麻烦,贯彻了数据服务器上的逻辑设计。
在本系列文章的下一部分,我将向您介绍当在Access 2007上连接DB2数据之后您能做些什么。(转载IT专家网)