Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 推荐资源

企业数据库全局战略中的Access(翻译)

时 间:2018-01-14 00:02:15
作 者:Luke Chung   ID:47579  城市:广州
摘 要:人们对微软 Access 在组织中扮演的角色有非常多的争论。它的能力介于 Excel 和客户端服务器数据库之间,使用范围从简单的终端用户任务,一直延伸到关键任务(mission critical)处理。本文将探讨围绕在 Access 周围的这些问题:
◾为什么它在大型组织中的使用存在争议?例如在著名的萨班斯-奥克斯利法案 (SOX)中。
◾在哪里使用它是适当的
◾在哪里不适当

本文还将着重探讨那些成为关键任务的 Access 应用程序,其实刚一开始情况并不是这样,但是最终却演变成这样。这是什么原因?为什么它是自然而然,无法阻止的,以及如何解决它。
正 文:

译者的话
围绕着 Access 有很多误解和偏见,如果你也有这方面的困惑,不妨看看。
文章原作者 Luke Chung 在微软 Access 开发者社区拥有很高的威望,是公认的数据库专家。详见 www.fmsinc.com

文章站在一个很高的角度,分析 Access 的利弊及如何权衡。写得很长,跟学术论文一样非常严谨。

很早之前就读过这篇文章,现翻译过来分享给国内的 Access 爱好者们。翻译用了 3 周的业余时间,有误之处,欢迎批评指正。原文可参见这个链接。

原文标题
组织数据库全局战略中的 Access

摘要
人们对微软 Access 在组织中扮演的角色有非常多的争论。它的能力介于 Excel 和客户端服务器数据库之间,使用范围从简单的终端用户任务,一直延伸到关键任务(mission critical)处理。本文将探讨围绕在 Access 周围的这些问题:
◾为什么它在大型组织中的使用存在争议?例如在著名的萨班斯-奥克斯利法案 (SOX)中。
◾在哪里使用它是适当的
◾在哪里不适当

本文还将着重探讨那些成为关键任务的 Access 应用程序,其实刚一开始情况并不是这样,但是最终却演变成这样。这是什么原因?为什么它是自然而然,无法阻止的,以及如何解决它。

执行摘要
它是进化(升迁)的结果。组织对数据库需求是不可预知的,同时也随时间而改变。Access 解决了许多的数据库问题,但不是全部,其他工具也是这样。在它的功能范围内,Access 是最佳解决方案提供者。作为世界上最受欢迎的数据库产品,显而易见的,Access 主导着数据库生态系统中最重要的环节之一。

从财务角度来看,是选择 Access,还是用其他平台,最终都归结于成本的考量。相比其他更成熟的数据库,Access 数据库的成本与生俱来就更低。所以当你面临一个这样的机会:预算$25,000 ,要求做一个应用程序,Access 可以做,而更昂贵的平台不能做时,选择就变得很简单了︰
◾使用 Access 创建的应用程序,同时容忍它固有的局限性
◾使用更昂贵的平台,同时承担预算赤字
◾放弃这个机会,让给竞争对手 (或不服务客户)

制订组织的数据库战略时,如果能将单个数据库随着时间的推移不断进化的特点考虑进来是非常有助益的。健康的数据库系统不是创建好了就完了,它还会改变和成长。不好的数据库应用会的消亡,有时甚至好的数据库应用也会遭到遗弃,因为环境 (市场) 变了。

每年,数以百万计的数据库创建在 Excel 电子表格中,但只有很小的比例进化(升迁)到下一个级别︰ Microsoft Access。同样,只有很小比例的 Access 应用程序进化(升迁)到更复杂的解决方案中。在此期间,大量的数据库需求完全被 Access 满足了。Access 在它擅长的方面是做得最棒的。

IT 经理在战术上需要了解和使用 Access,同时应当预计到一些 Access 应用程序会随着时间的推移而迁移。这并不是说 Access 不好,而是数据库进化(升迁)的自然过程。当然如果在一开始创建的时候,就使用一个更加成熟的数据库产品,那自然是最好不过,但是在首次创建的时候,你很难预料得到该数据库系统原来有这么重要。 你也可以说初始设计者也预料不到今天的系统需求。是时间和过程,把我们带到了目前的位置,而不是初始的想法。

同样的道理,我们可以预测今年创建的所有数据库中, 2%的哪些数据库会在3年以后迁移到别的数据库平台吗?大多数会永远完美的运行在 Access 中或者灭绝。当你有更简单、 风险更低的 Access 解决方案时,做一笔大的冒险投资是没有意义的。让时间来决定哪些数据库需要进化(升迁),需要额外的投资,让它们上升到一个新的层次。关键是对这一点要有预见,而不是在它发生的时候感到惊讶。

甚至当 Access 应用程序进化(升迁)到另一个平台时,Access 是支持将 Jet 迁移到 SQL Server 的,同时能保留之前的应用程序的开发投入。已开发的特性可以被带入到新的平台,从而能保证新系统的成功(至少可以减少终端用户的反对) 。在这种情况下,Access 已经被证明是一个伟大的原型数据库。

精明的 IT 经理知道什么时候 Access 是有效的,也知道什么时候无效。如果一个项目可以用 Access 来开发,投资回报率都会优于其他的替代技术。利用 Access 的优势能在财务上和用户、 市场和客户状况的响应方面,赋予您的组织明显的竞争优势。


目录
1.组织中有很多的数据库需求
2.数据库金字塔
3.数据库进化(升迁)
4.组织中数据库面临的挑战
5.战略使命和愿景
6.Access 满足了一个重要市场
7.数据库解决方案成本
8.Access 的优点
9.Access 的局限性
10.为什么 Access 很重要
11.探索 Access 的局限性神话
12.萨班斯-奥克斯利法案 (SOX) 的影响
13.IT 部门为什么讨厌 Access
14.Access 是专业的数据库吗?
15.战略性地使用 Access
16.结论

