İlişkisel Veritabanında Yabancıl Anahtar ve Hareket Değerleri

iliskisel-veritabaninda-yabancil-anahtar-ve-hareket-degerleri (büyük resim için tıklayın)

Yabancıl Anahtar (Foreign Key)

İki veya daha fazla tabloyu birbiri ile ilişkilendirmeyi sağlar. Fakülte ve Bölüm arasındaki bağlantı(lar) düşünülsün. Hangi fakültede hangi bölümün olduğu bilgisine veritabanındaki fakülte ve bölüm tablolarının ilişkilendirilmesi ile kolayca ulaşabiliriz. Fakülte tablosunda fakulteID ve fakulteAd alanları olsun, bölüm tablosunda da bolumID, fakulteID ve bolumAd alanları olsun. Fakülte tablosundaki fakulteID ile bolum tablosundaki fakulteID alanları arasında gerçekleştirilecek ilişki ile tutarlılık sağlanmış olur. MySQL için tabloların depolama metodu InnoDB olmak zorundadır ve ilişkili alanlar mutlaka index olarak tanımlanmalıdır. 

Yabancıl Anahtar (Foreign Key)

  • Tablolardaki ilişkili alanları yönetmemizi sağlar.
  • Ana tablo ile ona bağlı olan alt tabloyu ilişkilendirir.
  • Ana tabloda bir kayıt silindiğinde ya da güncellendiğinde alt tablodaki ilişkili kaydın da ya silinmesini yada güncellenmesini sağlar.

Yabancıl Anahtar (Foreign Key) uygulamaları için 2 ayrı hareket değeri bulunur;

  • ON DELETE : Ana tabloda kayıt silindiğinde ilişkili olan alt tablodaki kayıt da silinir.
  • ON UPDATE : Ana tabloda ilişkili anahtar değiştiğinde ilişkili olan alt tablodaki alanın anahtarı da değişir.

Bunlara ek olarak CASCADE, SET NULL, RESTRICT ve NO ACTION adında 4 parametreden birisi kullanılabilir.

  • CASCADE : Silme veya güncelleme işlemlerini tamamen onaylar.
  • SET NULL : Ana tabloda kayıt silindiğinde ilişkili tablodaki kayıtların yerine NULL değeri atar. Burada dikkat edilecek şey alt tablodaki ilgili alanın NOT NULL yerine NULL ile tanımlanmış olmasıdır. Aksi taktirde işlem gerçekleşmez.
  • RESTRICT ve NO ACTION aynı anlama gelir ve ana tabloda kayıt silindiğinde ilişkili olan tabloda kayıt varsa silinmesine izin vermez.

iam

Ömürcan Serdar, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Beğeni


Yıllara Göre Gönderiler








mysql Kategori

SQLSTATE[HY000]: General error: 1442 Error (used by statement which invoked this stored function/trigger)

Windows Komut Satırından MySQL Erişimi

İki Gün Arasındaki Zaman Farkı (TIMESTAMPDIFF)