Sunday, November 9, 2014

Laporan Prakt Desain Basis Data (Modul 7)

Nama : Ahmad Nafis Syahroni
NIM : 13650131
Matkul : Prakt DBD



SUB QUERY dan INDEX
A.    Pembahasan
·         Pada bab kali ini akan membahas tentang sub query dan indeks
·         Selain hal itu akan dibahas juga mengenai cluster, kolom unik dan trim
B.     Tujuan
·   Mahasiswa memahami dan menggunakan sub query dan indeks dalam pengelolaan database.
·         Mahasiswa memahami cara penggunaan cluster, kolom unik dan trim.
C.     Dasar Teori
Sub query atau query Nested merupakan bentuk query yang terdapat dalam query yang lain. Subquery dapat ditempatkan dalam klausa where, having, from bersama dengan operator perbandingan seperti = untuk baris tunggal dan untuk baris berganda menggunakan in, not in atau <>, < any, >, >=,<=. Penggunaan sub query dapat diterapkan pada pernyataan SELECT, UPDATE, DELETE, dan INSERT. Sub query merupakan “query di dalam query” atau perintah select yang berada di dalam perintah select lainnya.
Subquery adalah perintah SELECT yang berada di dalam perintah SQL lain. Subquery sangat berguna ketika kita ingin menampilkan data dengan kondisi yang bergantung pada data di dalam table itu sendiri.
1.      Kegunaan-kegunaan  Subquery dalam memanipulasi data:
·         Meng-copy data dari satu tabel ke tabel lain
·         Menerima data dari inline view
·         Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju
·         Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.
2.      ATURAN SUB QUERY
·         Klausa ORDER BY tidak boleh digunakan .di subquery. ORDER BY dapat digunakan ,di pernyataan SELECT luar.
·         Klausa subquery SELECT harus beisi satu nama kolom tunggal atau ekspresi kecuali untuk subquery-subquery menggunakan kata kunci EXIST.
·         secara default, nama-nama kolom di subquery mengacu ke nama table diklausa FROM di query lebih luar dengan mengkualifikasi nama kolom
·         Saat subquery adalah salah satu dua operan dilibatkan di pembandingan, subquery harus muncul di sisi kanan pembandingan.
·         Subquery tdak boleh digunakan sebagai operan di ekspresi.
3.      Perintah Select pada Sub Query
Subquery terdiri dari dua perintah select. Perintah select pertama disebut Outer Query atau Query induk sedangkan query yang berada pada klausa where disebut inner query. Inner query akan dikerjakan terlebih dahulu dan hasilnya akan digunakan sebagai pembnding pada pencarian data di klausa where outer query. Subquery dapat digunakan untuk menghasilkan nilai-nilai bagi outer query pada saat kriteria pencarian yang dibutuhkan tidak diketahui. Sebagai contoh kita ingin mengetahui semua harga jual dari barang yang lebih kecil dari harga jual barang dengan kode 10011 sementara kita sendiri tidak tahu harga jual barang dengan kode 10011.
4.      Jenis-jenis Sub Query
a)      Single-row subquery
Merupakan subquery yang hanya menghasilkan satu baris dan satu  kolom data atau data tanggal.
b)      Multi-row subquery
Menghasilkan lebih dari satu row. Tanda pembanding yang digunakan dalam multi row subquery adalah tanda pembanding jamak yaitu IN, ANY dan ALL.
c)      Multi-column Subquery
Multi Column Subquery adalah subquery yang menghasilkan lebih dari satu kolom. Biasa disebut juga pairwise subquery. Jumlah dan posisi kolom dari outer query yang akan dibandingkan harus sama dengan jumlah dan posisi kolom pada subquery. Setiap row pada outer query dibandingkan dengan nilai dari multiple-row dan multiple-column pada subquery. Penghubung yang digunakan biasanya IN
d)     Correlated subquery
Berbeda dari subquery didepan yang disebut scalar subquery karena bagian subquery akan diproses terlebih dahulu untuk menyeleksi outer querynya. Pada Corelated sebquery ini outer subquery akan diproses terlebih dahulu kemudian hasilnya akan dijadikan rujukan untuk memproses subquery. Disebut correlated subquery karena subquery dikerjakan berdasarkan rujukan data dari out query. Pendefinisian korelasi antara outer query dan subquery dilakukan pada klausa where di subquery. Pada correlated subquery, subquery akan dikerjakan sebanyak jumlah baris di out query.
e)      Inline View
Merupakan cara untuk mengumpulkan data yang akan dianggap oleh query utama sebagai sebuah tabel untuk keperluan pengaksesan query