1. 组织中有很多的数据库需求
一些数据库系统是组织生存的关键,而另一些则只是快速搭建用于临时数据分析等这类干脏活的系统。无论是大的组织还是小的,按照层次和目的来划分,数据库解决方案大概可以分为下列几种:

1.1 企业级
这个级别的都是关键任务应用程序,没有它们整个组织都无法生存。举例来说,会计系统、 客户事务跟踪、 高容量的数据处理,或其他关键的系统,这些对组织完成它的使命至关重要。在大型组织中,这被认为是数据中心的功能。这里的关键问题包括处理大量的数据,维护历史数据和遗留系统、 准确性、 安全性和管理深度 (备份、 灾难恢复等)

1.2 部门级
为部门创建的应用程序较少影响到整个组织的生存。尽管这些系统可能包括重要数据中心应用程序,一般来讲这个级别的系统都是由本部门自身来管理。部门级应用程序通常由专业开发人员创建,由专门人员维护。他们时常接触或传递数据到数据中心。

1.3 工作组/团队级
工作组应用程序侧重于一小群人一起工作的需要。这些应用程序可能经常被迅速的修改,以满足工作组面临的,内部或外部市场的需求和挑战。工作组应用程序通常都是建立在 PC机基础上 (而不是大型机),也通常由使用它的团队控制。这些应用程序的开发,通常需要专业开发人员的参与,当然也有很多是由高级用户创建的,其中并不涉及编程开发。这些应用程序通常从数据中心,检索导出数据,很少发送回数据。常见的例子有:数据分析、 报告生成和管理工作组履行其职能的需求等。

1.4 个人和小团体
很多人在自己的个人电脑的 Excel 和 Access 中创建自己的数据库。这些往往都是单用户的,也只有相对很短的生命周期。它们的目的是简化个人或小团体的工作。这些应用程序的创建人,大都是不以编程为主要工作内容的人。


2. 数据库金字塔
绝大多数的数据库解决方案是简单的。随着系统能解决越来越多的问题,组织拥有的系统数量在不断减少。

在低端使用的是非常灵活和快速应用程序开发 (RAD) 解决方案。生命周期短,只牵涉非常有限的机构,所以任何错误都不会威胁到整个组织的生存。成本也相对比较低。

沿着金字塔向上移动,解决方案变得越来越复杂和重要。系统用户数量不断增加,安全性和可靠性变得更加重要,系统也需要进行扩展。可维护性变得更加重要,更多的人参与到系统的创建过程中,系统也超越了每一个参与者。因为系统触及了更多的人和事,所以系统设计要花更多的时间。当需要修改系统时,系统的复杂性和关键性决定了,这个修改需要更长的实施时间、 测试测试和归档时间。这一切都抬高了系统的成本,因为一旦出错,会让组织损失惨重,组织的生存也越来越依赖于它们。

在金字塔顶端,如果你丢失了一条记录,你可能就威胁到本组织的生命,你的工作也可能就丢掉了。在底部,人们丢失记录、 表格和整个文档,甚至整个数据库都不会对他人有重大的负面影响。价值上的差异会影响成本和开发时间。


3. 数据库进化(升迁)
软件应用程序与生物学,达尔文主义有许多相似之处。一些应用程序通过进化(升迁),生存了下来,而其他的应用程序灭绝了。数据库的进化(升迁)和市场的选择,是理解 Access 在组织内使用的关键。



3.1 简单的数据库可能演变成复杂的
大多数数据库应用程序从金字塔的底端开始。有人创建了电子表格或小型数据库,发现它有用并与少数人分享。他们喜欢它,并添加更多的功能。越来越多的人依赖该系统,随着时间推移,某人创建了供其个人使用的简单解决方案,最后发展成为整个部门或整个组织的关键任务系统。

3.2 只有很少的数据库会进化(升迁)到下一个级别
重要的是要记住这是例外而不是规则。每一个应用程序成功地从一个级别”进化(升迁)”到下一个级别,这后面是数以百计(如果不是数以千计)的应用程序永远都不会进化(升迁)。很多将被人丢弃,因为他们并不是很有用,或由于环境 (商业)改变。同时有一些系统运行得非常完美而永远不需要迁移。

3.3 硬件也演变
类比硬件的摩尔定律,组织面临的业务(数据库)问题的类型随着时间的推移很少会保持不变。 二十年前,需要大型机才能完成的解决方案问题,现在在笔记本电脑上可以轻松搞定。对于性能来讲,时间是站在金字塔的底部的解决方案上的。随着时间的推移,越来越多数据库的问题是由这部分解决,而金字塔的顶端会去解决那些以前无法计算或超出预算的问题。

3.4 进化(升迁)是不可预知的
今天用正确的方式去开发明天的关键任务型应用程序,这当然会更好,也更便宜。但这通常是不可能的,它很难预测,今天的众多小型数据库中,若干年以后,哪一个将会成为关键任务型系统。今天预想创建的这些数据库系统,不一定就是将来所需要的。组织的需求是随着时间推移而不断进化(升迁)的,其基础设施也是这样。数据库自身的进化(升迁),才使他们成为关键任务系统,而不是开发者最初的设想。

3.5 预计进化(升迁)
成功的数据库系统随着时间的推移不断进化(升迁)。一个好的 IT 策略是拥抱,而不是抵抗这种自然的趋势。期待着这种进化(升迁),是成功的数据库战略的一部分。这意味着,要为应用程序迁移到新的平台,或者需要完全重写提前做好准备。

当这一切发生的时候,你不应该归咎于现有的平台,而应该去庆祝组织和系统的成功,把它推到了一个新的水平。现有系统应被视作为下一个系统的原型,因为它良好定义了业务需求并且用户也接受了它。这大大降低了开发新系统的风险。现在这个世界,昂贵的解决方案几乎很少能实现当初设计他们的意图。

