0

我刚刚完成了一个数据库课程,深入到数据库的内部。我试图将我们在课程中学到的所有术语连接起来,但我感觉我缺少一些片段。这里是我所知道的:数据库术语之间的区别

  • 数据库:数据结构的“逻辑”表示 - 可互换地用来指物理数据,关系案例中的“表格”数据和DBMS。
  • 数据库管理系统(DBMS):为管理员/用户提供开发加速访问等机制的工具。系统理解数据的统计信息,并可执行查询优化以开发良好的执行路径。例如:PostgreSql,MySQL,MongoDB。我想很多人会混淆DBMS和数据库是一回事吗?
  • 数据存储在磁盘上。这些数据不是由文件系统管理的,但是DBMS执行与I/O有关的系统调用吗?
  • 像map/reduce这样的框架被用于分布式数据库,因为它们提供了任务的“并行化”,因为我可以有很多映射器,框架抽象了系统细节,比如可伸缩性,负载平衡等。我很困惑,减少仅适用于HDFS,HBase等。
  • 最终所有的数据都存储在一个磁盘上,而DBMS是这个数据写入的位置和结构的主脑。

我需要澄清和指导我的理解,我想连接点。

回答

1
  1. 概念,逻辑和物理模型被广泛误解。在我看来:

    • 概念建模是根据业务领域进行的,客户,员工,发票等。我们使用此级别分析业务需求并与利益相关方进行沟通。我使用陈式ER图进行概念数据建模。概念模型对于实现模型是中性的。

    • 逻辑建模是关于形式逻辑,关系理论和一致性。我们的重点是域,关系,依赖关系,规范化,冗余等。关系图是可用的,但我主要是使用纯文本。

    • 物理建模是关于如何在DBMS或物理系统中实现逻辑模型。如果我的目标是SQL DBMS,那么我的物理模型将包含表格,数据类型,外键约束等。物理模型可以使用任何特定于DBMS的功能,例如某些特殊类型的索引或放置规则。

  2. 数据库管理系统提供并管理对数据的所有访问,它们不只是优化查询。他们管理结构,存储,检索,完整性,优化,身份验证,授权等。正如你所说,DBMS和数据库经常被混淆。如果你对OOP感到满意,可以这样想:DBMS是我们传递消息的对象。数据库是其封装状态。

  3. 某些DBMS建立在文件系统之上,有些DBMS完全绕过文件系统。有些甚至建立在其他DBMS之上。

  4. 数据不仅存储在磁盘上。实际上,这个概念与存储无关。 “数据”是“datum”的复数,拉丁词是“给定的东西”。数据首先在统计表的上下文中输入英文。在数学上,数据是关联 - 一个域中的一组值,一个包含一个值的变量,一个集合之间的关系等。在计算机系统中,数据通常是指编码值,可以在函数和过程之间存储或传送。

  5. Map/reduce并不局限于分布式数据库,而是将其视为可分发数据处理。它可以与集中或分布式数据库一起工作。尽管一些系统基于或实施了地图/缩小技术,但并不局限于这些系统。图书馆有许多种语言可供使用,并且这项技术可以由任何具有所需知识的人来实施。

我希望这有助于。让我知道你是否需要进一步澄清。

+0

这是一个很好的总结需要连接的点。我会补充说,关于实现模型含义关系或其他方面,概念是中性的,逻辑与关系或SQL实现相关联,并且物理可以包括DBMS特定功能,例如某些特殊类型的索引或放置规则。 –

+0

感谢您的赞扬和反馈,@WalterMitty。你在概念和物理层面上提出了很好的观点,虽然我同意逻辑层次与关系理论相关联(科德定理证明了等价于一阶逻辑的关系模型),但我并不认为这两者与一个SQL实现。虽然SQL DBMS支持与逻辑模型相当接近的物理实现,但对非集合和依赖关系的理解在非SQL数据库中同样重要。 – reaanb

+0

我会接受的是,将关系模型绑定到SQL实现有点过分。在我的实践中,我创建的每个关系数据库都是针对一些DBMS(如Oracle),它既是SQL又是关系数据库(关闭近似)。我忽略了不是基于SQL的关系系统。 –

相关问题