sistem basis data - powered by gdl4.2 | elib...

Post on 08-Sep-2018

236 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PEMROSESAN QUERY

Alif Finandhita, S.Kom

Pemrosesan terhadap query di dalam suatusistem basis data dilakukan denganmenggunakan bahasa query (query language).

Bahasa query formal basis data relasional adalahbahasa untuk meminta informasi dari basis data.

Sebelum adanya bahasa tersebut, queryterhadap basis data merupakan tugas yangsangat sukar, karena pemogram harusberususan dengan skema fisik internal dari basisdata.

Pemrosesan terhadap query di dalam suatusistem basis data dilakukan denganmenggunakan bahasa query (query language).

Bahasa query formal basis data relasional adalahbahasa untuk meminta informasi dari basis data.

Sebelum adanya bahasa tersebut, queryterhadap basis data merupakan tugas yangsangat sukar, karena pemogram harusberususan dengan skema fisik internal dari basisdata.

Alif Finandhita, S.Kom 2

Bahasa query relasional misalkan SQL berbedadengan bahasa pemrograman konvensional.

Di SQL, kita menspesifikasikan properti –properti informasi yang hendak diambil tapitidak mencantumkan rincian algoritmapengambilan.

SQL adalah deklaratif, yaitu pada querydideklarasikan informasi yang merupakanjawaban yang dikehendaki bukan carakomputasi.

Bahasa query relasional misalkan SQL berbedadengan bahasa pemrograman konvensional.

Di SQL, kita menspesifikasikan properti –properti informasi yang hendak diambil tapitidak mencantumkan rincian algoritmapengambilan.

SQL adalah deklaratif, yaitu pada querydideklarasikan informasi yang merupakanjawaban yang dikehendaki bukan carakomputasi.

Alif Finandhita, S.Kom 3

Bahasa query relasional formal merupakanbahasa antara yang digunakan basis data, yaituSQL dikonversi menjadi bahasa relasionalformal sehingga dapat diterapkan sekumpulaninformasi untuk memperoleh query palingefisien.

Bahasa query ini dibagi menjadi dua kategori,yaitu : Bahasa Query Prosedural Bahasa Query Non Prosedural.

Bahasa query relasional formal merupakanbahasa antara yang digunakan basis data, yaituSQL dikonversi menjadi bahasa relasionalformal sehingga dapat diterapkan sekumpulaninformasi untuk memperoleh query palingefisien.

Bahasa query ini dibagi menjadi dua kategori,yaitu : Bahasa Query Prosedural Bahasa Query Non Prosedural.

Alif Finandhita, S.Kom 4

Bahasa Query ProseduralUser menginstruksikan ke sistem agar membentukserangkaian operasi dalam basis data untukmengeluarkan hasil yang diinginkan. Yang termasukdalam bahasa ini adalah: Aljabar Relasional(relational algebra).

Bahasa Query Non ProseduralUser mendeskripsikan informasi yang diinginkantanpa memberikan prosedur detail untukmenghasilkan informasi tersebut. Yang termasukdalam bahasa ini adalah: Kalkulus Relational Tuple(tuple relational calculus).

Bahasa Query ProseduralUser menginstruksikan ke sistem agar membentukserangkaian operasi dalam basis data untukmengeluarkan hasil yang diinginkan. Yang termasukdalam bahasa ini adalah: Aljabar Relasional(relational algebra).

Bahasa Query Non ProseduralUser mendeskripsikan informasi yang diinginkantanpa memberikan prosedur detail untukmenghasilkan informasi tersebut. Yang termasukdalam bahasa ini adalah: Kalkulus Relational Tuple(tuple relational calculus).

Alif Finandhita, S.Kom 5

Relational Algebra (aljabar relasional)merupakan kumpulan operasi terhadap relasidimana setiap operasi menggunakan satuatau lebih relasi untuk menghasilkan saturelasi yang baru.

Aljabar relasional termasuk kategoriprosedural dan juga menyediakanseperangkat operator untuk memanipulasidata.

Relational Algebra (aljabar relasional)merupakan kumpulan operasi terhadap relasidimana setiap operasi menggunakan satuatau lebih relasi untuk menghasilkan saturelasi yang baru.

Aljabar relasional termasuk kategoriprosedural dan juga menyediakanseperangkat operator untuk memanipulasidata.

Alif Finandhita, S.Kom 6

Selection ( σ )

Projection ( π )

Cartesian – product ( X, juga disebut sebagaicross product )

Union ( ∪ )

Set – difference ( - )

Rename ( ρ )

Selection ( σ )

Projection ( π )

Cartesian – product ( X, juga disebut sebagaicross product )

