Birincil Anahtar ile Yabancı Anahtar Arasındaki Fark

Birincil Anahtar ve Yabancı Anahtar Arasındaki Temel Farklılıklar

  • Birincil anahtar kısıtlaması, ilişkisel veritabanı yönetim sisteminin tablosundaki her satırı benzersiz şekilde tanımlayan bir sütundur, yabancı anahtar ise iki tablo arasında ilişki oluşturan bir sütundur.
  • Birincil anahtar hiçbir zaman boş değerleri kabul etmez, yabancı anahtar ise birden fazla boş değeri kabul edebilir.
  • Bir tabloda yalnızca tek bir birincil anahtarınız olabilirken, bir tabloda birden fazla yabancı anahtarınız olabilir.
  • Birincil anahtarın değeri ana tablodan kaldırılamazken, yabancı anahtarın değeri alt tablodan kaldırılabilir.
  • Bir birincil anahtar için hiçbir iki satır aynı değere sahip olamaz; Öte yandan yabancı bir anahtar yinelenen değerler içerebilir.
  • Yabancı anahtar tablosuna herhangi bir değer eklenirken değerlerin tablo sütununa eklenmesinde herhangi bir sınırlama yoktur; değerin birincil anahtarın bir sütununda mevcut olduğundan emin olun.
Birincil Anahtar ile Yabancı Anahtar Arasındaki Fark
Birincil Anahtar ile Yabancı Anahtar Arasındaki Fark

Burada birincil anahtar ile yabancı anahtar arasındaki farkı analiz ettim ve bunların artılarını ve eksilerini kapsamlı bir şekilde değerlendireceğim.

Birincil Anahtar Nedir?

Birincil anahtar kısıtlaması, ilişkisel veritabanı yönetim sistemi tablosundaki her satırı benzersiz şekilde tanımlayan bir sütun veya sütun grubudur. Yinelenen bir değer olamaz, yani aynı değer tabloda birden fazla kez görünmemelidir.

Bir tablonun birden fazla birincil anahtarı olamaz. birincil anahtar sütun veya tablo düzeyinde tanımlanabilir. Bileşik birincil anahtar oluşturursanız bunun tablo düzeyinde tanımlanması gerekir.

Birincil Anahtar Örneği

Sözdizimi:

Aşağıda Birincil Anahtarın sözdizimi verilmiştir:

CREATE TABLE <Table-Name>
(
Column1 datatype,
Column2 datatype,  PRIMARY KEY (Column-Name)
.
);    

Burada,

  • Table_Name, oluşturmanız gereken tablonun adıdır.
  • Column_Name, birincil anahtara sahip sütunun adıdır.

Örnek:

StudID Rulo Hayır İsim Soyisim E-posta
1 11 Tom Ücret abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Yukarıdaki örnekte, StudID, Roll No., First Name, Last Name ve Email gibi sütunlara sahip bir öğrenci tablosu oluşturduk. StudID, tablodaki diğer satırları benzersiz bir şekilde tanımlayabildiği için birincil anahtar olarak seçildi.

Neden Birincil Anahtar kullanılmalı?

Veritabanı sistemleriyle uğraştığım yıllar boyunca, birincil anahtar kullanmanın şu dezavantajlarını ve avantajlarını fark ettim:

  • Birincil anahtarın temel amacı veritabanı tablosundaki her bir kaydı tanımlamaktır.
  • Birinin boş değer girmesine izin vermediğinizde birincil anahtarı kullanabilirsiniz.
  • Kayıtları silmeniz veya güncellemeniz durumunda, veri bütünlüğünün sağlanması amacıyla belirttiğiniz işlem gerçekleştirilecektir.
  • Üst tablo için silme veya güncelleme işlemini reddetmek için kısıtlama işlemini gerçekleştirin.
  • Bir DBMS tablosunu fiziksel olarak düzenlediğinizde veriler kümelenmiş dizinler dizisi halinde düzenlenir.

Yabancı Anahtar Nedir?

Yabancı anahtar, iki tablo arasında ilişki oluşturan bir sütundur. Yabancı anahtarın amacı veri bütünlüğünü korumak ve bir varlığın iki farklı örneği arasında gezinmeye izin vermektir. Başka bir tablonun birincil anahtarına referans verdiği için iki tablo arasında çapraz referans görevi görür. Veritabanındaki her ilişki yabancı bir anahtarla desteklenmelidir.

Yabancı Anahtar Örneği

Sözdizimi:

Aşağıda Yabancı Anahtarın sözdizimi verilmiştir:

CREATE TABLE <Table Name>( 
column1    datatype,
column2    datatype,  
constraint (name of constraint) 
FOREIGN KEY [column1, column2...] 
REFERENCES [primary key table name] (List of primary key table column) ...);

