İ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.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)