Beyza'nın Blogu

Veri Tabanı Yönetim Sistemleri – İlişkisel cebir

İlişkisel Cebir Nedir ?

İlişki Nedir ?

Birden fazla tablo üzerinde tanımlı olan bağlantıdır. Bu tanım tabloların birisinden verinin alınması olabilir, birkaç tanesinin birleştirilerek tek bir veri oluşturulması olabilir.

Kısaca n tane tablo üzerinde bir ilişki tanımlayıp bu tabloları harmanlayıp sonrasında harmanlanmış tablolardan veri elde etmek diyebiliriz.

İlişkisel cebirden kasıt tanımlı olan ilişki üzerinde bazı operatörler tanımlayabilmektir.

İlişkide tablodaki sütunlar yani column’lar attributes olarak ve satırlar yani row’lar tuples olarak ifade edilmiş.

Anahtar (Keys): Bir tablodaki herhangi bir değeri yani satırı ifade eden özelliktir. Bu özelliğin tabloyu tanımlayabilmesi gerekmektedir.

  • Superkey: Bir veya daha fazla sütunun birleşerek, bir tablo satırını benzersiz şekilde tanımlama yeteneğidir. Her satır için farklı olmalıdır.
  • Candidate Key (Aday Anahtar): Superkey’ler arasından, en küçük bileşenlerle (alt kümeyle) bir satırı tanımlayabilen anahtardır. Yani, gereksiz sütunlardan arındırılmış bir superkey’dir.
  • Primary Key: Aday anahtarlar arasından seçilen ve bir tablodaki her satırı benzersiz olarak tanımlayan anahtardır. Her tablonun bir primary key’i olmalıdır.

İLİŞKİSEL CEBİR OPERATÖRLERİ

σ : Seçme (selection) işlemi
π : Projeksiyon (projection) işlemi
∪ : Küme birleşimi (set union) işlemi
∩ : Küme kesişimi (set intersection) işlemi
− : Küme farkı (set difference) işlemi
× : Kartezyen çarpım (cartesian product) işlemi
ρ : Yeniden adlandırma (rename) işlemi
∩ : Küme kesişimi (set intersection) işlemi
⋈ : Doğal birleştirme (natural join) işlemi
÷ : Bölme (division) işlemi
← : Atama (assignment) işlemi

OGRENCI adında bir tablomuz var ve bu tablo üzerinde ilişkisel cebir operatörlerini kullanarak işlemler yapacağız.


Seçme (selection) işlemi

Örnek: Bilgisayar Mühendisliği bölümünde, ortalaması 3.0’dan yüksek olan öğrencileri seçmek.

  • σ(ORTALAMA > 3.0 ∧ BOLUM = ‘Bilgisayar Mühendisliği’)(OGRENCI)


Projeksiyon (projection) işlemi

Örnek: Öğrenci adlarını ve ortalamalarını listelemek.

  • π(ADI, ORTALAMA)(OGRENCI)

Küme birleşimi (set union) işlemi

Örnek: Kadın ve erkek öğrencilerin adlarını birleştirmek.

  • (π(ADI)(σ(CINSIYET = ‘KADIN’)(OGRENCI))) ∪ (π(ADI)(σ(CINSIYET = ‘ERKEK’)(OGRENCI)))

Küme kesişimi (set intersection) işlemi

Örnek: Kadın öğrencilerle ortalaması 3.0’dan büyük olan öğrencilerin kesişimini bulmak.

  • (π(ADI)(σ(CINSIYET = ‘KADIN’)(OGRENCI))) ∩ (π(ADI)(σ(ORTALAMA > 3.0)(OGRENCI)))

Küme farkı (set difference) işlemi

Örnek: Erkek öğrencilerden ortalaması 2.5’ten küçük olanları çıkarmak.

  • (π(ADI)(σ(CINSIYET = ‘ERKEK’)(OGRENCI))) − (π(ADI)(σ(ORTALAMA < 2.5)(OGRENCI)))

Kartezyen çarpım (cartesian product) işlemi

Örnek: Öğrenci adları ve kaldıkları yerlerle birlikte tüm kombinasyonları oluşturmak.

  • π(ADI)(OGRENCI) × π(IKAMET)(OGRENCI)

Yeniden adlandırma (rename) işlemi

Örnek: “ADI” sütununu “ISIM” olarak yeniden adlandırmak.

  • ρ(ISIM, SOYADI, DOGUM_TARIHI, E_POSTA, SINIF, IL, CINSIYET, BOLUM, ORTALAMA, IKAMET, AYLIK_HARCAMA, KULUP, CAP, YANDAL)(OGRENCI)

Küme kesişimi (set intersection) işlemi

Örnek: Kadın öğrencilerle ortalaması 3.0’dan büyük olan öğrencilerin kesişimini bulmak.

  • R1=σ(CINSIYET=KADIN)(OGRENCI)
    R2=σ(ORTALAMA>3.0)(OGRENCI)
  • Son=R1R2

Doğal birleştirme (natural join) işlemi

Örnek: Öğrenci adları ve kaldıkları yerleri doğal birleştirmek.

  • Tablo1 ⋈ Tablo2

Bölme (division) işlemi

Örnek: Her ilde en az bir erkek öğrenci olan illeri listelemek.

  • π(IL)(σ(CINSIYET = ‘ERKEK’)(OGRENCI)) ÷ π(IL)(OGRENCI)

Atama (assignment) işlemi

Örnek: Ortalama 3.0’dan yüksek olan öğrencileri “YuksekBasari” adlı bir tabloya atamak.

  • YuksekBasari ← σ(ORTALAMA > 3.0)(OGRENCI)
Scroll to Top