主键与主索引

来源:互联网 发布:大淘客cms要多久能过 编辑:程序博客网 时间:2024/05/19 23:15

1、  主键

在一个实体中,存在一些能唯一标识该实体中各个记录的属性(或属性组合) ,这些属性被称作键(Key)。真正被挑选出 来唯一区分各记录的属性称为主键(Primary Key,缩写为PK) ,其它未被选中的键称为候选键(Alternate Key ,缩写为AK) 。例如在雇员表中,一般可以把雇员编号选作主键。

一个实体中的 哪些属性可以是主键,这与具体的系统和业务规则有关。举例来说,如果一个公司内没有重名的雇员,则将其姓名当作主键也未尝不可。一般来讲,主键属性必须满足以下三个条件:

(1)必须能唯一区分各数据记录,即不能有重复值

(2)不可以是空值

(3)其值很少发生变化

前面两个条件 很容易理解,对第三个条件可以举个例子来说明。如在雇员表中,使用雇员编号作为主键。假设某个雇员进公司时编号为1000,几年后他升为主管,将其编号改为2000。这样就可能产生这样的问题:当我们寻找编号1000的雇员信息时,只能发现他以前的记录,而找不到他的当前情况;同样,寻找编号2000的雇员时,只有现在的信息而没有以前的记录。因此,最好的办法是不要改动雇员编号,或者选用其他候选键作为主键。

2、  索引

在Teradata数据库 管理系统中,它使用一个所谓的主索引进行数据的分配而主索引是没有子表的,不占用额外的存储空间,也不需要专门的维护。因此,Teradata中的索引有主次之分,只有次索引才有相应的子表。有关Teradata中主次索引的用法和原理在第四和第五章中会有详细的讨论,这里只介绍一下它们的种类和定义。

主键与外键是数据库逻辑模型中的定义,而索引则存在于物理模型中。Teradata中又把索引分为主索引和次索引,主索引不一定就对应主 键。选择主索引的基本原则是:尽量选择那些访问频率高的属性作为主索引。举例来说,在雇员表中,如果经常根据姓名来查找数据,则应选择姓名而不是雇员编号作为主索引。

 

 

 

 

3、  主索引与主键的区别

从表中看到,主索引的取值可以是唯一的 ,也可以是不唯一的 。唯一的主索引简称为UPI(Unique Primary Index),不唯一的主索引简称为NUPI(Non-UniquePrimary Index)。同样,次索引也有唯一与不唯一之分,前者简称为USI(UniqueSecondary Index),后者简称为NUSI(Non-Unique Secondary Index)。

0 0