Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

VERİTABANI YÖNETİM SİSTEMLERİ 1

Benzer bir sunumlar


... konulu sunumlar: "VERİTABANI YÖNETİM SİSTEMLERİ 1"— Sunum transkripti:

1 VERİTABANI YÖNETİM SİSTEMLERİ 1
Öğr.Gör.Emre KAÇMAZ ANADOLU ÜNİVERSİTESİ

2 ÇOKLU TABLOLAR ile İŞLEMLER
Bazı durumlarda veriler birden fazla tablo üzerinde yer alabilir, bu durumda tablolar birleştirilmek zorundadır. PERSONEL BÖLÜM PERSONEL_NO ADI BÖLÜM_NO BÖLÜM_NO ADI KONUM PERSONEL_NO BÖLÜM_NO KONUM

3 Tabloların Birleştirilmesi
Birden fazla tablonun birleştirilmesi işlemine birleştirme (join) denilir. Bu işlem tabloların aynı değerler içeren sütunları yardımıyla yapılır. SELECT tablo1.sütun1, tablo2.sütun2 FROM tablo1,tablo2 WHERE tablo1.sütun1=tablo2.sütun2

4 Kartezyen Çarpım İki tablo içerisinde bir birleştirme koşulu yoksa, o zaman kartezyen çarpım sözkonusudur. Bunun dışında birleştirme koşulu geçersiz ise ve birinci tablodaki tüm satırlar ikinci tablodaki tüm satırlar ile birleştirilemiyorsa, yine kartezyen çarpımdan söz edilebilir. Örnek: SQL>SELECT Personel_No,Adı,Bölüm_Adı FROM PERSONEL, BÖLÜM; Burada “personel tablosundaki varlık adedi x Bölüm tablosundaki varlık adedi” nce varlık elde edilir. Çünkü bir koşul tanımlanmadı.

5 Tablolarda Birleştirme Türleri
EŞİT OLANI BİRLEŞTİRME Basit birleştirme, iç birleştirme de adı verilir. SELECT tablo1.sütun1, tablo2.sütun2 FROM tablo1,tablo2 WHERE tablo1.sütun1=tablo2.sütun2 PERSONEL BÖLÜM PERSONEL_NO ADI BÖLÜM_NO BÖLÜM_NO ADI KONUM Dış Anahtar Birincil Anahtar

6 Farklı tablolardan alınan sütun isimlerinde benzerlik olduğunda SQL bunu ayırd edemeyeceğinden, muhakkak başında tablo ismiyle çağrılmalıdır. Bazen sorgu cümlelerinin kısaltılması maksadıyla tablo isimleri daha kısa isimlerle yeniden adlandırılır. SELECT P.Personel_No, P.Adı, P.Bölüm_No, B.Bölüm_Adı, B.Konum FROM Personel P, Bölüm B WHERE P.Bölüm_No=B.Bölüm_No;

7 Birleştirme koşulunda birden fazla koşul yer alabilir.
ÖRNEK: AYŞE isimli öğrencinin öğrenci numarası, adı, bölüm adı ve bölümünün konumu listelemek için; SQL> SELECT Ö.Öğrenci_No, Ö.Adı, B.Bölüm_Adı, B.Konum FROM Öğrenci Ö, Bölüm B WHERE Ö.Bölüm_No=B.Bölüm_No AND Ö.Adı= ‘AYŞE’;

8 EŞİTİ OLMAYAN BİRLEŞTİRME
İki tablonun sütunları arasında doğrudan uyum yoksa buna eşiti olmayan birleştirme denir. PERSONEL(Personel_No, Adı, Yöneticisi, Ücret, Bölüm_No) ÜCRET_DÜZEY(Derece, EnAz, EnÇok) Yukarıdaki iki tabloyu birleştirebilecek bir ortak sütun yoktur. Ancak; SELECT Adı, Ücret, Derece FROM PERSONEL,ÜCRET_DÜZEY WHERE Ücret BETWEEN EnAz AND EnÇok;

9 DIŞ BİRLEŞTİRME Eşiti olan birleştirmede eşleşen sütunlarda eşleşemeyen varlıklar yazılmıyordu, bunları da yazdırmak için Dış Birleştirme kullanılır. Personel Bölüm Adı Bölüm_No Sedat 01 Özgür Muzaffer 02 Ali Yavuz 03 Bölüm_No Bölüm_Adı Konum 01 Bilgisayar MMF 02 Çevre 03 Elektronik 04 Matematik FenF

10 SQL> SELECT P.Adı, P.Bölüm_No, B.Bölüm_No, B.Bölüm_Adı
FROM PERSONEL P, BÖLÜM B WHERE P.Bölüm_No(+)=B.Bölüm_No; Adı Bölüm_No Bölüm_Adı Sedat 01 Bilgisayar Özgür 01 Bilgisayar Muzaffer 02 Çevre Ali Yavuz 03 Elektronik Matematik Bu deyimi MS Access de tanımlamak için LEFT JOIN...ON kullanırız. SELECT P.Adı, B.Bölüm_Adı FROM BÖLÜM B LEFT JOIN PERSONEL P ON B.Bölüm_No = P.Bölüm_No;

11 KENDİNE BİRLEŞTİRME Bazı uygulamalarda birleştirme işlemi tek bir tablonun kendi sütunları içerisinde yapılmaktadır. Personel_No Adı Yöneticisi 101 BURAK 250 ERSİN 120 SELİN 105 140 DİLARA BEGÜM Personel_No Adı 101 BURAK 250 ERSİN 120 SELİN 105 BEGÜM 140 DİLARA

12 SQL> SELECT P.Personel_No AS No,
P.Adı AS Personel, Y.Adı AS Yöneticisi FROM PERSONEL P, PERSONEL Y WHERE Y.Personel_No=P.Yöneticisi; No Personel Yöneticisi Begüm Burak 120 Selin Begüm 140 Dilara Begüm .

13 Küme Operatörleri ile Birleştirme
UNION ve UNION ALL Union, verilen koşul ifadesine uygun olarak, çift kayıtların gözardı edilerek her iki kümedeki tüm kayıtları seçer. Union All, çift kayıtları da dahil eden birleştirme işlemidir. SQL> SELECT Adı,Görevi FROM PERSONEL WHERE Adı LIKE ‘A*’ UNION SELECT Adı, Görevi FROM PERSONEL WHERE Görevi LIKE ‘M*’;

14 INTERSECT Her iki koşula da uygun varlıkları elde etmede kullanılır. Küme kesişimi olarak da algılanabilir. SQL> SELECT Adı,Görevi FROM PERSONEL WHERE Adı LIKE ‘A*’ SELECT Adı, Görevi FROM PERSONEL WHERE Görevi LIKE ‘M*’;

15 MINUS Birinci tabloda olan ikinci tabloda olmayan kayıtları ayıklamada kullanılmaktadır. Kümesel fark işlemi olarak düşünülebilir (A/B) SQL> SELECT Adı,Görevi FROM PERSONEL WHERE Adı LIKE ‘A*’ SELECT Adı, Görevi FROM PERSONEL WHERE Görevi LIKE ‘M*’;


"VERİTABANI YÖNETİM SİSTEMLERİ 1" indir ppt

Benzer bir sunumlar


Google Reklamları