Birincil Anahtar ve Yabancı Anahtar: Fark Nedir?

İçindekiler:

Anonim

Birincil anahtar ve yabancı anahtar arasındaki farkı öğrenmeden önce öğrenelim:

Anahtarlar nedir?

Anahtarlar, bir ilişkideki (tablo) bir satırı (tuple) belirlemenize yardımcı olan niteliktir. İki tablo arasındaki ilişkiyi bulmanızı sağlarlar. Anahtarlar, bir tablodaki bir satırı, o tablodaki bir veya daha fazla sütunun birleşimiyle benzersiz şekilde tanımlamanıza yardımcı olur. Veritabanı anahtarı, tablodan benzersiz bir kayıt veya satır bulmak için de yararlıdır.

Veritabanı İlişkisi nedir?

Veritabanı ilişkisi, birleştirme deyimleri kullanılarak oluşturulan bir veya daha fazla tablo arasındaki ilişkilendirmelerdir. Veritabanından verimli bir şekilde veri almak için kullanılır. Öncelikle üç tür ilişki vardır 1) Bire Bir, 2) Bire çok, 3) Çoktan çoğa.

Birincil Anahtar nedir?

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

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

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 başvurduğu için iki tablo arasında çapraz referans görevi görür. Veritabanındaki her ilişki bir yabancı anahtarla desteklenmelidir.

ANAHTAR FARKLAR:

  • 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 bir ilişki oluşturan bir sütundur.
  • Birincil Anahtar hiçbir zaman boş değerleri kabul etmezken yabancı anahtar birden çok boş değeri kabul edebilir.
  • Tabloda birden çok yabancı anahtarınız varken, bir tabloda yalnızca tek bir birincil anahtarınız olabilir.
  • Birincil anahtarın değeri üst tablodan kaldırılamazken yabancı anahtar değerinin değeri alt tablodan kaldırılabilir.
  • Bir birincil anahtar için iki satır aynı değere sahip olamaz. Öte yandan, bir yabancı anahtar yinelenen değerler içerebilir.
  • Yabancı anahtar tablosuna herhangi bir değer girerken değerleri tablo sütununa eklemede herhangi bir sınırlama yoktur, değerin birincil anahtarın bir sütununda bulunduğundan emin olun.

Neden Birincil Anahtar kullanılıyor?

Birincil anahtar kullanmanın dezavantajları / avantajları şunlardır:

  • Birincil anahtarın temel amacı, veritabanı tablosundaki her bir kaydı tanımlamaktır.
  • Birinin null değerler girmesine izin vermediğinizde birincil anahtar kullanabilirsiniz.
  • Kayıtları silerseniz veya güncellerseniz, veri bütünlüğünü sağlamak için belirttiğiniz eylem gerçekleştirilecektir.
  • Üst tablo için silme veya güncelleme işlemini reddetmek için kısıtlama işlemi gerçekleştirin.
  • DBMS tablosunu fiziksel olarak düzenlediğinizde, veriler bir dizi kümelenmiş dizinde düzenlenir.

Neden Yabancı Anahtar kullanmalı?

Yabancı anahtar kullanmanın önemli nedenleri şunlardır:

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

Birincil Anahtar Örneği

Sözdizimi:

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

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

Buraya,

  • Tablo_Adı, oluşturmanız gereken tablonun adıdır.
  • Sütun_Adı, birincil anahtara sahip sütunun adıdır.

Misal:

StudID Hayır İsim Soyadı E-posta adresi
1 11 Tom Fiyat Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
2 12 Nick Wright Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
3 13 Dana Natan Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.

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 şekilde tanımlayabildiği için birincil anahtar olarak seçilir.

Yabancı Anahtar Örneği

Sözdizimi:

Yabancı Anahtar sözdizimi aşağıdadır:

CREATE TABLE 
(column1 datatype,column2 datatype,constraint (name of constraint)FOREIGN KEY [column1, column2… ]REFERENCES [primary key table name] (List of primary key table column)… );

Buraya,

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

Misal:

DeptCode DeptName
001 Bilim
002 İngilizce
005 Bilgisayar
Öğretmen Kimliği Fname Lname
B002 David Warner
B017 Sara Yusuf
B009 Mike Brunton

Yukarıdaki örnekte, bir öğretmen ve bir okulda bir bölüm olmak üzere iki masamız var. Ancak hangi departmanda hangi aramanın işe yaradığını görmenin bir yolu yoktur.

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

Öğretmen Kimliği DeptCode Fname Lname
B002 002 David Warner
B017 002 Sara Yusuf
B009 001 Mike Brunton

Bu kavram aynı zamanda Referans Bütünlüğü olarak da bilinir.

Birincil anahtar ve Yabancı anahtar arasındaki fark

Birincil anahtar ve Yabancı anahtar arasındaki önemli fark şu şekildedir:

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