Union ( ∪ )

Set – difference ( - )

Rename ( ρ )Alif Finandhita, S.Kom 7

Set intersection ( ∩ )

Theta join ( θ )

Natural-join ( )

Outer-join ( )

Division ( ÷ )

Set intersection ( ∩ )

Theta join ( θ )

Natural-join ( )

Outer-join ( )

Division ( ÷ )Alif Finandhita, S.Kom 8

Semua operasi tersebut menghasilkan relasi baru.

Bahasa disebut aljabar relasional karena bahasaberdasar sejumlah operator yang beroperasi padarelasi – relasi (tabel – tabel).

Masing – masing operator beroperasi pada satu relasiatau lebih atau menghasilkan relasi – relasi lainsebagai hasil.

Query adalah sekedar ekspresi yang melibatkanoperator – operator itu. Hasil ekspresi adalah relasiyaitu jawaban terhadap query.

Semua operasi tersebut menghasilkan relasi baru.

Bahasa disebut aljabar relasional karena bahasaberdasar sejumlah operator yang beroperasi padarelasi – relasi (tabel – tabel).

Masing – masing operator beroperasi pada satu relasiatau lebih atau menghasilkan relasi – relasi lainsebagai hasil.

Query adalah sekedar ekspresi yang melibatkanoperator – operator itu. Hasil ekspresi adalah relasiyaitu jawaban terhadap query.

Alif Finandhita, S.Kom 9

Pemrogram menggunakan query SQL, DBMSmenggunakan aljabar relasional sebagai bahasaantara dalam spesifikasi algoritma query.

Langkah – langkah dalam DBMS untukpengolahan query : DBMS melakukan parsing terhadap string dari query

SQL dan menerjemahkannya menjadi ekspresi aljabarrelasional yang dapat menuntun kedalam algoritmasederhana yang tidak efisien.

Pemrogram menggunakan query SQL, DBMSmenggunakan aljabar relasional sebagai bahasaantara dalam spesifikasi algoritma query.

Langkah – langkah dalam DBMS untukpengolahan query : DBMS melakukan parsing terhadap string dari query

SQL dan menerjemahkannya menjadi ekspresi aljabarrelasional yang dapat menuntun kedalam algoritmasederhana yang tidak efisien.

Alif Finandhita, S.Kom 10

Langkah – langkah dalam DBMS untukpengolahan query : Setelah itu, bagian query optimizer mengkonversi

ekspresi aljabar relasional ini menjadi ekspresi lainyang ekvivalen nemun lebih efisien untuk dieksekusi.

Berdasarkan ekpresi aljabar relasional yang telahdioptimasi, query optimizer mempesiapkan rencanaeksekusi query (query execution plan) yang kemudianditransformasikan menjadi kode yang dapatdieksekusi pembangkit kode di DBMS.

Langkah – langkah dalam DBMS untukpengolahan query : Setelah itu, bagian query optimizer mengkonversi

ekspresi aljabar relasional ini menjadi ekspresi lainyang ekvivalen nemun lebih efisien untuk dieksekusi.

Berdasarkan ekpresi aljabar relasional yang telahdioptimasi, query optimizer mempesiapkan rencanaeksekusi query (query execution plan) yang kemudianditransformasikan menjadi kode yang dapatdieksekusi pembangkit kode di DBMS.

Alif Finandhita, S.Kom 11

Langkah – langkah dalam DBMS untukpengolahan query : Karena ekspresi aljabar mempunyai semantik

matematika yang presisi maka sistem dapatmemferifikasi ekvivalensi ekspresi yangdioptimasi yang dihasilkan dari manipulasi ekpresiasal. Semantiks ini juga memungkinkanpembandingan rencana – rencana evaluasi queryyang berbeda.

Langkah – langkah dalam DBMS untukpengolahan query : Karena ekspresi aljabar mempunyai semantik

matematika yang presisi maka sistem dapatmemferifikasi ekvivalensi ekspresi yangdioptimasi yang dihasilkan dari manipulasi ekpresiasal. Semantiks ini juga memungkinkanpembandingan rencana – rencana evaluasi queryyang berbeda.

Alif Finandhita, S.Kom 12

Aljabar relasional merupakan kunci pemahaman kerjainternal DBMS relasional,

Pemahaman aljabar relasional merupakan hal yangesensi dalam merancang query SQL yang diolahsecara efisien.

Aljabar relasional banyak digunakan pada optimasiquery dan pengolahan query tersebar.

Aljabar relasional mendefinisikan sekumpulanoperator dan rumus untuk memanipulasi himpunandata.

Aljabar relasional merupakan kunci pemahaman kerjainternal DBMS relasional,

