关键属性

  • 关键字:能唯一确定实体每一个实例的属性或属性组。

  • 关键字,被区分为主关键字和次关键字

  • 外来关键字:是其他实体的关键字

属性的工程化要求

  • 每个属性都必须有一个唯一的名称,且相同的名字必须总是描述相同的含义。
    • 因此相同的含义不可能对应于不同的名字(别名除外)
  • 每个实体可以具有任意个属性,一个属性只能归属于一个实体,这一规则称“单主规则”
  • 一个实体可有任意个继承属性,而每个继承属性都必须是某个相关的父亲实体或一般实体主关键字的一部分(为了无损连接)。
  • 实体的每一个实例,对每一个属性都必须具有一个值。这一规则称为“非空规则”
  • 对于同某实体相关的属性而言,该实体没有一个实例可能具有一个以上的值。这一规则称为“非重复规则”

主关键字和次关键字的工程化要求

  • 每个实体必须有一个主关键字,可有任意个次关键字
    • 构成主关键字或次关键字的属性可以是实体自身所具有的或由某些联系继承得到的属性
    • 主关键字和次关键字必须仅包含有助于唯一标识实体的那些属性。也就是说,如果主关键字或次关键字中去掉任一部分属性,那么都无法唯一确定实体的实例。此规则称“最小关键字规则”
  • 主关键字和次关键字可由单个或多个属性组成
    • 个别属性可以是多个关键字的一部分
  • 符合第三范式

外来关键字的工程化要求

  • 确定连接联系分类联系中的儿子实体或分类实体时必须包含一个外来关键字
  • 一般实体的主关键字必须遗传为每一个分类实体的主关键字
  • 存在一个联系,只能有一个外来关键字
  • 被继承属性只能是主关键字所包含的属性
  • 分配给继承属性的每一个作用名(RoleName,即什么联系)都必须是唯一的,同时同一含义必须应用于同一作用名
  • 如果在某实体的任一给定实例中,对于两个外来关键字而言,单一遗传属性总是具有相同值,那么,该属性可以是多个外来关键字的部分