340 likes | 571 Views
İlişkisel Diller. İlişkisel Cebir İlişkisel Hesaplama. İlişkisel Cebir. Temel işlemler Seçme İzdüşümü Kartezyen çarpı Birleştirme Fark Türeme işlemler Bitiştirme Kesişme Bölme. Örneklerde kullanılacak ilişkiler.
E N D
İlişkisel Diller İlişkisel Cebir İlişkisel Hesaplama
İlişkisel Cebir Temel işlemler • Seçme • İzdüşümü • Kartezyen çarpı • Birleştirme • Fark Türeme işlemler • Bitiştirme • Kesişme • Bölme
Seçme (selection) (R)koşulSeçme işlemitek R ilişkisi üzerinde yapılıyor. İşlemin sonucu R-in yalnız belirlenmiş koşulu (predicate) sağlayan satırlarından oluşan ilişkidir.
(staff) salary>10000 Sorgu: Maaşı 1000’den Yüksek olan personeller hakkında ayrıntılı bilgi
İzdüşümü (projection)(R) süt1,süt2,…,süt nTek bir R ilişkisi üzerinde yapılıyor. İşlemin sonucu R’ in belirlenmiş özellik değerlerinden oluşan ve tekrarlamalar bulunmayan dikey altkümesidir
İzdüşümüsorgu: personellerin numaraları, adları,soyadları ve maaşları (staff) sno, fname, lname, salary
Kartezyen Çarpım (cartesianproduct) R X S İşlemin sonucu R’in her bir satırını S’in her bir satırı ile birleştirmekle alınan ilişkidir
Kartezyen ÇarpımSorgu : evlere bakmış tüm kiracıların adları ve açıklamaları( (Renter) ) x ( (viewing) ) rno,fname,lname rno,pno,comment)
Kartezyen çarpım fazlalık içermektedir renter.rno=viewing.rno ( (Renter) ) x ( (viewing) )rno,fname,lnamerno,pno,comment)
Birleşme (union) RUS Satırlar sayısı uygun olarak I ve J olan iki R ve S ilişkisinin birleşme işleminin sonucu, tekrar satırların yer almadığı, en fazla (I+J)satırdan oluşan ve bu iki ilişkinin yatay birleşmesi ile alınan ilişkidir. R ve S birleşebilir olmalıdır
BirleşmeSorgu: şube veya ev bulunan tüm mahallelerin listeleri ( (Branch ))U ( (Property_for_Rent)) area area
Fark (set difference) R-S R ve S ilişkileri arasındaki fark işleminin sonucu, R ilişkisinde varolan, ama S’de olmayan satırlardan oluşan ilişkidir. R ve S birleşebilir olmalıdır
FarkSorgu: Şubelerin bulunduğu, ama kiralık evlerin bulunmadığı kentler ( (Branch) ) - ( (Property_for_rent) )citycity
Bitiştirme İşlemleri • Theta-Join (-Join) • Equi-Join • Natural Join • Outer Join • left outer join • right outer join • full outer join • Semi-Join
Theta –Join İşlemi R S F Theta-Join işleminin sonucu, R ve S ilişkisinin kartezyen çarpımından alınan ve F koşulunu sağlayan satırlardan oluşan ilişkidir. F R.aiΘS.bi biçimindedir. Θ karşılaştırma işlemidir R S = (RxS)F F
Equi-Join işlemi Bitiştirme işlemi “eşitlik” koşuluna göre gerçekleştiriliyor; Sorgu: evlere bakmış tüm kiracıların adları ve açıklamaları ( (renter) ) rno,fname,lname ( (Viewing) ) rno,pno,comment Renter.rno=viewing.rno
Naturel_Join Equi-join işlemi + izdüşümü işlemi Ortak özelliklerden yalnız birisi sonuç ilişkide bulunuyor Sorgu: Evlere bakmış tüm kiracıların adları ve açıklamaları ( (renter) ) rno,fname,lname ( (Viewing) ) Rno, Pno,comment
Sol Bitiştirme (Left Outer Join) R S R ve S ilişkilerinin (sol) dış katılım işlemi sonucunda R’in, S ilişkisi ile ortak özelliklerinin değerlerinin eşit olmadığı satırları de sonuç ilişkide bulunuyor
Sol bitiştirme Sorgu: Evlere bakış sonuçları üzere rapor hazırlamalı (tüm kiralık evlerin listesini vermeli ve hangi evlere kimler tarafından bakıldığını ve görüşleri bildirmeli) ( property_for_rentproperty_for_rent. pno,street,city,rno,date,comment Viewing) Sonuç ilişki Viewing Sol ilişkinin tüm satırları sonuç ilişkide yer almaktadır.
Sağ ve tam bitiştirme • R ve S ilişkilerinin sağ bitiştirilmesi sonucu alınan ilişkide S’in eşleşme yapılmamış satırları da bulunuyor. R’in uygun satırlarındaki özellikler null değerler alıyor. • R ve S ilişkilerinin tam bitiştirilmesi sonucu alınan ilişkide R’in ve S’in eşleşme yapılmamış satırları da bulunuyor. Uygun satırların özellikleri null değerler alıyor
Sağ bitiştirme (örnek) Sorgu1: Tüm kiralık evlerin listesini ve bunlardan hangilerinin ve kimler tarafından kiralandıklarını göstermeli (sağ bitiştirmeye örnek) Sorgu2: Tüm kiralık evlerin ve ev kiralamak isteyenlerin listesini, hangi evlerin ve kimler tarafından kiralandıklarını, kimlerin henüz ev kiralamadıklarını göstermeli (tam bitiştirmeye örnek) Kiralık_ev_arayanlar kiralık_evler Sağ bitiştirme-Sonuç ilişki Tam bitiştirme-sonucu
Yarım -bitiştirme R S F Bu işlemin sonucunda alınan ilişki, R ilişkisinin S’le bitişmesinde iştirak eden satırlarını içeriyor
Yarım-bitiştirme Sorgu: Partick şubesinde çalışan personellerin tüm bilgileri (Staff Branch) Staff.bno=branch.bno and branch.area=’Partic
Kesişme R S Kesişme işleminin sonucunda alınan ilişki, aynı zamanda hem R, hem de S ilişkisinde bulunan satırlardan oluşur. R ve S birleşebilien olmalıdır. Kesişme işlemini fark işlemi ile ifade etmek mümkündür R S = R-(R-S)
Kesişme işlemi -örnek Sorgu: hem emlak şubelerinin, hem de kiralık evlerin bulunduğu kentler ( (Branch) ) ( (Property_for_rent) )citycity
Bölme R÷S Bölme işleminin sonucu, R ilişkisinin C özellikleri üzere tanımlanmış öyle satırlar kümesidir ki, bu satırlara S’in her bir satırı uygundur T1=Πc (R ) T2=Πc ((SxT1)-R) T=T1-T2
Bölme İşlemi Sorgu: Üç odalı tüm evlere bakmış tüm kiracılar ( (Viewing) )÷ ( (σ(Property_for_rent) ) rno,pno pno rooms=3 ( (Viewing) ) ( (σ(Property_for_rent) ) pno rooms=3 rno,pno Sonuç Rno CR56 Pno PG4 PG36