Pemahaman aljabar relasional merupakan hal yangesensi dalam merancang query SQL yang diolahsecara efisien.

Aljabar relasional banyak digunakan pada optimasiquery dan pengolahan query tersebar.

Aljabar relasional mendefinisikan sekumpulanoperator dan rumus untuk memanipulasi himpunandata.

Alif Finandhita, S.Kom 13

Berikut adalah relasi – relasi dari contoh databasePenjadwalan pada suatu kampus, meliputi :

1. Dosen

Dosen={nid,nama_d,tempat_lhr,tgl_lahir,jkelamin,alamat,kota,kodepos,gpokok}

Primary key relasi Dosen adalah nid, karena tidakada seorang dosen yang nid (nomor induk dosen)sama dengan dosen yang lainnya.

Berikut adalah relasi – relasi dari contoh databasePenjadwalan pada suatu kampus, meliputi :

1. Dosen

Dosen={nid,nama_d,tempat_lhr,tgl_lahir,jkelamin,alamat,kota,kodepos,gpokok}

Primary key relasi Dosen adalah nid, karena tidakada seorang dosen yang nid (nomor induk dosen)sama dengan dosen yang lainnya.

Alif Finandhita, S.Kom 14

Data value sebagai berikut :

Alif Finandhita, S.Kom 15

2. Matakuliah

Matakuliah ={kdmk,nama_mk,sks,semester} Primary key relasi Matakuliah adalah kdmk, karena tidak ada kode suatu

matakuliah yang kdmk (kode matakuliah) sama dengan matakuliah yanglainnya. Dengan data value sebagai berikut:

2. Matakuliah

Matakuliah ={kdmk,nama_mk,sks,semester} Primary key relasi Matakuliah adalah kdmk, karena tidak ada kode suatu

matakuliah yang kdmk (kode matakuliah) sama dengan matakuliah yanglainnya. Dengan data value sebagai berikut:

Alif Finandhita, S.Kom 16

3. Jurusan

Jurusan ={kode_jur,nama_jur,jenjang,nama_kajur} Primary key relasi Jurusan adalah kode_jur, karena

tidak ada kode_jur (kode jurusan) yang samadengan jurusan yang lainnya, dengan data valuesebagai berikut:

Alif Finandhita, S.Kom 17

3. Jurusan

Jurusan ={kode_jur,nama_jur,jenjang,nama_kajur} Primary key relasi Jurusan adalah kode_jur, karena

tidak ada kode_jur (kode jurusan) yang samadengan jurusan yang lainnya, dengan data valuesebagai berikut:

4. Mengajar

Mengajar={nid,thn_akademik,smt,hari,jam_ke,kdmk,waktu,kelas,kode_jur}

Primary key relasi Matakuliah adalahnid,thn_akademik,smt,hari,jam_ke, kondisi : Bila primary key nid,thn_akademik, maka tidak bisa

karena seorang dosen pada tahun akademik yangsama bisa mengajar lebih dari satu matakuliah.

Alif Finandhita, S.Kom 18

4. Mengajar

Mengajar={nid,thn_akademik,smt,hari,jam_ke,kdmk,waktu,kelas,kode_jur}

Primary key relasi Matakuliah adalahnid,thn_akademik,smt,hari,jam_ke, kondisi : Bila primary key nid,thn_akademik, maka tidak bisa

karena seorang dosen pada tahun akademik yangsama bisa mengajar lebih dari satu matakuliah.

Bila primary key nid,thn_akademik,smt, maka tidak bisakarena seorang dosen pada tahun akademik dan semesteryang sama bisa mengajar lebih dari satu matakuliah.

Bila primary key nid,thn_akademik,smt,hari, maka tidakbisa karena seorang dosen pada tahun akademik,semester dan hari yang sama bisa mengajar lebih dari satumatakuliah.

Sehingga primary key pada relasi mengajar adalahnid,thn_akademik,smt,hari,jam_ke, maka unik dandijadikan primary key pada relasi tersebut.

Alif Finandhita, S.Kom 19

Bila primary key nid,thn_akademik,smt, maka tidak bisakarena seorang dosen pada tahun akademik dan semesteryang sama bisa mengajar lebih dari satu matakuliah.

Bila primary key nid,thn_akademik,smt,hari, maka tidakbisa karena seorang dosen pada tahun akademik,semester dan hari yang sama bisa mengajar lebih dari satumatakuliah.

Sehingga primary key pada relasi mengajar adalahnid,thn_akademik,smt,hari,jam_ke, maka unik dandijadikan primary key pada relasi tersebut.

Data valuenya adalah sebagai berikut :

Alif Finandhita, S.Kom 20

