逻辑模型和数据模型之间有什么关系?

What's the relationship between Logical Model and Data Model?

提问人:Xavier Z. 提问时间:7/12/2023 更新时间:7/13/2023 访问量:37

问:

我已经阅读了这篇文章,但仍然感到困惑。

两者似乎在某种程度上可以互换使用,因为它们都不同于(例如 ER、UML)。但是,我无法找到任何具体的证据来证实它们的等效性。Logical ModelData ModelConceptual Model/Semantic Model

Data Model,在DBMS的上下文中,一直有明确的定义和示例,例如关系模型和键值模型,它们都是 .Data Models

另一方面,缺乏明确的定义。我发现的唯一提及是将其作为 DBMS 设计过程的一部分:在概念设计之后,逻辑设计将上一步的结果转换为目标 DBMS 的实现,例如关系模型(数据库系统概念,第 6 章,第 241 页)。Logical ModelData Model

有人可以阐明 和 之间的确切关系吗?任何见解将不胜感激。Logical ModelData Model

数据库 数据库设计 数据建模 数据 关系模型

评论


答:

3赞 Walter Mitty 7/12/2023 #1

我只能向你介绍一下我大约四十年前学习这些数据模型的方式。这可能不再是今天对这些的理解方式。文献中描述的三层体系结构与以下内容略有不同。

概念数据模型。这是信息本身语义的模型。它应该以一种与实现无关的形式来表达。ER 建模适用于此方法。关系已识别,但未在 ER 模型中实现。模型中显示了多对多关系,但不需要像交汇点表这样的东西来显示它们。警告:许多 ER 图实际上描述的是数据的关系模型,而不是数据的 ER 模型。与项目的需求分析阶段相关联。

逻辑数据模型。这是一个设计模型,显示数据如何组合到架构中。它应该特定于您预期的实现类型(例如关系数据库),但不特定于特定产品(例如 Oracle)。在此阶段引入了外键、交汇表、数据归一化等。过去,我几乎所有的设计都是相关的。我使用的工具是描述关系模型,而不是 ER 建模的工具。

物理数据模型。通过添加特定于特定数据库产品(如 Oracle RDBMS)的功能来扩展逻辑数据模型。此时,索引、哈希、记录放置等功能将添加到模型中。我倾向于用SQL创建脚本的形式来表达这个模型。在开发过程中能够经常构建一个新的空数据库非常有用,至少对我来说是这样。拥有一个维护良好的创建脚本对于这个过程至关重要。

评论

0赞 Xavier Z. 7/13/2023
谢谢你,先生!我注意到许多教科书使用“数据模型”来指代关系模型、键值模型等。我很好奇这个“数据模型”和你提到的逻辑数据模型之间的关系。逻辑数据模型可以被视为某个“数据模型”的实例吗?
1赞 Walter Mitty 7/13/2023
我不能确定,但我认为术语数据模型是一个广义术语,其中关系模型或 ER 模型都是专业化。