数据库之N种键

前言

      今天又重新拾起了《数据库系统原理》,因为之前对它学的不够扎实,所以现在需要重新进行深入的学习,尤其是“键”这一部分,真的是“迷”的厉害,今天利用这个特殊的节日,带着“小孩儿”玩了半天,之后就开始学习了,对这一部分进行了总结,和大家分享一下!

分享

  • 什么是“键(码)”?
    • 存在这样的属性(属性组),使得在该关系的任何一个关系状态中的两个元组,在该属性(属性组)上值的组合都不相同,即这些属性(属性组)的值都能用来唯一标识该关系的元组,这样的属性(属性组)称作键(码)。
  • 主要的一些“键”和“属性”:
    • 超键、候选键、外键、主键、主属性、非主属性
  • 什么是“超键”?
    • 在关系中能独立标识元组的属性集称为关系模式的超键。
  • 什么是“候选键”?
    • 不含有多余属性的超键称为候选键。(在“超键”上添加一些“限制条件”就得到了“候选键”)
  • 什么是“外键”?
    • 如果关系模式R1中的某属性集不是R1的主键(候选键),而是另一个关系R2的主键(候选键)则该属性集是关系模式R1的外键。PS:后面会有示例讲解!!!
  • 什么是“主键”?
    • 用户选作元组标识的一个候选键程序主键。说白了,就是一个特殊的(被选走的)候选键。
  • (超键,候选键,主键,外键)示例:

    • 学生(学号,姓名,性别,专业号,年龄)
      ①(学号,姓名)是超键,而不是候选键(因为姓名是多余的,没有姓名,通过学号也可以确定这个学生),学号是候选键,同时也是主键
      ②R1学生(学号,姓名,性别,专业号,年龄)- - - - - 候选键只有学号,专业号是R1的外键(专业号,不是R1的候选键,但是是R2的候选键)
         R2专业(专业号,专业名)- - - - - 候选键只有专业号- - - - - 候选键(能唯一标识且不含有多余属性)
      学生:(主键:学号      外键:专业号)
      专业:(主键:专业号      外键:无      注:不存在这样的键,不是R2的候选键(只有“专业名”),是R1的候选键,所以不存在)
  • 超键、候选键、主键三种键的异同比较:

    • 共同点:作用相同:唯一标识一个元组
    • 不同点:A:超键中有多余属性,而主键和候选键中没有,都是必要的
                     B:主键与候选键区别:主键是候选键中的一个,只不过因为他被数据库设计者选中而称为主键,事实上他也是候选键。

    • 示例:

      • A、B、C三人竞选班长,最终选了A当班长,但是在他成为班长之前,它是候选人,B、C也是候选人,但是只能找出来一个人当班长(主键),3个人都是候选人(候选键)。
  • 什么是主属性?
    • 候选键中的所有属性称为主属性
  • 什么是非主属性?
    • 不包含在任何候选键中的属性为非主属性(上一个例子中:在“学生”关系模型中,除了学号外,都是非主属性)
  • (主属性,非主属性)示例:

    • 成绩(学号,姓名,课程号,成绩)注:学生无同名(即:学号和姓名等价
      学号和课程号组合起来可以决定成绩,所以他们组合成为候选键(学号,课程号)或(姓名,课程号)
      主属性就是学号,课程号,姓名- - - - -非主属性就是成绩

    小结

               用了一晚上的时间终于把这一部分弄清楚了,进行了总结,这回真的是彻底的明白了,文章中有对各种键的讲解示例,我自己感觉整理的很好,很清晰,每个人都可以看懂,希望帮助到那些在这个问题上有很多困扰的人,我自己的见解大概就这么多,希望大家多多留言,提出宝贵的建议与意见!!!

猜你喜欢

转载自blog.csdn.net/tigaobansongjiahuan8/article/details/81783114