Selection / Select (σ ), adalah operasi untukmenyeleksi tupel – tupel yang memenuhisuatu predikat, kita dapat menggunakanoperator perbandingan (<,>,>=,<=,=,#) padapredikat.

Beberapa predikat dapat dikombinasikanmenjadi predikat manjemuk menggunakanpenghubung AND ( ∧ ) dan OR ( ∨ ).

Alif Finandhita, S.Kom 21

Selection / Select (σ ), adalah operasi untukmenyeleksi tupel – tupel yang memenuhisuatu predikat, kita dapat menggunakanoperator perbandingan (<,>,>=,<=,=,#) padapredikat.

Beberapa predikat dapat dikombinasikanmenjadi predikat manjemuk menggunakanpenghubung AND ( ∧ ) dan OR ( ∨ ).

Contoh 1

1. Query : Tampilkan daftar dosen yang tempatlahirnya di ‘Bekasi’.

2. Aljabar relasional:σtempat_lhr=’Bekasi’ (Dosen)

3. Hasilnya adalah:

Alif Finandhita, S.Kom 22

Contoh 1

1. Query : Tampilkan daftar dosen yang tempatlahirnya di ‘Bekasi’.

2. Aljabar relasional:σtempat_lhr=’Bekasi’ (Dosen)

3. Hasilnya adalah:

Contoh 2

1. Query : Tampilkan daftar dosen yang tempatlahirnya di ‘Jakarta’ atau ‘Bogor’

2. Aljabar relasional:σtempat_lhr=’Jakarta’ ∨ tempat_lhr=’Bogor’ (Dosen)

3. Hasilnya adalah:

Alif Finandhita, S.Kom 23

Contoh 2

1. Query : Tampilkan daftar dosen yang tempatlahirnya di ‘Jakarta’ atau ‘Bogor’

2. Aljabar relasional:σtempat_lhr=’Jakarta’ ∨ tempat_lhr=’Bogor’ (Dosen)

3. Hasilnya adalah:

Contoh 3

1. Query : Tampilkan daftar dosen yang tempatlahirnya di ‘Bogor’ dan jenis kelaminnya ‘Pria’

2. Aljabar relasional:σtempat_lhr=’Bogor’ ∧ jkelamin=’Pria’ (Dosen)

3. Hasilnya adalah:

Alif Finandhita, S.Kom 24

Contoh 3

1. Query : Tampilkan daftar dosen yang tempatlahirnya di ‘Bogor’ dan jenis kelaminnya ‘Pria’

2. Aljabar relasional:σtempat_lhr=’Bogor’ ∧ jkelamin=’Pria’ (Dosen)

3. Hasilnya adalah:

Projection / Project ( π ), adalah operasi untukmemperoleh kolom – kolom tertentu.

Operasi project adalah operasi unary yangmengirim relasi argumen dengan kolom – kolomtertentu. Karena relasi adalah himpunan, makabaris – baris duplikasi dihilangkan.

Sintaks yang digunakan dalam operasi proyeksi iniadalah sebagai berikut :

π colum1,…,column ( tabel)

Alif Finandhita, S.Kom 25

Projection / Project ( π ), adalah operasi untukmemperoleh kolom – kolom tertentu.

Operasi project adalah operasi unary yangmengirim relasi argumen dengan kolom – kolomtertentu. Karena relasi adalah himpunan, makabaris – baris duplikasi dihilangkan.

Sintaks yang digunakan dalam operasi proyeksi iniadalah sebagai berikut :

π colum1,…,column ( tabel)

Contoh 1

1. Query : Tampilkan nid,nama_d,alamat,kota darirelasi Dosen.

2. Aljabar relasional:π nid,nama_d,alamat,kota(Dosen)

3. Hasilnya adalah:

Alif Finandhita, S.Kom 26

Contoh 1

1. Query : Tampilkan nid,nama_d,alamat,kota darirelasi Dosen.

2. Aljabar relasional:π nid,nama_d,alamat,kota(Dosen)

3. Hasilnya adalah:

Contoh 2

1. Query : Tampilkan nid,nama_d,alamat,kota,gajipokok darirelasi Dosen, dimana gaji pokoknya lebih besar dari Rp.1200000

2. Aljabar relasional:

π nid,nama_d,alamat,kota,gajipokok( σgajipokok>1200000(Dosen))

3. Hasilnya adalah:

Alif Finandhita, S.Kom 27

Contoh 2

1. Query : Tampilkan nid,nama_d,alamat,kota,gajipokok darirelasi Dosen, dimana gaji pokoknya lebih besar dari Rp.1200000

2. Aljabar relasional:

π nid,nama_d,alamat,kota,gajipokok( σgajipokok>1200000(Dosen))

3. Hasilnya adalah:

Contoh 3

1. Query : Tampilkan nid,nama_d,alamat,kota,gajipokok darirelasi Dosen dimana kota alamatnya ‘Cibitung’ dan gajipokoknya lebih besar dari Rp.1000000

2. Aljabar relasional:π nid,nama_d,alamat,kota,gajipokok( σkota=’Cibitung’ ∧

gajipokok>1000000(Dosen))

3. Hasilnya adalah:

Alif Finandhita, S.Kom 28

Contoh 3

1. Query : Tampilkan nid,nama_d,alamat,kota,gajipokok darirelasi Dosen dimana kota alamatnya ‘Cibitung’ dan gajipokoknya lebih besar dari Rp.1000000

2. Aljabar relasional:π nid,nama_d,alamat,kota,gajipokok( σkota=’Cibitung’ ∧

gajipokok>1000000(Dosen))

3. Hasilnya adalah:

Cartesian-product ( X ), adalah operasi untukmenghasilkan table hasil perkalian kartesian.

Sintaks yang digunakan dalam operasi proyeksi iniadalah sebagai berikut :

R X S = {(x,y) | x ∈ R dan y ∈S}

Operasi cartesian-product memungkinkan kitamengkombinasikan informasi beberapa relasi,operasi ini adalah operasi biner.

Alif Finandhita, S.Kom 29

Cartesian-product ( X ), adalah operasi untukmenghasilkan table hasil perkalian kartesian.

Sintaks yang digunakan dalam operasi proyeksi iniadalah sebagai berikut :

R X S = {(x,y) | x ∈ R dan y ∈S}

Operasi cartesian-product memungkinkan kitamengkombinasikan informasi beberapa relasi,operasi ini adalah operasi biner.

Sebagaimana telah dinyatakan bahwa relasi adalahsubset hasil cartesian-product dan himpunandomain relasi – relasi tersebut.

Kita harus memilih atribut – atribut untuk relasiyang dihasilkan dari cartesian-product.

Alif Finandhita, S.Kom 30

Sebagaimana telah dinyatakan bahwa relasi adalahsubset hasil cartesian-product dan himpunandomain relasi – relasi tersebut.

Kita harus memilih atribut – atribut untuk relasiyang dihasilkan dari cartesian-product.

Contoh 1

1. Query : Tampilkan nid,nama_d (dari relasi Dosen), nama_mk(dari relasi Matakuliah), thn_akademik,smt,hari,jam_ke,waktu,kelas (dari relasi Mengajar) dimana semester mengajar adalahpada semester ‘1’.

2. Aljabar relasional:π nid,nama_d,nama_mk,

thn_akademik,smt,hari,jam_ke,waktu,kelas (σ smt=1 ∧Dosen.nid=Mengajar.nid ∧

Mengajar.kdmk=Matakuliah.kdmk(Dosen X Matakuliah X Mengajar))

Alif Finandhita, S.Kom 31

Contoh 1

1. Query : Tampilkan nid,nama_d (dari relasi Dosen), nama_mk(dari relasi Matakuliah), thn_akademik,smt,hari,jam_ke,waktu,kelas (dari relasi Mengajar) dimana semester mengajar adalahpada semester ‘1’.

2. Aljabar relasional:π nid,nama_d,nama_mk,

thn_akademik,smt,hari,jam_ke,waktu,kelas (σ smt=1 ∧Dosen.nid=Mengajar.nid ∧

Mengajar.kdmk=Matakuliah.kdmk(Dosen X Matakuliah X Mengajar))

Atau :

σ (Mengajar.nid=Dosen.nid ∧Mengajar.kdmk=Matakuliah.kdmk) ∧ smt=1

((( π nid,nama_d (Dosen)) X (π nama_mk (Matakuliah))X (π thn_akademik,smt,hari,jam_ke,waktu,kelas (Mengajar)))))

3. Hasilnya adalah :

Alif Finandhita, S.Kom 32

Atau :

σ (Mengajar.nid=Dosen.nid ∧Mengajar.kdmk=Matakuliah.kdmk) ∧ smt=1

((( π nid,nama_d (Dosen)) X (π nama_mk (Matakuliah))X (π thn_akademik,smt,hari,jam_ke,waktu,kelas (Mengajar)))))