转型期也是一个理想的机会,可以添加新的功能,”清理”系统,因为经过多年的升级,可能当初设计时的许多假定都是错的。这种可能性甚至在基于更复杂平台上重建的系统也会存在。然而,它可能进化(升迁)得没那么快,人们也无从得知那些假定是否是成功的。


4. 组织中数据库面临的挑战
每个组织都面临着无数的数据库挑战去完成他们的使命。这些包括︰
◾投资回报 (ROI)最大化
◾人力资源管理
◾快速部署
◾灵活性和可维护性
◾可扩展性,但不是第一位的

4.1 投资回报率 ( ROI) 是关键因素
最大化投资回报率比以往更加重要。往数据库应用程序投入了巨资以后,组织的管理上亦要求其必须要有切实可见的成果。然而许多数据库开发的投入,最终却并未能达成它们事前的承诺。为组织每一个层级选择正确的技术和方法是投资回报率最大化的关键。这意味着选择最佳的总回报,但也并不意味着选择成本最低的初始解决方案。这往往是首席信息官/首席技术官(CIO/CTO)需要做的最重要的决定。


4.2 人力资源管理
技术定制,个性化开发方面,开发人员管理非常具有挑战性。技术或应用程序越复杂,能胜任工作的人越少,雇佣他们也越昂贵。同时人员流动也始终是一个问题,制定并执行正确的开发标准,是是否能成功地维护和支持遗留应用程序的关键。员工的培训和新技术的学习跟进也是非常具有挑战性的。

4.3 快速部署是关键
能快速创建数据库应用程序是很重要的,这不仅降低了成本,同时也能快速对内部或外部客户的需求做出反应。能够快速创建应用程序,这种能力能为组织提供显著的竞争优势。IT 经理应该负责提供可供选择的各种替代解决方案,以及权衡它们之间的利弊,以支持该组织的业务需求。通过使用不同的技术,你可以向组织决策层提供这样的选择方案:60% 的解决方案在 3 个月内完成,90% 的解决方案在 12 个月完成,或者 99% 的解决方案在 24 个月完成。(你也可以用金额来代替月份)有时候在市场上,时间是最关键的,而有的时候,关键因素可能是成本,其他时候也有可能是技术的特性或者安全性是第一位的。市场变化得非常快,同时也无法预料。我们生活在“够用就行”的世界,而不是万事都要“完美”的世界。所以知道如何提供“够用就行”的解决方案,会给你和你的组织带来竞争优势。

4.4 灵活性和可维护性是重点
即使是精心设计的系统,在经过了多个月的开发努力后,还是避免不了要去修改。一个版本接着一个版本。将灵活性设计在系统之中,这样的系统能够适应各种变化,这是系统生命得以延续的关键所在。

4.5 可扩展性是必要的,但是往往也是次要的
系统应该能够处理它所期望的数据量,或者更多。但许多系统在达到设计它时的阀值之前,很早的就被遗弃了,或者随着时间推移,作了很多修改,以至于初始设计时的很多评估假定都不再适用。拥有可扩展性当然不错,但它的重要性往往低于拥有一个更快的解决方案。如果快速的解决方案成功地支持了业务的发展,可扩展性可以在具有财务可行性的时候再添加进来。


5.战略使命和远景
5.1 为解决方案找到合适的技术,获取收益最大化
我们已经已经看到,不同的组织级别有不同的数据库需求。为每个级别选择正确的技术和方法,能影响这一级别的长期执行能力和回报。

5.2 使用多样化的工具是成功的关键
一个组织面临各种各样的数据库挑战。没有哪个工具能解决所有的问题。可供选择的每样工具都有自己的长处和短处。一些工具能很有条理的,安全的方式去管理大量的数据。另一些工具用非结构化的,弱安全性,但是高度灵活性的方式去管理相对少量的数据。根据目标的不同,一种工具可能就优于其他。

5.3 军事类比


首席信息官/首席技术官(CIO/CTO),就像一名将军,要打各种类型的战斗 ,也有多种武器可供使用。他拥有最强有力的武器,但没有坦克,火炮和步枪一样会被打残。这是因为每场战斗并不相同。有些需要大量的资源,而另一些需要步兵。为每一场战斗选择合适的武器,管理预算和资源,为每一种情况特点做出正确的响应,是完成目标的关键。

5.4 做好准备,处变不惊
战略的一部分是做好准备,当这些应用程序需要发展进化(升迁)的时候,就不会感到惊讶。如果计划得当,预算也充裕,那么任何组织都可以支持解决方案的进一步进化(升迁)。军队也一样拥有预备役军人,他们也是预期中的所需要的。消防部门不会在接到火灾电话的时候,再去招聘消防员。即使消防员不知道哪一栋楼将发生火灾,消防员也会随时待命。


6. Access 满足了一个重要市场
6.1 许多数据存储在 Excel 中
尽管 Excel 不是一个数据库,但是在许多组织中,人们存储在其中的数据比任何其他平台要多得多,都快把 IT 专家们逼疯了,但是它确实有效的解决了问题。决策层需要分析数据,他们也知道如何使用 Excel,这是一个桌面计算最大的好处。

虽然 Excel 不是一个关系型数据库,但它完全解决了很多简单的数据库问题。这是因为许多数据库问题完全可以用简单的数据库解决方案来搞定。只有很小比例的 Excel 电子表格曾经到达了Excel 的极限,在这种情况下,他们中许多都可以迁移到 Access。

6.2 Access 满足了一个重要的大市场
作为世界上最受欢迎的数据库,Access 的成功是其强大功能的有力证明,它极大的满足了组织生产力对数据库解决方案的普遍需求。当你选择关系型数据库的时候,因为它能够快速地创建有用的数据库解决方案,在众多武器中,Access 是你的第一选择。

