Teradata - Birincil Dizin
Birincil dizin, verilerin Teradata'da nerede bulunduğunu belirtmek için kullanılır. Hangi AMP'nin veri satırını alacağını belirtmek için kullanılır. Teradata'daki her tablonun tanımlanmış bir birincil dizine sahip olması gerekir. Birincil dizin tanımlanmamışsa, Teradata otomatik olarak birincil dizini atar. Birincil dizin, verilere erişmenin en hızlı yolunu sağlar. Bir birincil maksimum 64 sütuna sahip olabilir.
Bir tablo oluşturulurken birincil dizin tanımlanır. 2 tür Birincil Dizin vardır.
- Benzersiz Birincil İndeks (UPI)
- Benzersiz Olmayan Birincil Endeks (NUPI)
Benzersiz Birincil İndeks (UPI)
Tablo UPI'ye sahip olarak tanımlanmışsa, UPI olarak kabul edilen sütunun herhangi bir yinelenen değeri olmamalıdır. Yinelenen değerler girilirse reddedilecektir.
Benzersiz Birincil Dizin Oluşturun
Aşağıdaki örnek, EmployeeNo sütununu Benzersiz Birincil Dizin olarak içeren Maaş tablosunu oluşturur.
CREATE SET TABLE Salary (
EmployeeNo INTEGER,
Gross INTEGER,
Deduction INTEGER,
NetPay INTEGER
)
UNIQUE PRIMARY INDEX(EmployeeNo);
Benzersiz Olmayan Birincil Endeks (NUPI)
Tablonun NUPI'ye sahip olduğu tanımlanmışsa, UPI olarak kabul edilen sütun yinelenen değerleri kabul edebilir.
Benzersiz Olmayan Birincil Dizin Oluşturun
Aşağıdaki örnek, Benzersiz Olmayan Birincil Dizin olarak EmployeeNo sütunuyla çalışan hesapları tablosunu oluşturur. EmployeeNo, bir çalışanın tabloda birden fazla hesabı olabileceğinden, Benzersiz Olmayan Birincil Dizin olarak tanımlanır; biri maaş hesabı için diğeri geri ödeme hesabı için.
CREATE SET TABLE Employee _Accounts (
EmployeeNo INTEGER,
employee_bank_account_type BYTEINT.
employee_bank_account_number INTEGER,
employee_bank_name VARCHAR(30),
employee_bank_city VARCHAR(30)
)
PRIMARY INDEX(EmployeeNo);