MS Access与MS SQL Server


10

这是Microsoft提供的两种产品-MS Access和MS SQL Server。

Access意味着什么类型的用户/用途?除了使用程度(就用户数量而言),这两种产品是否相同?

Answers:


5

MS Access实际上是快速开发UI工具和基于文件系统的关系数据库(JET)的组合。

优点:
-易于部署,只需将文件复制到网络中,然后告诉人们路径即可。-用于数据库类型应用程序的快速原型制作和非常好的UI开发工具-部署成本通常便宜得多,尤其是对于小型安装而言。

缺点 -维护-要进行数据库压缩,修复或其他维护时,必须锁定所有用户。-由于使用基于文件的数据库,因此在大量用户或不稳定的网络连接下,数据损坏的可能性更高。-尽管人数尚有争议,但您将比SQL更快地最大限度地利用单个Access DB支持的用户数。

MS SQL Server是一个客户端-服务器关系数据库系统,没有内置的UI开发工具。

优点:
-维护-许多维护工具可以与DB中的用户一起完成。因此,您可以获得更长的正常运行时间。
-企业规模-它旨在支持更多用户,并可以更好地扩展以应对他们。

缺点: -昂贵-对于您的5个用户的应用程序,要跟踪几十万个项目,这可能会显得过大。
-更复杂-所有其他功能都引入了学习曲线。-没有内置的UI开发工具-您将需要另一个开发平台来构建前端和(可以说)报告。实际上,Access可以用作SQL的前端,但是由于多种原因,DBA倾向于讨厌Access用户连接到其数据库。

杂项
-尽管您可能会听到其他声音,但不要根据数据库的大小来做出决定,而要根据用户群的功能和大小来进行呼叫。
-对于SQL Server中托管的数据库,访问实际上是一个非常好的UI工具。因此,根据您的需求,正确的答案可能是“两者”。


2
有关SQL Server成本的注释,如果需求不是太高,则SQL Server Express可以免费使用。但是有一些限制(microsoft.com/sqlserver/2008/en/us/express.aspx)。但是,当MDB文件达到日常修复和压缩要求以保持其运行时,它确实提供了从Access进行升级的功能。
Agent_9191 2010年

除非您使用的是最差的实践来分发您的应用,否则Access的利弊没有任何意义。除了拆分为前端(窗体/报告/等)和后端(仅数据表)之外,没有任何人会分发Access应用程序。遵循最佳做法时,您的优点/缺点将完全消失。
戴维·芬顿

@David-也许我不清楚。所谓轻松部署,我基本上是指将应用程序部署到另一方更容易。也就是说,您不必指导他们安装SQL Server或对其进行许可,这对于只想快速在小型系统上启动并运行的用户来说可能是一个痛苦。我认为我所说的话并不意味着您不会将其吐入前端/后端,但是感谢您的澄清。
JohnFx

4

这个问题很愚蠢。SQL Server和Access甚至不是同一类型的产品。这就像问旅馆和Mack卡车有什么区别-这个问题甚至没有道理。

原因是因为SQL Server仅是数据库引擎,而Access是数据库应用程序开发工具。SQL Server用于存储数据,而Access用于构建应用程序以处理数据。

现在,Access附带了一个默认的数据库引擎Jet / ACE,因此每个人都随便使用“ Access”来表示数据库引擎。当它们可互换地使用Access和Jet / ACE时,它们是错误且不精确的,如果您未指定您的意思,则会导致各种混乱。虽然不能严格地说将Access与SQL Server进行比较,但是可以肯定地将SQL Server与Jet / ACE进行比较,因为那是在比较数据库引擎,而不是苹果和家具。

我不会详细介绍,但是要说确定哪种数据库引擎最合适将取决于您要求它执行的任务。这就像购买交通工具来运输。如果您是一个人,并且只需要开车去超市和购物中心,那么使用Mini Cooper会做的很好。另一方面,如果您是一家企业,并且需要在仓库和商店之间来回运输数百箱库存,则需要Mack卡车。

对于个人而言,尝试使用Mack卡车去商场和超市是愚蠢的,尝试使用Mini Cooper来运输企业的库存也很愚蠢。两者都可以完成,但是非常不方便。

因此,您必须确定使用数据库引擎的目的是什么,然后选择最适合当前目的的数据库引擎。在许多情况下,Jet / ACE绰绰有余,这会使您的工作变得很轻松。

在很多情况下,从它开始是不明智的,您应该使用SQL Server这样的服务器数据库引擎。Jet / ACE在任何情况下都无法满足需求,而SQL Server对于其他情况则显得过于矫over过正。

最后,Access是一个用于构建前端应用程序的好工具,它可以在其后面具有Jet / ACE数据库或SQL Server数据库。确实,如果您一直小心地创建高效的Access应用程序,那么从Jet / ACE升级到SQL Server相当容易,这是一个非常常见的情况,即从Access前端和Jet / ACE后端开始,随着需求的增长,您需要升级到服务器后端,并保留现有的Access应用程序。


3

由于它是一个包罗万象的软件包,因此访问更适合最终用户。它主要一次只能使用一次,但是它确实支持多个用户,尽管采用了笨拙的回旋方式。记住,它是MS Office中的工具。

MS SQL Server是实际的SQL数据库。它的设计目的是将服务器放置在服务器上,充当您希望放置在其上的任何前端的数据库。它主要用于多个用户,并且打算进行集中化。


“实际的SQL数据库”?那里有一个模糊的名词。通过以下描述,我认为您的意思是“客户端-服务器数据库平台”
JohnFx

2

除了Force Flow的答案外,它们还提供不同的工具和不同的UI。

Access具有创建表格,使用向导生成查询,使用向导生成报告,生成宏等的方法。内置了压缩和其他维护工具。它是一个多合一的小型数据库。

SQL Server具有更强大的功能,更少的手持操作。您需要了解数据库和SQL才能正确使用它,并且需要适当的维护。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.