实体关系模型(ER模型)是否有权威标准及相关规范咨询
关于ER模型权威标准与细节问题的解答
ER模型没有绝对统一的全球权威标准,核心概念基于Chen的原始定义,后续细节在经典数据库教材(如《数据库系统概念》《数据库系统导论》)中有共识性规范。针对你的疑问逐一说明:
1. 关系集的描述属性能否作为主键的一部分
关系集的描述属性可以纳入主键。
例如“选课”关系,若允许同一学生多次选修同一门课(如重修),仅靠学生ID、课程ID无法唯一标识记录,此时需将“选课时间”这个关系属性加入,与前两者共同构成关系主键。
2. 超类能否作为弱实体集,子类的标识问题
超类可以是弱实体集。弱实体集的核心是自身无足够属性构成主键,依赖标识实体集的主键。若超类为弱实体,子类继承其依赖关系即可,不需要额外用双矩形标记——双矩形仅用于标记弱实体集本身,子类保持普通标识(如带阴影矩形或普通矩形加子类连线),同时继承超类的双菱形标识联系。
3. 聚合嵌套是否合法
聚合嵌套是合法的。聚合是将关系与实体集打包为更高层次抽象的建模方式,嵌套聚合可用于表达多层级关联。比如先聚合“项目-员工”为“项目团队”,再将“项目团队”与“供应商”聚合为“项目协作单元”,这类嵌套在复杂业务建模中被广泛认可。
4. 实体集能否与聚合边界内的实体集建立独立关系
可以建立独立关系。聚合只是建模抽象,边界内的实体集仍保持独立性,与外部实体集的直接关系不受聚合影响。例如聚合“订单-产品”为“订单条目”后,“产品”仍可与“供应商”直接建立“供应”关系。
Person子类与递归关系的合规性
将Worker和Manager设为Person的子类,同时让Person参与递归关系集parent_of(亲属关系)完全合规:
- Worker和Manager会继承Person的所有属性与关系,自动参与
parent_of关系,无需额外定义; - 递归关系是ER模型处理同一实体集内部关联的标准方式,亲属、上下级这类场景都适用,只要语义清晰就符合规范。
内容的提问来源于stack exchange,提问作者AngryJohn
相关产品推荐
相关产品推荐

