Sobes.tech
Middle

Referans bağlantılarının bütünlüğü nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

İlişkisel Veritabanında Referans Bütünlüğü, tablolar arasındaki referansların geçerli kalmasını sağlayan bir veri özelliğidir. Aşağıdaki sorunları önler:

  • "ebeveyn" tablosundan bir satır silindiğinde, "çocuk" tablosundaki referanslar.
  • "ebeveyn" tablosundaki birincil anahtar değiştirildiğinde, "çocuk" tablosundaki referanslar uygun şekilde güncellenmeden.
  • "çocuk" tablosuna, "ebeveyn" tablosunda olmayan birincil anahtara referans içeren bir satır eklenmesi.

Dış anahtarlar (FOREIGN KEY) kullanılarak uygulanır.

Dış anahtarlar için kısıtlamalara örnekler:

  • ON DELETE CASCADE: Ebeveyn tablosundaki bir satır silindiğinde, karşılık gelen satırlar da çocuk tablosundan silinir.
  • ON DELETE SET NULL: Ebeveyn tablosundaki bir satır silindiğinde, çocuk tablosundaki ilgili dış anahtar NULL olarak ayarlanır.
  • ON DELETE RESTRICT: Ebeveyn tablosundaki bir satır silinmesi engellenir, eğer çocuk tablosunda ona referanslar varsa.
  • ON UPDATE CASCADE: Ebeveyn tablosundaki birincil anahtar güncellendiğinde, çocuk tablosundaki ilgili dış anahtarlar da güncellenir.
-- "users" tablosu örneği (ebeveyn)
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(255) NOT NULL
);

-- "orders" tablosu örneği (çocuk) ve dış anahtar ile
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    order_date DATE,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
        ON DELETE CASCADE /* Kısıtlama örneği */
        ON UPDATE CASCADE /* Kısıtlama örneği */
);