Upload
tranngoc
View
248
Download
0
Embed Size (px)
Citation preview
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)