Minggu, 16 November 2014

Praktikum 7 - Sub Query dan Index

Edit Posted by with No comments
BAB I
MAKSUD DAN TUJUAN PRAKTIKUM

I.1 Maksud Praktikum

1. Membahas tentang sub query dan indeks
2. Membahas cluster, kolom unik dan trim

I.2 Tujuan Praktikum

1. Memahami dan menggunakan sub query dan indeks dalam pengelolaan database.
2. Memahami cara penggunaan cluster, kolom unik dan trim



BAB II
DASAR TEORI

1)      SELECT INTO STATEMENT
Query select into statement merupakan query SQL yang digunakan untuk mengopi informasi dari tabel ke tabel yang lain tanpa membuat tabel sebelumnya. Berikut struktur query penggunaan select into statement untuk mengopi semua data dari tabel1 ke tabel yang baru :

SELECT * INTO newtable FROM table1;

Berikut struktur query penggunaan select into statement untuk mengopi data berdasarkan kolom tertentu dari tabel1 ke tabel yang baru :

SELECT column_name(s) INTO newtable [IN externaldb] FROM table1;

2)       SUB QUERY
Sub query menghasilkan  sebuah tabel yang merupakan bagian dari tabel atau view yang diidentifikasikan pada klausa FROM. Pembagian ini dapat digambarkan seperti urutan operasi, dimana hasil dari suatu operasi adalah input bagi operasi lain. 
Subquery diperlukan pada saat hasil query tidak berhasil dilakukan dengan hanya melalui satu tabel saja, juga pada saat hasil suatu query digunakan pada klausa WHERE query lainnya. Hasil yang diperoleh dari SUBSELECT tidak dapat ditampilkan oleh “main”  SELECT. 
Urutan operasi pada Subquery adalah :

1. klausa FROM 
2. klausa WHERE 
3. klausa GROUP BY 
4. klausa HAVING 
5. klausa SELECT    

• Sintaks : 

SELECT  ( * | (ekspresi_kolom) ….
FROM  (nama_tabel) ….
 [WHERE  kondisi ] 
[GROUP BY  (nama_kolom) ….  ] 
 [HAVING  kondisi_having ] 

3)      INDEKS
Index adalah objek pada MySQL yang berisi data yang terurut - dari nilai-nilai pada satu atau lebih field dalam suatu table. Sama seperti daftar isi pada sebuah buku, index terutama digunakan  untuk mempercepat pencarian terhadap suatu set data dengan kondisi tertentu - yang melibatkan kombinasi field yang sudah didefinisikan dalam suatu index. Tanpa index, pencarian data biasanya akan memakan waktu lama, terutama jika data sudah dalam skala jumlah yang sangat besar.

Syntax pada MySQL untuk membuat suatu index adalah sebagai berikut :

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (index_col_name,...)
    [index_type]
index_col_name:
    col_name [(length)] [ASC | DESC]
index_type:
    USING {BTREE | HASH}

4)       KOLOM UNIK
Unique Constraint berguna mengidentifikasi setiap record dalam tabel database. UNIQUE dan PRIMARY KEY constraints memberikan jaminan bagi keunikan untuk kolom atau set kolom. PRIMARY KEY constraints otomatis memiliki UNIQUE constraint yang didefinisikan padanya.
Catatan: Kita dapat memiliki banyak UNIQUE constraint per table, tetapi hanya satu PRIMARY KEY constraints per table.

CREATE TABLE nama_tabel (nama_kolom tipe_data unique);

Namun, ketika tabel sudah ada, maka kita tinggal menambahkan unique pada kolomnya.

ALTER TABLE nama_tabel ADD UNIQUE (nama_kolom);

Untuk menghapus unique berikut caranya :

ALTER TABLE nama_table DROP CONSTRAINT nama_constraint;

5)      CHECK
Check berfungsi untuk melakukan pembatasan nilai masukan dalam sebuah kolom, sebagai contoh misalkan kita ingin agar kolom gender yang terdiri dari satu karakter hanya memiliki dua pilihan yaitu M (male) atau F (female) ini dapat kita setting dengan menggunakan check. Dengan menggunakan check maka sebuah kolom hanya bisa diisi dengan data yang memenuhi kriteria dalam check.

