Veritabanında İlişki Türleri (Bire-Bir, Bire-Çok, Çoka-Çok)

Tablolardaki kayıtların benzersiz veya tekrarlı olmasına göre ilişki türleri değişmektedir. Veritabanında Bire-Bir, Bire-Çok, Çoka-Çok olmak üzere 3 adet ilişki türü vardır. 

1-1 (Bire-bir ilişki):

Her 2 tablodaki bağlantılı alanlar, her 2 tabloda da benzersiz olmak kaydıyla bu ilişki kullanılır. İki tablo arasında kurulan ilişkinin türüne belirlemek için soru sorabiliriz.

Örneğin aşağıdaki öğrenci tablosundan 333 numaralı Ceyda’yı seçtiğimizde kimlik_detay tablosundan kaç kayıt geldiğine bakarız. Eğer karşı tablodan hangi durumda olursa olsun en fazla 1 kayıt geliyorsa bu iki tablo arasında bire bir ilişki var deriz. Tablo içeriklerine bakıldığında zaten bir kişinin yalnızca bir anne kızlık soyadı ve aile sıra numarası vardır. Yani bu ikinci tablodan kayıt sayısı artsa bile her zaman 1 kayıt gelecektir.

1-N (Bire-çok ilişki):

Tablonun birinde birincil anahtar ile diğer tabloda tekrarlı bir alan arasında kurulan ilişki türüdür.

Örneğin öğrenci tablosundan seçtiğimiz Ceyda’nın sınıf tablosundaki eşleşen kaydına baktığımızda yalnızca 1 kayıt gelmektedir. Yani bir öğrenci yalnızca tek bir sınıfta okuyabilir. Bu şekilde baktığımızda bire bir ilişki varmış gibi görünebilir ancak aynı soruyu sınıf tablosunu baz alarak da sormamız gerekir. Sınıf tablosundan 18 numaralı 11B sınıfını seçtiğimizde öğrenci tablosunda eşleşen çok kayıt görmekteyiz. Dolayısıyla bir sınıfta çok öğrenci okuyabilir.

Her iki tabloyu baz alarak soru sorduktan sonra bire çok ve bire bir yanıtlarını alıyorsak bu iki tablo arasında bire çok ilişki vardır.

N-N (Çoka-çok ilişki):

Öğrencilere birçok dersten performans ödevleri verilmektedir. Dolayısıyla bir öğrenci çok dersten ödev alabilmektedir. Aynı şekilde bir dersten de çok öğrenci ödev alabilir. Her iki sorumuzda da bire çok ve bire çok yanıtlarını aldık. Bu durumda bu iki tablo arasında çoka çok ilişki vardır.

Aralarında çoka çok ilişki olan 2 tablo arasında doğrudan bağlantı kurulamaz. İlişki tablosu denilen bir ara tablo ile bu ilişki kurulur. odev adlı yeni bir tablo oluşturulur ve diğer iki tablonun Birincil Anahtarları (Primary Key) eklenerek bağlantı doğru bir şekilde kurulur.

About Seçil ŞEKERCİ HÜSEM

2010 yılından bu yana Bilişim Teknolojileri Öğretmeni olarak meslek liselerinde görev yapmaktayım.

View all posts by Seçil ŞEKERCİ HÜSEM →

4 Comments on “Veritabanında İlişki Türleri (Bire-Bir, Bire-Çok, Çoka-Çok)”

  1. Hocam evvela mükemmel bir site ve mükemmel bir anlatımın var cok teşekkürler.
    C# bir program yapıyorum hocam, demirbaş kaydı gibi
    MSahislar Adlı Tablom var : id<Ad<soyad<tc ..vb Sütunlar var
    Materyaller Adlı Tablomda : id<materyalTuru<marka<model<seri<adet Sutünlar var

    Programda şöyle bir sıkıntım oluyor hocam
    ad soyad tc (1 şahıs)
    Materyal Marka Model Seri Adet
    Materyal Marka Model Seri Adet
    Materyal Marka Model Seri Adet ….gibi bir tuşla KAYDET tuşuyla Şahsın kaç adet materyali varsa (1-5-veya10) ne kadarsa bunları Kaydetmek istiyorum.
    ama yapamıyorum.
    bu konuda yardımınızı isteycektim.
    tekrar emekleriniz için teşekkür ederim.

    1. Teşekkür ederiz.

      Şahıs ve Materyal tablosu arasında ortak bir alana ihtiyaç var. 1 kişinin çok materyali olabileceği için 1-N ilişki kurulmalı. Yani Materyal tablosuna sahis_id eklenerek foreign key olarak tanımlanmalıdır.

  2. 1-1 ilişki kod ile nasıl yazabilirim. Rica etsem küçük bir kod bloğu ile anlatabilir misiniz?(Düzenleme)

    1. Tabloyu oluşturma aşamasında bağlarken kullanacağımız anahtar kelime REFERENCES kelimesidir.


      CREATE TABLE ana (
      ana_no INT IDENTITY(1,1) PRIMARY KEY,
      alan VARCHAR(20)
      )
      CREATE TABLE ayrinti (
      ayrinti_no INT IDENTITY(1,1) PRIMARY KEY REFERENCES ana(ana_no),
      ayrinti VARCHAR(20)
      )

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.