bahasa query formal - duniayublog.files.wordpress.com filedari kondisi secara ......

41
Pertemuan 9 Bahasa Query Bahasa Query Formal

Upload: tranngoc

Post on 30-Jul-2019

254 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Pertemuan 9

Bahasa Query Bahasa Query Formal

Page 2: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Bahasa Query Formal

Dalam bahasa Query Formal, ada dua dasar pembentukan bahasa Query, yaitu:

1.Aljabar Relasional2.Kalkulus Relasional2.Kalkulus Relasional

Page 3: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

KALKULUS RELATIONAL

hanyamenspesifikkan tidak ada

tidak bersifatoperasional, tapibersifat deklaratifmenspesifikkan

apa yang harusditampilkan

bukan bagaimanamenampilkan

tidak adapenjabaranbagaimana

mengevaluasiquerinya

bersifat deklaratif(menggambarkan

apa yang diinginkan tapi tidak

secarakomputatif)

Page 4: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

hanya mengekspresikan” what to do or what

characteristics are required ” dan tidak mengekspresikan

” how to do it ” seperti pada bahasa queri

prosedural

Page 5: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Ciri-ciri Kalkulus Relational

First order calculus menggunakan simbol-simbolpredikat dan simbol-simbol

fungsi

simbol fungsi tidak diperlukan

predikat diinterprestasikansebagai relasi

Page 6: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Formula first order calculus

Open formula(free variable)

Closed formula(sentences yang memiliki

variable terbatas )himpunan tuples elemen dari kondisi secara keseluruhan, yang dapat menghasilkan formula “TRUE”

variable terbatas )Karena kalkulusdipergunakan sebagaibahasa query dan basis data bertujuan untuk instant maupun relasi lainnya

Page 7: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Jadi bila semua argumen dari sebuah fungsi

Fungsinya hanya dapatmengembalikan nilai benar ( true )

atau salah ( false )

Jadi bila semua argumen dari sebuah fungsidisubstitusi dengan suatu nilai, maka fungsitersebut menjadi suatu ekspresi yang disebutpreposisi ( preposisition ) yaitu suatu ekspresiyang hanya bernilai benar atau salah.

https://haidibarasa.wordpress.com/2012/11/09/kalkulus-relasional/

Page 8: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Jika P = adalah suatu predikat, maka kita dapat mengekspresikan { x \ P(x) } yang berarti “semua x yang memenuhi suatu predikat P “semua x yang memenuhi suatu predikat P sehingga P bernilai benar untuk semua nilai x”.

Page 9: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Kalkulus Relasional

• tupel digunakan variabel dari tupelnya.variabel dari suatu tupel adalah daerah yangterdefinisi sebagai nama dari suatu relasi

• Contoh : manampilkan nama_propinsi pada

Berdasarkan TupelBerdasarkan Tupel

• Contoh : manampilkan nama_propinsi padakode_propinsi ‘pp2’

• {t|t Є ms_propinsi ᴧ t(kode_propinsi)=‘pp2’}• Dalam SQL• SELECT nama_propinsi

FROM ms_propinsiWHERE kode_propinsi = 'pp2‘

Page 10: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Pada TOPC, variable x pada { x \ P(x) } merepresentasikan suatu tuple ( record )

Page 11: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Kalkulus Relasional

• Simbol yang muncul pada formula terdiri dari :• 1. konstan (elemen-elemen domain D)• 2. variabel (elemen-elemen dari himpunan

berhingga V yang dihubungkan dengan domain D)

Berdasarkan domainBerdasarkan domain

D)• 3. nama relasi (tabel) dan atribut (berdasarkan

skema basis data)• 4. operator perbandingan (=, ≠, >, >=, <, <=)• 5. penghubung logika (Λ ( dan / konjugsi), (V

atau/disjungsi), ⌐ (not/negasi), ada/beberapa( ), dan semua ( )).

Page 12: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Contoh Kalkulus domain;Mencari data mengenai nama_cabang pada

tabel ms_cabang.{<kk,nk,kp>|<kk,nk,kp> Є ms_cabang }{<kk,nk,kp>|<kk,nk,kp> Є ms_cabang }Dalam SQL:SELECT nama_cabang

FROM ms_cabang

Page 13: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Pada DOPC, variable x pada { x \ P(x) } merepresentasikan suatu set domain sehingga menjadi { d1,d2,…dn \ P

(d1,d2 …, dn)}.

Domain-Oriented Predicate Calculus (DOPC)https://haidibarasa.wordpress.com/2012/11/09/kalkulus-relasional/

Page 14: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Aljabar Relasional

ALJABAR RELASIONALAdalah kumpulan operasi terhadap relasi, dimana setiapoperasi menggunakan satu atau lebih relasi untukmenghasilkan satu relasi yang baru.

