【数据库】键(码)

前言

  因为这次自考没有报《数据库系统原理》,本以为可以暂时放放数据库的比较重要的知识,谁想在《信息系统资源与管理》中也出现了这些概念,躲得了初一躲不过十五,该来的总会来的,现在还是好好的学习一下吧!

总结

什么是“键码”?
  在数据库领域中,当用概念模型描述现实世界客观事物时,将客观存在并可互相区分的事物称作实体,实体所具有的特性称作属性,能够独立标识实体的一个或一组属性称作键码。

  • 超键
    • 在关系模式中,能唯一标识元祖的属性集称为超键。
  • 候选键
    • 不含多余属性的属性集的超键称为候选键。
    • 超键和候选键的区别:超键可能含有多余的属性,而候选键不能。
  • 主键
    • 从候选键中随意指定的一个作为关键字,这个关键字就是主键。
    • 示例
      学生(学号,姓名,性别,专业号,年龄)
      ①(学号,姓名)是超键,而不是候选键(因为姓名是多余的属性,知道学号就可以唯一标识这个元祖)。学号是候选键,同时也是主键。
  • 外键
    • 如果关系模式R1中的某属性集不是R1的候选键,而是关系模式R2的候选键,则这个属性集对模式R1而言是外键。
    • 示例
      学生(学号,姓名,性别,专业号,年龄)
      专业(专业号,专业名)
      ①R1学生——候选键-学号-主键
      ②R2专业——候选键-专业号-主键
      ③因为RI学生和R2专业都含有专业号,所以,专业号是R1学生的外键,R2专业无外键。
  • 属性
    • 主属性
      • 候选键中的所有属性成为主属性
      • 示例
        学生(学号,姓名,性别,专业号,年龄)
        专业(专业号,专业名)
        ①学生——候选键-学号-主属性
        ②专业——候选键-专业号-主属性
    • 非主属性
      • 不包含在任何候选键中的属性称为非主属性(在上一个例子“学生”关系模型中,除了学号都是非主属性)
      • 示例
        成绩(学号,姓名,课程号,成绩)注:学生无同名(学号和姓名等价)
        ①学号(姓名)和课程号组合起来可以确定成绩,所以学号(姓名)和课程号的组合是这个关系模式的候选键
        ②候选键:(学号、课程号)、(姓名、课程号)
        ③主属性:学号,姓名,课程号
        ④非主属性:成绩

如何区分超键,候选键和主键?

  • 共同点:唯一标识一个元祖
  • 不同点:
    • 超键中有无关的属性,而主键和候选键中属性都是必要的属性
    • 主键和候选键的区别:主键是被数据库设计者选中的,是“在朝的”,而候选键是“在野的”。主键是候选键中的一个,只不过因为它被数据库设计者选中而称为主键而已,事实上它也是候选键。

小结

 总结完一个知识点,就有很大的成就感,这说明自己离成功又近了一步,不忘初心,加油!

你可能感兴趣的:(#,数据库)