首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DBMS、数据库引擎和存储引擎有什么区别?

DBMS、数据库引擎和存储引擎有什么区别?
EN

Stack Overflow用户
提问于 2018-11-16 07:27:29
回答 2查看 555关注 0票数 3

我不是一个CS /软件工程背景的人,但最近我开始用Python开始自己研究Flask开发。

目前我正在研究“数据库”这个话题,在互联网上对这个问题做了进一步的研究,我遇到了一些术语,即数据库、数据库管理系统、数据库引擎和存储引擎。互联网上的不同来源似乎给出了上述不同的定义。

从互联网和米格尔·格林伯格的网页开发书中,我对以下几点感到困惑:

  1. 在米格尔的“格林伯格”一书中,作者似乎在推断数据库引擎= DBMS =软件应用程序,如MySQL、SQLite、Postgres等。 资料来源:米格尔·格林伯格在数据库章节下的书第53页。
  2. 在维基百科中,数据库引擎(或维基百科中所述的存储引擎)被称为软件应用程序,如InnoDB、MyISAM、Aria等。 链接:engine
  3. 在Quora中,一个评论者(Stephen )说DBMS和数据库引擎是两个不同的实体,因此数据库引擎只是DBMS中负责管理数据库的组件的一部分。 链接:https://www.quora.com/What-are-some-database-storage-engines

因此,基于以上3点,我想提出的问题如下:

  1. DBMS =数据库引擎/存储引擎= MySQL、SQLite、Postgres等软件应用程序吗?

  1. DBMS !=数据库引擎/存储引擎吗?( DBMS = MySQL、SQLite、Postgres和数据库引擎/存储引擎分别= InnoDB、Aria、MyISAM等?)

如果有人能帮我澄清我对这个术语的疑虑,我真的很感激。我尝试过在互联网上做研究,也在“堆栈溢出”中浏览过帖子,但我仍然不能正确理解这个概念。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-11-16 10:40:45

DBMS必须始终包含一个存储引擎来发挥它们的作用。这就是模块化,即仅限于内存中的系统,这些系统被故意设计为一旦关闭所有数据就会丢失(因此,从一开始称它们为“DBMS”可能会被认为是有问题的)。

但是DBMS比单纯的存储引擎为用户做的更多。例如,DBMS还在数据库更新期间对用户提供的数据执行完整性检查。

数据库管理系统是数据库管理系统,它清楚地表明它是一个用于管理数据库(一种有组织的数据收集)的软件(/engine)。

因此,根据传统观点,您可以得到DBMS =数据库引擎= IMS / IDMS / DB2 / PostgreSQL /.存储引擎=数据库管理系统使用的存储组件,这些组件通常是专用的,实际上没有命名,但并不总是这样,其中一些“命名的”存储引擎MyISAM、InnoDB、Microsoft、BerkeleyDB (??)可能还有其他人。

不幸的是,该行业的绝大多数数据库从业者都犯了错误,错误地交替使用这些术语,从而导致/助长/延续了导致您问这个问题的混乱。你被警告过:-)

票数 5
EN

Stack Overflow用户

发布于 2018-11-18 10:00:03

我认为DBMS是指整个软件产品-- PostgreSQL、Oracle、DB2等。

然而,这些都是庞大而复杂的产品。就像复杂的软件一样,它们被分成不同的组件,每个组件都有自己的特定功能,并且在它们之间有定义良好的接口。一个组件将处理验证和解析SQL;一个将负责内存;另一个将处理IO,等等。最后一个-- IO引擎--通常被称为存储引擎,我猜是因为它“驱动”数据进出磁盘。为什么它被称为引擎而不是组件或子系统,这是任何人的猜测。

这些名称没有ISO标准。因此,任何供应商,学术或博客作者都可以自由使用,重用和定义他或她认为合适的术语。

有些DBMS允许各种IO组件,每个组件实现不同的技术。MySQL有InnoDB和MyISAM。MongoDB有WiredTiger和MMap。如果数据位于“正常”表、内存表或具有列存储索引中,则Server具有不同的磁盘格式和幕后算法。如果这是作者选择使用的术语的话,这些可以被认为是不同的存储引擎。

由于DBMS的基本目的是存储和检索数据,因此很容易看出存储部分如何成为整个产品的同义词。从这个角度来看,其他组件被视为存储的辅助组件。也许这曾经是真的。在支持复杂身份验证、多模型API和仅内存存储的现代系统中,我认为这是站不住脚的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53333241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档