Jet数据引擎和MSDE特征分析
1 Jet数据引擎和MSDE
1.1 Jet数据引擎
Microsoft Jet 数据引擎是Microsoft Access 数据库系统的一部分,用于在用户和系统数据库中检索和存储数据。Microsoft Jet 数据引擎可以作为一个数据管理器,以它为基础可以创建如 Microsoft Access 这样的数据库系统。
在Access 97中,数据引擎采用的是Jet 3.51;在Access 2000中,默认的数据引擎采用的是Jet 4.0。
与以前版本的Jet相比,Jet4.0在以下几个方面进行了增强:
◆ 支持完整的Unicode;
◆ 低级别锁;
◆ 加强了对SQL92的支持,与SQL Server 兼容;
◆ Jet/SQL Server 7双向复制;
◆ 增强了复制冲突处理;
◆ 本地OLE DB
1.2 MSDE数据引擎
Microsoft 数据引擎 (MSDE,Microsoft Data Engine)是一种客户端/服务器数据引擎,此引擎在较小的计算机系统上提供本地数据存储,例如在单用户计算机或小型工作组服务器上,此引擎与 Microsoft SQL Server 7.0 兼容。
与 SQL Server 7.0 不同的是,MSDE 有数据库大小为 2G 的限制,且不能支持 Windows 95 或更高版本的“对称多进程处理”(SMP),也不能在复制的数据库环境下作为复制发布服务器(尽管可以作为复制订阅服务器)。MSDE 可运行在 Windows NT 4.0 及更高版本以及 Windows 95 及更高版本上。
MSDE中包含了一些关键技术:
◆ 动态锁;
◆ Unicode,这个技术提高了对多语种的支持;
◆ 事务日志;
◆ 动态的自我管理;
◆ 合并复制;
◆ 事务复制。对于一个SQL Server “发布者”来说,MSDE可以被当作“订阅者”,发布者可以复制两个不同类型的对象(表和存储过程)。发布者做出的变更,可以定期/不定期的传送到订阅者站点。
MSDE技术来自MS SQL Server 7.0。通过使用MSDE,开发者可以提升现有的工作,以便以后扩展SQL,以便能够允许几百人甚至几千人同时使用MS SQL Server,包括DTS服务、OLAP服务、自然语言查询(English Query)以及并发查询等。
有些软件要求必须要安装MSDE,如
◆ .NET Framework SDK;
◆ Office XP 专业版,开发版;
◆ Project Server 2002;
◆ SQL Server 2000,企业版,开发版,个人版(RTM,SP1,SP2);
◆ Visual FoxPro® 7.0 和 8.0 beta版;
◆ Visual Studio .NET 2002 专业版,企业开发版以及企业架构版;
◆ Visual Studio .NET 2003 beta版;
◆ Visual Basic .NET 2002 标准版,Visual C++ .NET 2002标准版,Visual C# .NET 2002 标准版;
◆ Windows Server 2003 RC1(只有当UDDI有效时)。
2 Jet数据引擎和MSDE比较分析
2.1 企业需求方面
企业级应用程序要求扩展性、安全性和健壮性。在这种企业级的环境下,你最好采用MSDE或MS SQL Server来实现,不能采用Jet。即使目前的系统需求还未达到企业级,采用MSDE,今后业务扩展时,你可以较方便的扩展数据库。
MSDE支持事务日志,保证了事物的完整性。如果您的应用程序需要事物的支持,您需要采用MSDE或者是MS SQL Server。Jet引擎并不支持自动事务处理,他并不能保证所有的变更在一个事务的时间范围内提交或者回滚。
在安全性方面,MSDE和MS SQL Server与Windows NT的安全策略相结合;Jet引擎则没有与Windows NT的安全策略相结合,这使得管理Jet引擎会比管理MSDE或是MS SQL Server代价会更高。
总之,在满足企业需求方面,MSDE比Jet更有优势。
2.2 Jet数据引擎和MSDE用法分析
2.2.1 简易性
Jet 4.0对于Access 97以及更早的版本,有着非常好的兼容性。如果您已有的程序是基于Access开发的,Jet数据引擎是最容易,而且也许是最好的选择。
与MSDE相比,Jet 数据引擎更易使用和管理。对于一个新的相对简单的数据库应用程序,如果不需要考虑与MS SQL Server兼容的话,Jet数据引擎是个很好的选择。他在内存和磁盘空间方面占用的资源很少,而且几乎不需要管理。Jet数据引擎是Access 2000默认的数据库选项。一个采用Jet数据引擎创建的数据库,也可以采用升级向导升级到MS SQL Server。
总之,在简易性方面,Jet数据引擎占优势。
2.2.2 数据完整性
MSDE的技术源自MS SQL Server 7.0。MS SQL Server发布了一个简单的代码库,该代码可以从运行Windows 95的PC机扩展到运行Windows NT Server的多CPU集群服务器中。由于Jet数据引擎被定义为MS Access这一产品中,Jet数据引擎没有这种扩展类型。
MSDE是一种基于C/S(客户机/服务器)模型的数据引擎,而Jet是一种基于文件/服务器模型的数据引擎。MSDE超过Jet数据引擎的一个很大的优点在于:MSDE的运行流程是基于查询和日志事务处理的。如果在写数据库过程中出现任何错误,如磁盘错误、网络故障或电源故障,MSDE可以通过日志事务处理来修复。当系统重新恢复后,MSDE会返回到最后一次稳定的状态。这使得MSDE比Jet数据引擎可靠多了。如果系统是基于Jet数据引擎的,万一数据库崩溃的时候,您只能手工地恢复到上一次的备份时的版本。
总之,在数据完整性方面,MSDE占优势。
2.2.3 并发用户总数
MS SQL Server 7.0(MSDE技术的基础),可以并发处理非常多的用户数。Jet数据引擎和MSDE被优化成专门针对单一或是少量用户的情形。
在大量数据机和和并发用户数目上,MSDE的性能也优于Jet数据引擎。由于Jet数据引擎是基于文件—服务器系统,查询的过程发生在客户端,这种查询方式需要大量的数据从服务器通过网络传输到客户端。而MSDE是在服务器短执行查询,这种查询方式虽然加重了服务器的负担,但是大大减轻了网络的流量,特别是当用户选择了一个很小的数据子集时,这种优化效果更加明显。
因此,如果您正在创建一个新的应用程序,为了将来您的程序更易扩展,最好采用MSDE或是SQL Server。
总之,在并发用户总数方面,MSDE和扩展的SQL Server占优势。
2.2.4 数据总量
Jet数据引擎所处理的数据库要求每个数据库数据总量小于2GB。
MSDE所处理的数据库也要求每个数据库数据总量小于2GB,但是,如果扩展到MS SQL Server后,每个数据库就可以支持几个TB。
2.3 Jet数据引擎和MSDE特征分析
3 总结
本文对Jet引擎和MSDE进行了介绍,从企业需求方面,简易性、数据完整性、并发用户总数、数据总量等方面进行了比较,最后对Jet和MSDE特征进行了分析。
Jet引擎和MSDE互有优劣之处,您可以根据实际应用的需要,进行选择。
以下情况下,您可以考虑使用Jet:
◆ 需要与Access或之前的版本兼容;
◆ 您的环境中并发用户数目较少;
◆ 您的服务器配置较低;
◆ 需要考虑移动使用。
以下情况下,您可以考虑使用MSDE:
◆ 您想要开发一个简单的代码库,需要从单用户扩展到几千人的用户;
◆ 要求较好的扩展性;
◆ 要求简单与中心服务器的合并复制;
◆ 要求更好的安全性;
◆ 要求更好的可靠性,比如事务日志;
◆ 系统要求7╳ 24小时在线;
◆ 需要存储过程和触发器。
【参考资料】
1 MSDN相关文档
2 Access 2000白皮书
原文地址:http://jwc.tjuci.edu.cn/ThreadView.external.html?tid=l1529