BAHASA QUERY FORMAL
Transcript of BAHASA QUERY FORMAL
Materi :
BahasaKueri
Formal
Aljabar Relasional
Kalkulus Relasional
Komersial SQL
Pemrosesan Kueri
• Sejumlah aktifitas yang dilakukan untuk pengambilan data
• Aktifitas meliputi transformasi dari berbagai kueri dari level logik ke level fisik
• Klasifikasi aktifitas meliputi : Parsing, optimasi, evaluasi kueri
Klasifikasi Aktifitas
Kueri Parser &
Transleter
Ekspresi Aljabar
Optimizer
Rencana Mesin Evaluasi
Hasil Kueri
Informasi
Data
Klasifikasi Aktifitas • Langkah-langkah yang mendasar : 1. Parsing dan Translasi 2. Optimasi 3. Evaluasi Query
• Sebelum pemrosesan query dimulai, sistem menterjemahkan query tersebut ke dalam bentuk yang cocok bagi sistem basis data.
• Proses translasi dilakukan oleh modul parser dalam sebuah sistem kompilator program.
• Parser memeriksa sintaks query dari pemakai juga melihat apakah nama tabel yang disebutkan memang benar merupakan nama tabel yang ada di dalam basis data.
o Kueri diterjemahkan(Parsing) oleh modul parser kedalam bahasa mesin (internal kueri) memeriksa sintak kueri, nama table menghasilkan representatif hirarkis yang memudahkan translasi ke model ekspresi aljabar relasional.
o Contoh :
select kdmk ,sks,semester
from matkul where semester>3
Kueri di translasikan pada salah satu ekspresi aljabar relasional :
1. σ semester>3 (π kdmk,sks,semester(matkul))
2. π kdmk,sks,semester (σ semester>3(matkul))
Menghasilkan output yang sama
• Ekspresi 1
σ semester>3 (π kdmk,sks,semester(matkul))
σ semester>3 ( urutan 1 )
( urutan 2 )
Sem,kdmk,sks disimpan dalam buffer
• Ekspresi 2
π kdmk,sks,semester (σ semester>3(matkul))
( urutan 1 )
( urutan 2 )
Semester,kdmk,sks disimpan dalam buffer
Bahasa Kueri Formal
• Bahasa query formal basis data relasional adalah bahasa untuk meminta informasi dari basis data yang menggunakan notasi matematik
• Ada 2 dasar pembentukan dan selanjutnya menentukan cara query dalam Bahasa Query yaitu : Aljabar Relasional dan Kalkulus Relasional
Aljabar Relational
• Relational Algebra (aljabar relasional) kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi data.
Operasi dalan Aljabar Relasional
5 operasi dasar:
(UNARY OPERATION) : Selection () , Projection ()
(BINARY OPERATION): Cartesian – product (X), Union (), Set – difference (-),Rename ()
Operasi – operasi turunan : (BINARY OPERATION)
Set intersection (),Theta join (), Natural-join ( ), Outer-join ( ), Division ( )
SELECTION ()
Notasi : σp(r)
Operasi untuk menyeleksi tupel – tupel yang memenuhi suatu predikat
Ilustrasi :
Operator aritmatik (<,>,>=,<=,=,#)
Operator logika untuk predikat majemuk menggunakan penghubung AND ( ) dan OR ( ).
1 Bbb Ccc Ddd
2 Eee Fff Ggg
3 Hhh Iii Jjj
4 Kkk Lll Mmm
5 Nnn Ooo Ppp
6 Qqq Rrr Sss
7 Ttt Vvv Www
Latihan :
Relasi/Table : Dosen
1. Tampilkan daftar dosen yang berkota di ‘Bekasi
kota=’Bekasi’ (Dosen)
2. Tampilkan daftar dosen yang tinggal di Jakarta atau ‘Bogor
Kota=’Jakarta’ kota =’Bogor’ (Dosen)
3. Tampilkan daftar dosen Pria yang tinggal
di kota Bogor
4. Tampilkan daftar dosen yang memiliki gaji dibawah 1800000
5. Tampilkan dosen wanita yang lahir di Jakarta
Operasi Project ( )
operasi untuk memperoleh kolom – kolom tertentu.
Ilustrasi :
Sintaks yang digunakan dalam operasi proyeksi ini adalah sebagai berikut :
colum1,…,column ( tabel)
1 Bbb Ccc Ddd
2 Eee Fff Ggg
3 Hhh Iii Jjj
4 Kkk Lll Mmm
5 Nnn Ooo Ppp
6 Qqq Rrr Sss
7 Ttt Vvv Www
Table/relasi dosen
1.Tampilkan kddos,nama_dos,jekel,kota dari relasi Dosen
kddos,namados,jekel,kota(Dosen)
2. Select dan Project
Tampilkan kddos,namados, alamat,kota untuk
dosen yang tinggal di Bogor
kddos,namados,alamat,kota(tkota=‘Bogor’ (Dosen))
3. Tampilkan nama dosen,kota lahir,tanggal lahir
untuk dosen wanita yang lahir di Jakarta
4. Tampilkan nama dosen, jenis kelamin, gaji
untuk dosen wanita atau pria dengan dengan gaji
diatas 1750000
Operasi Cartesian Product • Cartesian-product ( X ), adalah operasi untuk
menghasilkan table hasil perkalian kartesian.
• Sintaks yang digunakan dalam operasi proyeksi ini adalah sebagai berikut :
R X S = {(x,y) | xR dan yS}
1 Xxx
6 Opo
1 Bbb Ccc Ddd
10 Eee Fff Ggg
3 Hhh Iii Jjj
2 Kkk Lll Mmm
R
S
R X S
1 Xxx 1 Bbb Ccc Ddd
1 Xxx 10 Eee Fff Ggg
1 Xxx 3 Hhh Iii Jjj
1 Xxx 2 Kkk Lll Mmm
6 Opo 1 Bbb Ccc Ddd
6 Opo 10 Eee Fff Ggg
6 Opo 3 Hhh Iii Jjj
6 Opo 2 Kkk Lll Mmm
KDDOS HARI JAM KDMK KELAS
0001 1 3 TI005 SM01
0020 1 3 TI005 SM03
0015 1 7 PP001 SM01
KDMK NAMAMK SKS
TI005 Pengantar WEB 3
TI001 Sistem Basis Data 3
PP001 Pancasila 2
AJAR MATAKULIAH alias MK
Contoh :
KDDOS HARI JAM ajar.KDMK KELAS Mk.KDMK NAMAMK SKS
0001 1 3 TI005 SM01 TI005 Pengantar WEB 3
0001 1 3 TI005 SM01 TI001 Sistem Basis Data 3
0001 1 3 TI005 SM01 PP001 Pancasila 2
0020 1 3 TI005 SM03 TI005 Pengantar WEB 3
0020 1 3 TI005 SM03 TI001 Sistem Basis Data 3
0020 1 3 TI005 SM03 PP001 Pancasila 2
0015 1 7 PP001 SM01 TI005 Pengantar WEB 3
0015 1 7 PP001 SM01 TI001 Sistem Basis Data 3
0015 1 7 PP001 SM01 PP001 Pancasila 2
AJAR X MK
Contoh
Tampilkan kddos, kdmk, namamk, kelas, hari,
jam untuk dosen yang mengajar pada jam ke 3
kddos,ajar.kdmk,namamk,kelas,hari,jam
(ajar.kdmk=mk.kdmk ^ jam =‘3’(ajar x mk))
KDDOS ajar.KDMK NAMAMK KELAS HARI JAM
0001 TI005 Pengantar WEB SM01 1 3
0020 TI005 Pengantar WEB SM03 1 3
Operasi Union( )
• Operasi untuk menghasilkan gabungan table dengan syarat kedua table memiliki atribut yang sama, yaitu domain atribut ke-i masing – masing table harus sama.
• Sintaks yang digunakan dalam operasi union ini adalah sebagai berikut :
R S = {x | xR atau X S}
• Memiliki derajat yang sama
Contoh : Tabel Mahasiswa
NIM NAMA_MHS ALAMAT_MHS KOTA TGL_LHR
980001 Ali Akbar Jl. Merdeka Bogor 02-01-1979
980002 Budi Haryanto Jl. Gajah Mada Jakarta 06-10-1978
Tabel Dosen
KODE_DOS NAMA_DOS ALAMAT_DOS KOTA
SY Syamsudin, S.Si Jl. Suci Bekasi
FS Farida Syarif, Ir Jl. Tenteram Jakarta
Mahasiswa Dosen
• Tampilkan kota tempat tinggal mahasiswa dan dosen
•Jila dilakukan operasi union :
kota (mahasiswa) kota (Dosen)
•Maka hasilnya :
KOTA
Bogor
Jakarta
Bekasi
KOTA
Bogor
Jakarta
KOTA
Bekasi
Jakarta
Operasi Set Difference
• Operasi untuk mendapatkan table pada relasi pertama, tapi tidak ada pada relasi yang lainnya.
• Sintaks sebagai berikut :
R – S = { x | xR dan X S}
• Operasi ini dapat dilaksanakan apabila R dan S mempunyai atribut yang tidak sama yang akan ditampilkan.
Contoh Operasi Set Difference • Jika tabel Kuliah_S1 dan Tabel Kuliah_D3 berisi data sebagai
berikut :
• Tabel Kuliah_S1
Kode_kul Nama_kul Sks sem
IF-110 Pemrograman I 3 1
IF-221 Struktur Data 3 2
IF-310 Basis Data 4 3
IF-320 Pemrograman II 3 3
IF-411 Sistem Basis Sata 3 4
IF-423 Sistem Pakar 2 4
Tabel Kuliah_D3
Kode_kul Nama_kul Sks Sem
IF-110 Pemrograman I 3 1
IF-120 Aplikasi Akuntansi 2 1
IF-221 Struktur Data 3 2
IF-310 Basis Data 4 3
Contoh Operasi Set Difference
• Tampilkan matakuliah yang ditawarkan pada S1 tetapi tidak ada di D3
• Maka hasil operasi : • nama_kul (Kuliah_S1) - nama_kul (Kuliah_D3)
Nama_kul
Pemrograman II
Sistem Basis Data
Sistem Pakar
Nama_kul
Pemrograman I
Struktur Data
Basis Data
Pemrograman II
Sistem Basis Sata
Sistem Pakar
Nama_kul
Pemrograman I
Aplikasi Akuntansi
Struktur Data
Basis Data
Operasi rename( )
Operasi untuk menyalin table lama kedalam table yang baru
Sintaks sebagai berikut :
[nama_table] (table_lama)
Salinlah table baru dengan nama DosenNew dari
table Dosen, dimana jenis kelaminnya adalah ‘Pria’.
DosenNew ( jekel=’L’) (Dosen))
Natural Join
Menghasilkan tabel hasil kemungkinan kombinasi suatu relasi dengan relasi lain, dimana antar relasi memiliki atribut yang memiliki domain yang sama
Sintaks sebagai berikut : R S
Ilustrasi
R S
r1 r2
a 1
b 2
r2 r3
1 x
1 y
3 z
R
S
r1 r2 r3
a 1 x
a 1 y
Contoh
KDDOS HARI JAM KDMK KELAS
0001 1 3 TI005 SM01
0020 1 3 TI005 SM03
0015 1 7 PP001 SM01
KDMK NAMAMK SKS
TI005 Pengantar WEB 3
TI001 Sistem Basis Data 3
PP001 Pancasila 2
Ajar Matakuliah alias MK
KDDOS HARI JAM KDMK KELAS NAMAMK SKS
0001 1 3 TI005 SM01 Pengantar WEB 3
0020 1 3 TI005 SM03 Pengantar WEB 3
0015 1 7 PP001 SM01 Pancasila 2
Ajar MK
Set-Intersection ()
Sintaks adalah : A B = A – (A-B) atau B A = B – (B-A)
Ilustrasi :
A B
D H
A C
D F
R S R - S
T H
M N
S - R
D H
A C
A B
T H
D F
M N
R S = R - ( R - S )
A B
D H
A C
D F
D H
A C A B
D F
S R = S - ( S - R )
T H
M N
A B
D F
A B
T H
D F
M N
Jika diketahui Tabel matakuliah S1 dan D3 berikut :
Tabel Kuliah_S1
Kode_kul Nama_kul Sks sem
IF-110 Pemrograman I 3 1
IF-221 Struktur Data 3 2
IF-310 Basis Data 4 3
IF-320 Pemrograman II 3 3
IF-411 Sistem Basis Sata 3 4
IF-423 Sistem Pakar 2 4
Kode_kul Nama_kul Sks Sem
IF-110 Pemrograman I 3 1
IF-120 Aplikasi Akuntansi 2 1
IF-221 Struktur Data 3 2
IF-310 Basis Data 4 3
Tabel
Kuliah_D3
Tampilkan matakuliah yang ditawarkan pada S1
dan D3
Maka hasil operasi :
nama_kul (Kuliah_S1) nama_kul (Kuliah_D3)
Nama_kul
Pemrograman I
Struktur Data
Basis Data
Nama_kul
Pemrograman I
Struktur Data
Basis Data
Pemrograman II
Sistem Basis Sata
Sistem Pakar
Nama_kul
Pemrograman I
Aplikasi Akuntansi
Struktur Data
Basis Data