• 基础:types of keys


    1. superkey
      超键,如果一个关系(表)中所有属性(列)都由一个属性集合决定,那么这组属性集合称为超键。
      显然,由一个关系的所有属性组成的属性集合必然是这个关系的超键。
      通俗地讲,超键用来唯一确定一个元组(行,记录)。

    一组属性(或列)(A1, A2, …, An) 可以成为某个实体E的 super key, 如果通过这些属性可以确定一个实体。
    如果同样的姓名和出生时间可以标识一个人,那么(FirstName, LastName, BirthTime)就是Person的一个超键。
    当然,(FirstName, LastName, BirthTime)加上Gender,即 (FirstName, LastName, BirthTime, Gender)也是一个super key。
    但(FirstName, LastName)不是super key,因为有同名同姓的人。如果没有同名同姓的人,那(FirstName, LastName)也是super key。

    1. candidate key
      候选键,一个可以用来唯一确定一个元组的极小的属性集合,即极小超键。(minimal superkey)

    从super key 中去掉一些属性,剩下的属性有可能是super key,也有可能不是。
    如果从一个super key中的属性中,去掉任何一个属性,都不能唯一确定一个实体,那么这个super key就是candidate key。
    要描述一个人,我们不需要把所有关于这个人的信息都说出来,那样没有必要。我们也不能只说这个人姓什么,因为这样还不够,听的人不知道是谁。
    所以,我们要做的是,用最少的事实描述一个人。这就是 candidate key存在的意义。

    1. primary key(must be a candidate key)
      主键,一个关系的所有候选键中选择一个用来唯一确定关系的元组,这个候选键成为主键。

    描述一个东西可以用不同的属性组合.。一个人可以用姓名+出生时间指定,也可以用身份证号码(假设每个人都有身份证号)。因此,一个实体的candidate key也可能有多个。 那我们用哪个来描述一个实体呢?
    都可以,所以叫 candidate (候选的) key。当然,候选也意味着有些被选上,有些被淘汰。在数据库中,有一种方法描述实体就够了,因此,要从候选键中选一个作为主键(Primary Key)。
    有了主键,就可以用它描述实体。

    1. external key
      在一个关系中,如果一个属性集合是另一个关系的主键,这个属性集合称为外键。

    每个表都应该有一个主键,用来唯一确定一行数据。
    数据库中,不同的东西保存在不同的表中,有些表之间是互相关联的。假设有个表用来保存公司的员工,一个员工同时也是一个人,这个人的基本信息保存在另一个表Person中,这就需要引用别的实体。
    前面说过,主键就是起这个作用的,可以用来标识一个实体。当一个表的主键被一个表引用,它在那个表中就成为外键(foreign key)。

    在这里插入图片描述

  • 相关阅读:
    人人能读懂redux原理剖析
    长期戴耳机的危害有多大?有没有不伤耳朵的蓝牙耳机?
    java---Stream流
    阿里云ECS11月销量王 99元/年
    解密Linux中的通用块层:加速存储系统,提升系统性能
    宋浩概率论笔记(六)样本与统计量
    CentOS Stream9 安装远程桌面服务 Xrdp
    C语言部分复习笔记
    excel中vba简单应用
    Debian11.5设置静态IP 221021记录
  • 原文地址:https://blog.csdn.net/weixin_42169849/article/details/126709412