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 */
);