它可能没有更复杂的解决方案的全部特性,可扩展性、 性能、 可靠性和安全性,但很多情况下,这些特性相对于Access 能提供的功能,都是无关紧要的。Access 能为个人、小团队、工作组提供跨网络的优秀解决方案。

组织中 Access 能解决的数据库需求的数量,要远远大于其他更复杂、更昂贵的解决方案能解决的数据库需求的数量。随着时间推移,硬件价格的下降和性能的提升,越来越多数据库需求都可以被 Access 满足。



7. 数据库解决方案成本
不同的数据库问题需要不同的解决办法。如果一个组织唯一能提供的数据库解决方案,都需要花费 $200k 以上,那当它遇到价值在这之下的商机时,是不具备盈利能力的。这可能是一个问题,也可能不是。但这样的话,就给了竞争对手机会,若竞争对手有更省钱的解决方案。随着时间推移,这些小的商机可能就慢慢变成了大商机。

根据所选择的平台不同,解决方案和解决方案本身的成本相差很大。这里有一些大概的数据︰

Platform
Average Cost 
Excel
$500
Access 个人应用程序
$3,000
Access 简单多用户应用程序
$10,000
Access 工作组/部门应用程序
$50,000
VB6 and Jet
$200,000
VB6/Visual Studio .NET/Java and SQL Server
$500,000
Oracle, IBM DB2
$2,000,000
SAP, People Soft, 等
$ 10,000,000+

当然我们可以争论说,也有$1,000,000的 Access 应用程序和 $20,000的 .NET 应用程序,但是这不是我们谈论的重点。这些数字是根据大型组织在这些平台上的一般花费按数量级进行的排序。
 值得注意的是,头三个平台 (Excel 和简单 Access 的应用程序)解决方案通常是非 IT 专业人员创建的。经理、 分析师和管理人员创建这些解决方案时,并没有 IT 预算或指导,这只是他们工作的一部分。如果 IT 人员真的要介入进来,帮忙创建的话,大多数解决方案就不会有什么经济意义了,更不用说,IT 人员也无法及时的来做这件事情。这也导致,这些由非 IT 专业人员创建的应用程序可维护性很差,设计也很糟糕的。

一旦进入工作组应用程序,预算的制定,设计的流程,更结构化的开发努力就出现了,同时专业的应用程序开发人员也介入其中。但即使在这种情况下,平台的选择不同也会导致成本在大的范围内变化 。


◾数据库解决方案的数量
如数据库金字塔所示,小数据库的数量比大的多得多。这里有一个大概的大型组织的在不同平台上的数据库解决方案的相对数量估计:
平台
数量
Excel
50,000
Access 个人应用程序
5,000
Access 简单多用户应用程序
1,000 
Access 工作组/部门应用程序
500
VB6 and Jet
100
VB6/Visual Studio .NET/Java and SQL Server
50
Oracle, IBM DB2
25
SAP, People Soft, 等
10

◾数量与成本

当你比较数量和成本,你会发现解决方案的数量和它的成本都是按指数级增长的。下面的图表使用的是对数刻度︰



一点也不奇怪,随着每个解决方案的成本的增加,解决方案的数量在减少。在给定的资源和时间内,首席信息官/首席技术官必须根据组织所面临的数据库需求,去选择和部署最合适的技术。


8. Access的优点
Access 是最受欢迎的数据库程序,因为非 IT 专业人员可以经济高效地解决范围广泛的数据库的问题,专业开发人员可以创建非常复杂的多用户解决方案。

8.1 巨大的投资回报率
如果某个需求可以用 Access 来解决,那这很可能就是在众多替代解决方案中,成本最低的方案,也即是投资回报率最大化的。

8.2 快速应用程序开发
Access 开发环境允许您快速创建解决方案。Access 解决方案的编程代码通常明显比同类其他产品要少得多。它做解决方案原型的极好平台。

8.3 与 Microsoft Office 集成
Access 是 Office 办公软件的成员之一,它与 Office 深度集成,Office 拥有最受欢迎的用户界面。Access 允许用户查看或导出数据到 Excel 或 Word (或用户自己简单的粘贴) ,这对 Excel 和 Word 熟悉的人来讲是极其方便的。

8.4 数据录入方便 – Windows 仍然能适应 Web 的习惯
不知为何, web 用户被潜移默化成的习惯,常常在 Windows 应用程序中引起不适。例如,更改数量,并按 [更新] 按钮,刷新销售总额。Access 轻松的 (便宜的) 支持此功能,复制和粘贴记录,显示多个一对多关系和其他基本功能 (如拼写检查),提供比 Web 解决方案更友好和更丰富的数据录入体验。

8.5 为多种数据库格式提供接口
Access 可以链接到各种数据源,从旧的 DOS 时代的数据库,比如 dBase,Paradox 和 FoxPro,到通过 ODBC 链接到现在流行的 SQL Server、 Oracle、 DB2 数据库等。

8.6 功能强大的查询设计器
查询设计器可以让人们不必学习 SQL,而通过可视方式和图形方式创建复杂的多表查询。Access 查询也可以直接引用 VBA 函数和用户自定义函数,做非常复杂的分析和数据更新。懂SQL的高级用户,也可以直接编写 SQL 查询。

8.7 优秀的报告生成器
Access 报告生成器亦是首屈一指的,子报表对多表关系的显示非常有用。这些与链接到很多数据源的访问的能力相结合,你就拥有了一个很好的报告生成器。很多桌面数据库应用程序有卓越的报告生成功能。

Web 报告即使通过很多努力,也不容易在纸上正确打印。

