Aşağıda gösterilen karşılaştırma çizelgesi yardımıyla tartışacağım İlköğretim ve Aday Anahtar arasında daha fazla fark var.
Karşılaştırma Tablosu
Karşılaştırma için temel | Birincil anahtar | Aday Anahtar |
---|---|---|
Temel | Herhangi bir ilişkide sadece bir tane birincil anahtar olabilir. | Bir ilişkide birden fazla aday anahtarı olabilir. |
BOŞ | Birincil anahtarın hiçbir özelliği NULL değeri içeremez. | Bir Aday anahtarının niteliği NULL değerde olabilir. |
belirtmek | Herhangi bir ilişki için birincil anahtar belirtmek isteğe bağlıdır. | Belirlenen aday anahtarı olmadan bir ilişki olamaz. |
özellik | Birincil anahtar, ilişki için en önemli özelliği açıklar. | Aday anahtarlar, Birincil Anahtar'a hak kazanabilecek adayları sunar. |
Tersine | Birincil anahtar bir aday anahtardır. | Ancak, her aday anahtarın bir birincil anahtar olması zorunlu değildir. |
Birincil Anahtarın Tanımı
Birincil Anahtar, bir ilişkideki her bir zinciri benzersiz olarak tanımlayacak bir özellik veya bir dizi özelliktir. Her ilişki için yalnızca bir birincil anahtar olabilir. Bir birincil anahtarın hiçbir zaman NULL değeri içermemesi ve ilişkindeki her demet için benzersiz bir değere sahip olması gerektiğine dikkat edilmelidir. Birincil anahtarın özniteliğinin / değerlerinin statik olması gerekir, yani özniteliğin değeri hiçbir zaman veya nadiren değiştirilmemelidir.
Aday Anahtarlardan biri birincil anahtar olmaya hak kazanıyor. Bir aday anahtarın birincil olma niteliği kazanması gereken kurallar, anahtar değerin asla NULL olmaması ve tüm gruplar için benzersiz olması gerektiğidir.
Bir ilişki, başka bir ilişkinin birincil anahtarı olan bir öznitelik içeriyorsa, o özniteliğe yabancı anahtar denir.
Bir ilişkinin birincil anahtarını, bir ilişkinin diğer niteliklerini girmeden önce birincil anahtarın her bir tülü benzersiz olarak tanımlaması önerilir. İlişkisel işlemeyi kolaylaştıran tek bir özellik veya az sayıda özellik seçmek için birincil anahtar olarak kullanmak daha iyidir.
Şimdi Birincil anahtar örneği görelim.
Öğrenci {ID, First_name, Soyadı, Yaş, Adres}
Burada ilk önce aday anahtarları bulacağız. Öğrenci ilişkisinde her öğrenciyi benzersiz bir şekilde tanımlayacakları için {ID} ve {First_name, Last_name} iki aday anahtar buldum . Şimdi, burada birincil anahtarım olarak kimliği seçeceğim çünkü bazen iki öğrencinin adı ve soyadı aynı olabilir, bu nedenle kimliğiyle bir öğrenciyi izlemek kolaylaşır.
Aday Anahtarın Tanımı
Aday anahtar, ilişkide benzersiz bir tanım tanımlayan bir özellik veya bir dizi özelliktir. Bir ilişkide birden fazla aday anahtar var. Bu Aday anahtarlar, birincil anahtar olmaya hak kazanabilecek adaylardır.
Her aday anahtar birincil anahtar olmaya hak kazansa da, yalnızca bir anahtar birincil anahtar olarak seçilebilir. Bir aday anahtarın birincil anahtar olması için gereken kurallar anahtarın öznitelik değeri anahtarın hiçbir alanında NULL olamaz, benzersiz ve statik olmalıdır.
Tüm aday anahtarlar birincil anahtar için uygunsa, deneyimli bir DBA birincil anahtarı belirleme kararını almak zorundadır. Aday anahtarı olmadan asla ilişki olamaz.
Aday anahtarını bir örnekle anlayalım. Öğrenci ilişkisine başka özellikler eklersek, yukarıda tartışmıştım.
Öğrenci {ID, First_name, Soyadı, Yaş, Adres, DOB, Department_name}
Burada {ID}, {First_name, Last_name, DOB} adında iki aday anahtar bulabilirim. Böylece aday anahtarların bir ilişkideki tuple'ı benzersiz olarak tanımlayan anahtarlardan olduğunu anlayabilirsiniz.
Birincil ve Aday Anahtar Arasındaki Temel Farklılıklar
- Birincil anahtarı aday anahtardan ayıran temel nokta şemadaki herhangi bir ilişki için yalnızca bir birincil olabileceğidir. Ancak, tek bir ilişki için birden fazla aday anahtar olabilir.
- Birincil anahtarın altındaki öznitelik hiçbir zaman bir NULL değeri içeremez, çünkü birincil anahtarın ana işlevi ilgili bir kaydı benzersiz olarak tanımlamaktır. Bir birincil anahtar bile diğer ilişkilerde yabancı anahtar olarak kullanılabilir ve bu nedenle NULL olmamalıdır, bu nedenle referans veren ilişki, başvurulan ilişkideki başvuruları bulabilir. Öznitelik kısıtı boş değil belirtilmedikçe, aday anahtar NULL olabilir.
- Birincil anahtar belirtmek isteğe bağlıdır, ancak aday anahtarlar olmadan bir ilişki olamaz.
- Birincil anahtar, bir ilişkinin benzersiz ve en önemli özelliğini açıklarken, aday anahtarlar, birinin birincil anahtar olarak seçilebileceği adayları sağlar.
- Her birincil anahtar bir aday anahtardır, ancak bunun tersi doğru değildir.
Sonuç:
Bir ilişkinin birincil anahtar belirtmesi isteğe bağlıdır. Öte yandan, bir ilişki olduğunu beyan ediyorsanız, iyi bir ilişki kurmak için bu ilişkide aday anahtarların bulunması gerekir.