ben

OMÜ , Bilgisayar Mühendisliği, 13'

7 Şubat 2022 Pazartesi

DDL Tablo ilişkileri

Tablolar arası ilişkileri, tablodaki verileri birbirine bağlayarak daha anlamlı bir veri kümesine dönüştürmek için kullanırız. Verilerin birbirleri ile ilgililik durumuna göre, ilişki türü de değişkenlik gösterebilir. Üç çeşit ilişki çeşidi var; 1-1 (birebir), 1-n(bireçok), n-n(çokaçok). Peki iki tablo arasındaki ilişkinin hangisi olduğuna nasıl karar vereceğiz?


Burada her iki tabloya da soru sorup, aldığımız cevaplara göre ilişki türünü belirleyeceğiz.

Soru1: Tablo 1 deki bir veri tablo 2 de birden fazla veriye karşılık gelirmi?
Soru 2: Tablo 2 deki bir veri tablo 1 de birden fazla veriye karşılık gelirmi?

Soru1 in cevabı Hayır, Soru2 nin cevabı Hayır ise : ilişki türü bire bir ilişkidir.
Soru1 in cevabı Hayır, Soru2 nin cevabı Evet ise : ilişki türü bire çok ilişkidir.
Soru1 in cevabı Evet, Soru2 nin cevabı Hayır ise : ilişki türü bire çok ilişkidir.
Soru1 in cevabı Evet, Soru2 nin cevabı Evet ise : ilişki türü çoka çok ilişkidir.

Örnek: Öğrenci ve Ders tablolar arasındaki ilişkiye karar verelim. Bir öğrenci birden fazla ders alabilirmi? Cevap: Evet. Bir dersi birden fazla öğrenci alabilirmi? Cevap: Evet. Bu durumda ilişkimiz çoka çok olacaktır. Şimdi bu ilişkileri PostgreSql e nasıl kodlayacağımıza bakalım.

1. Bire- Bir İlişki:

Örnek Tablolar: Kullanıcı ve Profil tablosu

create table kullanici(
  kullanici_id serial primary key,
  kulanici_adi varchar(20) not null unique ,
  sifre char(5) default '11111'
);
Create table profil(
   profil_id serial primary key,
   adsoyad varchar(90),
   telefon char(10) unique,
   cinsiyet char(1) check(cinsiyet='K' or cinsiyet='E'),
   kullanici_id integer unique references kullanici(kullanici_id)
);

1. Bire- Çok İlişki:

Örnek Tablolar: Kullanıcı ve Araba tablosu

create table kullanici(
  kullanici_id serial primary key,
  kulanici_adi varchar(20) not null unique ,
  sifre char(5) default '11111'
);
Create table araba(
   araba_id serial primary key,
   marka varchar(90),
   model varchar(30),
   kullanici_id integer references kullanici(kullanici_id)
);

1. Çoka- Çok İlişki:

Örnek Tablolar: Ogrenci ve Ders tablosu

Create table ogrenci(
   ogrenci_id serial primary key,
   adsoyad varchar(90),
   telefon char(10) unique,
   cinsiyet char(1) check(cinsiyet='K' or cinsiyet='E')
);
Create table ders(
   ders_id serial primary key,
   ders_kod char(5),
   ders varchar(30)
);
Create table ogrenciders(
   od_id serial primary key,
   ogrenci_id integer references ogrenci(ogrenci_id ),
   ders_id integer references ders(ders_id )
);

Diyaram için veritabanınıza sağ tıklayarak GENERATE ERD ile tabloları ve ilişkilerinizi görebilirsiniz.




Hiç yorum yok: