键和相关属性的概念 [MySQL][数据库]

键和相关属性的概念

在范式的定义中会使用到主键和候选键,数据库中的键(key由一个或者多个属性组成,数据库中最常用的几种键和属性的定义:
键:
  1. 超键: 能唯一标识一条记录的属性集叫做超键

    • 属性集: 就是多个属性的一个集合,如果有一个属性可以唯一的标识一条记录,这个属性和任何的属性组合到一起构成的属性集都能作为超键
  2. 候选键: 如果超键中不包括多余的属性,那么这个超键就是一个候选键

    • 这里的多余的属性就是指的不能唯一的表示一条记录的属性
    • 候选键其实就是最小的超键
    • 候选键也可以是一个属性集,这个属性集中的所有属性都可以唯一的区分开每条记录
  3. 主键: 用户可以从候选键中选择一个作为主键

  4. 外键: 如果数据表R1的某个属性不是R1的主键,而是另一个数据表R2的主键,那么这个属性就是数据表R1的外键

    • 外键都是关联这另一个表中的主键的,这两个关联的字段必须是数据类型相同的,名字可以不同,但往往表达的意思都是相同的

    • eg: 员工表中的部门id不是员工表的主键,而是部门表中的主键,那么我们就说员工表中的部门id是员工表中的外键
属性:
  1. 主属性: 包含在任意候选键中的属性都称之为主属性

    • 也就是可以出现在候选键的属性集中的属性都是主属性
  2. 非主属性: 与主属性相对,指的是不包含在任何一个候选键中的属性

通常我们也将候选键称之为"码",把主键也称为"主码",因为键可能是由多个属性组成的,针对单个属性,我们还可以用主属性和非主属性来区分
下面我们通过一个例子来理解键和相关属性

首先我们先给出两个表:

  1. 球员表(player): 球员编号 , 姓名 , 身份证号 , 年龄 , 球队编号
  2. 球队表(team) : 球队编号 , 主教练 , 球队所在地

超键: 对于球员表来说,超键就是包括球员编号或者身份证号的任意组合,因为球员编号和和身份证号都是可以唯一区分开一条记录的字段

候选键: 就是不包含多余属性的超键 ,对于球员表来说就是(球员编号)或者(身份证号)或者(球员编号,身份证号)

主键: 主键是由我们自己选定,也就是在候选键中选择一个作为主键,比如: (球员编号)

外键: 球员表中的球队编号

主属性: 在球员表中,主属性是(球员编号)和(身份证号)

非主属性: 在球员表中,非主属性有(姓名),(年龄),(球队编号)都是非主属性

补充:

主属性就是可以唯一区分一条记录的属性

非主属性就是不可以唯一区分一条记录的属性

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值