sorduğunda, arkadaşımız “silme” işine diye cevap vermişti.
Veri tabanında silme
işlemi neredeyse hiç yapmayız. İşi biten kayıtı silme yerine tabloya durum veya
aktif kolonu ekleyip, bu kolonlar üzerinden güncel ve eski kayıtları takip
ediyoruz. Silme işlemi yok denecek kadar az olduğuna göre yine olayı
basitleştirmek için diyebilirim ki; primary key “update” için kullanılır.
Primary key
Tablodaki her bir kayıtın ayrıştırılmasını, tekilleştirilmesini sağlayanbir kısıttır. Neden kayıtları tekilleştirmek isteriz? Bence bunun en önemli nedeni,
silme ve güncelleme işleminde sadece istediğimiz kayıt üzerinde işlem
yapmaktır. Örneğin yanlışlıkla aynı insert işlemini iki veya daha fazla
calıştırdığımızı düşünelim. Bu durumda sadece tek kayıtın kalmasını, diğerlerinisilmeyi isteriz. Bunu nasıl yapacağız? Primary key ile daha doğrusu primary key
kolonu ile. Kayıtların tek olmasının daha sık işimeze yaradığı husus ise, row bazlı
lock işlemi yapabilmektir. Lock ve row lock için yayınlanmış olan
“Lock, Blocking, Deadlock Nedir” konusuna bakılabilir.
Primary key için ikinci bir hususta, diğer bir tablodan bu tabloya referans verip
iki tablo arasında integratiyi korumaktır. Yani foreign key tanımlayabilmektir.
Primary key’in kullanım amaçlarını anlattıktan sonra diyebiliriz ki;
- Bu tabloda delete veya update yapacak mıyım?
- Bu tabloya başka tabloları bağlayacak mıyım, referans verecek miyim?
anlamsızdır. Bunun tersi doğru değildir, yani ikisinden birinin cevabı evet olsa
bile primary key tanımlamak gerekir anlamı çıkartılamaz. O halde diyebiliriz ki,
sadece insert ve select yapılan tablolar için primary key konulmaması daha
isabetlidir.
Primary key kolonları tekil(unique) olmak zorunda olduğundan dolayı, eğer
tabloda böyle bir kolon veya bir kaç kolonun birleşimi ile elde edilebilen tekillik
sağlanamıyorsa Unique bir kolon eklenmelidir ki; buna auto incremental veya
identity alan deriz.
Hiç yorum yok:
Yorum Gönder