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