Konuyu Açan #1
SQL Composite Primary Key Kullanımı

Veritabanı tasarımında, özellikle ilişkisel veritabanlarında, bir tablonun benzersizliğini sağlamak için kullanılan anahtarlar kritik öneme sahiptir. Bunlardan biri de, birden fazla sütunun birleşimiyle oluşan Composite Primary Key'dir. Bu yapı, tek bir sütun yeterli olmadığı durumlarda, birden fazla alanın birlikte benzersizliği garanti ettiği çözümdür.

Birincil anahtar (Primary Key), tablo içindeki her kaydı benzersiz şekilde tanımlar. Ancak bazı durumlarda, tek bir sütun yerine, birkaç sütunun kombinasyonu kullanılarak eşsizlik sağlanması gerekebilir. Mesela, bir "Sipariş Detayları" tablosunda, her bir ürünün hem sipariş numarası hem de ürün kodu ile tanımlanması durumunda, her ikisinin birleşimi Primary Key olmalıdır. Çünkü, yalnızca ürün kodu veya sipariş numarası, tablonun bütünlüğü için yeterli olmayabilir.

Composite Primary Key kullanımı, SQL’de şu şekilde tanımlanır:

  1. Tablo Oluşumu

CREATE TABLE SiparisDetay (
SiparisID INT,
UrunKodu VARCHAR(20),
Miktar INT,
-- diğer alanlar
PRIMARY KEY (SiparisID, UrunKodu)
);

Burada, PRIMARY KEY (SiparisID, UrunKodu) ifadesi, her iki sütunun birleşiminin benzersiz olmasını sağlar. Yani, aynı sipariş içindeki aynı ürün tekrar kaydedilemez; her kombinasyon bir kez bulunabilir.

  1. Bütünleşik Anahtarın Avantajları

  • Çok alanlı benzersizlik sağlar.
  • Normalizasyon ilkelerine uygun olarak, özellikle çok değerli ilişkileri temsil eder.
  • Birden fazla sütun kullanımıyla, karmaşık ilişkilerde veri bütünlüğü artırılır.


  1. Dikkat Edilmesi Gerekenler

  • Composite Primary Key, indeksleme açısından performansa olumlu veya olumsuz etkide bulunabilir; bu nedenle sorgu optimizasyonu önemlidir.
  • Bu anahtar yapısı, yabancı anahtar ilişkilerinde de kullanılırsa, ilişkili tablolarda da Composite Key'ler referans alınmalıdır.


Sonuç olarak, Composite Primary Key kullanımı, veritabanı tasarımında çok değerli ve güçlü bir araçtır. Ancak, tasarım aşamasında gereksiz karmaşıklığa yol açmamak adına dikkatli kullanmak gerekir. Bu yöntem, ilişkisel veritabanlarının temel taşlarından biridir ve doğru uygulandığında veri bütünlüğü ve tutarlılığı sağlar.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 1, Üyeler: 1, Misafirler: 0)
Toplam: 1 (üyeler: 1, misafirler: 0)
0 alıntı seçildi