Natural Key ve Surrogate Key Nedir?

Bir tablodaki Primary Key olacak alanı seçmek database performansı için gerçekten önemlidir. Primary Key; her tabloda en fazla 1 adet bulunur, null değer alamaz, unique (tekil) değerler alır, verileri değiştirilemez. Primary key içerdiği verilere göre Natural veya Surrogate key olur.

Natural Key

Tablo ile mantıksal olarak ilişkilidir.İçerdiği veri, tablonun diğer sütunlarındaki veriler ile ilişkilidir. Tekil değerler içerir. Natural key, dış dünyadaki gerçek verileri temsil eder. Örneğin; TC kimlik numarası, bir kitabın ISBN numarası, bir ürünün ismi gibi...

Surrogate Key
Surrogate key içeren veriler tablo için mantıklı herhangi bir anlama sahip değildirler. Surrogate key'ler, veritabanı yönetim sistemleri tarafından üretilirler. (Oracle, sequence'leri kullanır; Sql server, identity column özelliğini kullanır; MySql auto_increment özelliğini kullanır.) Genel olarak kayıt eklenmeden önce üretilirler ve çoğu zaman numeric tiptedirler. Tekil değerler içerir.

Natural Key vs. Surrogate Key Performans Testi


Natural Keys

 

Surrogate Keys


 
Test Sorguları











Sonuç:
Surrogate Key'e sahip olan tablolardan sql sorgularının sonuçları daha hızlı döndü. Çünkü, primary index'leri küçük boyutludur.



Yorumlar

Bu blogdaki popüler yayınlar

PL/SQL'de DEĞİŞKEN TANIMLAMA, EKRANA YAZI YAZDIRMA ve GÜNCELLEME

SQL Server Analysis Services 2012’de Multidimensional Model ve Tabular Model