8.8 平易近人的开发环境
VBA 的集成开发环境(IDE)与 VB 一样,拥有一个非常有成效的开发环境。你甚至可以在调试的时候编辑和保存代码,非常节省时间。

8.9 Access 可以用比其他同类产品少得多的代码创建解决方案
解决方案的代码越少越好。它创建时更轻松,也更易于维护。N 层解决方案绝不是应用程序快速开发(RAD),如果不需要共享数据的话,这样做并无助益。

8.10 局域网解决方案的理想选择
Access 是专为局域网上的文件服务器解决方案设计的。

8.11 优良的性能
像 Access 这种基于文件服务器的应用程序,经常跑赢客户端-服务器应用程序,因为后者需要更多的开销 (当然,它的功能也更多)。事实上,用当前的硬件配置,不仅可以将索引或表读入内存,整个数据库数据都可以驻留在内存中。

8.12 支持离线
Access 支持离线解决方案,而 web 应用程序是无法这样做的。Access 数据库也可以轻松地发送给别人。在有限的低数据冲突的情况下,远程数据库共享时使用Access Replication 是很合适的。


9. MS Access 的局限性
当然,MS Access 也有它的局限性,在某些情况下不要使用。

9.1 不是理想的网络解决方案
Microsoft Access 不是设计用来创建 web 站点的。数据访问页( Data Access Page )可以有限的应用于企业内部网,而不能用于互联网。底层的 Jet 数据库引擎在并发用户数量多的时候,会显得捉襟见肘。Access 为 Windows 做了优化,而没有为 web 。

使用 Microsoft Access 2010 之后的版本,还可以通过 SharePoint 和 SQL Azure 将 Access 数据库扩展到 web。通过这种方式,Access 数据库的某些部分是可以在网站上运行的。不含 VBA 代码的窗体和报表可以运行在该环境中,并提供一种方法将应用程序扩展到非 Access 用户。在其中你甚至可以使用宏,宏相对2010之前的版本功能上有显著的提升。在某些情况下,这种方案可能就足够了。但它无法和使用.NET 或 Java 创建的 web 解决方案相媲美。SharePoint 的授权许可规则和用户数量的限制,使得这种解决方案成本相当高。

也就是说,如果要为非开发人员创建数据库的 web 解决方案,这可能就是最简单的方法,尤其是当一个现有的数据库只需要公开它的一部分到 web 的时候。

9.2 不能运行在非 Windows 平台
Microsoft Access 也不支持 mac 电脑、 iPad、 iPhone、 android 系统和其他手机平台。Access 应用程序可使用 Windows 终端服务和 RemoteApp 运行在互联网上。(有关详细信息,阅读我们的文章:使用终端服务和 RemoteApp 在互联网上扩展你的 Microsoft Access 和其他 Windows 应用程序)。这种方法可能适合 10 个或更少的并发用户,但它是不同于 Windows 上标准的 Microsoft Access 应用程序,标准的Access 应用程序可以通过局域网,支持几百个用户。它显然也不同于一个真正的 web 应用程序。

9.3 部署问题
Access 应用程序要求用户不仅拥有 Access 数据库,也安装了 Access。Access 文件很大,不同版本的 Access /Office 会导致问题。类似的问题也同样影响到部署运行时(Runtime)版本的 Access。在许多企业组织中,Access 已安装在每个桌面电脑上,所以这可能不是问题。

当 Access 数据库解决方案有了修改,需要更新时,如何部署更新后的版本也具有挑战性。幸运的是,我们的 Total Access Startup 解决了Access 版本和数据库部署这2个问题,但它不是 Access 的内置功能。

Web 应用程序的一个巨大优势是集中式管理。它没有部署的问题,每个用户只需要有一个 web 浏览器就行了。只需要在 Web 服务器上更新应用程序,所有的用户就可以立即开始使用最新的版本。

9.4 安全性和数据完整性
虽然 Access/Jet 引擎数据库可以用密码加以保护和加密,Jet 引擎数据库还是不具有 SQL Server或主机数据库系统相同的安全级别。

同样,与拥有触发器和事务日志的 SQL Server 数据库相比,基于文件的 Access 的数据库的完整性和数据恢复功能还是比较弱的。我们 Total Visual Agent 产品满足了行政的日常数据库维护 (压缩和备份),但也是不同于 SQL Server 等这类产品的。

9.5 有限的可扩展性,与自己的数据库格式
Access/Jet 引擎数据库有 2 GB 大小的限制。如果数据库大小超过了这个限制,解决方案就无法单一的由 Access 来实现。当遇到太多的并发用户时,Jet 数据库也会出问题。并发用户的数量取决于他们的操作类型,但最多也只允许 255 个用户同时使用。

9.6 受到限制的用户界面设计
用 Access 创建的应用程序在用户界面上会受到一些限制,无法同 Visual Basic 那样,生成多文档界面 (MDI) 应用程序。一般情况下,用户可以分辨出某个应用程序是否是在 Access 中编写的。在某些情况下, VB 程序能够在 Windows 上提供更为理想的用户体验。


10. 为什么MS Access 非常重要
10.1 “最佳的品种”
Access 是介于 Excel 电子表格和更复杂的数据库解决方案之间的阶层的最佳解决方案。对应前面介绍的数据库金字塔,就是从个人级数据库到工作组数据库解决方案这几个领域。Access 是以满足这一领域的需求而著称的世界上最流行的数据库。

10.2 很多数据库问题 Access 都能完全解决
Access 只是把自己该做的做得非常好,而在很多情况下,更成熟的解决方案通常并不会提供更多 Access 不能提供的功能。

10.3 投资回报︰ Access 解决方案通常具有显著的成本优势
Access 是一种快速应用程序开发 (RAD) 工具。经常在 Access 中创建的解决方案比用其他平台的代码要少得多,同时支付给创建人的花费也便宜很多。某些数据库确实并不值得你投入更多。一个4 万美元的商业机会也许只能支持 2万美元的 Access 解决方案。但如果 IT 部门只提供 5 万美元的解决方案,那你的选择就很简单了︰ 这个商业机会只能放弃。