3. Hasilnya adalah :

Contoh 2

1. Query : Tampilkan nama_d (dari relasi Dosen), nama_mk,sks(dari relasi Matakuliah), hari,jam_ke,waktu (dari relasiMengajar) dimana sks matakuliah >3 atau hari mengajar =‘Jumat’.

2. Aljabar relasional:π nama_d,nama_mk,sks,hari,jam_ke,waktu ( σ sks>3 ∨

hari=’Jumat’ ∧Mengajar.nid=Dosen.nid ∧Mengajar.kdmk=Matakuliah.kdmk(Dosen X Matakuliah X Mengajar))

Alif Finandhita, S.Kom 33

Contoh 2

1. Query : Tampilkan nama_d (dari relasi Dosen), nama_mk,sks(dari relasi Matakuliah), hari,jam_ke,waktu (dari relasiMengajar) dimana sks matakuliah >3 atau hari mengajar =‘Jumat’.

2. Aljabar relasional:π nama_d,nama_mk,sks,hari,jam_ke,waktu ( σ sks>3 ∨

hari=’Jumat’ ∧Mengajar.nid=Dosen.nid ∧Mengajar.kdmk=Matakuliah.kdmk(Dosen X Matakuliah X Mengajar))

Atau :

σ (Mengajar.nid=Dosen.nid ∧Mengajar.kdmk=Matakuliah.kdmk) ∧ (sks>3 ∨ hari=’Jumat’

((( π nama_d (Dosen)) X (π nama_mk,sks (Matakuliah))X (π hari,jam_ke,waktu (Mengajar)))))

