Rabu, 16 April 2014
Selasa, 08 April 2014
PERANCANGAN BASIS DATA(5)
QUERY
Jawaban:
Jawaban:
JAWABAN LATIHAN
1. Buatlah Query untuk menampilkan nama mahasiswa dan alamatnya yang
sekarang berada di semester 6 ?
Jawab:
SELECT NAMA_MHS, ALAMAT
FROM MAHASISWA,NILAI,MATA_KULIAH
WHERE MAHASISWA.NIM=NILAI.NIM
AND NILAI.KD_MK=MATA_KULIAH.KD_MK
AND SEMESTER=6
2 2. Buatlah :
• aljabar relasional
• query graph
• query tree
Dari query yang telah anda buat dari soal no 1
Jawab:
Aljabar relasional:
p nama_mhs,alamat
(smahasiswa.nim=nilai.nim^nilai.kd_mk=mata_kuliah.kd_mk
^ semester=6(mahasiswa×nilai×mata_kuliah)
Query Graph:
Query Tree:
. 3. Gunakan aturan operasi logika normalisasi untuk meyederhanakan query
berikut:
Select nim
FROM Mahasiswa, nilai
WHERE (Alamat<>”Depok” OR Nilai =”B”)
AND (NOT(Nilai = “B”) OR Jns_Kelamin =
“Laki-laki”)
AND alamat = “Depok”
AND Jns_Kelamin = “Perempuan”
Jawab:
Nilai=”B”=>P
Jns_kelamin = “Laki-laki”=>Q
Alamat =”Depok”=>R
Selasa, 01 April 2014
PERANCANGAN BASIS DATA (4.2)
OPTIMASI QUERY
referensinya:
referensinya:
Optimasi Query
Data yang tersimpan dalam database semakin lama akan semakin besar
ukuran atau voluenya. kalau tidak didukung dengan kecepatan akses yang
memadai maka akan menurun untuk kerjanya. Ukuran untuk kerja dalam hal
ini kecepatan akses data dipengaruhi oleh banyak faktor.
- Optimasi Pada Perintah SQL
Desain aplikasi saja tidak cukup untuk meningkatkan untuk kerja harus
didukung dengan optimasi dari perintah SQL yang digunakan pada aplikasi
tersebut. Dalam desain database untuk menampilkan hasil query dibutuhkan
pencarian melibatkan struktur fisik penyimpanan data.
Inti dari optimasi query adalah meminialkan jalur pencarian untuk meneukan data yang disimpan dari lokasi fisik.
- Perencanan Eksekusi
Pada database oracle ,informasi ini dapat dilihat dengan menggunakan
perintah explain plan, yang akan memberi informasi tentang rencana
eksekusi suatu query. Informasi ini disimpan dalam tabel PLAN tabel yang
terdapat pada schema user yang mengeksekusi perintah tersebut.
- Faktor Lain yang Berpengaruh Terhadap Kecepatan Akses Data
faktor yang berpengaruh terhadap kecepatan akses data tidak hanya pada
optimasi perintah SQL,tapi terhadap hal-hal lain yang berpengaruh .
Diantaranya adalah optimasi aplikasi dan penggunaan cluster index.
- Optimasi Aplikasi
Dalam pebuatan aplikasi ,yang perlu mendapat perhatian adalah apakah
akses terhadap data sudah efisien,yang dapat mendukung kecepatan akses
seperti index dan cluster. Apakah desain database .sudah elakukan
normalisasi data secara tepat.
- Cluster dan Index
Cluster adalah suatu segment yang menyimpan data dari tabel yang berbeda
dala suatu struktur fisik disk yang berdekatan. Konfigurasi ini
bermanfaat untuk akses data dari beberapa tabel yang sering di query.
Penggunaan cluster secara tepat dilaksanakan setelah menganalisa
tabel-tabel ana saja yang sering di query secara bersamaan menggunakan
perintah SQL.
Jika aplikasi sering melakukan query dengan menggunakan suatu kolom yang
berada pada klausa WHERE, aka harus digunakan index yang melibatkan
kolom tersebut. Penggunaan index yang bergantung pada jenis nilai yang
melibatkan kolom tersebut. Penggunaan index yang tepat bergantung pada
jenis nilai yang terdpat dalam kolom yang akan diindex. Dalam RDMS
Oracle, index B-Tree digunakan untuk kolom yang mengandung nilai yang
cukup bervarriasi sedangkan untuk nilai yang tidak memiliki cukup
variasi ,lebih baik menggunakan index bitmap.
Sumber: http://desyanakartika.blogspot.com/2012/12/optimasi-query.html
Sumber: http://desyanakartika.blogspot.com/2012/12/optimasi-query.html
PERANCANGAN BASIS DATA (4.1)
ALJABAR RELASIONAL
Menyambung data diatas referensinya:
Menyambung data diatas referensinya:
Aljabar relasional adalah sebuah
bahasa query prosedural yang terdiri
dari sekumpulan operasi dimana masukannya adalah satu atau dua relasi dan
keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut.
Operasi-operasi dalam aljabar relasional di antaranya : selection, projection, union, set difference, cartesian product, intersection, dan join.
a. Selection
Operasi selection
dapat didefiniskan sebagai ”Kumpulan semua tuple-tuple/record-record dalam
suatu tabel yang memenuhi kondisi P”. Operasi selection berfungsi untuk
menyeleksi tuple-tuple yang memenuhi predikat yang diberikan dari sebuah tabel
relasi. Simbol sigma “σ” digunakan untuk menunjukkan operasi select. Predikat muncul sebagai subscript dari σ dan kondisi yang
diinginkan yang ditulis dalam predikat. Argumen diberikan dalam tanda kurung
yang mengikuti σ dan berisi tabel relasi yang dimaksud.
Contoh penggunaan operasi selection :
Misalkan ada 3 tabel, yaitu tabel dosen,
tabel matakuliah seperti berikut:
Tabel Dosen
NIP
|
Nama_dosen
|
Jenis_kelamin
|
Alamat
|
Kota
|
95001
|
Bambang
|
Pria
|
Jl. Mawar
|
Jakarta Selatan
|
95002
|
Asri
|
Wanita
|
Jl. Anggrek
|
Jakarta Selatan
|
95003
|
Hesti
|
Wanita
|
Jl. Bungur
|
Jakarta Timur
|
95004
|
Dimas
|
Pria
|
Jl. Kemuning
|
Cikarang
|
Tabel Matakuliah Tabel Mengajar
Kd_mk
|
Nama_mk
|
Sks
|
NIP
|
Kd_mk
|
Kelas
|
|
MPK1
|
PKN
|
2
|
95002
|
MKB3
|
A
|
|
MKB3
|
BDT
|
3
|
95002
|
MKB4
|
A
|
|
MKB4
|
ASD
|
3
|
95003
|
MPK1
|
A
|
|
95003
|
MPK1
|
B
|
||||
95004
|
MKB4
|
B
|
Tampilkan daftar dosen yang berjenis
kelamin pria dari tabel Dosen.
Aljabar relasional : σJenis_kelamin=Pria(Dosen)
Hasil:
NIP
|
Nama_dosen
|
Jenis_kelamin
|
Alamat
|
Kota
|
95001
|
Bambang
|
Pria
|
Jl. Mawar
|
Jakarta Selatan
|
95004
|
Dimas
|
Pria
|
Jl. Kemuning
|
Cikarang
|
b. Projection
Operasi projection
berfungsi untuk memilih nilai atribut-atribut tertentu saja dari sebuah tabel
relasi. Simbol phi “Ï€” digunakan untuk menunjukkan operasi projection. Predikat muncul sebagai subscript dari Ï€ dan hanya nama atribut yang diinginkan yang
ditulis dalam predikat. Argumen diberikan dalam tanda kurung yang mengikuti π
dan berisi tabel relasi yang dimaksud.
Contoh penggunaan operasi projection :
1. Tampilkan
NIP dan Nama_dosen dari tabel Dosen
Aljabar
relasional : πNIP,Nama_dosen(Dosen)
Hasil:
NIP
|
Nama_dosen
|
95001
|
Bambang
|
95002
|
Asri
|
95003
|
Hesti
|
95004
|
Dimas
|
2. Tampilkan
NIP, Nama_dosen, dan kota dari tabel Dosen dari dosen-dosen yang bertempat
tinggal di kota Jakarta Selatan.
Aljabar
relasional : πNIP,Nama_dosen,Kota(σKota=Jakarta
Selatan(Dosen)
Hasil
:
NIP
|
Nama_dosen
|
Jenis_kelamin
|
Kota
|
95001
|
Bambang
|
Pria
|
Jakarta Selatan
|
95002
|
Asri
|
Wanita
|
Jakarta Selatan
|
c. Union
Operasi union
berfungsi untuk mendapatkan gabungan nilai atribut dari sebuah tabel relasi
dengan nilai atribut dari tabel relasi lainnya. Simbol “∪” digunakan untuk menunjukkan
operasi union. Operasi union bernilai
benar bila terpenuhi 2 kondisi, yaitu : Derajat dari 2 tabel relasi yang
dioperasikan harus sama dan domain dari atribut yang dioperasikan juga harus
sama.
Contoh penggunaan operasi union :
Tampilkan NIP( dari relasi Dosen) Union
dari NIP (dari tabel Mengajar)
Aljabar Relasional: πNIP
(Dosen) ∪ NIP
(Mengajar)
Hasil:
NIP
|
95001
|
95002
|
95003
|
95004
|
d. Set
Difference
Operasi set difference berfungsi untuk mendapatkan
nilai yang ada dalam sebuah tabel relasi, tapi tidak ada dalam tabel relasi
lainnya. Simbol “-“ digunakan untuk menunjukkan operasi set difference.
Contoh penggunaan operasi set difference :
Tampilkan
NIP (dari tabel Dosen) Set-difference dari NIP (dari tabel
Mengajar).
Aljabar
relasional: πNIP
(Dosen) - NIP (Mengajar)
Hasil
:
NIP
|
95001
|
e. Cartesian
Product
Operasi cartesian
product berfungsi untuk
mengkombinasikan informasi yang ada dalam 2 tabel relasi dan menghasilkan
sebuah tabel relasi yang baru. Simbol “x“ digunakan untuk menunjukkan operasi cartesian product.
Contoh penggunaan operasi cartesian product :
Tampilkan
Kode_mk, Nama_mk, Sks (dari tabel Matakuliah), Kelas (dari tabel Mengajar)
dimana kelas yang diajar adalah kelas A.
Aljabar
relasional: πKode_mk,Nama_mk,Sks,Kelas
(σKelas=A ˄ Mengajar.Kode_mk=Matakuliah.Kode_mk(Mengajar x
Matakuliah))
atau
σMengajar.Kode_mk=Matakuliah.Kode_mk ˄ Kelas=A ((Ï€Kode_mk,Nama_mk,Sks
(Matakuliah)) x πKelas(Mengajar))
Hasil:
Kd_mk
|
Nama_mk
|
Sks
|
Kelas
|
MPK1
|
PKN
|
2
|
A
|
MKB3
|
BDT
|
3
|
A
|
MKB4
|
ASD
|
3
|
A
|
f. Intersection
Set intersection / Intersection (∩) termasuk ke dalam
operator tambahan, karena operator ini dapat diderivikasi dari operator dasar
seperti berikut:
A ∩
B = A - ( A – B ), atau A ∩ B = B - ( B – A )
Operasi set intersection berfungsi untuk mendapatkan
nilai yang ada dalam sebuah tabel relasi dan juga ada dalam tabel relasi
lainnya. Simbol “∩“ digunakan untuk menunjukkan operasi set intersection.
Contoh penggunaan operasi set intersection :
Tampilkan NIP (dari tabel Dosen) Set
Intersection dengan NIP (dari tabel Mengajar).
Aljabar relasional: πNIP
(Dosen) ∩ Ï€NIP (Mengajar)
Hasil:
NIP
|
95002
|
95003
|
95004
|
g. Natural
Join
Operasi natural join berfungsi untuk menggabungkan
operasi selection dan cartesian product menjadi hanya 1 operasi saja. Simbol “⋈“ digunakan untuk menunjukkan operasi natural join. Operasi natural
join hanya menghasilkan tupel yang
mempunyai nilai yang sama pada 2 atribut yang bernama sama pada 2 tabel relasi
yang berbeda.
Contoh penggunaan operasi natural join :
Tampilkan
seluruh data yang ada pada tabel Matakuliah dan tabel Mengajar.
Aljabar
relasional : Matakuliah ⋈ Mengajar.Kode_mk=Matakuliah.Kode_mk Mengajar
Hasil:
Kd_mk
|
Nama_mk
|
Sks
|
NIP
|
Kelas
|
MKB3
|
BDT
|
3
|
95002
|
A
|
MKB4
|
ASD
|
3
|
95002
|
A
|
MPK1
|
PKN
|
2
|
95003
|
A
|
MPK1
|
PKN
|
2
|
95003
|
B
|
MKB4
|
ASD
|
3
|
95004
|
B
|
h. Theta
Join
Operasi theta join berfungsi untuk mengkombinasikan
tupel dari 2 tabel relasi dimana kondisi dari kombinasi tersebut tidak hanya
nilai dari 2 atribut bernama sama, tetapi kondisi yang diinginkan juga bisa
menggunakan operator relasional (≤, <, =, >, ≥). Operasi theta join merupakan ekstensi dari natural join.
Contoh penggunaan operasi theta join:
Tampilkan
seluruh data yang ada pada tabel Matakuliah dan tabel Mengajar.
Aljabar relasional : Matakuliah ⋈ Mengajar.Kode_mk=Matakuliah.Kode_mk
Mengajar
Hasil:
Kd_mk
|
Nama_mk
|
Sks
|
NIP
|
Kd_mk
|
Kelas
|
MKB3
|
BDT
|
3
|
95002
|
MKB3
|
A
|
MKB4
|
ASD
|
3
|
95002
|
MKB4
|
A
|
MPK1
|
PKN
|
2
|
95003
|
MPK1
|
A
|
MPK1
|
PKN
|
2
|
95003
|
MPK1
|
B
|
MKB4
|
ASD
|
3
|
95004
|
MKB4
|
B
|