10.4 Microsoft Access 提供了巨大的竞争优势
通过低成本,Access 提供了获取更多业务的机会,而不是将这些机会留给竞争对手。这些看似”小”的机会的一小部分在将来可能会变得很重要。能有收益地参与这样的业务对企业来讲有着战略上的重要意义。

许多的棒球球员通过一垒安打开创了其职业生涯。时而不时打出一个本垒打。你并不指望或知道何时这种好事会发生,但你更知道只要你越多的去尝试,这种好事才越多的会发生。


11. 探索 Microsoft Access 局限性的神话
Access 经常因其扩展性和迁移的局限性而受人诟病,但事实并不是这样。原因如下:

11.1 大多数数据库都很小
大多数数据库应用程序都只需要管理相对少量的数据,通常还不到 100 MB。这完全处于 Access 的能力范围内,如果使用像 SQL Server 这样的产品,那就是用牛刀杀鸡了(当然,SQL Server 除了能存储更大的数据量之外,还提供的其他也许更重要的功能)。

11.2 超过 Access 数据库功能之外的数据库需求相对不多
Access /Jet 数据库虽然最多支持 2 GB 的数据,但 它可以将链接到多个其他数据库,因此,即使使用 Jet 数据库、 Access 应用程序任然可以管理超过 2 GB 的数据量。很少的数据库问题需要涉及这么多的数据。

11.3 微软 SQL 服务器消除了 Access 的可扩展性问题
微软为 Access 专门设计了可扩展性。Access 应用程序可以去除掉 Jet 引擎,使用 SQL Server 作为其数据存储库。Access 数据库 (MDB) 可以链接到 SQL Server 数据库, ADP 可直接针对 SQL Server 来工作。SQL Server 可以消除了数据库大小的限制,也不再受用户数目的限制,从而消除了 Access 可扩展性问题。

当人们专注于 Access 的可扩展性的限制时,必须要注意,可扩展性的限制是由 Jet 数据库引擎产生的,这其实并不妨碍 Access作为前端程序,去链接 SQL Server。当然,它需要额外的工作才能迁移到 SQL Server,但前期的开发投入很大一部分可以保持不变。

11.4 混合解决方案
如果应用程序超过了 Access 的功能范围,Access 与其他针对 SQL Server 的混合解决方案往往是很合适的。我们创建了针对SQL Server 的 VS.NET 应用程序网络解决方案,Access 在管理功能和报表方面,仍然任然扮演了重要的角色。在合适的地方使用 Access 往往都能让投资回报率最大化。


12. 萨班斯-奥克斯利法案 (SOX) 的影响
萨班斯-奥克斯利法案 (SOX) 是上市公司中的一个大问题,许多公司需要对他们的系统,特别是对财务报表有影响的系统进行详细的审计。这导致了所有存储在电脑上的数据,以及被电脑操控的数据,不仅仅是 Access 数据库,还有 Excel、 Word、 Outlook ,另外还包括被信息工作者使用的其他文档和系统,所有这些都需要进行全面的审查。其结果是,为了不影响到财务报表的正确,所有应用程序都需要确保有存档、 控制和审查。

一些公司的下意识反应是禁止所有 Access 数据库,但不提供其他替代工具去解决仍然需要解决的数据库问题,仅仅把有帮助的工具(Access) 拿走。显然,这样做,目光非常短浅,也无济于事,因为你总不能把 Excel 也禁了吧.

即便如此,还有一些不断增长的详细审查要求,例如数据存储在哪里 ,数据是如何被修改的,数据是否有效的得到了保护,加密和分发。笔记本电脑上的数据是否有防盗措施,都是非常值得去做的事情。

总之,IT 部门早已负担过重,无法及时的,以具有成本效益的方式,创建信息工作者需要的所有应用程序。关键是要在个人数据管理上建立一个适当的协议。是选择快速、低成本的数据库系统开发,还是选择需要更多投入,以确保其完整性的重要系统的开发?我们仍然需要去平衡其成本和效益,以及该应用程序对财务报表的影响大小。后者意味着使用 SQL Server 作为后台数据库,Access 作为前台客户端,或者整个系统都被锁定在 web 界面或 web 服务里。

只要了解的了其中的利弊和成本,企业就能作出正确的决定。禁止 Access 技术而不提供替代解决方案,无异于掩耳盗铃,企业也因此陷入麻烦之中。我们已经看到对 Access 的禁令导致人们去购买 FileMaker(译者注:另一款数据库开发程序,跨平台,支持网络开发)。数据库的需要不会随禁令而消失,消失的只是用户的最佳工具,用户会找到替代品。而SOX 问题依然会继续存在。


13. IT 部门为什么讨厌 Microsoft Access
一些不太开明的 IT 部门,对 Access 超级不喜欢。虽然 IT 部门和最终用户之间总存在一种爱恨关系,谈到 Access 的时候,很多人想要在企业中禁止使用他们。我们相信这可能是由几个原因造成︰
◾Access 数据库是被赖在了 IT 部门,IT 部门被迫对其提供支持。
◾这些数据库设计不佳,在没有更多资源的情况下,可维护性非常差

Access 数据库可能甚至来自非常重要的业务线的业务部门经理,他/她的管理级别高于IT部门的经理,如此一来,这个数据库在政治上和技术上更难获得成功。

我们同意这些情况存在,并没有将 IT 部门放在双赢局面。难怪他们这么讨厌 Access。然而,我们相信这些感觉都被误导了。

