<p>定义:</p><p>超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键</p><p>候选键(candidate key):不含有多余属性的超键称为候选键</p><p>主键(primary key):用户选作元组标识的一个候选键程序主键</p><p>外键(foreign key)如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外键。</p><p>参考以下例子:</p><p>假设有如下两个表:</p><p>学生(学号,姓名,性别,身份证号,教师编号)</p><p>教师(教师编号,姓名,工资)</p><p>超键:</p><p>由超键的定义可知,学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(身份证号,性别)等。</p><p>候选键:</p><p>候选键属于超键,它是最小的超键,就是说如果再去掉候选键中的任何一个属性它就不再是超键了。学生表中的候选键为:(学号)、(身份证号)。</p><p>主键:</p><p>主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,教师表中让“教师编号”做主键。</p><p>外键:</p><p>外键比较简单,学生表中的外键就是“教师编号”。外键主要是用来描述两个表的关系。</p><p>主属性和主键</p><p>严格来说</p><p>主属性:指主键列,即主键由一列构成</p><p>主键定义:能够唯一标识一个元组的属性或属性集,即可以由多列组成。</p><p>在教学中,大多实例都是主键由一列构成,所以也可以简单地说主属性与主键没有什么区别。</p>