Birincil anahtar, değerleri tablonun tamamında benzersiz olan bir alan veya alan kümesidir. Anahtarın değeri kayıtların tamamına başvurmak için kullanılabilir, çünkü anahtar için her kaydın farklı bir değeri vardır. Her tablonun tek bir birincil anahtarı olabilir. Tablo oluşturduğunuzda Access sizin için otomatik olarak bir birincil anahtar alanı oluşturabilir veya birincil anahtar olarak kullanmak istediğiniz alanları kendiniz belirtebilirsiniz. Bu makalede birincil anahtarların nasıl ve neden kullanıldığı açıklanır.
Bir tablonun birincil anahtarını ayarlamak için, tabloyu Tasarım görünümünde açın. Kullanmak istediğiniz alanı (veya alanları) seçin ve ardından şeritte Birincil Anahtar'ı tıklatın.
Not: Bu makale, yalnızca Access masaüstü veritabanlarında kullanıma yönelik olarak hazırlanmıştır. Access, Access web uygulamalarında ve web veritabanlarında yeni tablolar için birincil anahtarları otomatik olarak ayarlar. Bu otomatik birincil anahtarları geçersiz kılmak mümkündür ama bunu yapmanızı önermeyiz.
Bu makalede
Access'te birincil anahtarlara genel bakış
Access, birincil anahtar alanlarını birden çok tablodan aldığı verileri hızla ilişkilendirmek ve bu verileri anlamlı biçimde bir araya getirmek için kullanır. Tabloların birincil anahtar kaynağı olan tabloya tekrar atıfta bulunması için diğer tablolara birincil anahtar alanları dahil edebilirsiniz. Bu diğer tablolarda bu alanlar yabancı anahtar olarak adlandırılır. Örneğin, Müşteri tablosunda Müşteri Kimliği alanı Sipariş tablosunda da görünebilir. Müşteri tablosunda bu birincil anahtardır. Sipariş tablosunda ise yabancı anahtar olarak adlandırılır. Yabancı anahtar, basit ifadeyle başka bir tablonun birincil anahtarıdır. Daha fazla bilgi için, bkz. Veri tabanı tasarımının temelleri.
1. Birincil anahtar
2. Yabancı anahtar
Varolan bir veritabanını başka bir veritabanına taşıyorsanız, birincil anahtar olarak kullanabileceğiniz bir alanınız zaten varolabilir. Kimlik numarası ya da seri numarası veya kod gibi benzersiz bir kimlik numarası, tabloda birincil anahtar olarak sık sık görev yapar. Örneğin, her müşterinin benzersiz müşteri kimlik numarasına sahip olduğu bir Müşteriler tablonuz olabilir. Müşteri kimliği alanı birincil anahtardır.
Access otomatik olarak, birincil anahtar için sorguları ve diğer işlemleri hızlandırmaya yardımcı olan bir dizin oluşturur. Access ayrıca her kaydın birincil anahtar alanında bir değeri olmasını ve bunun her zaman benzersiz olmasını da sağlar.
Veri Sayfası görünümünde yeni tablo oluşturduğunuzda, Access birincil anahtarı sizin için otomatik olarak oluşturur; buna "Kimlik" alan adını ve OtomatikSayı veri türünü atar.
İyi bir birincil anahtar nasıl olur?
İyi bir birincil anahtar adayının bazı özellikleri vardır:
-
Her satırı benzersiz olarak tanımlar
-
Hiçbir zaman boş veya sıfır olmaz (her zaman bir değer içerir)
-
İçerdiği değerler seyrek olarak değişir (ideal durumda hiç değişmemesi gerekir)
İyi bir anahtar tanımlayamıyorsanız, anahtar olarak kullanmak üzere bir Otomatik Sayı alanı oluşturun. Otomatik Sayı alanı, her kayıt ilk kaydedildiğinde kendisi için otomatik olarak bir değer oluşturur. Bu nedenle, Otomatik Sayı alanı iyi bir birincil anahtarın üç özelliğini de karşılar. Otomatik Sayı alanı ekleme hakkında daha fazla bilgi için Otomatik Sayı birincil anahtarı ekleme makalesine bakın.
Otomatik Sayı alanı iyi bir birincil anahtarın özelliklerine sahiptir.
Zayıf birincil anahtarlar örnekleri
İyi bir birincil anahtar adayının bir veya daha çok özelliğini taşımayan alanlar birincil anahtar için kötü seçimler olur. Aşağıda, Kişiler tablosu için kötü birincil anahtar olacak alanlar için birkaç örnekle birlikte, bunların kötü seçim olma nedenleri verilmiştir.
Kötü birincil anahtar |
Neden |
---|---|
Kişisel ad |
Benzersizliğine güvenilemeyebilir ve değişebilir |
Telefon numarası |
Büyük olasılıkla değişebilir. |
E-posta adresi |
Büyük olasılıkla değişebilir. |
Posta kodu |
Aynı Posta kodunu birden fazla kişi paylaşabilir |
Bilgi ve sayı birleşimleri |
Bilgi kısmı değişebilir ve bakım yükü doğurabilir. Bilgi kısmı ayrı bir alan olarak yinelenirse kafa karışıklığına yol açabilir. Örneğin, şehir ve artımlı bir sayının birleştirilmesi (örn., İSTANBUL0579), şehir bilgisinin de bir alan olarak depolanması durumunda kötü bir tercih olacaktır. |
Sosyal Güvenlik Numaraları |
|
Bileşik anahtarlar: Birden çok alanı birleştirerek birincil anahtar olarak kullanma
Bazı durumlarda, tablodaki iki veya daha çok alanı birincil anahtar olarak kullanmak istersiniz. Örneğin, siparişlerin satır öğelerini depolayan Sipariş Ayrıntıları tablosu birincil anahtarında şu iki alanı kullanıyor olabilir: Sipariş Kimliği ve Ürün Kimliği. Birden çok alanı olan anahtar, bileşik anahtar olarak adlandırılır.
Access'te zaten bulunan alanları kullanarak birincil anahtarı ayarlama
Bir birincil anahtarın iyi çalışması için, alanın her satırı benzersiz şekilde tanımlaması, hiçbir zaman boş veya geçersiz değer içermemesi ve seyrek olarak değişmesi (ideal durumda hiç değişmemesi) gerekir. Birincil anahtarı ayarlamak için:
-
Değiştirmek istediğiniz veritabanını açın.
-
Gezinti Bölmesi'nde, birincil anahtarı ayarlamak istediğiniz tabloyu sağ tıklatın ve kısayol menüsünden Tasarım Görünümü'nü tıklatın.
İpucu: Gezinti Bölmesi'ni görmüyorsanız, görüntülemek üzere F11 tuşuna basın.
-
Birincil anahtar olarak kullanmak istediğiniz alanı veya alanları seçin.
Tek bir alanı seçmek için, istediğiniz alanın satır seçicisini tıklatın.
Birden çok alan seçip bileşik anahtar oluşturmak için, CTRL tuşunu basılı tutun ve her alanın satır seçicisine tıklayın.
-
Tablo Tasarımı sekmesinin Araçlar grubunda Birincil Anahtar'a tıklayın.
Birincil anahtar olarak belirttiğiniz alan veya alanların soluna bir anahtar göstergesi eklenir.
Access'te birincil anahtarı kaldırma
Birincil anahtarı kaldırdığınızda, daha önce birincil anahtar olarak kullanılan alan veya alanlar artık bir kaydı tanımlamanın temel yöntemini sağlamaz.
Birincil anahtar kaldırıldığında tablonuzdaki alanlar silinmez, ancak birincil anahtar için oluşturulan dizin kaldırılır.
-
Birincil anahtarı kaldırabilmek için önce bu anahtarın hiçbir tablo ilişkisine katılmadığından emin olmalısınız. Bir veya daha çok ilişkinin parçası olan bir birincil anahtarı kaldırmaya çalışırsanız, Access önce ilişkiyi silmeniz konusunda sizi uyarır.
Tablo ilişkisini silmek için aşağıdaki adımları tamamlayın:-
Tablo ilişkisine katılan tablolar açıksa, onları kapatın. Açık tablolar arasındaki bir tablo ilişkisini silemezsiniz.
-
Veritabanı Araçları sekmesinin İlişkiler grubunda İlişkiler'e tıklayın.
-
Tablo Ekle'yi seçin.
-
Silmek istediğiniz tablo ilişkisinin tablo ilişkisi satırını tıklatın (seçildiği zaman satır kalınlaşır) ve sonra DELETE tuşuna basın.
-
İlişkiler Tasarımı sekmesinin İlişkiler grubunda Kapat'a tıklayın.
-
-
İlişkileri sildikten sonra, Gezinti Bölmesi'nde, birincil anahtarı kaldırmak istediğiniz tabloyu sağ tıklatın ve ardından Tasarım Görünümü'nü tıklatın.
İpucu: Gezinti Bölmesi'ni görmüyorsanız, görüntülemek üzere F11 tuşuna basın.
-
Geçerli birincil anahtarın satır seçicisini tıklatın.
Birincil anahtar tek bir alandan oluşuyorsa, o alanın satır seçicisini tıklatın.
Birincil anahtar birden çok alandan oluşuyorsa, birincil anahtardaki herhangi bir alanın satır seçicisini tıklatın.
-
Tablo Tasarımı sekmesinin Araçlar grubunda Birincil Anahtar'a tıklayın.
Anahtar göstergesi, önceden birincil anahtar olarak belirttiğiniz alan veya alanlardan kaldırılır.
Not: Birincil anahtar ayarlamadan yeni bir tablo kaydedilirken, Access sizden bir tane oluşturmanızı ister. Evet seçeneğini belirlerseniz, Access her kayıt için benzersiz bir değer sağlamak üzere Otomatik Sayı veri türünü kullanan bir kimlik alanı oluşturur. Tablonuzda zaten bir Otomatik Sayı alanı varsa, Access birincil anahtar olarak bu alanı kullanır.
Access'te birincil anahtarı değiştirme
Tablonun birincil anahtarını değiştirmeye karar verirseniz, bunu aşağıdaki adımlarla yapabilirsiniz:
-
Birincil anahtarı kaldırma bölümündeki yönergeleri kullanarak varolan birincil anahtarı kaldırın.
-
Birincil anahtarı ayarlama bölümündeki yönergeleri kullanarak birincil anahtarı ayarlayın.
Ek bilgiler
Veritabanı tasarımı ve uygun birincil anahtarı seçme hakkında daha fazla bilgi için şu makalelere bakın: