2. İlişkisel cebir,
• İlişkisel veri tabanları üzerinde yapılan sorgulama işlemlerinin
matematiksel olarak modellenmesi ve matematik işlemler ile
çözülmesi için kullanılır.
• İlişkisel model ile birlikte kullanılan veri tabanı sorgulama
dilidir.
• SQL’in alt konusudur.
3. • Veri tabanı yönetim sistemi yazılan ifadeleri veritabanına
uygulamadan önce ilişkisel cebir işlemine çevirmektedir.
SQL İfadesi
İlişkisel Cebir İfadesi
Sorgu Çalıştırma Planı
Çalıştırılabilir Kod
4. İlişkisel cebir temel operatörleri;
• Seçim(Selection),
• Atma(Projection),
• Kartezyen çarpım(Cross-Product),
• Birleşim(Union),
• Küme Farkı(Set-difference)
• Kesişim(Intersection),
• Doğal birleştirme(Join),
• Bölme(Division),
• Yeniden adlandırma(Renamig)
İlişkisel cebirde her operatör geriye bir ilişki döndürdüğüne göre
birden fazla operatör aynı sorguda kullanılabilir.
5. Seçme işlemi σ
• Bir ilişkiden, belirlenen seçim kriterine göre satırlar içerisinden
istenilenlerin seçilerek gösterilmesi işlemini gerçekleştirir.
• Seçim işlemi σ simgesi ile gösterilir.
• σ seçim kriteri ( Tablo_Adi) şeklinde kullanılır.
• Seçim kriteri yazılırken tüm programlama dillerinde ve SQL’de
kullanılan karşılaştırma operatörleri (=, <, >, ≤, ≥, ≠) kullanılır.
• Birden fazla seçim belirtilirken " ve " mantıksal operatörüyle
bağlanacaksa " Ʌ " , " veya " ile bağlanacaksa " V " operatörü
ile kullanılır.
• " ve " ile bağlanan kriterlerin tamamının sağlanması gerekirken
" veya " ile bağlanan kriterlerden bir tanesinin sağlanması
yeterlidir.
6. Seçme örneği;
Ogr_No Ogr_Adi Bolum
2010001 Turgut Özseven Bilgisayar
2010002 Ahmet Kaçar Bilgisayar
2010002 Mustafa Yıldız Elektrik
σ bolum = " Bilgisayar " (ÖĞRENCİ)
Ogr_No Ogr_Adi Bolum
2010001 Turgut Özseven Bilgisayar
2010002 Ahmet Kaçar Bilgisayar
7. Atma İşlemi ∏
• Bir ilişkide istenmeyen sütunları gizlemek için kullanılır. Seçim
işlemiyle birlikte de kullanılabilir.
• Atma işlemi ∏ simgesi ile gösterilir.
• ∏ sütun isimleri (Tablo_Adi) şeklinde kullanılır.
8. Atma örneği;
Ogr_No Ogr_Adi Bolum
2010001 Turgut Özseven Bilgisayar
2010002 Ahmet Kaçar Bilgisayar
2010002 Mustafa Yıldız Elektrik
∏ Ogr_No, Bolum (ÖĞRENCİ)
2010003 Elif Kara Elektrik
Ogr_No Bolum
2010001 Bilgisayar
2010002 Bilgisayar
2010002 Elektrik
2010003 Elektrik
9. Seçme ve Atma Örneği;
Ogr_No Ogr_Adi Bolum
2010001 Turgut Özseven Bilgisayar
2010002 Ahmet Kaçar Bilgisayar
2010002 Mustafa Yıldız Elektrik
2010003 Elif Kara Elektrik
∏ Ogr_No, Ogr_Adi (σ bolum = " Bilgisayar " (ÖĞRENCİ))
Ogr_No Ogr_Adi
2010001 Turgut Özseven
2010002 Ahmet Kaçar
2010002 Mustafa Yıldız
2010003 Elif Kara
10. Kartezyen Çarpım Χ
• İki ilişkiden elde edebilecek tüm çiftlerin tek bir ilişki şeklinde
gösterilmesidir.
• Kartezyen çarpım Χ simgesi ile gösterilir.
• Tablo1 Χ Tablo2 şeklinde gösterilir.
• Kartezyen çarpımı sonucu oluşan ilişkinin satır sayısı kaynak
olarak kullanılan ilişkileri satır sayılarının çarpımlarına eşittir.
A
B
C
X
Y
A X
A Y
B X
B Y
C X
C Y
11. Kartezyen Örneği;
ÖĞRENCİ Χ DERS
Ogr_No Ogr_Adi Bolum
2010001 Turgut Özseven Bilgisayar
2010002 Ahmet Kaçar Bilgisayar
2010002 Mustafa Yıldız Elektronik
Ders_ID Ders_Adi
BT103 Veritabanı
BT413 Donanım
Ogr_No Ogr_Adi Bolum Ders_ID Ders_Adi
2010001 Turgut Özseven Bilgisayar BT103 Veritabanı
2010002 Ahmet Kaçar Bilgisayar BT103 Veritabanı
2010002 Mustafa Yıldız Elektrik BT103 Veritabanı
2010001 Turgut Özseven Bilgisayar BT413 Donanım
2010002 Ahmet Kaçar Bilgisayar BT413 Donanım
2010002 Mustafa Yıldız Elektrik BT413 Donanım
12. Birleşim ⋃
• İki ilişkide de bulunan tüm satırları almak için kullanılır.
• Belirtilen iki ilişkide aynı sayıda sütuna sahip olmalıdır ve
karşılıklı sütunlar aynı tipte olmalıdır.
• İki ilişkide aynı satırlar varsa bunlardan sadece bir tanesi alınır.
• Birleşim ⋃ simgesi ile gösterilir.
• TABLO1 ⋃ TABLO2 şeklinde kullanılır.
A
D
B
K
C
E
F
1.Küme ⋃ 2.Küme :
A,B,C,D,E,F,K
13. Birleşim Örneği;
Tablo1 ⋃ Tablo2
Sira_no Adi Soyadi
1 Ahmet Demir
2 Büşra Uçar
3 Fuat Cebe
Sira_no Adi Soyadi
1 Murat Barut
2 Ayşe Kaya
Sira_no Adi Soyadi
1 Ahmet Demir
2 Büşra Uçar
3 Fuat Cebe
1 Murat Barut
2 Ayşe Kaya
15. Küme Farkı −
• İki ilişkiden birisinde bulunup diğerinde bulunmayan satırları
bulmak için kullanılır.
• Belirtilen iki ilişkide aynı sayıda sütuna sahip olmalıdır ve
karşılıklı sütunlar aynı tipte olmalıdır.
• Küme farkı − ile gösterilir.
• TABLO1 − TABLO2 şeklinde kullanılır.
A
D
B
K
C
E
F
1.Küme − 2.Küme : A,B,C
2.Küme − 1.Küme : F,E
17. Kesişim ⋂
• İki ilişkiden her ikisinde de bulunan satırları almak için
kullanılır.
• Belirtilen iki ilişkide aynı sayıda sütuna sahip olmalıdır ve
karşılıklı sütunlar aynı tipte olmalıdır.
• Küme farkı ⋂ sembolü ile gösterilir.
• Tablo1 ⋂ Tablo2 şeklinde kullanılır.
A
D
B
K
C
E
F
1.Küme ⋂ 2.Küme : D,K
18. Kesişim Örneği;
sira_no adi soyadi
1 Ahmet Demir
2 Büşra Uçar
3 Aydın Cebe
sira_no adi soyadi
1 Ahmet Demir
2 Büşra Uçar
3 Aydın Kara
Tablo1 ⋂ Tablo2
sira_no adi soyadi
1 Ahmet Demir
2 Büşra Uçar
∏ tablo1.adi(Tablo1) ⋂ ∏ tablo2.adi (Tablo2)
adi
Ahmet
Büşra
Aydın
19. Bölme ∶
• Elde edilen iki ilişkiyi karşılaştırarak, birinci ilişkide ikinci
ilişkinin tüm elemanlarını kapsayan satırları bulmak için
kullanılır.
• Örneğin, öğrenci ve ders tablosu için tüm dersleri alan
öğrencileri bulmak için kullanılabilir.
• Bölme ∶ sembolü ile gösterilir.
• Tablo1 : Tablo2 şeklinde kullanılır.
20. Bölme Örneği;
Sira_no Ad_Soyad Yaş
1 Ahmet Demir 25
2 Büşra Uçar 25
3 Aydın Cebe 45
Yaş
25
Sira_no Ad_Soyad
1 Ahmet Demir
2 Büşra Uçar
Personel ∶ Yaş
21. Birleştirme ⋈
• Ortak sütunlara sahip ilişkilerin birleştirilerek tek bir ilişkiye
dönüştürülmesine birleştirme denilir.
• Birleştirilecek ilişkilerin ortak sütunlara sahip olması gerekir.
• Kullanılan ortak anahtar sütunlar birleştirmenin temelini
oluşturur.
A 1
B 2
C 1
D 2
E 3
1 ABC
2 DEF
3 GHI
Ortak Sütunlar
A 1 ABC
B 2 DEF
C 1 ABC
D 2 DEF
E 3 GHI
22. Şartlı Birleştirme
• Şartlı birleştirmede, birleştirilen ilişkiler arasındaki ortak
sütunlar için koşul ifadesi belirtilir.
• Elde edilen sonuç ilişkisi Kartezyen çarpıma benzer ama koşul
ifadesinden dolayı Kartezyen çarpımından daha az satır içerir.
• Şartlı birleştirme ⋈c şeklinde gösterilir.
• Tablo1 ⋈c Tablo2 şeklinde kullanılır. " c " koşul ifadesi için
kullanılır.
24. Eşit Birleştirme
• Eşit birleştirmede, birleştirilen ilişkiler arasındaki ortak
sütunlar için eşitlik ifadesi belirtilir.
• Elde edilen sonuç ilişkisi Kartezyen çarpımına benzer ama
ortak sütunlardan sadece bir tanesi vardır.
• Eşit birleştirme ⋈e şeklinde gösterilir.
• Tablo1 ⋈e Tablo2 şeklinde kullanılır. " e " eşitlik ifadesi için
kullanılır.
26. Doğal Birleştirme
• Doğal birleştirmede, birleştirilen ilişkiler arasında herhangi bir
koşul ifadesi yazmaya gerek yoktur.
• Ortak sütunlar otomatik birleştirilir ve tek bir sütun olarak
gösterilir. Ortak sütun sayısı bir tane ise eşit birleştirmeyle aynı
sonucu verecektir.
• Doğal birleştirme sayesinde diğer birleştirmelerde olan satır
tekrarı oluşmayacaktır.
• Doğal birleştirme ⋈ sembolü ile gösterilir.
• Tablo1 ⋈ Tablo2 şeklinde kullanılır.
27. Örnek:
Ogr_no Ogr_adi B_kod
2010001 Turgut Özseven BTP
2010002 Ahmet Kaçar ELK
2010002 Mustafa Yıldız ELKT
2010003 Elif Kara BTP
2010004 Mustafa Çağlayan MKN
B_kod Bölüm
BTP Bilgisayar
ELK Elektrik
ELKT Elektronik
MKN Makine
Öğrenci ⋈ Bölüm
Ogr_no Ogr_adi B_kod Bölüm
2010001 Turgut Özseven BTP Bilgisayar
2010002 Ahmet Kaçar ELK Elektrik
2010002 Mustafa Yıldız ELKT Elektronik
2010003 Elif Kara BTP Bilgisayar
2010004 Mustafa Çağlayan MKN Makine
28. Dışsal Birleştirme
• Normal birleştirme işlemlerinde ilişkili olmayan satırlar
gösterilmemektedir.
• Burada ilişkili olmayan satırlarda gösterilecektir ama ilişkisi
olmayan satırlar için NULL değer içerecektir.
• Üç tür dışsal birleştirme vardır;
Sol Birleştirme,
Sağ Birleştirme,
Tam Birleştirme.
29. Sol Birleştirme
• Bu tür birleştirme kullanıldığında birleştirme sembolünün
solundaki ilişki belirleyicidir ve bunun diğer ilişkiyle bir ilişkisi
bulunsun veya bulunmasın tüm satırları listelenecektir.
Sağındaki ilişkide ise sadece ilişkili satırlar listelenecektir. Eğer
bir ilişki bulunmuyorsa NULL değeri içerecektir.
ile gösterilir.
Sağ Birleştirme
• Bu tür birleştirme kullanıldığında birleştirme sembolünün
sağındaki ilişki belirleyicidir ve bunun diğer ilişkisi bulunsun
veya bulunmasın tüm satırları listelenecektir. Solundaki ilişkide
ise sadece ilişkili satırlar listelenecektir. Eğer bir ilişki
bulunmuyorsa NULL değeri içerecektir.
ile gösterilir.
Tam Birleştirme
• Sol ve Sağ Birleştirme işleminin birleştirme kümesidir. Yani her
ilişkide tüm satırlar listelenecek ve ilişkisi olamayanlar NULL
değer içerecektir. İle gösterilir.
30. Yarı Birleştirme
• Doğal birleştirmeye benzer bir şekilde çalışır. Farklı olarak
sadece belirtilen ilişkilerden bir tanesinin sütun bilgilerini
içerir, diğer ilişkinin bilgilerini içermez.
ile gösterilir.
Anti-Join
• Anti-Join, yarı birleştirme gibi ilişkilerden birisinde bulunan
sütunları gösterir ama işlev olarak tam tersidir. İki ilişki
arasında bağ bulunmayan satırları belirlemek için kullanılır.
ile gösterilir.
31. Yeniden Adlandırma ρ
• Yeniden adlandırma, ilişkiler veya ilişkilerin içerdiği sütunlara
takma isim vermek için kullanılır.
• Birleştirme veya Kartezyen çarpım sonucu elde edilen aynı
isimli sütunların isimleri karışıklığı önlemek için değiştirilebilir
veya ilişkisel cebir sonucu elde edilen tabloya isim verilebilir.
• Yeniden adlandırma ρ ile gösterilir.
• ρs(b1,b2,….,bn)(R) şeklinde kullanım R ilişkisi için, S ismini,
b1,b2,…,bn de sütunlar için
• ρ(R) şeklinde kullanım sadece R ilişkisi için s ismini verecektir.
• ρ(b1,b2,…,bn)(R) şeklinde kullanım sütunlar için de b1,b2,…,bn
isimlerini verecektir.
32. Özetleme & Gruplama Ʒ
• Özetleme işlemi bir tablo içeriğinin istenilen bir sütuna göre
hesaplamalar yapılmasını içerir.
• Gruplama da özetlemeye çok benzer ama aralarında fark vardır.
Gruplama, bir tablonun içeriğini istenilen bir sütun içeriğine göre
gruplandırarak her bir grup için hesaplamalar yapılmasını sağlar.
• Bu tür hesaplamalarda kullanılan ve çoğu veritabanı tarafından
desteklenen en temel 5 fonksiyon vardır. Bunlar; SUM, COUNT,
AVERAGE, MAX ve MİN fonksiyonlarıdır.
• Kullanım şekli; [Gruplanacak sütun] Ʒ [fonksiyon adı][sütun adı]
[Gruplanacak sütun] parametresi, özetleme işlemi gruplandırarak
yapılacaksa kullanılır. Sadece özetleme işlemi için buna gerek yoktur.
[fonksiyon adı] yapılan gruplama işlemi için kullanılacak olan
fonksiyon belirler (SUM, COUNT, AVERAGE, MAX, MİN)
[sütun adı] belirlenen fonksiyonun hangi sütun için uygulanacağını
belirler
33. ÖZET
• İlişkisel cebir ilişkisel model ile birlikte kullanılan veri tabanı
sorgulama dilidir. Ancak sorgulamalar teorik olarak
gerçekleştirilir.
• SQL’den farklı olarak herhangi bir yorumlayıcı veya derleyiciye
gerek yoktur. Sorgular çeşitli operatörlerin birleşiminden
meydana gelir.
• Sorguların temel özelliği ilişkisel bir veya iki ilişkiyi parametre
olarak alıp sonuç olarak yine ilişki üretir.
• İlişkisel cebirde her operatör geriye bir ilişki döndürdüğüne
göre birden fazla operatör aynı sorguda kullanılabilir.
• UNUTMA: Bir sorgu sadece tek bir yolla yazılabilir diye bir
kural yoktur.
34. İlişkisel Cebir Sembol İlişkisel Cebir Sembol
Seçim (Selection)
Atma (Projection)
Kartezyen Çarpım
(Cross-Product)
Birleşim (Union)
Küme Farkı
(Set-difference)
Kesişim (Intersection)
Bölme (Division)
Şartlı Birleştirme
(Condition Join)
Eşit Birleştirme
(Equijoin)
Doğal Birleştirme
(Natural Join)
Sol Birleştirme
(Left Outer Join)
Sağ Birleştirme
(Right Outer Join)
Tam Birleştirme
(Full Outer Join)
Yarı Birleştirme
(Semi-Join)
Ant-Join
Yeniden Adlandırma
(Renaming)
σ
∏
Χ
ρ
⋃
−
⋂
∶
⋈c
⋈e