外键(Foreign Key)
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。换而言之,如果关系模式R中的某属性集不是R的主键,而是另一个关系R1的主键则该属性集是关系模式R的外键,通常在数据库设计中缩写为FK。
关系
关系是笛卡儿积的有一定意义的、有限的子集,所以关系也是一个二维表,表的每一行对应一个元组,表的每一列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个唯一的名字,称为属性(Attribute)。n目关系有n个属性。当n=1时,称该关系为单元关系,当n=2时,称该关系为二元关系。
例如:对给定的三个域:D1(年份集合=1992,1993)、D2(电影名集合=星球大战,独立日)、D3(电影长度集合=100,120),它们的笛卡儿积构成的集合,不是一个有意义的关系,因为,每个电影的长度是固定的,电影的出版年份也是固定的。
数据结构中的关系指的是集合中元素之间的某种相关性。
主关键字(primary key)是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表不能有多个主关键字,并且主关键字的列不能包含空值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。
候选关键字
如果一个超关键字去掉其中任何一个字段后不再能唯一地确定记录,则称它为“候选关键字”(Candidate Key)。候选关键字既能唯一地确定记录,它包含的字段又是最精炼的。也就是说候选关键字是最简单的超关键字。
在关系R中如记录完全函数依赖属性(组)X,则称X为关系R中的一个候选关键字。
超关键字
意思:二维表中,能够惟一确定记录的一个字段或几个字段的组合被称为“超关键字”。“超关键字”虽然能唯一确定记录,但是它所包含的字段可能是有多余的。
超关键字也称超码,是指一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一地标识一个实体。
如果k是一个超码,那么k的任意超级也是超码。