Tasarım Kodlama

Veritabanında Primary Key, Foreign Key, Unique Key Ne Demektir?

Bu dersimizde veritabanı tasarımında kullanılan anahtarlar (keyler) hangileridir ve ne amaçla kullanılır? sorusunun cevabını vereceğim.

Primary Key (PK-Birincil Anahtar)


Primary Key (birincil anahtar), bir veri tablosunda yer alan her satır için bir vekil veya tanımlayıcı (identify) görevi görür, kısıtlamadır (constraint) ve eşsizdir.

Satırlara ait değerlerin karışmaması adına bu alana ait bilginin tekrarlanmaması gerekir. Birincil anahtarın temel işlevi, verilerin hangi satıra dizileceğine veya hangi satırda düzenleneceğine karar vermesidir.

Çoğunlukla tek bir alan (id, user_id, e_mail, username, national_identification_number vb.) olarak kullanılsa da birden fazla alanın birleşimiyle oluşturulabilir.


Sayılar genelde birincil anahtar olarak seçilir ancak bu bir zorunluluk değildir.

Birincil anahtar değeri boş geçilemez ve Null değeri alamaz. İlişkisel veri tabanlarında (Relational Database Management System) mutlaka birincil anahtar olmalıdır.


• Foreign Key (FK-Yabancı Anahtar)


Foreign Key (yabancı anahtar) ikincil anahtar olarak da ifade edilmektedir. Bir veri tablosuna girilebilecek değerleri başka bir veri tablosundaki alanlarla ilişkilendirmeye yarar.

Başka bir tablonun birincil anahtarının bir diğer tablo içinde yer almasıdır. Çoğunlukla bir ana tablo (parent) ile alt tablonun (child) ilişkilendirilmesinde kullanılır.

Bu sayede olası veri tekrarlarının önüne geçilebilmekte ve ilerleyen zamanda söz konusu olabilecek güncellemelerde ilgili verilerin her yerde güncellenmesi sağlanabilmektedir.


• Unique Key (UQ-Tekil veya Benzersiz Anahtar)

Unique Key (tekil anahtar), yer aldığı tablo içinde bir değeri sadece bir kere alır. İlgili değerin tekrar atanmasına izin verilmez. Bu anahtarın işlevi birincil anahtar ile benzerlik taşısa da ikisi arasındaki en önemli farklılık, Unique Key’in Null değeri alabilmesidir.
PK ile UQ arasındaki farklar şöyle sıralanabilir:

  • Her birincil anahtar benzersiz iken her benzersiz anahtar birincil değildir.
  • Bir tablo içinde birden fazla alan tek birincil anahtar ile tanımlanabilir ancak birincil anahtar yapısı her tabloda sadece bir tane olabilir. Benzersiz anahtarda ise böyle bir sınırlama yoktur.
  • Birincil anahtarda Null kullanımına izin verilmez ancak benzersiz anahtarlarda Null kullanımına izin verilir.
  • Birincil anahtar ile veri tablosu üzerinde bir Index tanımı oluşturulur ve her kaydın benzersiz bir tanımı yapılır. Benzersiz anahtar kullanımında ise değerlerin benzersiz olup olmadığına bakılır.

Yorum yap