13.1 替代方案更糟
如果 Access 被企业取缔禁止,IT 部门将需要创建数千个的数据库去满足最终用户需求,或者,最终用户会发现另一个没有被禁止使用的工具 (导致同样的问题,但 IT 部门又得开始恨一项新的技术了),或数据库将不会被创建,组织就变得不那么具有生产力和竞争力了。

我们同时也要记住,IT 部门或技术顾问也创建过很多昂贵的系统,但是从没有被成功部署过,或投入使用过。要么是设计不佳、 要么是由于最终用户的抵制,亦或是业务变化了导致系统过时。

我们的目标,应该去利用最终用户对 Access 应用程序的渴望,培养他们的开发水平到一个更高的高度。与其将其视为一个问题,不如把它当成一个巨大机遇和挑战,为真实的商业需求提供真正的解决方案。

13.2 往事只能回味
IT 部门常常抱怨说,”我们如果在 X 年前使用 XYZ 技术创建了该应用程序,我们不会有这个问题”。虽然我们相信这是真的,我们认为这不是现实,因为 X 年前︰
◾没有人能预见该应用程序或业务有如此的重要
◾没有人能在过去就能设计出当下在用的应用程序。应用程序会随着时间的推移不断的获得更新,绝不会一直保持着当初设计它的样子。
◾没有人能合理预算今天需要的解决方案。
◾如果不通过 Access 前进一小步,商机就很可能错过了。初始的时候,根本就没有时间来“正确的”创建它。

问题是,今天需要创建此解决方案,无论 Access 是否曾经存在过。与其抱怨过去和Access,不如专注于今天的需要。假装它是 X 年前,此 Access 原型存在。这是一个很好的开始,总比没有要好。业务需要是已知的,最终用户的赞成或需求也是已知的,所以它是 IT 部门的一个很好的创建成功解决方案的机会。

13.3 记住数据库的进化(升迁)
IT 部门忘记了,在企业中创建的 Access 数据库,他们看到的只是顶部和小部分。其实有超过 95+% 由最终用户创建 Access 数据库,它们永远不会需要 IT 部门的干预。

当然,如果它从第一天开始就能完美的被创建出来,那自然是最好不过,但这不现实。没有人可以预计今年创建的所有数据库解决方案中,其中哪 1%,在 5 年之后,将成为关键任务应用程序。满足终端用户的全部数据库需求,对 IT 部门来讲肯定是资源的浪费,特别是当最终用户可以更快,更低成本的自给自足的时候。

IT 部门看到的都是通过时间的推移,逐渐成为关键任务的 Access 应用程序。他们从没被认为会变得如此重要,所以这也难怪他们不够健壮。这不是技术问题,而是过程和参与人的问题。过去的优先事项和今天并不一样的。然而,通过自然选择的过程,他们成了赢家,现在他们需要更多的帮助。在这一点上, IT 部门需要发挥自己的协助作用,而不是一味的挑剔他们的缺点。

一个伟大的 IT 部门是会接受这一论点的,这是世界存在的方式,虽然超出了他们控制。预计这将会发生,并提供服务,以实现该企业的使命。

13.4 服务级别
权衡利弊之后,为业务线经理提供不同级别和成本的服务,让每个人都知道他们的角色和责任,业务线经理才能决定什么是有意义的业务需求以及随之存在的风险,当问题出现时让 IT 部门摆脱困境。例如︰
◾不提供服务︰ 你要靠你自己;如果你弄丢了你的数据,那是你自己的问题。
◾青铜级别︰ Access 数据库存储在服务器上,每天晚上会自动压缩和备份 (例如我们 Total Visual Agent 程序可以帮助做到这一点);历史备份都可用;支持桌面部署 (例如我们 Total Access Startup 程序可以帮你实现)。应用程序由最终用户负责。
◾白银级别︰ 为 Access 数据库开发提供技术支持,帮助用户个性化定制 Access 来解决他们自己的问题;当有需要时提供 Access 编程资源;建议的最佳做法,等等。
◾黄金级别︰ 帮助用户创建 Access 应用程序或提升其性能;提供 SQL Server 数据库 (或服务器),妥善管理和备份,便于用户升迁的他们的数据库;技术帮助和培训
◾白金级别︰ 提供从 Access 迁移到 .NET/SQL Server 的支持和日常维护,实现与其他系统的集成等。

这些仅仅只是某些企业为终端用户的数据库需求做的级别划分的一个例子。每上升一个级别都可能会增加一些成本,主要是项目成本和每月的维护费用。


14. MS Access 是一个专业的数据库吗?
多年来 Access 在某些圈子里名声不太好,被认为是“玩具”数据库,或某种程度上是不适合专业开发的。这很令人吃惊,也非常的荒谬,因为 Access 一直是世界上最流行的数据库,很多非常强大的数据库应用程序也是用 Access 创建的。

误解是由两个进化(升迁)趋势导致的︰
◾Access 开发人员自身的发展
◾数据库的进化(升迁)

14.1 Access 开发人员自身的发展
大多数 Access 开发人员从非编程专业进化(升迁)而来。他们进入 Access 领域后,发现 Access 具有令人惊叹的生产率,学习了 VBA 后,他们自己变得越来越老练。随着时间推移,他们从面向业务转移到更面向编程,发展成使用 SQL Server 的 VB 或 .NET 开发人员。这些人现在认为 Access 应用程序琐碎而不重要。

但这只是开发人员变了,Access 并没有变,它在它擅长的方面依然做得很好,而开发人员却在继续前进,提升了自己。他们现在歧视那些对数据库基础都还没清楚的人,他们理所当然的认为这也太简单了,他们忘记了当初他们就是这样子从不懂到懂,一步一步成长起来的。他们也忘记了 Access 是他们买入成功的职业生涯的通道。他们因为自身的提升和发展,离开了 Access,这当然是一件好事,就像其他人跟随他们的脚步,发现他们也可以使用 Access 创建出色的解决方案一样,是值得期许的。