3. Hasilnya adalah :

Alif Finandhita, S.Kom 34

Atau :

σ (Mengajar.nid=Dosen.nid ∧Mengajar.kdmk=Matakuliah.kdmk) ∧ (sks>3 ∨ hari=’Jumat’

((( π nama_d (Dosen)) X (π nama_mk,sks (Matakuliah))X (π hari,jam_ke,waktu (Mengajar)))))

3. Hasilnya adalah :

Contoh 3

1. Query : Tampilkan kdmk,nama_mk,sks (dari relasi Matakuliah),smt,hari,jam_ke,waktu (dari relasi Mengajar) dimana semester(smt) yang diajar dosen pada semester ‘1’ dan jam_ke ‘1’

2. Aljabar relasional:π kdmk,nama_mk,sks,smt,hari,jam_ke,waktu ( σ smt=1 ∧jam_ke=’1’ ∧Mengajar.kdmk=Matakuliah.kdmk(Matakuliah X

Mengajar))

Alif Finandhita, S.Kom 35

Contoh 3

1. Query : Tampilkan kdmk,nama_mk,sks (dari relasi Matakuliah),smt,hari,jam_ke,waktu (dari relasi Mengajar) dimana semester(smt) yang diajar dosen pada semester ‘1’ dan jam_ke ‘1’

2. Aljabar relasional:π kdmk,nama_mk,sks,smt,hari,jam_ke,waktu ( σ smt=1 ∧jam_ke=’1’ ∧Mengajar.kdmk=Matakuliah.kdmk(Matakuliah X

Mengajar))

Atau :

σ Mengajar.kdmk=Matakuliah.kdmk ∧ smt=1 ∧ jam_ke=’1’ ((π kdmk,nama_mk,sks (Matakuliah)) X ( π hari,jam_ke,waktu

(Mengajar)))

3. Hasilnya adalah :

Alif Finandhita, S.Kom 36

Atau :

σ Mengajar.kdmk=Matakuliah.kdmk ∧ smt=1 ∧ jam_ke=’1’ ((π kdmk,nama_mk,sks (Matakuliah)) X ( π hari,jam_ke,waktu

(Mengajar)))

3. Hasilnya adalah :

Union ( ∪ ), adalah operasi untuk menghasilkangabungan table degan syarat kedua table memilikiatribut yangsama, yaitu domain atribut ke-i masing– masing table harus sama.

Sintaks yang digunakan dalam operasi union iniadalah sebagai berikut :

R U S = {x | x ∈ R atau x ∈S}

Alif Finandhita, S.Kom 37

Union ( ∪ ), adalah operasi untuk menghasilkangabungan table degan syarat kedua table memilikiatribut yangsama, yaitu domain atribut ke-i masing– masing table harus sama.

Sintaks yang digunakan dalam operasi union iniadalah sebagai berikut :

R U S = {x | x ∈ R atau x ∈S}

Operasi ini dapat dilaksanakan apabila R dan Smempunyai atribut yang sama sehingga jumlahkomponennya sama.

Alif Finandhita, S.Kom 38

Contoh

1. Query : Tampilkan nid (dari relasi Dosen) Uniondari nid (dari relasi Mengajar).

2. Aljabar relasional:π nid (Dosen) ∪ nid (Mengajar)

3. Hasilnya adalah:

Alif Finandhita, S.Kom 39

Contoh