Bahasa Query yang didasarkan pada operasi-operasidalam Aljabar Relasional merupakan bahasa query yangProsedural .

Page 15: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Aljabar RelationalB. OPERATOR RELATIONAL

1. Restrict ( σ ) adalah Pemilihan tupel atau record2. Project ( π ) adalah pemilihan attribute atau field3. Divide ( ÷ ) adalah membagi4. Join ( θ ) adalah menggabungkan

ALJABAR RELASIONALOperator pada aljabar relational dibagi menjadi 2

kelompok:1. Operator dasar untuk fundamental operational2. Operator tambahan untuk additional operasional

Page 16: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Contoh

KD_MK NAMA_MK SKS NIP

207 LOGIKA & ALGO 4 199910486

310 STRUKTUR DATA 3 200109655

Tabel dibawah ini adalah contoh untuk mengerjakanperintah – perintah Relation Algebra:RELASI : MATA KULIAH

310 STRUKTUR DATA 3 200109655

360 SISTEM BASIS DATA 3 200209817

545 IMK 2 200209818

547 APSI 4 200109601

305 PEMR. PASCAL 4 200703073

544 DISAIN GRAFIS 2 200010490

Page 17: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

NIM NAMA_MHS ALAMAT J_KEL

1105090222 HAFIDZ DEPOK LAKI-LAKI

1105091002 RAFFA DEPOK LAKI-LAKI

1105095000 NAIA DEPOK PEREMPUAN

1104030885 ARIF P.LABU LAKI-LAKI

1206090501 LENI KMP. MELAYU PEREMPUAN

1206090582 WAHYUNI TANGERANG PEREMPUAN

1205097589 ARIS DEPOK LAKI-LAKI

RELASI : MAHASISWAContoh lanjutan

1205097589 ARIS DEPOK LAKI-LAKI

1106094586 YANI CILEDUG PEREMPUAN

110709 BAMBANG SALEMBA LAKI-LAKI

RELASI : REGISTRASIKD_MK NIM

360 1105090222

545 1206090501

547 1105095000

Page 18: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

NIP NAMA_DOS GAJI

199910486 BILLY 3500000

200109655 MARDIANA 4000000

200209817 INDRIYANI 4500000

200209818 SURYANI 4250000

200109601 DWINITA 3500000

RELASI : DOSEN

Contoh lanjutan

200703073 MALAU 2750000

200010490 IRFIANI 3500000

Page 19: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Tabel Nilai

Tabel Matkul

Page 20: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Operator Dasar

a. Selection ( σ ) Lower Case OmegaOperasi selection menyeleksi tupel-tupel pada sebuahrelation yang memenuhi predicate/syarat yang sudahditentukanContoh :Contoh :

1. Mencari tuple-tuple dari MAHASISWA yang memiliki jenis kelaminlaki-laki, Ekspresi aljabar relational :σ J_KEL=“LAKI-LAKI” (MAHASISWA)

2. Tampilkan data mata kuliah yang memiliki kode 360 atauyang memilki sks 4

σ KD_MK=“306” V SKS=4 (MATAKULIAH)

Page 21: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh
Page 22: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

b. Projection ( π )Operator projection beroperasi pada sebuah relation,yaitu membentuk relation baru dengan mengcopyatribute-atribute dan domain-domain dari relationtersebut berdasarkan argumen-argumen pada

Operator Dasar lanjutan

tersebut berdasarkan argumen-argumen padaoperator tersebut.Contoh :Tampilkan nama beserta gaji dari dosen

πnama_dos,gaji (DOSEN)

Page 23: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh
Page 24: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

c. Cartesian product ( X )Operator dengan dua relasi untuk menghasilkan tabel

hasil perkalian kartesian.

Contoh :

Operator Dasar lanjutan

Tampilkan nid,nama_d (dari relasi Dosen), nama_mk (dari relasiMatakuliah), thn_akademik,smt,hari,jam_ke,waktu,kelas (dari relasiMengajar) dimana semester mengajar adalah pada semester ‘1’.

ππππ nid, nama_d, nama_mk, thn_akademik,smt,hari,jam_ke, waktu, kelas ( σσσσ smt=1 ∧∧∧∧Dosen.nid =Mengajar.nid ∧∧∧∧mengajar.kdmk = Matakuliah.kdmk(DosenxMatakuliahxMengajar ))

Page 25: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh
Page 26: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

d. Union ( ∪ )Operasi untuk menghasilkan gabungan tabel dengansyarat kedua tabel memiliki atribut yang sama yaitudomain atribut ke-i masing-masing tabel harus samaRUS={ X I X E R atau X E S}

Operator Dasar lanjutan

Contoh :Penggabungan berdasarkan kolom kota dari tabelmahasiswa dengan tabel dosen

