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
σyaş>15 (Tablo1)
No İsim Soyisim Yaş Meslek
2 Ali Şanlı 23 öğrenci
3 Dilek Pınar 18 öğrenci
πisim,soyisim (Tablo1)
Isim Soyisim
Ayşe Koşar
Ali Şanlı
Dilek Pınar
πisim,soyisim ( σyaş>15 (Tablo1) )
İsim Soyisim
Ali Şanlı
Dilek Pınar
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
Tablo1 - Tablo2
No İsim Soyisim Yaş Meslek
2 Ali Şanlı 23 Öğrenci
Tablo1 ∩ Tablo2
No İsim Soyisim Yaş Meslek
1 Ayşe Koşar 12 Öğrenci
3 Dilek Pınar 18 Öğrenci
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
R ⋈c S = σc(R χ S)
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 Ö.
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.
Tablo1 ⋈ Tablo2
No İsim Soyisim Yaş Meslek
1 Ayşe Koşar 12 Öğrenci
3 Dilek Pınar 18 Öğrenci
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.
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...
| Yazarın Üslubunu Beğendiniz mi?: | ||
| Yazının İçeriği Yeterli mi?: | ||
| Konu İlginizi Çekti mi?: |
Bu derginin içeriği, Creative Commons lisansı ile korunmaktadır.
Kaynak göstermek ve link vermek şartıyla ticari olmayan amaçlarla yazılarımızı kullanabilirsiniz.
©2007-2008 ODTÜ Bilgisayar Topluluğu