1. Query : Tampilkan nid (dari relasi Dosen) Uniondari nid (dari relasi Mengajar).

2. Aljabar relasional:π nid (Dosen) ∪ nid (Mengajar)

3. Hasilnya adalah:

Set-difference ( - ), adalah operasi untuk mendapatkan tablepada suatu relasi, tapi tidak ada pada relasi yang lainnya.

Sintaks yang digunakan dalam operasi union ini adalahsebagai berikut :

R - S = {x | x ∈ R atau x ∉ S}

Operasi ini dapat dilaksanakan apabila R dan S mempunyaiatribut yang tidak sama yang akan ditampilkan, artinyaadalah atribut R yang tidak ada di S akan ditampilkan,sedangkan atribut yang sama tidak ditampilkan.

Alif Finandhita, S.Kom 40

Set-difference ( - ), adalah operasi untuk mendapatkan tablepada suatu relasi, tapi tidak ada pada relasi yang lainnya.

Sintaks yang digunakan dalam operasi union ini adalahsebagai berikut :

R - S = {x | x ∈ R atau x ∉ S}

Operasi ini dapat dilaksanakan apabila R dan S mempunyaiatribut yang tidak sama yang akan ditampilkan, artinyaadalah atribut R yang tidak ada di S akan ditampilkan,sedangkan atribut yang sama tidak ditampilkan.

Contoh

1. Query : Tampilkan nid (dari relasi Dosen) Set-difference dari nid (dari relasi Mengajar).

2. Aljabar relasional:π nid (Dosen) - nid (Mengajar)

3. Hasilnya adalah:

Alif Finandhita, S.Kom 41

Contoh

1. Query : Tampilkan nid (dari relasi Dosen) Set-difference dari nid (dari relasi Mengajar).

2. Aljabar relasional:π nid (Dosen) - nid (Mengajar)

3. Hasilnya adalah:

Rename ( ρ ), adalah operasi untuk menyalin tablelama kedalam table yang baru.

Sintaks yang digunakan dalam operasi rename iniadalah sebagai berikut :

ρ [nama_table] (table_lama)

Alif Finandhita, S.Kom 42

Rename ( ρ ), adalah operasi untuk menyalin tablelama kedalam table yang baru.

Sintaks yang digunakan dalam operasi rename iniadalah sebagai berikut :

ρ [nama_table] (table_lama)

Contoh

1. Query : Salinlah table baru dengan nama DosenNew daritable Dosen, dimana jenis kelaminnya adalah ‘Pria’.

2. Aljabar relasional:ρ DosenNew ( σ jkelamin=’Pria’) (Dosen))

3. Hasilnya adalah:

Alif Finandhita, S.Kom 43

Contoh

1. Query : Salinlah table baru dengan nama DosenNew daritable Dosen, dimana jenis kelaminnya adalah ‘Pria’.

2. Aljabar relasional:ρ DosenNew ( σ jkelamin=’Pria’) (Dosen))

3. Hasilnya adalah:

Set-intersection / Intersection ( ∩ ) termasukkedalam operator tambahan, karena operator inidapat diderivikasi dari operator dasar sepertiberikut :

A ∩ B = A - ( A – B ), atau A ∩ B = B - ( B – A )

Operasi ini merupakan operasi binary, yangdigunakan untuk membentuk sebuah relasi barudengan tuple yang berasal dari kedua relasi yangdihubungkan.

Alif Finandhita, S.Kom 44

Set-intersection / Intersection ( ∩ ) termasukkedalam operator tambahan, karena operator inidapat diderivikasi dari operator dasar sepertiberikut :

A ∩ B = A - ( A – B ), atau A ∩ B = B - ( B – A )

Operasi ini merupakan operasi binary, yangdigunakan untuk membentuk sebuah relasi barudengan tuple yang berasal dari kedua relasi yangdihubungkan.

Misal :

Maka :

Alif Finandhita, S.Kom 45

Misal :

Maka :

Contoh

1. Query : Tampilkan nid (dari relasi Dosen) Set-intersection dari nid (dari relasi Mengajar).

2. Aljabar relasional:π nid (Dosen) ∩ nid (Mengajar)

3. Hasilnya adalah:

Alif Finandhita, S.Kom 46

Contoh

1. Query : Tampilkan nid (dari relasi Dosen) Set-intersection dari nid (dari relasi Mengajar).

2. Aljabar relasional:π nid (Dosen) ∩ nid (Mengajar)

3. Hasilnya adalah:

Theta-join (θ) dan equi-join ( ) adalah operasiuntuk menggabungkan operasi selection dancartesian-product dengan suatu kriteria.

