1

好的..我已经对此进行了研究,但是我对此进行的研究越多,我就越感到困惑。所以想把它贴在这里。

  • DBMS 提供数据库服务器功能
  • DBMS 有一个服务器组件和一个客户端组件
  • DBMS = 数据库服务器软件
  • DBMS 在服务器/客户端架构上运行

这是我在试图了解数据库服务器软件和 DBMS之间的区别时遇到的四个概念。有人可以澄清一下哪个是正确的概念吗?

4

1 回答 1

4

取自这里

数据库是有组织的数据集合。数据通常被组织成以支持需要信息的流程的方式对现实的各个方面进行建模。例如,以支持查找有空房的酒店的方式对酒店房间的可用性进行建模。

数据库管理系统( DBMS ) 是与用户、其他应用程序和数据库本身交互以捕获和分析数据的计算机软件应用程序。通用 DBMS 旨在允许定义、创建、查询、更新和管理数据库。

因此,简而言之,DBMS 是负责存储和管理存储在数据库中的数据的软件,它与用户、其他软件和数据库本身进行交互。

请注意,并非所有 DBMS 都具有客户端-服务器体系结构,并且存储在数据库中的数据没有特定的模型。当今最常用的数据库模型是关系模型(许多流行的 DBMS 是关系 DBMS,或RDBMS),但也有其他模型(对象关系、面向文档等)

遵循客户端-服务器架构的 DBMS 示例:

  • MySQL
  • PostgreSQL
  • SQL 服务器
  • MongoDB(一种 NoSQL DBMS)

不遵循客户端-服务器架构(“嵌入式”)的 DBMS 示例:

  • SQLite(Android 应用程序经常使用它)
  • Apache Derby(也可以用作客户端-服务器 DBMS)
  • HSQLDB(也可以用作客户端-服务器 DBMS)
  • MS Access(它可以是客户端,但将其作为数据库服务器实现是一件非常痛苦的事情,而且悲伤和眼泪的来源有点困难,而且对于大型项目不是很有效)

所以,拿你的清单:

  • DBMS 提供数据库服务器功能

    不一定:DBMS 可以在嵌入式模式下工作(应用程序对数据库具有独占访问权限,并且 DBMS 嵌入到应用程序中)

  • DBMS 有一个服务器组件和一个客户端

    不一定:有些嵌入式 DBMS 没有服务器,只有一个可以访问数据库的应用程序。

  • DBMS = 数据库服务器软件

    不一定,但经常

  • DBMS 在服务器/客户端架构上运行

    不一定


关于您的具体问题(“数据库服务器软件和 DBMS 之间的区别”)......好吧,许多 DBMS都是数据库服务器。作为负责数据存储和管理的软件,DBMS 还负责处理“用户”(人或应用程序)访问数据的特定方式。使用嵌入式 DBMS 时,没有服务器:数据可以存储在只有嵌入 DBMS 的应用程序才能访问的文件中,或者甚至(在某些情况下)与应用程序相同的文件中。更常见的客户端-服务器架构具有一些特征(取决于您的具体需求,它们可能是优势也可能是障碍):

  • 数据存储在由 DBMS 的服务器组件管理的文件中
  • DBMS 有一个客户端组件,负责用户访问和操作数据
  • 服务器部分还可以为访问和操作数据实施安全措施(例如权限)
  • 客户端可以是 DBMS 的特定工具(例如 MySQL 有一个服务器组件和一个命令行客户端)、一个单独的程序(例如 MySQL Workbench,它可以直接连接到 MySQL 服务器)或一个库,可以用来将您的应用程序连接到服务器(例如 MySQL 连接器/J 是一个 Java 库,Java 程序可以使用它来访问 MySQL 服务器)
  • 客户端-服务器架构允许您创建一个或多个用户可以访问的数据库,每个用户都有特定的权限

... 等等

于 2014-11-13T00:46:41.223 回答