Operator EXIST dan NOT EXIST
Kata kunci EXIST dan NOT EXIST dirancang hanya untuk digunakan di subquery. Kata kunci-kata kunci ini menghasilkan nilai TRUE atau FALSE EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di table hasil yang dikirim oleh subquery. EXIST mengirim nilai FALSE jika subquery mengirm table kosong NOT EXIST kebalian dan EXIST. Karena EXIST dan NOT EXIST hanya memeriksa keberadaan baris-baris di table hasil subquery.

Indeks disini berguna dalam suatu pencarian nilai atau data dalam database. Dalam suatu kasus ketika mengakses sebuah tabel biasanya DBMS akan membaca seluruh tabel baris perbaris hingga selesai. Ketika baris sangat banyak dan hasil dari query hanya sedikit, maka hal ini sangat tidak efisien. Seperti halnya ketika kita membaca sebuah buku dan ingin mencari kata atau istilah tertentu dalam buku maka biasanya akan di cari dengan membuka setiap halaman dari awal sampai akhir. Dengan adanya indeks buku maka kita cukup dengan membuka indeks, sehingga akan cepat dalam pencarian kata tersebut. PostgreSQL tidak bisa membuat indeks dengan otomatis, sehingga user dapat membuat indeks tersebut untuk sering kali digunakan kolom, biasanya dalam clause WHERE 


Index adalah struktur data yang mengatur record data pada disk untuk mengoptimalkan beberapa jenis operasi pengambilan (retrieval) tertentu . • Index memungkinkan kita untuk secara efektif mengambil semua record yang memenuhi syarat pencarian pada field search key dari index. • Memungkinkan untuk membuat index tambahan pada kumpulan record data tertentu, masing– masing dengan search key yang berbeda untuk mempercepat operasi pencarian yang tidak didukung secara efisien oleh organisasi file yang digunakan untuk menyimpan record data .

D.    Tugas Praktikan
      

Tugas praktikum kali ini masih menggunakan tabel pada praktikum sebelumnya :
1.      Tampilkan nama fakultas dan jumlah mahasiswa yang mampunyai ketentuan nama fakultas yang dimunculkan dengan jumlah mahasiswanya terkecil! 
      Ini Data pada praktikum sebelumnya





2.      Tampilkan nama mahasiswa, nama fakultas, alamat dengan syarat nama fakultas sama dengan edi dan alamatnya tidak sama dengan luki! 


3.      Buatlah index di tabel mahasiswa(alamat). Kemudian buat lagi index yang bersifat unik pada tabel fakultas(fak_nama) kemudian amati perbedaannya ketika memasukkan data yang sama! 




4.      Buat kolom nama di mahasiswa menjadi unik dan inputkan 2 data yang sama. Kemudian amati perbedaannya ! 



5.      Pindahkan data dari tabel mahasiswa, fakultas ambil kolom nim, nama mahasiswa, alamat, nama fakultas ke tabel baru yang dinamai „tabel identitas‟. 


6.      Buatlah contoh penggunaan check pada sub bab pembahasan CHECK. Kemudian masukkan beberapa data baik yang sesuai dengan criteria check maupun yang bukan dan amati perbedaannya. 



7.      Inputkan data di tabel mahasiswa dimana pada kolom nama sebelum inputkan karakter dahulukan dengan spasi dan di akhiri dengan tanda “+” seperti berikut : “ andi cahyono++++”. kemudian munculkan seluruh data dan hilangkan spasi didepan! 





8.      Munculkan data mahasiswa dengan hilangkan karakter “+” di akhir data dan karakter “a” di awal kata pada kolom nama! 



E.     Kesimpulan
      

Subquery IN : subquery yang digunakan untuk menghasilkan 1(satu) kolom tapi boleh beberapa    baris.
Subquery EXISTS : subquery yang dapat menghasilkan satu atau lebih kolom.
Subquery ALL/SOME : Subquery yang mana hasil yang dikembalikan lebih dari satu.

F.      Kritik Saran
      Mohon maaf mbak aslep laporan saya telat,. karena saya lagi sakit. 

G.    Manfaat Pembaca
      Pembaca dapat ilmu tentang bab ini,. yaitu sub query dan index,. dan akan mengetahui bagaimana query-query nya. akan lebih baiknya pembaca menerapkannya dan mempraktekan. sekian trimakasih 

H.    Daftar Pustaka
http://purnamakue.blogspot.com/2013/01/sub-query.html
http://tetiseptiani.blogspot.com/2012/06/pengertian-index.html 
http://blog.akakom.ac.id/romaariwibowo/penggunaan-sub-query/
Modul Praktikum

0 comments:

Post a Comment