Foreign key, Foreign key, Foreign key derdi Napolyon, programcı olsaydı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ertank
Üye
Mesajlar: 1158
Kayıt: 11 Eyl 2015 11:45

Re: Foreign key, Foreign key, Foreign key derdi Napolyon, programcı olsaydı

Mesaj gönderen ertank » 23 Kas 2017 11:02

Şahsen foreign key kullanmam uygulamalarımda. Database performansını göreceli olarak düşürür. Ayrıca programcı tarafından tam anlamı ile kontrol altına alınabilen bir konudur.

ertank
Üye
Mesajlar: 1158
Kayıt: 11 Eyl 2015 11:45

Re: Foreign key, Foreign key, Foreign key derdi Napolyon, programcı olsaydı

Mesaj gönderen ertank » 23 Kas 2017 12:48

Database sistemlerindeki tüm özellikler bir işlemi kolaylaştırmak için çıkarılmıştır. Faydasız bir özellik için kimse zaman harcamaz. Belirli durumlarda can kurtarıcı olan bir özellik başka bir kullanım durumunda önünüze engel olarak çıkabilir. Her özelliğin mutlaka her database için kullanılması da gerekmez.

Database boyutu büyüdükçe, uygulamanıza dışarıdan farklı kaynaklardan verilerin alınabilmesine olanak tanıdıkça şahsen karşıma kolaylık değil güçlük olarak çıktığı için kullanmamayı tercih ediyorum.

- Kayıt girişlerini yavaşlatıyor.
- Kayıt silme işlemlerini yavaşlatıyor.
- Kod tablosundan foreign key tanımlı alanı değiştirmeniz duruma göre bütün hareket tablosunda "update" işlemi gerçekleştirmek anlamına ya da "cascade" kullanılmamış ise bunu hiç yapamamak anlamına geliyor. (Bunun yerine ana kayıt güncellemesini yapıp hareket dosyalarının güncellemesini gece yarısı çalışan bir servis ile yapmak hem daha hızlı hem kullanıcı çalışmasını engellememiş oluyor)
- Kod tablosundan foreign key tanımlı kayıtların silinme işlemi de yukarıdaki durumun aynısıdır. (Mesai saatleri içi yoğun çalışma esnasında bir kullanıcı bütün silme işlemlerini durdurabiliyor çünkü bir kayıtta değişiklik yapmak için o kaydı kilitlemiş oluyor)

Database integrity bozulmasına tek sebep foreign key değildir. En uç örneklerden bir tanesi (ki daha birçok örnek vardır) "database versiyon güncellemesi sırasında fark edilen primary key indeks bozulması" olabilir mesela. Eski database sisteminde yedek alıp yeni database sistemine yedeği açarken karşınıza çıkar. Belki elektrik kesintisi veya database sistemindeki bir hata (bug) sebep olmuş olabilir. Ancak böyle bir durumda tekil olmasını beklediğiniz alanda aynı koddan birden fazla kayıt olduğunu görmeniz mümkün. Yani herşey yolunda sandığınız bir anda öyle olmadığını ve çok ciddi sorunların olduğunu fark edebiliyorsunuz.

Bununla birlikte sizin uygulamanızda çok kolaylıklar getirebilir ki bu durumda mutlaka faydalanmalısınız.

emrahgs
Üye
Mesajlar: 108
Kayıt: 08 Tem 2008 05:25
Konum: Antalya

Re: Foreign key, Foreign key, Foreign key derdi Napolyon, programcı olsaydı

Mesaj gönderen emrahgs » 27 Kas 2017 01:30

Büyük projelerin büyük databaselerin de
çoğu zaman verilerin sizin istediğiniz gibi düzenli sıralı gelmeyebiliyor
Database e entegre olan onlarca farklı yazılım
ve Databasle Çalışan Bi çok Bayii Oluyor
Birden Bire , Farklı Ortamlardan Database'e Veri aktarımı Gerekebiliyor
Bu durumlar da Foregin keyler işi içinden çıkılmaz bir hale dönüştürüyor

Cevapla