14.2 Visual Basic 开发人员歧视 Access
当 Access 横空出世的时候,它在数据库市场引起了轰动,成为了 Windows 数据库的首选。许多 DOS 系统上的数据库开发人员蜂拥迁移到 Access。后来 Visual Basic ——纯粹的编程语言,吸引了铁杆数据库程序员,他们开始通过 VB 使用 Jet 引擎,后来转移到 SQL Server。

一般情况下,VB 开发人员歧视 Access 开发人员。即使他们都是用相同的开发语言和 集成开发环境(IDE) 。我认为这是一个宗教的分歧,而不存在根本的区别。使用 VB 来开发所有数据库解决方案,而不使用专为数据库开发而生的 Access,这并不是最明智的选择。任何人去比较一下二者的报表生成能力,都能证明这一点。这里的问题是开发人员而不是 Access。

自愿改变平台 (或宗教) 的人一般都对其以前的信仰有不良的印象。.NET 程序员歧视 VB 程序员就是这个道理。C++ 程序员歧视 .NET 程序员也是这样。这已经不是技术问题了,而跟个人的旅程有关。

14.3 数据库的演变
我们已经讨论了数据库的演变以及那是一种怎样的自然现象。使 Access 名声不好的是,当 Access 应用程序进化(升迁)到需要 IT 部门介入的时候,他们还毫无准备。

当 IT 部门看到 Access 数据库时,常常是因为它发生了紧急情况或其他问题。他们并没有参与其开发,在这之前也从没见过它,但现在却被要求在一个几乎不可能完成的短时间内,提供技术支持或系统加强。而且连技术文档也没有,原开发人员也早已离开,这是就是一个烂摊子。当然他们会发泄怨恨,但这不是 Access 的错。

许多的 Access 数据库都是由数据库新手创建的,运行状态也不是最佳,但把问题归罪与 Access 是不对的︰
◾不是 Access 不好;而是应用程序的创建者不熟练。
◾Access 能提供他们所需要的,现在他们需要得到更成熟的技术支持,同时成本也是经济的。
◾这是数据库应用程序的自然演变;这也是数据库专业人员有市场的原因。IT 部门应该向这些”客户”提供服务,将他们带到下一个级别的应用程序。
◾更”专业”平台上也存在垃圾系统
◾抱怨非 IT 专业人员在 Access 上太容易的就创建了数据库,是错误的。IT 存在的基础是能支持业务的发展,而不是其他。

IT 部门永远也看不到,企业中有数以千计的 Access 生产数据库,随着业务的发展而被创建,或者随着业务的继续发展而消亡了。IT 部门从来没有人手去创建这些数据库,业务线经理更支付不起 IT 部门的创建成本。

认识到 Access 应用程序的进化(升迁)趋势是管理它们生命周期的关键,也是将其集成到企业其他数据库策略的关键。


15.战略性地使用 Microsoft Access
我们已经讨论了 MS Access 的利弊,我们应如何使用它呢?

15.1 为什么使用 Microsoft Access
◾企业面临着种类繁多的数据库挑战,这些挑战随着时间的推移而进化(升迁)。
◾Access 能满足数据库挑战中的最大份额。
◾Access 数据库解决方案能产生巨大的投资回报率。
◾Access 应用程序可能已经存在,加强它比重写它,可能是更具成本效益。
◾许多更昂贵的替代解决方案不具有成本效益。

15.2 何时使用 Microsoft Access
◾基于 Windows 平台,单一和多用户数据库解决方案。Jet 引擎可支持的并发用户的数量取决于操作的类型。我们一般认为 50 是一个合理的数字 (尽管它能支持更多的用户)。用 SQL Server 替换 Jet 引擎消除了这种限制。
◾原型开发。通常情况下,原型只需要”足够好”就行了(无需最好)。
◾低成本,或概念验证类的解决方案。在使用更大和更昂贵的解决方案之前。
◾避免担心 Access 可能不是最终的解决方案,因为大多数数据库项目永远达不到这一点。

15.3 Microsoft Access 应用程序的迁移
跟任何其他数据库一样,使用 MS Access,也意味着当遇到了它的局限性时,要寻找替代品。只有一小部分的 Access 解决方案需要迁移到一个新的级别。可选替代方案包括︰
◾优化和修复 Access 应用程序。请确保有熟练的 Access 开发人员来支持重要的 Access 应用程序。
◾将数据从 Jet 迁移到 SQL Server。
◾将 Access MDB 转换为 ADP (不再推荐该方法,因为微软将对 ADP 只提供有限的支持)。
◾转换到 .NET、 Java、 IBM、 BEA、 Oracle、 MySQL 等应用程序。


16.结论
数据库随着时间推移而进化(升迁)。Access 不能,也永远不会,解决所有的数据库问题。基于Windows 环境下,面对广大的常见数据库问题,它能提供性价比高,快速开发的解决方案。

期待和欢迎数据库的自然演变,你会发现 Access 能在您的企业数据库总体战略中扮演一个重要的角色。相对于其他替代方案,Access 可以为正确使用它的人,提供有巨大的投资回报率的机会和竞争优势。

回到我们军事的类比方式,可将 Access 视为您的 IT 团队中的战术部分。它旨在解决那些不需要主要战略资源的小问题。战术团队应该去做便宜、快速和脏的事情。在挑战面前,他们往往是最佳解决方案。也就是说,会有超越战术团队的能力的情况。当步兵呼叫空中支援时,好的领导不会抱怨他们为什么需要它。他们只是提供压倒性的支持,以解决问题,保护他们。好参谋长会让飞机在空中等待步兵的无法避免的求救。计划、 预测,并优化您所有的资源来满足您不断变化的战场。你不这样做,你的竞争对手也会这样做。

祝你好运!




Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助