Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ......

Post on 30-Jul-2019

255 views 0 download

Transcript of Bahasa Query Formal - duniayublog.files.wordpress.com filedari kondisi secara ......

Pertemuan 9

Bahasa Query Bahasa Query Formal

Bahasa Query Formal

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

1.Aljabar Relasional2.Kalkulus Relasional2.Kalkulus Relasional

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)

hanya mengekspresikan” what to do or what

characteristics are required ” dan tidak mengekspresikan

” how to do it ” seperti pada bahasa queri

prosedural

Ciri-ciri Kalkulus Relational

First order calculus menggunakan simbol-simbolpredikat dan simbol-simbol

fungsi

simbol fungsi tidak diperlukan

predikat diinterprestasikansebagai relasi

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

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/

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”.

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‘

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

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 ( )).

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

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/

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 .

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

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

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

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

Tabel Nilai

Tabel Matkul

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)

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)

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 ))

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)

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))

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

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

Natural Join

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

Theta Join

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

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

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.

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

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

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)