Tavsiye, 2024

Editörün Seçimi

Birincil tuş ile Benzersiz tuş arasındaki fark

Veritabanında ve şemada kullanılan farklı anahtar türlerini daha önce, önceki anahtar ile Yabancı Anahtar Arasındaki Farklar başlığı altında çalıştık. Bu yazıda, Birincil ve Benzersiz anahtarlarını ayırt ediyoruz. Hem birincil anahtar hem de benzersiz anahtar, bir tuple'ı benzersiz olarak tanımlamak ve bir sütundaki veya bir sütunun birleşimindeki benzersizliği zorlamak için kullanılır.

Birincil anahtar ile benzersiz anahtar arasındaki temel fark, birincil anahtarın NULL değerleri kabul etmemesidir, buna karşın NULL değerlere Benzersiz anahtar kısıtlamaları dahilinde izin verilir.

Karşılaştırma Tablosu

Karşılaştırma için temelBirincil anahtarBenzersiz anahtarı
TemelBir tablodaki her satır için benzersiz bir tanımlayıcı olarak hizmet vermek için kullanılır.Aynı zamanda, birincil anahtar olarak tanımlanmayan bir satırı benzersiz olarak belirler.
NULL değer kabulüBirincil anahtar NULL değerleri kabul etmeyecek.Unique, NULL değeri kabul eder.
Tabloda tanımlanabilecek anahtar sayısıSadece bir birincil anahtarBirden fazla
indeksKümelenmiş dizin oluştururKümelenmemiş dizin oluşturur

Birincil anahtarın tanımı

Bir sütun, bu tablodaki her bir diziyi (satırı) benzersiz bir şekilde tanımlarsa, tablosunun birincil anahtarı olarak adlandırılabilir. Bütünlük kısıtlamalarını tabloya uygular. Tabloda yalnızca bir birincil anahtara izin verilir. Birincil anahtar yinelenen ve NULL değerleri kabul etmiyor. Birincil anahtar, değişikliklerin nadiren gerçekleşebileceği dikkatle seçilir, bir tablodaki birincil anahtarın çok nadiren değiştiği anlamına gelir.

Bir masanın yardımıyla birincil anahtar kavramını anlayalım. Burada, Roll_number, Ad, Toplu iş, Phone_number, Citizen_ID gibi özniteliklere sahip olan Öğrenci tablosu adında bir tablo oluşturuyoruz.

Verilen örnekte, özellik numarası hiçbir zaman aynı ve NULL değere sahip olamaz, çünkü her öğrenci benzersiz bir Roll_number'a sahip bir üniversiteye kayıt yaptırır. Hiçbir iki öğrenci aynı Roll_number değerine sahip olamaz ve bir tablodaki her satır öğrencilerin roll numarası ile benzersiz bir şekilde tanımlanır. Dolayısıyla, bu özel durumda Roll_number özelliğini birincil anahtar olarak yapabiliriz.

Bir birincil anahtara yabancı anahtar tarafından başvurulabilir. Masada benzersiz bir kümelenmiş dizin oluşturur. Kümelenmiş bir dizinde, veri satırları, anahtar değerleri temelinde bir tabloda veya görünümlerde sıralanır ve saklanır. Bir tabloda yalnızca bir kümelenmiş dizin olabilir, bunun nedeni, bir tablodaki veri satırlarının yalnızca bir sırayla sıralanabilmesidir.

Unique anahtarının tanımı

Birincil anahtara benzer şekilde, Benzersiz anahtar kısıtlamaları da ilişkide benzersiz bir bireysel bağlantı tanımlar. Ancak, aralarında belirli farklılıklar vardır. Bir tabloda birden fazla benzersiz anahtar bulunabilir. Benzersiz anahtar kısıtlamaları, bir sütun için yalnızca bir NULL değeri kabul edebilir.

Bunu, Roll_number, Name, Batch, Phone_number ve Citizen_ID özniteliklerine sahip bir Öğrenci masasının olduğu benzer bir örnekle anlayalım. Rulo numarası özelliği, birincil anahtarla atanır.

Burada Citizen_ID, bir Citizen_ID sütunundaki her girişin benzersiz olması gereken, çoğaltılmaması gereken benzersiz kısıtlamalar ile atanabilir, çünkü bir ülkenin her vatandaşının benzersiz kimlik numarasına sahip olması gerekir. Ancak, eğer bir öğrenci başka bir ülkeden göç ederse, bu durumda, Citizen_ID değerine sahip olmayacak ve benzersiz bir kısıtlamada bir NULL'a izin verildiği için giriş bir NULL değerine sahip olacaktır.

Eşsiz kısıtlamalara yabancı anahtar tarafından da atıfta bulunulur. Birisi bir sütunda ve birincil anahtar olmayan bir sütun grubunda kısıtlamalar uygulamak istediğinde kullanılabilir. Birincil anahtarın aksine, kümelenmemiş dizini oluşturur . Kümelenmemiş dizinler, veri satırlarından ayrı bir yapıya sahiptir. İçindeki her bir anahtar-değer girişi, gösterici kullandığı için anahtar değerini içeren veri satırına işaret eder.

Birincil tuş ile Benzersiz tuş arasındaki tuş farkları

  1. Bir özellik ana anahtar olarak bildirildiğinde, NULL değerleri kabul etmeyecektir. Öte yandan, bir özellik Benzersiz olarak bildirildiğinde, bir NULL değeri kabul edebilir.
  2. Bir tablo yalnızca birincil anahtara sahip olabilir, oysa bir tabloda birden fazla benzersiz kısıtlama olabilir.
  3. Birincil anahtar tanımlandığında otomatik olarak kümelenmiş bir dizin. Buna karşılık, Eşsiz anahtar kümelenmemiş dizini oluşturur.

Sonuç

Birincil anahtar ve Benzersiz anahtar, her ikisi de, bir sütundaki veya sütun grubundaki benzersiz değerlere sahip bir tablonun satırları için benzersiz bir tanımlayıcı amacına hizmet eder. Bu anahtar kısıtlamalar, her tablonun en fazla bir birincil anahtara sahip olduğu, bir tablonun birincil olmayan birden fazla benzersiz anahtara sahip olduğu durumlarda önemli ölçüde farklılaşır.

Top