Alif Finandhita, S.Kom 47

Contoh

1. Query : Tampilkan seluruh data yang ada padarelasi Matakuliah dan relasi Mengajar.

2. Aljabar relasional:Matakuliah Mengajar.kdmk=Matakuliah.kdmk Mengajar

3. Hasilnya adalah:

Alif Finandhita, S.Kom 48

Contoh

1. Query : Tampilkan seluruh data yang ada padarelasi Matakuliah dan relasi Mengajar.

2. Aljabar relasional:Matakuliah Mengajar.kdmk=Matakuliah.kdmk Mengajar

3. Hasilnya adalah:

Natural-join ( ) sama seperti operasi tetha-join/equi-join adalah operasi untuk menggabungkanoperasi selection dan cartesian-product dengansuatu kriteria pada kolom yang sama.

Alif Finandhita, S.Kom 49

Natural-join ( ) sama seperti operasi tetha-join/equi-join adalah operasi untuk menggabungkanoperasi selection dan cartesian-product dengansuatu kriteria pada kolom yang sama.

Contoh

1. Query : Tampilkan seluruh data yang ada padarelasi Matakuliah dan relasi Mengajar.

2. Aljabar relasional:Matakuliah Mengajar.kdmk=Matakuliah.kdmk Mengajar

3. Hasilnya adalah:

Alif Finandhita, S.Kom 50

Contoh

1. Query : Tampilkan seluruh data yang ada padarelasi Matakuliah dan relasi Mengajar.

2. Aljabar relasional:Matakuliah Mengajar.kdmk=Matakuliah.kdmk Mengajar

3. Hasilnya adalah:

Outer-join adalah operasi untuk menggabungkanoperasi selection dan cartesian-product dengan suatukriteria pada kolom yang sama.

Contoh :1. Query : Tampilkan nid_nama_d (dari relasi Dosen) dan

thn_akademik,smt,hari,jam_ke,waktu (dari relasiMengajar) dengan outer join, artinya adalah padakolom nid,nama_d pada relasi Dosen akan ditampilkanwalaupun dosen tersebut tidak melakukan transaksimengajar.

Alif Finandhita, S.Kom 51

Outer-join adalah operasi untuk menggabungkanoperasi selection dan cartesian-product dengan suatukriteria pada kolom yang sama.

Contoh :1. Query : Tampilkan nid_nama_d (dari relasi Dosen) dan

thn_akademik,smt,hari,jam_ke,waktu (dari relasiMengajar) dengan outer join, artinya adalah padakolom nid,nama_d pada relasi Dosen akan ditampilkanwalaupun dosen tersebut tidak melakukan transaksimengajar.

2. Aljabar relasional:π nid,nama_d (Dosen)

π thn_akademik,smt,hari,jam_ke,waktu (Mengajar)

3. Hasilnya adalah :

Alif Finandhita, S.Kom 52

2. Aljabar relasional:π nid,nama_d (Dosen)

π thn_akademik,smt,hari,jam_ke,waktu (Mengajar)

3. Hasilnya adalah :

Division ( ÷ ) adalah operasi yang banyak digunakandalam query yang mencakup frase “setiap” atau “untuksemua”, operasi ini juga merupakan pembagian atastuple – tuple dari dua relasi.

Contoh :1. Query : Tampilkan nid,hari, waktu (dari relasi

Mengajar) dan nid (dari relasi Dosen) dimana dosenyang jenis kelaminnya ‘Pria’ dan lakukan devision padakedua relasi tersebut.

Alif Finandhita, S.Kom 53

Division ( ÷ ) adalah operasi yang banyak digunakandalam query yang mencakup frase “setiap” atau “untuksemua”, operasi ini juga merupakan pembagian atastuple – tuple dari dua relasi.

Contoh :1. Query : Tampilkan nid,hari, waktu (dari relasi

Mengajar) dan nid (dari relasi Dosen) dimana dosenyang jenis kelaminnya ‘Pria’ dan lakukan devision padakedua relasi tersebut.

2. Aljabar relasional:π nid,hari,waktu (Mengajar)) ÷ ( π nid (σ jkelamin=’Pria’ (Dosen)))

3. Hasilnya adalah :π nid,hari,waktu (Mengajar) π nid (σ jkelamin=’Pria’ (Dosen)

Hasil akhir :

Alif Finandhita, S.Kom 54

2. Aljabar relasional:π nid,hari,waktu (Mengajar)) ÷ ( π nid (σ jkelamin=’Pria’ (Dosen)))

3. Hasilnya adalah :π nid,hari,waktu (Mengajar) π nid (σ jkelamin=’Pria’ (Dosen)

Hasil akhir :

top related