Burada,

  • Tablo Adı parametresi oluşturacağınız tablonun adını belirtir.
  • Sütun1, sütun2… parametreleri tabloya eklenmesi gereken sütunları gösterir.
  • Kısıtlama, oluşturduğunuz kısıtlamanın adını belirtir.
  • Referanslar birincil anahtara sahip bir tabloyu gösterir.

Örnek:

DepartmanKodu DepartmanAdı
001 Bilim
002 İngilizce
005 Bilgisayar
Öğretmen Kimliği Fname İsim
B002 David Warner
B017 Sara Joseph
B009 mikrofon Brunton

Yukarıdaki örnekte iki tablomuz var: bir öğretmen ve okuldaki bir bölüm. Ancak hangi aramanın hangi departmanda çalıştığını görmenin bir yolu yoktur.

Bu tabloda öğretmen ismine Deptcode'daki yabancı anahtarı ekleyerek iki tablo arasında ilişki oluşturabiliriz.

Öğretmen Kimliği DepartmanKodu Fname İsim
B002 002 David Warner
B017 002 Sara Joseph
B009 001 mikrofon Brunton

Bu kavram aynı zamanda referans bütünlüğü olarak da bilinir.

Neden Yabancı Anahtar kullanılmalı?

Gördüğüm kadarıyla yabancı anahtarları uygulamanın önemli nedenleri şunlardır:

  • Yabancı anahtarlar, varlıkları üst tablodan bir birincil anahtar kullanarak geçirmenize yardımcı olur.
  • A yabancı anahtar iki veya daha fazla tabloyu birbirine bağlamanızı sağlar.
  • Veritabanı verilerinizi tutarlı hale getirir.
  • Yabancı anahtar, bir sütunu veya sütun kombinasyonunu ana tablodaki birincil anahtarla eşleştirmek için kullanılabilir.
  • SQL yabancı anahtar kısıtlaması, veri üst öğesinin referans bütünlüğünün alt tablodaki değerlerle eşleştiğinden emin olmak için kullanılır.

Birincil Anahtar ve Yabancı Anahtar Arasındaki Fark

Birincil anahtar ile yabancı anahtar arasındaki önemli farkı bizzat deneyimlediğim gibi paylaşayım:

Birincil Anahtar ve Yabancı Anahtar
Birincil Anahtar ve Yabancı Anahtar
Karşılaştırma Temeli Birincil anahtar Yabancı anahtar
Tanım Birincil anahtar kısıtlaması, tablodaki her satırı benzersiz şekilde tanımlayan bir sütun veya sütun grubudur. ilişkisel veritabanı yönetim sistemi. Yabancı anahtar, iki tablo arasında ilişki oluşturan bir sütundur.
Basic Tablodaki bir kaydı benzersiz şekilde tanımlamanıza yardımcı olur. Başka bir tablonun birincil anahtarı olan tablodaki bir alandır.
NULL Birincil Anahtar hiçbir zaman boş değerleri kabul etmez. Bir yabancı anahtar birden fazla boş değer kabul edebilir.
Endeksleme Birincil anahtar kümelenmiş bir dizindir ve DBMS tablosundaki veriler fiziksel olarak kümelenmiş dizinin sırasına göre düzenlenir. Yabancı bir anahtar, kümelenmiş veya kümelenmemiş bir indeksi otomatik olarak oluşturamaz.
saymak Bir tabloda tek bir Birincil anahtara sahip olabilirsiniz. Bir tabloda birden fazla yabancı anahtarınız olabilir.
silme Birincil anahtarın değeri üst tablodan kaldırılamaz. Yabancı anahtarın değeri alt tablodan kaldırılabilir.
geçici tablo Birincil anahtarı örtülü olarak geçici tablolarda tanımlayabilirsiniz. Yerel veya genel geçici tablolarda yabancı anahtarları tanımlayamazsınız.
ilişki Birincil anahtar kümelenmiş bir dizindir. Varsayılan olarak kümelenmiş bir dizin değildir.
kopya Bir birincil anahtar için hiçbir iki satır aynı değerlere sahip olamaz. Yabancı anahtar yinelenen değerler içerebilir.
sokma Değerlerin tablo sütununa eklenmesinde herhangi bir sınırlama yoktur. Yabancı anahtar tablosuna herhangi bir değer girerken, değerin birincil anahtarın bir sütununda mevcut olduğundan emin olun.

Birincil Anahtar ile Yabancı Anahtar Arasında Nasıl Seçim Yapılır

Gördüğümüz kadarıyla, birincil anahtarlar tablo girişlerini benzersiz bir şekilde tanımlar ve yabancı anahtarlar bu girişleri tablolar arasında birbirine bağlar; her ikisi de veri bütünlüğünü korumak ve verimli veri alımını kolaylaştırmak için kritik öneme sahiptir.