TERADATA的主键与索引

在传统的关系型数据库中,像Oracle、SQL Sever、DB2等,建表时一定要设定明确的主键约束,以唯一地区分记录。

TERADATA虽也是关系型数据库,但因专为数据仓库而生,仓库汇集多方数据,数据质量很难保证,故对主键的概念和限制也大大地淡化了,取而代之的是索引。具体体现在:

    1) 有主键概念,存在于仓库E-R图中。清晰的主键和外键,便于理解和关联查找;

    2) 物理化时,一般没有主键,也可以没有索引,表中记录不要求唯一;

建表时,通常使用的允许重复数据表(MultiSet Table)加建主索引(PI)是不对表中的记录作唯一性检查和限制的,以保证高效率和较高的问题数据容忍度。一定要保证表中记录的唯一性时,可用唯一主索引来控制(UPI),也可以加主键约束来实现。

Teradata的常用索引是PI和UPI两种,另有次级索引SI和USI,这两种使用要别注意,使用不好会严重影响效率。

当然,主键的概念本就只在于逻辑模型中,一般的关系型数据库在物理化时都要求明确的主键约束,而Teradata则不需要了。

猜你喜欢

转载自itsunmoon.iteye.com/blog/1758125