客户端/服务器和分布式DBMS之间的区别
数据库系统
数据库管理系统用于管理用户信息或文件,执行创建、编辑、共享、删除、备份、检索等操作。数据库中存储的数据以表格、行、列和关键值的形式组织,在检索相关信息时非常有用。
这个数据库系统可以根据用户数量和数据库在计算机设备上的位置进行分类。单用户和多用户可以在数据库上操作,这取决于所做的配置。MySQL、Oracle DB、mongo DB、云数据库和SQL服务器是用于存储和管理大量用户信息的一些数据库。
下面给出了四个分类,其中数据库系统位于哪里。
- 并行DBMS
-
集中式DBMS
-
客户端/服务器DBMS
-
分布式DBMS
客户端/服务器DBMS
客户端/服务器数据库系统有两个主要组成部分,它们是客户端和服务器机器。用户计算机、笔记本电脑设备或工作站系统充当客户端,服务器可以是大型机、大型工作站或本地服务器系统。服务器和客户端系统通过网络连接相互连接,服务器充当后端并具有所有必需的资源,而客户端设备则是与DB应用程序或工具交互的前端。
客户端程序发送请求到服务器以访问某些数据库文件或所需的任何服务,然后服务器程序处理获取的请求并将结果返回给客户端系统。这具有图形用户界面,用于客户端和服务器之间的交互。客户端-服务器模式在兼容的机器之间处理应用程序的许多有效方法。
例如,SQL服务器可以安装在任何支持的PC或笔记本电脑设备上,而客户端程序在单独的机器上运行。当客户端需要从服务器数据库获取任何数据时,它会通过局域网(LAN)发送请求,然后服务器将所需的数据或记录返回给客户端计算机。多个用户可以请求同一数据或记录到SQL服务器,然后SQL服务器将记录发送给多个客户端并确保仅有一个用户可以在某一时间修改数据。
客户端充当用户界面系统,提供用于创建、显示和操作存储在服务器上的数据的应用程序工具。服务器端通过使用锁方法、访问控制机制、数据恢复和查询处理函数提供存储、授权和数据完整性。
分布式DBMS
分布式DBMS系统包含多台机器,数据库本身存储在任何一台机器上,这些机器通过高速网络或电话线相互沟通。它有一个单一的逻辑数据库,该数据库被分成片段,这些片段存储在不同的机器上,支持任何DBMS。这些数据分布在不同的数据库中,可以在操作系统和地理位置上有所变化,但所有这些设备都可以通过任何通信网络连接。
使分布式DBMS更有效的因素是数据共享不仅限于一台服务器机器,而且大多数请求的数据也将对所有用户可用,从而提高了用户和网络的性能和可靠性。
下表定义了客户端-服务器DBMS和分布式DBMS之间的主要区别 –
差异的基础 | 客户端/服务器DBMS | 分布式DBMS |
---|---|---|
功能 | 资源存储在服务器数据库系统中,客户端可以根据请求使用。 | 数据库在多台机器上共享。每个机器都可以充当服务器,可以处理来自其他系统的请求。 |
成本 | 与分布式DBMS相比较便宜。 | 比客户端/服务器数据库昂贵。 |
资源的可用性 | 所需资源可以通过向服务器请求来访问。但是,当多个客户端请求相同的数据时,速度会降低。 | 由于资源分布在不同的系统中,它们可以比客户端/服务器DBMS更快地访问。 |
数据的存储 | 存储在单个服务器上的数据可以与许多客户端建立连接。 | 数据分布在多台机器上,可以根据要求充当客户端或服务器。 |
连接系统的故障 | 当服务器端由于任何错误或故障而崩溃时,可能会影响已连接的客户端,降低性能并可能导致可靠性问题。 | 分布式环境中任何单个设备的崩溃不会完全影响网络或其他连接的系统。 |
维护成本 | 只需维护单个服务器,低成本。 | 高,因为每台机器可以在任何平台上运行,并与任何数据库系统配置。 |
安全性 | 必须在服务器数据库中安装适当的安全控制机制,以避免安全威胁。 | 由于数据库系统在各种平台上同时运行,因此一个设备中的漏洞可能会传递给连接的设备并导致安全威胁。 |
性能 | 在更多的客户端请求或服务器故障发生时提供较少的性能。 | 在分布式架构上运行,提供更好的性能和更高的效率。 |
处理数据 | 存储在服务器上的数据可以自己进行身份验证、评估和处理。 | 需要来自共享请求数据的各个站点的协调。需要额外的计算方法来实现协调,有时可能不成功。 |
结论
客户端/服务器DBMS具有服务器数据库的中央存储库,存储所有由多个客户端系统执行任何查询操作所需的数据库文件,它提供更好的GUI界面和更好的响应时间,但缺乏性能监视和多个网络环境。分布式数据库在本地自治下与多个应用程序共享数据,提供更好的可伸缩性和性能,但在安全威胁和处理负载方面存在缺陷。