6)      TRIM
Suatu ketika pasti akan memiliki data yang di dalamnya terdapat spasi kosong yang tidak diperlukan, misalnya spasi ganda. Jika ada masalah seperti ini, kita dapat membersihkan spasi-spasi kosong yang tidak diperlukan menggunakan fungsi TRIM, RTRIM, dan LTRIM. Ketiga fungsi ini memiliki bentuk penggunaan sebagai berikut :
- RTRIM : digunakan untuk membersihkan spasi kosong yang ada di bagian kanan (Right) String.
- LTRIM : digunakan untuk membersihkan spasi kosong yang ada di bagian kiri (Left) String.
- TRIM : digunakan untuk membersihkan spasi kosong yang ada di bagian kiri, kanan, maupun tengah String.
Berikut Struktur SQL nya :

Select trim(nama_kolom) from nama_tabel;

Dalam penggunaannya, fungsi TRIM memiliki tiga opsi. Ketiga opsi ini dapat digunakan untuk menentukan karakter apa yang akan dihapus dari suatu String. Jadi, fungsi TRIM juga dapat menghilangkan karakter tertentu (bukan spasi kosong saja) dari suatu string. Opsinya sebagai berikut :
- LEADING : merupakan opsi untuk menghilangkan karakter terpilih yang ada di sebelah kiri. Parameter Leading diartikan sebagai sufik dari karakter yang ada.
- TRAILING : merupakan opsi untuk menghilangkan karakter terpilih yang ada di sebelah kanan String. Parameter Trailing diartikan sebagai sufik dari karakter yang ada.
- BOTH : merupakan opsi yang dapat menangani parameter Leading maupun Trailing.

Source >>        Mustafa, Aziz.Modul Desain Basis Data.pdf
                        ilab.gunadarma.ac.id/modul/newpta2011-2012/mysql/m7.pdf
                        http://mysql.phi-integration.com/sql/membuat-index-pada-mysql


Hasil Praktikum & Tugas

Menggunakan PostgreSQL

1.    Tampilkan nama fakultas dan jumlah mahasiswa yang mampunyai ketentuan nama fakultas yang dimunculkan dengan jumlah mahasiswanya terkecil!


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!


Menggunakan MySQL (Xampp)

1.    Tampilkan nama fakultas dan jumlah mahasiswa yang mampunyai ketentuan nama fakultas yang dimunculkan dengan jumlah mahasiswanya terkecil!


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!




Evaluasi Perbandingan

            Pada praktikum kali ini, semua query pada PostgreSQL dan MYSQL pada nomer 1-4 adalah sama.
Namun pada nomor 5 terdapat perbedaan. Dalam DBMS MySQL tidak bisa menerima perintah select into. Hal ini terjadi mungkin karena PostgreS lebih unggul dari MySQL. Jadi beberapa query yang dalam postgres dapat dijalankan namun dalam mysql tidak.
Dalam nomor 6 juga terdapat perbedaan. Dalam penggunaan check, PostgreS dapat berjalan sesuai yang kriteria. Jika diluar kriteria maka tidak akan berjalan. Namun dalam MySQL juga dapat berjalan. Perbedaannya dalam mysql meskipun insert data tidak sesuai kriteria masih dapat berjalan.
            Dan yang terakhir dalam nomor 8. Fungsi trim dalam MySQL juga tidak dapat berfungsi karena dalam MySQL harus diikuti nama String bukan nama kolom seperti pada PostgreS.

Kesimpulan

            Setelah melakukan praktikum kali ini, ternyata Sub query dalam SQL merupakan sebuah query didalam query atau disebut juga dengan nested query. Dan pada praktikum ini kita juga mempelajari select into, indeks, kolom unik check serta trim.

Saran

            Perlu dalam meningkatkan belajar atau refensi yang lebih terutama latihan dalam DBMS PostgreSQL dan MYSQL agar kalian dapat menguasai kedua DBMS tersebut.

Kritik

            Dalam laporan ini masih banyak terdapat kesalahan dan kekurangan karena terbatasnya praktikan dalam penguasaan 2 DBMS ini.

Manfaat

            Dalam praktikum kali ini kita dapat mengetahui struktur query dalam query. Pembaca juga dapat mengetahui fungsi select into, indeks, kolom unik serta penggunaan trim. Dan juga telah terpaparkan perbedaan Antara dua DBMS tersebut.

Salam semangat J



0 komentar:

Posting Komentar