logo

DBMS'de Yabancı Anahtar

Yabancı anahtar, süper anahtardan, aday anahtardan veya birincil anahtardan farklıdır çünkü yabancı anahtar, iki tabloyu birbirine bağlamak veya ikisi arasında bağlantı oluşturmak için kullanılan anahtardır.

Burada bu bölümde yabancı anahtarı, kullanımını tartışacağız ve yabancı anahtarın çalışmasını ve kullanımını anlamamıza yardımcı olacak bazı örneklere bakacağız. Ayrıca bunun bir veritabanı üzerinde pratik uygulamasını da göreceğiz, yani bir tablo üzerinde yabancı anahtar oluşturup sileceğiz.

Yabancı Anahtar Nedir?

Yabancı anahtar, iki tabloyu birincil anahtar aracılığıyla birbirine bağlamak için kullanılan anahtardır. Bu, bir tablonun sütunlarının diğer tablonun birincil anahtar özelliğine işaret ettiği anlamına gelir. Bu ayrıca, herhangi bir özelliğin birincil anahtar özelliği olarak ayarlanması durumunda başka bir tabloda yabancı anahtar özelliği olarak çalışacağı anlamına gelir. Ancak yabancı anahtarın birincil anahtarla hiçbir ilgisi olmadığını bilmek gerekir.

Yabancı Anahtar Kullanımı

Yabancı anahtarın kullanımı, iki tablonun niteliklerini bir birincil anahtar niteliğinin yardımıyla birbirine bağlamaktır. Böylece iki ilişki arasındaki ilişkiyi oluşturmak ve sürdürmek için kullanılır.

Yabancı Anahtar Örneği

Yabancı anahtarın çalışmasını anlamak için bir örnek tartışalım.

rom nedir

İki tabloyu düşünün Öğrenci Ve Departman aşağıdaki tablo yapısında gösterildiği gibi ilgili niteliklerine sahiptir:

DBMS'de Yabancı Anahtar
DBMS'de Yabancı Anahtar

Tablolarda görebileceğiniz gibi bir özellik ortaktır; Stud_Id , ancak her iki tablo için de farklı temel kısıtlamalara sahiptir. Öğrenci tablosunda Stud_Id alanı bir birincil anahtar çünkü Öğrenci tablosunun diğer tüm alanlarını benzersiz bir şekilde tanımlıyor. Öte yandan Stud_Id bir yabancı anahtar Departman tablosu için bir özniteliktir çünkü Öğrenci tablosu için birincil anahtar öznitelik görevi görmektedir. Bu, Stud_Id özelliği nedeniyle hem Öğrenci hem de Bölüm tablosunun birbirine bağlı olduğu anlamına gelir.

Aşağıdaki şekilde iki tablo arasındaki ilişkinin aşağıdaki yapısını görebilirsiniz.

dbms'de asit özellikleri
DBMS'de Yabancı Anahtar

Not: DBMS'deki Bilgi Bütünlüğü, yabancı anahtar kavramından geliştirilmiştir. Birincil anahtarın tek başına var olan bir anahtar olduğu ve yabancı anahtarın her zaman başka bir tablodaki birincil anahtara referans olduğu açıktır; burada birincil anahtarı içeren tablo, başvurulan tablo veya diğer tablonun ana tablosu olarak bilinir. yabancı anahtara sahip.

Yabancı Anahtar kısıtlaması oluşturma

CREATE TABLE'da

Bir tabloda yabancı anahtar oluşturulmasını öğrenmemizi sağlayacak söz dizimi aşağıdadır:

 CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int, FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id) ); 

Yani bu şekilde MYSQL veritabanındaki bir tabloya yabancı anahtar belirleyebiliriz.

SQL veya Oracle sunucusunda bir tablo için yabancı anahtar oluşturulması durumunda aşağıdaki sözdizimi çalışacaktır:

 CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int FOREIGN KEY REFERENCES Student (Stud_Id) ); 

ALTER TABLE'da

ALTER TABLE'da yabancı anahtar kısıtlaması oluşturmaya yönelik sözdizimi aşağıdadır:

Java dizesinden tam sayıya dönüştürme
 ALTER TABLE Department ADD FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id); 

Yabancı Anahtarı Bırakma

Yabancı anahtarı silmek için kullanılabilecek aşağıda açıklanan sözdizimi vardır:

 ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment; 

Yani bu şekilde MYSQL veritabanındaki ALTER TABLE'ı kullanarak yabancı anahtar bırakabiliriz.

Hatırlanması gereken nokta

Yabancı anahtarı bıraktığınızda, yabancı anahtarla bağlanan tabloların bütünlüğüne dikkat etmek gerekir. Bir tabloda değişiklik yapmanız ve her iki tablonun bütünlüğünü bozmanız durumunda, iki tablo arasındaki bağlantının hatalı olmasından dolayı bazı hatalar görüntülenebilir.

Referans Eylemleri

Yabancı anahtar tablosu sahibinin gerçekleştirdiği eylemlerle bağlantılı bazı eylemler vardır:

1) Kademeli

Ana tablodaki (yani birincil anahtarı tutan) satırları sildiğimizde, diğer tablodaki (yani yabancı anahtarı tutan) aynı sütunlar da silinir. Bu nedenle eylem şu şekilde bilinir: Çağlayan .

özel bir karakterdir

2) BOŞ olarak ayarlayın

Bu tür referans eylemi, her iki tablonun referans bütünlüğünü korur. Ana/başvurulan tablodaki başvurulan bir satırı değiştirdiğimizde/sildiğimizde, alt tabloda (yabancı anahtara sahip tablo), bu tür başvurulan satırın değeri NULL olarak ayarlanır. Gerçekleştirilen böyle bir referans eylemi şu şekilde bilinir: NULL'u ayarla .

3) VARSAYILANI ayarlayın

Böyle bir eylem, ana tablonun başvurulan satırındaki değerler güncellendiğinde veya satır silindiğinde, alt tablodaki değerler sütunun varsayılan değerlerine ayarlandığında gerçekleşir.

4) Kısıtla

java int'yi karıştırıyor

Ana tablodaki başvurulan satırın değerinin, alt tablodaki yabancı anahtar tarafından belirtilmediği sürece değiştirilemeyeceği veya silinemeyeceği kısıtlama kısıtlamasıdır. Dolayısıyla bu, yabancı anahtarın normal bir referans eylemidir.

5) Eylem Yok

Bu aynı zamanda yabancı anahtarın kısıtlama kısıtlamasıdır ancak yalnızca ana tablonun başvurulan satırı değiştirilmeye veya silinmeye çalışıldıktan sonra uygulanır.

6) Tetikleyiciler

Tüm bunlar ve diğer referans eylemler, temel olarak, yabancı anahtarın eylemlerinin kullanıcı tanımlı tetikleyicilere çok benzer veya neredeyse benzer olduğu tetikleyiciler olarak uygulanır. Ancak bazı durumlarda, tetikleyicinin düzgün şekilde yürütülmesini sağlamak için sıralı referans eylemlerinin yerini eşdeğer kullanıcı tanımlı tetikleyiciler alır.