ππππ kota (mahasiswa) ∪∪∪∪ ππππkota (Dosen)

Page 27: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh
Page 28: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

e. Set diference ( - )Operasi untuk mendapatkan tabel dis uatu relasi tapi tidak ada direlasi lainnya.

R – S = { X I X E R dan X E S }Contoh : Tampilkan nama dari mahasiswa yang tinggal di depok tetapi

bukan berjenis kelamin perempuan

Operator Dasar lanjutan

Query I : tampilkan nama yang tinggal di depokπnama_mhs(σalamat=“DEPOK” (MAHASISWA))

Query II : tampilkan nama yang berjenis kelamin perempuanπnama_mhs(σj_kel =“PEREMPUAN” (MAHASISWA))

Tampilkan query I minus query II :πnama_mhs(σalamat=“DEPOK”(MAHASISWA))-πnama_mhs(σj_kel=“PEREMPUAN” (MAHASISWA))

Page 29: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh
Page 30: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Operator Tambahan1. SET INTERSECTION ( ∩∩∩∩ )

Operasi untuk menghasilkan irisan dua tabel dengansyarat kedua tabel memiliki atribut yang sama, domainatribut ke-i kedua tabel tersebut sama.

2. THETA JOIN2. THETA JOINOperasi yang menggabungkan operasi cartesianproduct dengan operasi selection dengan suatu kriteria.

3. NATURAL JOINOperasi menggabungkan operasi selection dancartesian product dengan suatu kriteria pada kolomyang sama

Page 31: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

https://rizarulham.wordpress.com/2009/10/16/aljabar-relasional-bahasa-pada-model-data-relasional/

Page 32: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Natural Join

Database System Concepts Silberschatz-Korth-Sudarshan, McGraw Hill, Fourth Edition, 2002

Page 33: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Theta Join

https://databasewannabe.wordpress.com/2014/09/23/aljabar-relasional/

Page 34: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

4. DIVISIONMerupakan operasi pembagian atas tuple-tuple dari 2relation

Contoh:Sno Pno Pno

B

Operator Tambahan lanjutan

Sno Pno

S1 P1

S1 P2

S1 P3

S1 P4

S2 P1

S2 P2

Pno

P2

Sno

S1

S2

A

A/B

Page 35: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh
Page 36: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh
Page 37: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh
Page 38: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

Tentukan Aljabar relasional yang dipergunakan dan hasil yang akan di dapat :

1. Tampilkan daftar dosen yang berjenis kelamin pria dari tabel Dosen2. Tampilkan NIP dan Nama_dosen dari tabel Dosen3. Tampilkan NIP, Nama_dosen, dan kota dari tabel Dosen dari dosen-

dosen yang bertempat tinggal di kota Jakarta Selatan.4. Tampilkan NIP( dari relasi Dosen) Union dari NIP (dari tabel 4. Tampilkan NIP( dari relasi Dosen) Union dari NIP (dari tabel

Mengajar)5. Tampilkan NIP (dari tabel Dosen) Set–difference dari NIP (dari tabel

Mengajar)6. Tampilkan Kode_mk, Nama_mk, Sks (dari tabel Matakuliah), Kelas

(dari tabel Mengajar) dimana kelas yang diajar adalah kelas A.7. Tampilkan NIP (dari tabel Dosen) Set Intersection dengan NIP (dari

tabel Mengajar)8. Tampilkan seluruh data yang ada pada tabel atakuliah dan tabel

Mengajar.

Page 39: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

1. Operator himpunan yang digunakan untukmenggabungkan dua relasi dalam bahasa query formal:a. Unionb. Intersectionc. Cartesian productd. Restrict

Latihan Soal

d. Restricte. Difference

2. Operator relational yang digunakan untuk pemilihantupel atau record:a. Division d. Joinb. Project e. Set Diferencec. Restrict

Page 40: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

3. Operator yang digunakan untuk pemilihan atribute pada aljabar relational: a. Restrict d. Divisionb. Project e. Alphac. Join

4. Operasi yang menggabungkan operasi cartesian 4. Operasi yang menggabungkan operasi cartesian product dengan operasi selection dengan suatu kriteria:a. Selection d. Natural Joinb. Union e. Set intersectionc. Theta Join

Page 41: Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ... (kode_propinsi)=‘pp2’} • Dalam SQL • SELECT nama_propinsi ... Tabel dibawah ini adalah contoh

5. Sintaks untuk menampilkan Nip, Napeg pada tabelPegawai, menggunakan sql formal:

a. Intersection Nip, Napeg (Pegawai)b. Union Nip, Napeg (Pegawai)c. Difference Nip, Napeg (Pegawai)c. Difference Nip, Napeg (Pegawai)d. Restrict Nip, Napeg (Pegawai)e. Project Nip, Napeg (Pegawai)