为什么sql需要服务器?

时间:2014-12-16 17:34:28

标签: sql sql-server

我是SQL的新手,我正在尝试理解它的基本内容。

为什么在使用SQL时我们需要连接服务器? 在我的非常狭隘视野中,它只使用了一些数据库,例如可以实现为数组(或者“后台”实现的任何数据)。
例如,如果我想在我的计算机中设置一个表并对其进行一些操作,那么服务器有什么用处?为什么它不能“只是在那里”?

4 个答案:

答案 0 :(得分:5)

我认为你混淆的原因是对“服务器”这个词作为一个单独的硬件盒的解释过于狭隘。

服务器不需要在单独的硬件上运行,甚至不需要在单独的虚拟环境中运行。它可能是同一台计算机上的另一个进程,甚至是您进程中的库。什么使它成为服务器是一种接受和处理来自客户端的请求的能力。服务器在物理上运行的位置并不重要:只要您遵循客户端请求发起的协议,您就拥有了服务器。

答案 1 :(得分:2)

您想象的(粗略地)被称为进程内数据库,它们确实存在于SQL中。 SQL Server设置为由多个用户或应用程序使用,因此有意义的是它是许多客户端可以连接到的中央服务器,因此它们可以共享相同的数据。

如果您只想在本地处理数据,可以使用SQL Express LocalDB,SQLite和其他一些允许您在应用程序中嵌入SQL引擎的其他内容。

答案 2 :(得分:1)

您可能会将SQL语言与实现SQL的Microsoft产品SQL Server混淆。

SQL本身有很多很多实现。其中许多实现使用服务器。 MS Access,SQLite,FileMaker是常用的SQL使用产品,它们依赖于文件共享而不是客户端 - 服务器设置来提供多用户访问。这些产品也可以在一台机器上使用而无需共享文件。

还有一些SQL的实现使用CSV文件进行存储,尽管这些不太常见。

最后,许多客户端 - 服务器SQL产品提供了不需要服务器的相关的小规模实现。这些通常也使用文件共享来实现。

答案 3 :(得分:1)

这取决于你需要什么。 SQL的某些实例(例如SQLite3)是基于本地和文件的。他们没有服务器。大多数人都提供服务器,因为他们解决了问题。

但是让我们解释为什么需要服务器。考虑一个Microsoft Access应用程序,其中数据库是通过网络共享的文件。假设有5个人正在使用同一个文件。他们每个人都搜索一些东西,整个文件必须通过网络传递。假设有人编辑了一条记录。下次其他人进行搜索时,他们将不得不再次加载整个文件。如果文件很大,这是一个巨大的性能影响。这就是创建服务器的原因。

服务器只接收SQL。服务器执行搜索或编辑,并仅返回已请求的数据。对于任何合理大小的数据库,性能改进都是巨大的。

服务器的另一个好处是访问控制。使用服务器,您可以拥有多个帐户并控制他们可以访问的数据库甚至表,以及允许他们执行哪些活动。

简而言之,创建服务器是为了解决当多个客户端使用单个数据库时出现的问题。