zoukankan      html  css  js  c++  java
  • 菜鸟学数据库——超键、候选键、主键、外键

    这些年的一些经历告诉我,很多初学者搞不清超键、候选键等,被数据库中的各种键搞的一头雾水。下面就跟大家一起聊聊数据库中的那些键。

    首先看看各种键的定义:

    超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键

    候选键(candidate key):不含有多余属性的超键称为候选键

    主键(primary key):用户选作元组标识的一个候选键程序主键

    外键(foreign key)如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外键。

    结合实例的具体解释:

    假设有如下两个表:

    学生(学号,姓名,性别,身份证号,教师编号)

    教师(教师编号,姓名,工资)

    超键:

    由超键的定义可知,学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(身份证号,性别)等。

    候选键:

    候选键属于超键,它是最小的超键,就是说如果再去掉候选键中的任何一个属性它就不再是超键了。学生表中的候选键为:(学号)、(身份证号)。

    主键:

    主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,教师表中让“教师编号”做主键。

    外键:

    外键比较简单,学生表中的外键就是“教师编号”。外键主要是用来描述两个表的关系。

    其实这些键还是比较容易区分的,只是初学者一下子看到好几个名字相似的概念,容易自己把自己搞晕,自己给自己制造困难。多读两遍定义,然后结合实例很容易就能把它们区分开。希望这篇文章可以给一些初学者一点点的帮助。
    ---------------------
    作者:刘水镜
    来源:CSDN
    原文:https://blog.csdn.net/liushuijinger/article/details/12832017
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    第3.2 使用案例1:股票期货stock portfolio 21050917
    颜色代码表#FFFFFF #FF0000 #00FF00 #FF00FF (2015-07-21 10:39)转载
    JSTL(1.1)的配置
    Ext JS 4 老特征:statics 静态的变量和方法
    Ext JS 4 新特性2:配置项属性(config)之二
    Ext JS 4 新特性2:配置项属性(config)之一
    JS 4 新特性:混合属性(mixins)之二
    JS 4 新特性:混合属性(mixins)
    校验LocalDate格式
    java 执行js的eval方法
  • 原文地址:https://www.cnblogs.com/zhoading/p/10928769.html
Copyright © 2011-2022 走看看