Veritabanı Yönetimini Kolaylaştıran Temel Anahtarlar

Veritabanı anahtarları verimli bir ilişkisel veritabanı oluşturmanın en kolay yoludur

Bildiğiniz gibi, veritabanları bilgi düzenlemek için tabloları kullanır. (Veritabanı kavramlarıyla ilgili temel bir alışkanlığınız yoksa, Veritabanı Nedir? Başlıklı makaleyi okuyun.) Her tablo, her biri tek bir veritabanı kaydına karşılık gelen bir dizi satırdan oluşur. Peki, veritabanları tüm bu kayıtları doğru bir şekilde nasıl saklıyor? Anahtarların kullanımıyla.

Birincil anahtar

Tartışacağımız ilk anahtar tip birincil anahtardır . Her veritabanı tablosu, birincil anahtar olarak belirlenmiş bir veya daha fazla sütuna sahip olmalıdır. Bu anahtarın değeri, veritabanındaki her kayıt için benzersiz olmalıdır.

Örneğin, firmamızdaki her çalışan için personel bilgilerini içeren Çalışanlar adı verilen bir masaya sahip olduğumuzu varsayın. Her çalışanı benzersiz şekilde tanımlayacak uygun bir birincil anahtar seçmeliyiz. İlk düşüncenin çalışanın adını kullanmak olabilir. Bu işe yaramazdı çünkü aynı isimle iki çalışanı işe alacağınız düşünülebilir. Daha iyi bir seçim, işe alındıklarında her bir çalışan için atadığınız benzersiz bir çalışan kimliği numarası kullanmak olabilir. Bazı kuruluşlar, bu görev için Sosyal Güvenlik Numaralarını (veya benzer hükümet tanımlayıcılarını) kullanmayı tercih ederler çünkü her çalışanın zaten bir tane vardır ve benzersiz olmaları garantilidir. Bununla birlikte, Sosyal Güvenlik Numaralarının bu amaçla kullanılması, mahremiyet endişeleri nedeniyle son derece tartışmalıdır. (Bir hükümet kuruluşu için çalışıyorsanız, bir Sosyal Güvenlik Numarası'nın kullanımı 1974 tarihli Gizlilik Yasası uyarınca bile yasa dışı olabilir.) Bu nedenle, çoğu kuruluş benzersiz tanımlayıcıların kullanımına kaymıştır (çalışan kimliği, öğrenci kimliği, vb.). .) bu gizlilik sorunlarını paylaşmıyor.

Bir ana anahtara karar verdikten ve veritabanını kurduktan sonra, veritabanı yönetim sistemi anahtarın benzersizliğini zorlar.

Varolan bir kaydı çoğaltan birincil anahtarın bulunduğu bir tabloya kayıt eklemeyi denerseniz, ekleme başarısız olur.

Çoğu veri tabanı da kendi ana anahtarlarını üretebilir. Microsoft Access, örneğin, tablodaki her kayda benzersiz bir kimlik atamak için OtomatikSayı veri türünü kullanacak şekilde yapılandırılabilir. Etkiliyken, bu kötü bir tasarım pratiğidir, çünkü tablodaki her kayıtta anlamsız bir değer bırakır. Neden yararlı bir şey saklamak için bu alanı kullanmıyorsunuz?

Yabancı anahtarlar

Başka bir tür, tablolar arasında ilişki oluşturmak için kullanılan yabancı anahtardır . Çoğu veritabanı yapısında tablolar arasında doğal ilişkiler vardır. Çalışanlar veritabanımıza dönersek, veritabanına departman bilgisi içeren bir tablo eklemek istediğimizi hayal edin. Bu yeni masa Departmanlar olarak adlandırılabilir ve departman hakkında bir bütün olarak büyük miktarda bilgi içerecektir. Ayrıca departmandaki çalışanlar hakkında bilgi vermek istiyoruz, ancak aynı bilgiyi iki tabloda (Çalışan ve Departmanlar) bulundurmak gereksiz olurdu. Bunun yerine, iki tablo arasında bir ilişki oluşturabiliriz.

Departments tablosunun, Ana Anahtar olarak Departman Adı sütununu kullandığını varsayalım. İki tablo arasında bir ilişki oluşturmak için, Departman adı verilen Çalışanlar tablosuna yeni bir sütun ekliyoruz. Daha sonra her bir çalışanın ait olduğu departmanın adını doldururuz. Ayrıca, veritabanı yönetim sistemini Çalışanların tablosundaki Departman sütununun Departments tablosuna referans veren yabancı bir anahtar olduğunu da bildiriyoruz.

Veritabanı, daha sonra Çalışanlar tablosunun Departments sütunundaki tüm değerlerin Departments tablosunda karşılık gelen girdilere sahip olmasını sağlayarak referans bütünlüğünü zorlar.

Yabancı bir anahtar için benzersiz bir kısıtlama olmadığını unutmayın. Tek bir departmana ait olan (ve büyük ihtimalle) birden fazla çalışanımız olabilir. Benzer şekilde, Departments tablosundaki bir girdinin Çalışanlar tablosunda karşılık gelen bir girişi olması gerekmez. Çalışan olmayan bir bölümümüz olabilir.

Bu konuda daha fazla bilgi için Yabancı Anahtarlar Oluşturma başlıklı makaleyi okuyun.