İLİŞKİSEL CEBİR
İlişkisel cebir (Relational Algebra) biçimsel bir sorgu dili olarak tanımlanabilir. Bu dil yardımıyla birçok sorgulama işlemi tanımlanabilir. Örneğin, belirli kayıtların seçilmesi, belirli sütunların sorgu sonuçlarına dahil edilmesi gibi işlemler ilişkisel cebir ifadeleriyle kolayca ortaya konabilir.
İlişkisel cebir, bir veya iki ilişkiyi girdi olarak alıp, sonuç olarak yeni bir ilişki üreten bir dizi işlemden oluşur. Ancak bu sorgulamalar sadece biçimsel olarak yapılır. Yani bu sorgulama dili için bir yorumlayıcı veya derleyici yoktur. İlişkisel cebrin şu temel işlemleri bulunmaktadır : Seçim (Selection), Atma (Projection), Kartezyen Çarpım (Cartesian Product), Birleşim (Union), Kesişim (Intersection), Fark (Difference), Doğal Birleştirme (Join), Bölme (Division).
Seçim İşlemi
Belirli bir ilişkiden bazı kayıtları seçerek alma işlemidir.
σseçim kriteri (TABLO)
Seçim kriterinde karşılaştırma işleçleri kullanılır : = , ≠ , < , > , ≤ , ≥ ,
Mantıksal işleçler : ve için Ù , veya için Ú
Örnek
Müşteri tablosu
Müşteri adı No İlçe Şehir Bakiye
Ahmet 2520 Beşiktaş İstanbul 100
Faruk 6345 Beşiktaş İstanbul 150
Ali 6755 Şişli İstanbul 250
Veli 3054 Kızılay Ankara 100
Zeki 2521 Ulus Ankara 500
Beşiktaş ilçesindeki müşterileri seçmek : σİlçe=”Beşiktaş” (MÜŞTERİ)
Sorgu sonucu : Müşteri adı No İlçe Şehir Bakiye
Ahmet 2520 Beşiktaş İstanbul 100
Faruk 6345 Beşiktaş İstanbul 150
İlçesi Beşiktaş ve bakiye miktarı 100’den büyük olan müşterileri seçmek :
σİlçe=”Beşiktaş” Ù Bakiye>100 (MÜŞTERİ)
Sorgu sonucu : Müşteri adı No İlçe Şehir Bakiye
Faruk 6345 Beşiktaş İstanbul 150
Atma İşlemi
Belirli bir ilişkiden bazı sütunları seçerek alma işlemidir.
Πsütun isimleri (TABLO)
Örnek
Sadece müşteri adı ve şehir bilgileri isteniyor.
Πmüşteri adı, şehir (MÜŞTERİ)
Sorgu sonucu : Müşteri adı Şehir
Ahmet İstanbul
Faruk İstanbul
Ali İstanbul
Veli Ankara
Zeki Ankara
Bakiyesi 200’den fazla olan müşterilerin adı ve bakiyesi?
Πmüşteri adı, bakiye (σBakiye>200 (MÜŞTERİ))
Müşteri adı Bakiye
Ali 250
Zeki 500
Bakiyesi 150-250 arasında olan veya Kızılay’da oturan müşterilerin adı, bakiyesi, ilçesi?
Πmüşteri adı, bakiye, ilçe (σ Bakiye≥150 Ù Bakiye≤250 ? ilçe=”Kızılay” (MÜŞTERİ))
Müşteri adı Bakiye İlçe
Faruk 150 Beşiktaş
Ali 250 Şişli
Veli 100 Kızılay
Çarpma İşlemi
Belirli iki ilişkiden mümkün olabilecek tüm çiftleri elde ederek tek bir ilişki biçiminde göstermek için kartezyen çarpım oluşturulur.
Tablo1 x Tablo2
Örnek
ÖĞRENCİ tablosu DERSLER tablosu
Öğrenci Bölüm Ders Saat
Burak Bilgisayar Matematik 3
Begüm İktisat İstatistik 2
Dilay İktisat
Selin İşletme
Seray Hukuk
ÖĞRENCİ x DERSLER (Bu ifade Öğrenci ve Dersler tablolarından elde edilebilecek tüm ikilileri ifade eder)
Öğrenci Bölüm Ders Saat
Burak Bilgisayar Matematik 3
Begüm İktisat Matematik 3
Dilay İktisat Matematik 3
Selin İşletme Matematik 3
Seray Hukuk Matematik 3
Burak Bilgisayar İstatistik 2
Begüm İktisat İstatistik 2
Dilay İktisat İstatistik 2
Selin İşletme İstatistik 2
Seray Hukuk İstatistik 2
İktisat bölümünde okuyan öğrencilerin tüm dersleri alması durumunda ilgili sorgu :
σBölüm=”İktisat” (ÖĞRENCİ x DERSLER)
Öğrenci Bölüm Ders Saat
Begüm İktisat Matematik 3
Dilay İktisat Matematik 3
Begüm İktisat İstatistik 2
Dilay İktisat İstatistik 2
İktisat bölümünde okuyan öğrencilerin tüm dersleri alması durumunda yalnızca adları ve aldıkları derslerin adlarını seçmek için :
ΠÖğrenci,Ders (σBölüm=”İktisat” (ÖĞRENCİ x DERSLER))
Öğrenci Ders
Begüm Matematik
Dilay Matematik
Begüm İstatistik
Dilay İstatistik
Birleşim İşlemi
İki ilişkiden birinde veya herikisinde birden bulunan kayıtların seçilmesi için yapılan işlemdir. È işareti ile gösterilir.
Örnek
KREDİ tablosu
Müşteri Bakiye İlçe
Burak 100 Beşiktaş
Begüm 200 Şişli
Sezin 150 Ulus
MEVDUAT tablosu
Müşteri Bakiye İlçe
Burak 50 Beşiktaş
Selin 125 Beşiktaş
Sezin 300 Ulus
Begüm 100 Ulus
Bankanın Beşiktaş şubesinde mevduat ve/veya kredi hesabı bulunan kişileri seçmek ve sadece isimlerini sunmak için :
Π Kredi.Müşteri (σİlçe=”Beşiktaş” (KREDİ)) È Π Mevduat.Müşteri (σİlçe=”Beşiktaş” (MEVDUAT))
Müşteri
Burak
Selin
Kesişim İşlemi
İki ilişkide de bulunan kayıtların belirlenmesi için kullanılır. Ç işareti ile gösterilir.
Örnek
Bankanın Beşiktaş şubesinde hem mevduat hem de kredi hesabı bulunan kişileri seçmek ve sadece isimlerini sunmak için :
Π Kredi.Müşteri (σİlçe=”Beşiktaş” (KREDİ)) Ç Π Mevduat.Müşteri (σİlçe=”Beşiktaş” (MEVDUAT))
Müşteri
Burak
Fark İşlemi
İki ilişkiden birinde bulunup diğerinde bulunmayan kayıtların seçilmesi işlemidir. - işareti ile gösterilir.
Örnek
Bankanın Ulus şubesinde mevduatı olup bu şubede kredisi olmayan müşterilerin isimlerini sunmak için :
Π Mevduat.Müşteri (σİlçe=”Ulus” (MEVDUAT)) - Π Kredi.Müşteri (σİlçe=”Ulus” (KREDİ))
Müşteri
Begüm
Doğal Birleştirme İşlemi
(A,B) ve (B,C) niteliklerine sahip iki ayrı ilişkinin (A,B,C) niteliklerine sahip tek bir ilişki haline dönüştürülmesine “doğal birleştirme” adı verilir. Birleştirme ilişkili sütunlar üzerinden gerçekleştirilir.
Örnek
KREDİ tablosu
Adı Bakiye Şube
Burak 100 Beşiktaş
Begüm 200 Şişli
MÜŞTERİ tablosu
Müş_adı İlçe İl
Burak Beşiktaş İstanbul
Begüm Kadıköy İstanbul
Selin Bakırköy İstanbul
Sezin Şişli İstanbul
Dilay Kızılay Ankara
Kredi almış müşterilerin adı, bakiyesi, oturduğu il?
Bölme İşlemi
İkili ve birli iki ayrı ilişkiyi karşılaştırarak, birli olan ilişkiye eş olan ikinci ilişkinin değerlerinden oluşan yeni bir ilişki oluşturulabilir. : işareti ile gösterilir.
Örnek
Bir bankanın İstanbul ilindeki bütün şubelerinde mevduat hesabı olan müşterilerini öğrenmek.
ŞUBE tablosu
Şube adı İl
Beşiktaş İstanbul
Şişli İstanbul
Yayla İstanbul
Kızılay Ankara
Ulus Ankara