Birincil anahtar ve Benzersiz anahtar
Veritabanındaki bir satırı veya satır kümesini tanımlamak veya bunlara erişmek için kullanılabilen bir sütun veya bir sütun kümesine anahtar denir. Benzersiz anahtar, ilişkisel veritabanları bağlamında bir tablodaki bir satırı benzersiz şekilde tanımlayabilen bir anahtardır. Benzersiz bir anahtar, tek bir sütundan veya bir dizi sütundan oluşur. Birincil anahtar, aynı zamanda, bir satırı benzersiz şekilde tanımlayan bir tablodaki sütunların birleşimidir. Ancak benzersiz anahtarın özel bir durumu olarak kabul edilir.
Benzersiz Anahtar Nedir?
Daha önce de belirtildiği gibi, benzersiz anahtar, bir tablodaki bir satırı benzersiz şekilde tanımlayabilen tek bir sütun veya sütun kümesidir. Bu nedenle, benzersiz bir anahtar, iki değeri eşit olmayacak şekilde sınırlandırılmıştır. Önemli bir özellik, benzersiz anahtarların NOT NULL kısıtlamasını zorlamamasıdır. NULL, bir değerin eksikliğini temsil ettiğinden, bir sütunda iki satırda NULL olması, değerlerin eşit olduğu anlamına gelmez. Benzersiz bir anahtar olarak tanımlanan sütun, o sütunda yalnızca tek bir NULL değerine izin verir. Daha sonra bu, söz konusu satırı benzersiz bir şekilde tanımlamak için kullanılabilir. Örneğin, öğrenci bilgilerinin bulunduğu bir tabloda, öğrenci kimliği benzersiz bir anahtar olarak tanımlanabilir. İki öğrenci aynı kimliğe sahip olamayacağından, tek bir öğrenciyi benzersiz şekilde tanımlar. Böylece öğrenci kimliği sütunu, benzersiz bir anahtarın tüm özelliklerini karşılar. Bir veritabanının tasarımına bağlı olarak, bir tablonun birden fazla benzersiz anahtarı olabilir.
Birincil Anahtar Nedir?
Birincil anahtar aynı zamanda bir ilişkisel veritabanı tablosundaki bir satırı benzersiz şekilde tanımlayan bir sütun veya sütunların birleşimidir. Bir tablonun en fazla bir birincil anahtarı olabilir. Birincil anahtar, örtük NOT NULL kısıtlamasını zorlar. Bu nedenle, birincil anahtar olarak tanımlanan bir sütunda NULL değerler olamaz. Birincil anahtar, sosyal güvenlik numarası gibi benzersiz olması garanti edilen tabloda normal bir öznitelik olabilir veya Microsoft SQL Server'daki Global Benzersiz Tanımlayıcı (GUID) gibi veritabanı yönetim sistemi tarafından oluşturulan benzersiz bir değer olabilir. Birincil anahtarlar, ANSI SQL Standard'daki PRIMARY KEY kısıtlaması aracılığıyla tanımlanır. Birincil anahtar, tablo oluşturulurken de tanımlanabilir. SQL, birincil anahtarın bir veya daha fazla sütundan oluşmasına izin verir ve birincil anahtara dahil edilen her sütun örtülü olarak NULL DEĞİL olarak tanımlanır. Ancak bazı veritabanı yönetim sistemleri, birincil anahtar sütunlarının açıkça NULL OLMAMASINI gerektirir.
Birincil anahtar ile Benzersiz anahtar arasındaki fark
Hem birincil anahtar hem de benzersiz anahtar, bir tablodaki bir satırı benzersiz şekilde tanımlayabilen bir veya daha fazla sütun olsa da, bazı önemli farklılıkları vardır. En önemlisi, bir tablonun yalnızca tek bir birincil anahtarı olabilirken birden fazla benzersiz anahtarı olabilir. Birincil anahtar, benzersiz anahtarın özel bir durumu olarak düşünülebilir. Diğer bir fark, birincil anahtarların örtük bir NOT NULL kısıtlamasına sahip olması ve benzersiz anahtarın bu kısıtlamaya sahip olmamasıdır. Bu nedenle, benzersiz anahtar sütunları NULL değerleri içerebilir veya içermeyebilir ancak birincil anahtar sütunları NULL değerleri içeremez.