Temmuz 2009
Bilgisayar Bilimi

İlişkisel Cebir

Merhaba arkadaşlar, bu ayki yazımda sizi ilişkisel cebir hakkında az da olsa fikir sahibi yapacağım:)

Bir veri tabanı yönetim sistemi oluşturmak için bu sistemin davranışlarını belirleyen bir kısım kurallara ihtiyacımız vardır. Örneğin, veritabanı yönetim sisteminde öyle ifadeler olmalıdır ki, kullanıcılar bir ilişkinin satırına veri aktardıklarında, bu aktarım kullanıcının istediği etkiyi yapsın. Bu etkiyi belirlemenin bir yolu veri tabanı yönetim sisteminin nasıl işleyeceğini anlatan bir makale yazmaktır ki kelimeler yeterince net ve açık olmayacaktır, yanlış anlaşılabilecektir. Bunun yerine veritabanları genellikle ilişkisel cebir ( relational algebra ) kullanılarak tanımlanır.

İlişkisel cebir;

İlişkisel cebirdeki operatörler SQL operatörleri ile aynı isimlere sahip olsalar bile, aynı olmak zorunda değildirler. Mesela SELECT ifadesi SQL’de de ilişkisel cebirde de vardır. Fakat kullanımları aynı değildir. Veri tabanı yönetim sistemi kullanıcı her ne yazarsa, yazılanı veritabanına uygulamadan önce alıp, ilişkisel cebir işlemlerine çevirmelidir.

Elimizdeki aşağıdaki ilişkiler bulunsun ve örneklerimizi bunlar üzerinden verelim:

Tablo1:

No   İsim      Soyisim     Yaş     Meslek
1 Ayşe Koşar 12 öğrenci
2 Ali Şanlı 23 öğrenci
3 Dilek Pınar 18 öğrenci

Tablo2:

No   İsim      Soyisim    Yaş     Meslek
1 Ayşe Koşar 12 öğrenci
2 Murat Şanlı 27 avukat
3 Dilek Pınar 18 öğrenci

Seçim (Selection) (σ)

Örnek

σyaş>15 (Tablo1)

No    İsim      Soyisim     Yaş     Meslek
2 Ali Şanlı 23 öğrenci
3 Dilek Pınar 18 öğrenci

Yansıtma (Projection) (π)

Örnek 1

πisim,soyisim (Tablo1)

Isim    Soyisim
Ayşe Koşar
Ali Şanlı
Dilek Pınar

Örnek 2

πisim,soyisim ( σyaş>15 (Tablo1) )

İsim    Soyisim
Ali Şanlı
Dilek Pınar

Birleşim (Union), Kesişim (Intersection), Küme Farkı (Set-Difference)

Örnek

Tablo1 ∪ Tablo2

No     Isim     Soyisim   Yaş     Meslek
1 Ayşe Koşar 12 Öğrenci
2 Ali Şanlı 23 Öğrenci
3 Dilek Pınar 18 Öğrenci
2 Murat Şanlı 27 Avukat

Örnek 2

Tablo1 - Tablo2

No    İsim    Soyisim    Yaş    Meslek
2 Ali Şanlı 23 Öğrenci

Örnek 3

Tablo1 ∩ Tablo2

No    İsim    Soyisim    Yaş    Meslek
1 Ayşe Koşar 12 Öğrenci
3 Dilek Pınar 18 Öğrenci

Kartezyen çarpım ( Cross-product) (χ)

Örnek:

Yeniden adlandırma işlemi:

ρ( C( 1→no1, 2→isim1, 3→soyisim1, 4→yaş1, 5→meslek1), Tablo1χTablo2 )

No1    İsim1    Soyisim1    Yaş1     Meslek1    No     İsim     Soyisim    Yaş    Meslek
1 Ayşe Koşar 12 öğrenci 1 Ayşe Koşar 12 öğrenci
2 Ali Şanlı 23 öğrenci 1 Ayşe Koşar 12 öğrenci
3 Dilek Pınar 18 öğrenci 1 Ayşe Koşar 12 öğrenci
1 Ayşe Koşar 12 öğrenci 2 Murat Şanlı 27 avukat
2 Ali Şanlı 23 öğrenci 2 Murat Şanlı 27 avukat
3 Dilek Pınar 18 öğrenci 2 Murat Şanlı 27 avukat
1 Ayşe Koşar 12 öğrenci 3 Dilek Pınar 18 öğrenci
2 Ali Şanlı 23 öğrenci 3 Dilek Pınar 18 öğrenci
3 Dilek Pınar 18 öğrenci 3 Dilek Pınar 18 öğrenci

Şartlı Bitiştirme (Conditional Join) (⋈c)

R ⋈c S = σc(R χ S)

Örnek

Tablo1 ⋈(Tablo1.yaş > Tablo2.yaş) Tablo2

(no)    (isim)    (soy isim)    (yaş)    (meslek)    (no)    (isim)    (soy isim)    (yaş)    (me.)
2 Ali Şanlı 23 öğrenci 1 Ayşe Koşar 12 Ö.
3 Dilek Pınar 18 öğrenci 1 Ayşe Koşar 12 Ö.
2 Ali Şanlı 23 öğrenci 3 Dilek Pınar 28 Ö.

Eşit Bitiştirme (Equijoin) (⋈e)

Örnek

Tablo1 ⋈isim Tablo2

İsim    (no)    (soyisim)    (yaş)    (meslek)    (no)    (soyisim)    (yaş)    (meslek)
Ayşe 1 Koşar 12 Öğrenci 1 Koşar 12 Öğrenci
Dilek 3 Pınar 18 Öğrenci 3 Pınar 18 Öğrenci

Doğal bitiştirme(Natural Join): Her ortak alanda eşit bitiştirme yapılarak bulunur.

Örnek:

Tablo1 ⋈ Tablo2

No   İsim    Soyisim    Yaş    Meslek
1 Ayşe Koşar 12 Öğrenci
3 Dilek Pınar 18 Öğrenci

Bölme (Division)

Birincil işlem olarak kabul edilmez, fakat aşağıdaki gibi bir sorguyu açıklamak için kullanılır:

“Tüm elbiselerden almış bayanları bulun.”

A’nın 2 x ve y isimli alanı, B’nin yalnız y isimli bir alanı olsun.

Örnek

Tablo3

İsim    Elbise
Ayşe Sarı
Dilek Mor
Ayşe Yeşil
Dilek Kırmızı
Fatma Lacivert
Ayşe Lacivert
Ayşe Mor
Ayşe Kırmızı

Tablo4

Elbise
Sarı
Mor
Yeşil
Kırmızı
Lacivert

Tablo3 / Tablo4

İsim
Ayşe

Umarım yazım ilginizi çekmiştir. Bilgisayar bilimine ilginizin devamı dileğiyle...




Çiğdem Avcı
- 2 -