在 SQL 数据建模器中将逻辑模型转换为关系模型时出现问题
Posted
技术标签:
【中文标题】在 SQL 数据建模器中将逻辑模型转换为关系模型时出现问题【英文标题】:I have problem while converting logical model to Relational model in SQL data modeler 【发布时间】:2022-01-06 09:31:12 【问题描述】:我正在尝试为我的作业开发一个数据库。我在 SQL 数据建模器中设计了一个逻辑模型。我试图将其转换为关系模型,但关系被创建为表。不喜欢关系。我在 youtube 上观看了一些视频并尝试做相同的表格。我又遇到了同样的问题。我的错误在哪里,我该如何解决?非常感谢...
Logical Model
Relational Model
【问题讨论】:
多对多关系是通过关系数据库中的交叉表实现的 “但关系是作为表创建的”——表是关系数据库中关系的表示。所以创建表没有问题。 为什么会有重复字段的“演员”、“经理”、“导演”和“制片人”表(尤其是如果 1 人可以担任多个角色)?为什么不拥有一个包含常见(id、name、DoB 和性别)字段的单个“人员”表,然后您可以拥有与工作相关的表,以便数据在 3NF 中。 逻辑模型关系是物理模型中的表。顺便说一句,两者都是关系模型。 请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:数据建模中使用了不同的术语,不同的工具提供了几种类型的模型并且命名不同,所以关系模型的确切含义(我从未听说过)将取决于您使用的工具.从截图来看,它似乎是一个物理模型,包括表、列、外键、索引、存储详细信息等。如果您想要不同的东西,请描述它是什么。
传统上有
逻辑模型,也称为实体模型或实体关系图 (ERD),它与数据库无关,仅对业务实体、它们的属性、唯一键和关系进行建模。
一个物理模型,定义一个准备在特定供应商的 RDBMS 中实施的模式。这有包含列、主键、检查约束、索引等的表。
根据我的经验,工具通常会模糊实体和表格之间的界限。
按照我的学习方式,实体是业务感兴趣的概念项目,例如 “医生” 或 “患者”,因为模型的目的是为了展示什么是医生,什么是病人,以及它们之间的关系,这就是为什么它们以单数命名的原因。然而,数据库表(在物理模型中)通常包含代表许多医生和患者的行,因此复数形式是合适的。但意见不同。
【讨论】:
以上是关于在 SQL 数据建模器中将逻辑模型转换为关系模型时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
DBMS-数据库设计与E-R模型:E-R模型约束E-R图E-R扩展特性E-R图转换为关系模式UML建模