一、前言
本文将讲述有关码的概念,这对于后续的范式学习是非常重要的
二、概述
- 设K为关系模式R<U,F>中的属性或属性组合
- 若U完全函数依赖于K,则K称为R的一个候选码(Candidate Key)
- 如果U部分函数依赖于K,即K → U,则K称为超码(Surpkey)
- 候选码是最小的超码,即K的任意一个真子集都不是候选码
- 若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)
- 候选码也简称为码
三、主属性和非主属性
1.定义
- 包含在任何一个或一组候选码的属性 ,称为主属性(Prime attribute)
- 不包含在任何候选码中的属性称为非主属性(Nonprime attribute)或非码属性 (Non-key attribute)
2.实例
S(Sno, Sdept, Sage)中:Sno是码,Sno是主属性, Sdept, Sage是非主属性
SC(Sno, Cno, Grade)中:(Sno, Cno)是码,Sno, Cno是主属性, Grade是非主属性
四、全码
1.定义
- 整个属性组是码,称为全码(All-key)
2.实例
关系模式 R(P,W,A);P:演奏者 W:作品 A:听众
语义:一个演奏者可以演奏多个作品,某一作品可被多个演奏者演奏,听众可以欣赏不同演奏者的不同作品
由语义可以知道:
关系模式R(P,W,A)的码为(P,W,A),即全码,All-Key
五、外码
1.定义
关系模式 R<U, F>,U中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreignkey)也称外码
可以参照下面这篇文章中的定义
关系模型知识点总结(1)—— 关系数据结构
2.实例
SC(Sno,Cno,Grade)中,Sno不是码,但Sno是关系模式 S(Sno,Sdept,Sage)的码,则Sno是关系模式SC的外部码,即Sno是表SC外码
六、结语
接下来将重点讲述有关范式的知识点