Yumuşak Silme: Veriyi Silmeden Kaldırmak ve Sonuçları

Yumuşak silme deseninin faydaları, benzersizlik kısıtı sorunu, filtre riski, saklama politikası ve alternatifler. Yumuşak Silme: Veriyi Silmeden Kaldırmak ve…

Yumuşak Silme: Veriyi Silmeden Kaldırmak ve Sonuçları
İçindekiler
  1. Nasıl Çalışır?
  2. Ne Kazandırır?
  3. Gerçek Maliyetler
  4. Filtreyi Unutmamak
  5. Kalıcı Silme Politikası
  6. Ne Zaman Kullanmamalı?
  7. Alternatif Desenler
  8. Sonuç
  9. Sıkça Sorulan Sorular (SSS)
  10. Yumuşak silme neden kullanılır?
  11. Kullanıcı aynı e-posta ile neden kayıt olamıyor?
  12. Filtreyi unutma riskini nasıl kaldırırım?
  13. Veri silme talebini yumuşak silme ile karşılayabilir miyim?

Yumuşak Silme: Veriyi Silmeden Kaldırmak ve Sonuçları

Bir müşteri yanlışlıkla önemli bir kaydı sildi ve geri istiyor. Yedekten dönmek tüm veritabanını eskiye çevirmek demek. Kayıt gerçekten silinmediyse ise tek bir güncelleme yeterli.

Bu yazı, yumuşak silme desenini ve maliyetlerini ele alıyor.

Nasıl Çalışır?

Kayıt tablodan çıkarılmaz, işaretlenir:

  • Bir silinme tarihi sütunu eklenir.
  • Silme işlemi bu sütunu doldurur.
  • Sorgular bu kayıtları dışarıda bırakır.
  • Geri alma tek güncelleme ile yapılır.

Üçüncü madde tüm yaklaşımın zayıf noktasıdır: silinmiş kayıtları dışarıda bırakma sorumluluğu her sorguya düşer — ve bir sorguda unutulursa silinmiş veri kullanıcıya görünür.

Bu unutma, en sık raporlarda ve doğrudan yazılmış sorgularda yaşanır.

Birinci maddede tarih sütunu tercih edilmelidir. Basit bir doğru-yanlış sütunu, ne zaman silindiğini kaybettirir.

Ne Kazandırır?

Kazanım Değeri
Kazara silmeyi geri alma Destek yükünü düşürür
İlişkisel bütünlük korunur Bağlı kayıtlar kırılmaz
Denetim izi Ne silindi, ne zaman
Geçmiş raporlar bozulmaz Eski veriler açıklanabilir

İkinci satır çoğu zaman asıl gerekçedir: bir ürünü gerçekten silmek, o ürünü içeren geçmiş siparişleri kırar — sipariş kaydı var ama hangi ürün olduğu bilinmez hâle gelir.

Yumuşak silme bu bağlantıyı korur; ürün listede görünmez ama geçmiş siparişte adı okunabilir.

Dördüncü satır ise finansal raporlarda kritiktir. Geçen yılın satış raporu, bugün silinmiş bir ürün yüzünden değişmemelidir.

Gerçek Maliyetler

  1. Her sorguya filtre eklenmeli.
  2. Tablo sürekli büyür.
  3. Benzersizlik kısıtları bozulur.
  4. Dizin verimliliği düşer.

Üçüncü madde çok yaşanan ve şaşırtan bir sorundur: bir e-posta adresini benzersiz tutan bir kısıt, o kaydı yumuşak sildiğinizde hâlâ geçerlidir — kullanıcı aynı adresle tekrar kayıt olamaz çünkü eski kayıt tabloda durmaktadır.

Çözüm, benzersizlik kısıtını silinme durumunu da içerecek şekilde tanımlamak veya kısmi dizin kullanmaktır.

İkinci madde ise zamanla performansı etkiler. Silinmiş kayıtlar tabloda birikir ve her sorgu onları da atlamak zorunda kalır.

Dördüncü madde bununla ilgilidir; dizinler silinmiş kayıtları da içerdiği için büyür ve yavaşlar.

Filtreyi Unutmamak

En büyük risk budur ve yapısal olarak çözülmelidir:

  • Çerçeve desteğini kullanın. Otomatik filtre.
  • Görünüm tanımlayın. Filtreli sanal tablo.
  • Kod incelemesinde kontrol edin.

İkinci madde en dayanıklı çözümdür: silinmemiş kayıtları döndüren bir görünüm oluşturup uygulamanın yalnızca o görünümü kullanmasını sağlamak, filtreyi unutma ihtimalini tamamen ortadan kaldırır.

Ham tabloya erişim yalnızca yönetim ve kurtarma işlemlerinde kullanılır.

Birinci madde ise modern çerçevelerde hazır gelir ama bir tuzağı vardır: doğrudan yazılan ham sorgular bu otomatik filtreyi atlar.

Bu nedenle raporlama sorguları ayrıca gözden geçirilmelidir.

Kalıcı Silme Politikası

