关系键:修订间差异
第20行: | 第20行: | ||
比如,學生跟老師之間是教學的關聯,學生資料表會有個屬性叫指導老師(FK),而這個值就是對應到老師資料表的老師代號(PK),學生的指導老師就是外來鍵。 |
比如,學生跟老師之間是教學的關聯,學生資料表會有個屬性叫指導老師(FK),而這個值就是對應到老師資料表的老師代號(PK),學生的指導老師就是外來鍵。 |
||
==代理鍵== |
==代理鍵== |
||
在[[关系型数据库]]设计中,'''代理鍵'''是在當資料表中的候選鍵都不適合當主鍵時,例如資料太長,或是意義層面太多,就會用一個 |
在[[关系型数据库]]设计中,'''代理鍵'''是在當資料表中的候選鍵都不適合當主鍵時,例如資料太長,或是意義層面太多,就會用一個屬性來當代理主鍵,此主鍵可能是用流水號,來代替可辨識唯一值的主鍵。 |
||
==超键== |
==超键== |
||
超键(英文: Superkey),有的文献称“超码”,是在数据库[[关系模式]]设计中能够唯一标示[[多元組]]的属性集。<br /> |
超键(英文: Superkey),有的文献称“超码”,是在数据库[[关系模式]]设计中能够唯一标示[[多元組]]的属性集。<br /> |
2011年4月30日 (六) 18:36的版本
关系键是关系数据库的重要组成部分。关系键是一个表中的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。
主键
主键,又称主码。数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。
从技术的角度来看,Primary Key和Unique Key有很多相似之处。但还是有以下区别:
一、作为Primary Key的域/域组不能为null。而Unique Key可以。
二、在一个表中只能有一个Primary Key,而多个Unique Key可以同时存在。
更大的区别在逻辑设计上。Primary Key一般在逻辑设计中用作记录标识,这也是设置 Primary Key的本来用意。而Unique Key只是为了保证域/域组的唯一性。
外键
外來鍵(Foreign Key,()),又称外部鍵。其是在關聯式資料庫中,每個資料表都是由關聯來連繫彼此的關係,父資料表(Parent Entity)的主鍵(Primary Key)會放在另一個資料表,當做屬性以建立彼此的關聯,而這個屬性就是外來鍵。
比如,學生跟老師之間是教學的關聯,學生資料表會有個屬性叫指導老師(FK),而這個值就是對應到老師資料表的老師代號(PK),學生的指導老師就是外來鍵。
代理鍵
在关系型数据库设计中,代理鍵是在當資料表中的候選鍵都不適合當主鍵時,例如資料太長,或是意義層面太多,就會用一個屬性來當代理主鍵,此主鍵可能是用流水號,來代替可辨識唯一值的主鍵。
超键
超键(英文: Superkey),有的文献称“超码”,是在数据库关系模式设计中能够唯一标示多元組的属性集。
包含所有屬性的集叫做明顯超鍵。
候选键
在关系模型中,候选键或候选码是某个关系变量的一组属性所组成的集合,它需要同时满足下列两个条件:
满足第一个条件的属性集合称为超键,因此我们也可以把候选键定义为“最小超键”,也就是不含有多余属性的超键。
候选键的重要性是它们能够在关系中唯一标识出不同的元组,因此超键也是在设计数据库模式时需要指定的最重要的约束之一。由于在关系模型中,每个关系都是一个集合(没有重复的元素),所以每个关系都至少有一个候选键(因为所有属性组合必然是个超键)。但是在某些关系型数据库中表也能代表多重集,所以在每个关系中都显式地定义至少一个候选键是一条很重要的设计原则。数据库管理系统通常都需要将每个关系中的某个候选键定义为主键,亦即这个候选键是区分不同元组时首选的识别方式,例如外键通常就是引用主键而非其他候选键。