Konuyu Açan #1
SQL Bire Bir İlişki Nasıl Oluşturulur?

Veritabanı tasarımında, tablolara ilişkin ilişkileri doğru kurmak, veri bütünlüğü ve erişim kolaylığı açısından kritik öneme sahiptir. Bire bir ilişki (one-to-one relationship), iki tablo arasında her bir kaydın sadece bir karşılık bulduğu durumu ifade eder ve genellikle belirli varlıkların detaylarını veya özel durumlarını ayırmak amacıyla tercih edilir.

Öncelikle, bire bir ilişki kurmanın temel yollarını anlamak gerekir. İki ana yöntem vardır:
  • Bir tabloda diğer tablonun birincil anahtarını (primary key) yabancı anahtar (foreign key) olarak kullanmak.
  • Her iki tabloda da aynı birincil anahtarı paylaşmak veya bu anahtar üzerinde eş zamanlı olarak indeksleme yapmak.


Örneğin, bir "Kişi" tablosu ve "Pasaport" tablosu düşünelim. Her kişi yalnızca bir pasaport alabilir ve her pasaport yalnızca bir kişiye ait olur. Bu durumda, en yaygın uygulama, "Pasaport" tablosunda "KisiID" isimli yabancı anahtar alanı oluşturmaktır. Bu alan, "Kişi" tablosundaki "ID" alanına referans verir ve aynı zamanda bu alanın hem birincil anahtar hem de yabancı anahtar olması, ilişkiyi bire bir yapar.

Aşağıda temel SQL örneği verilmiştir:

KOD
1234567891011121314
CREATE TABLE Kisi (
  ID INT PRIMARY KEY,
  Ad VARCHAR(50),
  Soyad VARCHAR(50)
);

CREATE TABLE Pasaport (
  KisiID INT PRIMARY KEY,
  PasaportNumarasi VARCHAR(20),
  VerilisTarihi DATE,
  -- FOREIGN KEY ile ilişki kuruluyor
  FOREIGN KEY (KisiID) REFERENCES Kisi(ID)
);


Burada, "Pasaport" tablosundaki "KisiID" alanı, hem primar key hem de foreign key olarak tanımlanmış ve "Kisi" tablosundaki "ID" alanına referans verir. Bu yapı, her pasaportun sadece bir kişiye ait olmasını ve her kişinin en fazla bir pasporta sahip olmasını sağlar.

Bire bir ilişkilerde dikkat edilmesi gereken önemli noktalar:
  • Her iki tabloda da ortak alanın hem primary hem de foreign key olması, ilişkili kayıtlarda tutarlılık sağlar.
  • Bu yapıyı tercih etmek, genişletilebilirlik ve veri bütünlüğü açısından avantaj sağlar.


Sonuç olarak, bire bir ilişkiler, genellikle belirli bir varlık veya detayların ayrı tabloda tutulması gerektiğinde kullanılır ve doğru tasarlandığında veritabanı performansını ve tutarlılığını artırır. Bu yapıyı kurarken, hem anahtarların uygun şekilde tanımlanması hem de referans bütünlüğüne dikkat edilmesi gerekir.

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

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