主键与主索引

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值