Yumuşak silme, hiç silmemek anlamına gelmemelidir:

Adım Not
Saklama süresi belirleyin Örneğin 90 gün
Süre sonunda kalıcı silin Zamanlanmış görevle
Arşivlenecekleri ayırın Yasal zorunluluklar
Parça parça silin Kilit oluşturmamak için

Birinci satır uyum açısından zorunludur: bir kullanıcı verilerinin silinmesini talep ettiğinde yumuşak silme yeterli değildir — veri hâlâ sistemde durduğu için talep karşılanmış sayılmaz.

Bu tür talepler için kalıcı silme veya anonimleştirme uygulanmalıdır.

Dördüncü satır ise operasyonel bir uyarıdır. Yüz binlerce kaydı tek işlemde silmek uzun süreli kilit üretir.

Ne Zaman Kullanmamalı?

  • Çok yüksek hacimli günlük tabloları.
  • Geçici veri. Oturum, önbellek.
  • Hassas kişisel veri.
  • Geri alma ihtiyacı olmayan kayıtlar.

Üçüncü madde bir ilke meselesidir: hassas kişisel veri içeren kayıtlarda yumuşak silme, veriyi gereksiz yere sistemde tutmak anlamına gelir ve veri minimizasyonu ilkesine aykırıdır.

Bu tür kayıtlar silindiğinde gerçekten silinmelidir.

Birinci madde ise performans gerekçesidir. Günde milyonlarca satır üreten bir tabloda yumuşak silme, tabloyu yönetilemez hâle getirir.

Dördüncü madde ise gereksiz karmaşıklıktan kaçınmaktır. Her tabloya yumuşak silme eklemek, bakım yükünü boşuna artırır.

Alternatif Desenler

  1. Arşiv tablosuna taşımak.
  2. Durum alanı kullanmak.
  3. Olay kaydı tutmak.

Birinci madde çoğu avantajı korur ve maliyetleri ortadan kaldırır: silinen kaydı ayrı bir arşiv tablosuna taşımak, ana tabloyu temiz ve hızlı tutarken geri alma imkânını da saklar — ve hiçbir sorguya filtre eklemek gerekmez.

Dezavantajı, ilişkisel bağların arşive taşınmamasıdır.

İkinci madde ise iş mantığıyla örtüşen durumlarda daha doğaldır. Bir siparişin "iptal edildi" durumu, silinmiş olmasından daha anlamlıdır.

Üçüncü madde ise en kapsamlı çözümdür ama uygulama karmaşıklığı yüksektir.

Büyüyen tablolar ve arşivleme için yeterli disk kapasitesi gerekir; sanal sunucu kiralama hizmetleri kapsamında disk yükseltmesi ihtiyaca göre yapılabilir.

Sonuç

Yumuşak silmenin asıl değeri geri alma değil, ilişkisel bütünlüktür: bir ürünü gerçekten silmek, o ürünü içeren geçmiş siparişleri kırar. Ama bedeli vardır ve en can sıkıcısı benzersizlik kısıtlarıdır — silinmiş bir kayıt hâlâ tabloda olduğu için kullanıcı aynı e-posta ile tekrar kayıt olamaz. Filtreyi unutma riskini yapısal çözün: silinmemiş kayıtları döndüren bir görünüm oluşturun ve uygulama yalnızca onu kullansın. Ve saklama süresi tanımlayıp kalıcı silmeyi ihmal etmeyin.

Sıkça Sorulan Sorular (SSS)

Yumuşak silme neden kullanılır?

En sık gerekçe ilişkisel bütünlüktür. Bir ürünü gerçekten silmek, o ürünü içeren geçmiş siparişleri kırar — sipariş kaydı var ama hangi ürün olduğu bilinmez hâle gelir. Ayrıca kazara silmeyi geri almayı ve geçmiş raporların bozulmamasını sağlar.

Kullanıcı aynı e-posta ile neden kayıt olamıyor?

Çünkü benzersizlik kısıtı yumuşak silinmiş kayıtları da kapsıyor — eski kayıt hâlâ tabloda duruyor. Çözüm, kısıtı silinme durumunu da içerecek şekilde tanımlamak veya yalnızca silinmemiş kayıtları kapsayan kısmi dizin kullanmaktır.

Filtreyi unutma riskini nasıl kaldırırım?

Silinmemiş kayıtları döndüren bir görünüm oluşturup uygulamanın yalnızca onu kullanmasını sağlayın; ham tabloya erişim sadece yönetim ve kurtarma için kalsın. Çerçevelerin otomatik filtresi yardımcıdır ama doğrudan yazılan ham sorgular onu atlar — raporlama sorgularını ayrıca gözden geçirin.

Veri silme talebini yumuşak silme ile karşılayabilir miyim?

Hayır. Veri hâlâ sistemde durduğu için talep karşılanmış sayılmaz. Bu tür talepler için kalıcı silme veya gerçek anonimleştirme uygulanmalıdır. Genel olarak hassas kişisel veri içeren kayıtlarda yumuşak silme, veri minimizasyonu ilkesine aykırıdır.