Database design 一元/递归关系是强/标识关系还是弱/非标识关系?

Database design 一元/递归关系是强/标识关系还是弱/非标识关系?,database-design,entity-relationship,erd,entity-relationship-model,Database Design,Entity Relationship,Erd,Entity Relationship Model,首先,一些定义可以确保我使用的术语清晰明了: 强实体和弱实体以及强/识别和弱/非识别关系:在ERD中,弱/非识别关系是连接两个强实体的关系,并用虚线表示。强/标识关系是将强实体连接到弱实体的关系(即,包含其相关实体的主键[PK]作为其自身组件主键的组件的实体),并用实线表示 例如,考虑这个图(借用): 课程(强实体)和班级(弱实体)之间的关系是强关系(实线),因为班级包含课程的主键(*CID)作为其主键(*CID,*日期)的一部分。相反,文件室(强实体)和类(即使是弱实体)之间的关系很弱,因

首先,一些定义可以确保我使用的术语清晰明了:

  • 强实体和弱实体以及强/识别和弱/非识别关系:在ERD中,弱/非识别关系是连接两个强实体的关系,并用虚线表示。强/标识关系是将强实体连接到弱实体的关系(即,包含其相关实体的主键[PK]作为其自身组件主键的组件的实体),并用实线表示

    例如,考虑这个图(借用):

  • 课程(强实体)和班级(弱实体)之间的关系是强关系(实线),因为班级包含课程的主键(*CID)作为其主键(*CID,*日期)的一部分。相反,文件室(强实体)和类(即使是弱实体)之间的关系很弱,因为文件室的PK(*RID)不是类PK的一部分

  • 一元/递归关系:大多数关系都是二进制的,因为它们连接两个独立的实体。例如,课程与班级、教室与班级之间的关系是二元关系。当实体与自身有关系时,很少有一元(也称为递归)关系。在图中,唯一的一元关系是与Employee实体的关系。应将其标记为“管理”,因为它表示一名员工可能管理0到多名员工;每个员工由一名员工管理,而且只有一名员工。Employee的主键是*EmpID,链接关系的外键(FK)是Manager

  • 所以,我的问题是:一元关系是强/认同还是弱/不认同?一方(雇员,*EmpID)的主键不仅是多方(雇员,*EmpID)主键的一部分,而且是多方(雇员,*EmpID)主键的完整组成部分。因此,这表明它应该是一个强有力的关系,有一条实线,与示例图中描述的相反。有人能帮我澄清一下吗?

    我不太清楚你对“强”和“弱”的定义是从哪里来的(这可能是一个语言问题),但据我所知,这可以被认为是这样的:如果另一个实体不再存在,或者如果他们失去了关系,这两个相关实体是否会继续存在。在您的示例中,
    课程
    报废时,
    不存在。这可以通过一个表中包含其他表的PK来表示,但情况并非如此<代码>类可以(出于完全不同的原因)有自己的
    id
    作为主键,并且只能将
    CID
    用作FK。这不会改变这两个实体的事实关系

    另一方面,如果你有像
    汽车
    司机
    这样的东西,他们就会有一个薄弱环节。被删除(死亡)的司机不会突然导致他们的汽车消失。同样地,汽车被盗通常不会立即引起司机心脏病发作。这是一个“薄弱”环节。即使另一种东西消失了,这两种东西也可以继续存在


    在您的员工案例中,即使他们失去了关系或另一个实体消失,这两个人仍将继续存在。因此,这是一个薄弱环节。此外,为了坚持你基于PK的定义,
    经理
    是员工的FK,通常与PK不同,也不是PK的一部分,因为在公司层级中很少有人是自己的经理。

    我不完全确定你对“强”与“弱”的定义来自何方(这可能是语言问题),但据我所知,这可以被认为是这样的:如果另一个实体不存在或它们失去了关系,这两个相关的实体是否继续存在。在你的例子中,当
    课程
    被废弃时,
    不可能存在。这可以通过一个包含其他实体的表的主键来表示,但这不是n必要的情况是,
    Class
    可以(出于完全不同的原因)将自己的
    id
    作为PK,并将
    CID
    仅用作FK。这不会改变这两个实体的事实关系

    另一方面,如果你有像
    汽车
    司机
    这样的东西,他们就会有一个薄弱环节。被删除(死亡)的司机不会突然导致他们的汽车消失。同样,被偷的汽车通常不会立即引起司机的心脏病发作。这是一个“薄弱环节”这两种东西可以继续存在,即使另一种已经消失了


    在您与员工的案例中,即使他们失去了关系或其他实体消失,这两个人仍将继续存在。因此,这是一个薄弱环节。此外,为了坚持您基于PK的定义,
    Manager
    是员工的FK,通常与PK不同,并且不属于PK的一部分,因为它是罕见的e发现任何人在公司层级中都是自己的经理。

    弱/强关系:强关系只意味着依赖实体不能脱离关系而存在。以班级、课程和房间为例。想象以下对话:

    "I think I'll teach a class this September."
    "Good. What course will you teach?"
    "I haven't decided yet."
    
    好吧,在这位讲师决定课程之前,真的不可能有课程。因为课程必须在创建课程之前指定,所以这种关系非常密切。此外,在考虑选择哪门课程时,“珠子渲染”课程和“赛博工艺”课程是两种完全不同的东西,尽管它们可能同时在同一个房间里相遇(只是在不同的日子)。每个班级的身份都不可避免地与一门课程联系在一起。因此,这种关系也是确定的

    "I think I'll reach Discretionary Logic this September."
    "Good. What room will it be in?"
    "I haven't decided yet."
    
    即使尚未分配,该类仍然可以存在