Veritabanı Anahtarları Nedir ve Ne Amaçla Kullanılır?

Veritabanı Anahtarları Nedir ve Ne Amaçla Kullanılır?

31
0
PAYLAŞ

Veritabanları hakkında ne kadar bilgi sahibi olduğunuzu tam olarak bilmiyoruz ancak veritabanlarının bilgileri düzenlemek için tabloları kullandığını bir yerlerden belki duymuşsunuzdur. İlişkisel veritabanlarında, her bir tablo bir dizi satırdan oluşur, bu satırların her biri tek bir veritabanı kaydına karşılık gelir. Peki, veritabanları bütün bu kayıtları nasıl bu kadar düzenli bir biçimde korur? Tabi ki anahtarlar yardımıyla.

Birincil Anahtarlar

İlk olarak birincil anahtarlardan (primary key) bahsedeceğiz. Her veritabanı tablosunun birincil anahtar olarak belirlenen bir ya da daha fazla sütunu olmalıdır. Bu anahtarın taşıdığı değer veritabanındaki her kayıt için benzersiz olmalıdır. Örneğin, firmamızdaki her çalışanın bilgilerini içeren ve “Çalışanlar” olarak adlandırılan bir tablomuz olduğunu varsayalım. Her çalışanı benzersiz bir biçimde tanımlayacak bir birincil anahtar seçmemiz gerekecektir. Aklımıza gelen ilk düşünce çalışanın ismini kullanmak olacaktır.

Ancak, ismi aynı olan iki çalışanınız varsa bu düşünce mantıklı değildir. Bu yüzden, işe aldığınız her çalışan için benzersiz bir kimlik numarası kullanmak daha doğrudur. Bazı kuruluşlar aynı durum için T.C Kimlik Noyu kullanmayı tercih eder. Bunun sebebi her çalışanın farklı bir sosyal güvenlik numarası olmasıdır. Ancak gizlilik konusunda oluşabilecek endişeler sebebiyle bu numaraların kullanılması tartışmaya açık bir konudur. Hatta bazı durumlarda bu numaraların kullanılması yasak olabilir. Bu yüzden, kuruluşların çoğu çalışan kimlik numarası, öğrenci kimlik numarası gibi gizlilik endişeleri taşımayan numaraların kullanılmasından yanadır.

Birincil anahtar konusunda karara vardıktan ve veritabanında kullandıktan sonra, veritabanı yönetim sistemi anahtarın benzersizliğini kontrol edecektir. Anahtar benzersiz değilse, bir kaydı bir tablo içine yerleştirme işlemi başarısız olacaktır.

Ayrıca, birçok veritabanı kendi birincil anahtarlarını kendi kendine oluşturabilir. Örneğin, Microsoft Access tablodaki her kayıta benzersiz bir kimlik numarası ataması için AutoNumber veri tipini kullanacak şekilde yapılandırılabilir. Etkili olmasına rağmen bu kötü bir uygulamadır. Tablodaki her kayıtta anlamsız bir değerle sizi baş başa bırakır. Bu boşluğu daha yararlı bir şeyleri depolamak için kullanabilirsiniz.

Yabancı Anahtarlar

İkinci olarak yabancı anahtarlardan(foreign keys) bahsedeceğiz. Bu anahtarlar tablolar arasında ilişkiler oluşturmak için kullanılır. Birçok veritabanı yapısında doğal ilişkiler bulunmaktadır. Çalışanlarla ilgili veritabanımıza geri dönelim ve departmanla ilgili bilgileri içeren bir tabloyu veritabanına eklemek istediğimizi farz edelim. Bu yeni tabloyu Departmanlar olarak adlandıralım ve bu tabloda departmanla ilgili çok miktarda bilgi yer alsın. Ayrıca, departmanda çalışanlar hakkında da bilgileri içersin ancak bu durumda iki tabloda aynı bilgiye yer vermek yerine bu iki tablo arasında bir ilişki oluşturabiliriz.

Departmanlar tablosunun birincil anahtar olarak Departman Adı sütununu kullandığını varsayalım. İki tablo arasında ilişki oluşturmak için Departman olarak adlandırılan Çalışanlar tablosuna yeni bir sütun ekleyelim. Her çalışanın ait olduğu departmanın ismini dolduralım. Ayrıca, Çalışanlar tablosundaki Departman sütununun Departmanlar tablosuna işaret eden bir yabancı anahtar olduğuna dair veritabanı yönetim sistemini bilgilendirelim. Daha sonra veritabanı Çalışanlar tablosunun Departmanlar sütunundaki tüm değerlerin Departmanlar tablosunda ilgili girdilerini olduğundan emin olarak veri tutarlılığını doğrulayacaktır.

Yabancı bir anahtar için benzersizlik kısıtlaması olmadığını dikkate alın. Tek bir departmana ait birden fazla çalışanımız olabilir. Benzer şekilde, Departmanlar tablosundaki bir girdinin Çalışanlar tablosunda herhangi bir ilgili girdisi olması zorunlu değildir. Çalışanı olmayan bir departmanımız da olabilir.

YORUM YOK

BİR YORUM YAZIN