Tampilkan postingan dengan label SQL. Tampilkan semua postingan
Tampilkan postingan dengan label SQL. Tampilkan semua postingan

Selasa, 22 Maret 2016

Penggunaan Begin, Rollback dan Commit Tran

Pada kesempatan kali ini, saya ingin berbagi sedikit tentang cara menggunaan perintah BEGIN, ROLLBACK dan COMMIT TRAN pada SQL Server. Perintah - perintah ini erat kaitannya bersamaan dengan perintah DML (Data Manipulation Language) seperti DELETE, UPDATE, INSERT dan lain - lain. Terkadang saat kita melakukan transaksi baik itu delete, update ataupun insert pada data di suatu table, bisa saja terjadi kesalahan transaksi misal seperti salah melakukan delete atau update pada suatu data. Atau kita terlanjur melakukan insert data yang padahal seharusnya data itu tidak dilakukan insert. Karena itulah kita sebenarnya dalam melakukan transaksi perlu menggunakan perintah seperti BEGIN, ROLLBACK, dan COMMIT TRAN.

Arti dari kata BEGIN TRAN artinya adalah suatu tanda awal bahwa kita akan melakukan transaksi baik itu delete, update ataupun insert. ROLLBACK TRAN adalah jika suatu transaksi telah terjadi, maka dengan perintah tersebut kita bisa mengembalikan data dimana transaksi tersebut sebelum dijalankan. Kemudian untuk COMMIT TRAN adalah lawan dari ROLLBACK TRAN, kita akan mengunci atau membuat permanen data dari hasil transaksi yang telah dilakukan, sehingga kita tidak bisa mengembalikan data sesaat sebelum dilakukannya transaksi.

Untuk lebih jelasnya saya akan mencoba memberikan contoh dalam penggunaan BEGIN TRAN - ROLLBACK TRAN dan BEGIN TRAN - COMMIT TRAN berikut di bawah ini

Gambar Contoh BEGIN TRAN - ROLLBACK TRAN
Pada script di atas menjelaskan bahwa terdapat transaksi delete data dari table Category dengan ID = 16. Ketika dilakukan select sebelum dan sesudah perintah delete, terlihat data untuk ID = 16 tidak ada setelah dilakukan delete. Namun dilakukannya select kembali setelah perintah ROLLBACK TRAN maka data untuk ID = 16 kembali muncul. Artinya adalah setelah dilakukannya Rollback, data dikembalikan kepada saat sebelum transaksi itu dijalankan.

Gambar Contoh BEGIN TRAN - COMMIT TRAN
Pada script di atas menjelaskan bahwa terdapat transaksi delete data dari table Category dengan ID = 16. Ketika dilakukan select sebelum dan sesudah perintah delete, terlihat data untuk ID = 16 tidak ada setelah dilakukan delete. Namun dilakukannya select kembali setelah perintah COMMIT TRAN maka data untuk ID = 16 juga tidak muncul. Artinya adalah setelah dilakukannya Commit, data secara permanen telah berubah setelah transaksi itu dijalankan.

Sekian dan semoga bermanfaat. Terimakasih

Selasa, 28 April 2015

Optimasi Database Dengan Menambahkan Index

Pada setiap program pasti biasanya membutuhkan suatu media penyimpanan untuk data, baik data itu dalam jumlah yang banyak maupun sedikit. Penyimpanan data tersebut disimpan ke dalam program di dalam sebuah database. Perfomance pada suatu program terkait pula dengan banyak sedikitnya data yang ada pada database. Pengolahan data pada database juga sangat diperlukan, mulai dari perancangan desain baik secara logic atau fisik sampai kepada implementasinya, karena database menyangkut skalabilitas program itu sendiri dan terkait pula pada mudah atau sulitnya program tersebut dipelihara (Maintenance).

Untuk database yang mengolah data berjumlah banyak, dibutuhkan kiat-kiat atau tips agar pada proses waktu retreive data maupun update data dapat lebih teroptimalkan. Berikut saya akan mencoba berbagi tips untuk mengoptimalisasi database dengan cara menambahkan index.

Sebuah indeks database adalah sebuah struktur data yang meningkatkan kecepatan operasi dalam sebuah tabel. Indeks dapat dibuat menggunakan satu atau lebih dari satu kolom. Indeks dapat dibayangkan sebagai indeks buku, sehingga melalui indeks buku tersebut dapat dicari letak item tertentu dalam buku dengan mudah. Keberadaan indeks dalam basis data antara lain adalah untuk mempercepat pencarian data berdasarkan kolom tertentu.

Berikut adalah cara membuat Index pada suatu table untuk database MySQL.
 CREATE UNIQUE INDEX index_name  
 ON table_name ( column1, column2,...);  

Untuk contohnya misalkan kita memiliki sebuah table bernama mhs, kemudian kita ingin membuat index pada kolom nama. Berikut adalah contohnya.

 CREATE UNIQUE INDEX nama_idx  
 ON mhs (nama)  

Setelah pembuatan index selesai. Silahkan coba lakukan SELECT Query, misal SELECT nim FROM mhs WHERE nama='Kasih'. Bandingkan dan perhatikan waktu eksekusinya saat belum ditambahkan index dan setelah ditambahkan index.

Sabtu, 28 Maret 2015

Mengenal Fungsi String MySQL

Database memiliki peran penting dalam menyimpan data pada program yang kita buat, MySQL adalah salah satu database dari tipe RDBMS (Relational Database Management System) yang cukup populer di kalangan para developer khususnya developer web. Untuk itu, saya ingin mencoba berbagi seputar fungsi-fungsi dari MySQL itu sendiri khususnya fungsi dalam mengolah string di MySQL. Saya berharap nantinya dari postingan saya ini dapat memberikan wawasan kepada teman-teman dalam mendalami dan memahami fungsi-fungsi string yang ada pada MySQL.

Tanpa panjang lebar lagi mengetik, mari kita langsung saja menjabarkan fungsi-fungsi string yang ada pada MySQL sebagian.

1. ASCII()
Fungsi ASCII() adalah mengubah sebuah karakter menjadi nilai dari sebuah ASCII-nya. Misalkan jika kita menjalankan SELECT ASCII('A'), maka akan menghasilkan nilai 65, yang mana kita telah ketahui bersama bahwa kode atau nilai ASCII dari 'A' adalah 65.

2. CHAR()
Fungsi CHAR() adalah berlawanan dari fungsi ASCII(), yang mana isi parameter (argument) dari fungsi CHAR() adalah sebuah nilai ASCII-nya dan kemudian akan menghasilkan sebuah karakter dari nilai ASCII tersebut. Misalkan jika kita menjalankan  SELECT CHAR('65'), maka akan menghasilkan sebuah karakter 'A', yang mana kita telah ketahui bersama bahwa karakter 'A' memiliki nilai ASCII 65.

3. FORMAT()
Fungsi FORMAT() adalah fungsi untuk mengatur jumlah digit di belakang koma dari suatu nilai integer, decimal atau double. Pembulatannya adalah menggunakan pembulatan ke atas. Misalkan
kita menjalankan SELECT FORMAT(12345.678, 2), maka akan menghasilkan 12,345.68 yang terbilang "Dua Belas Ribu Tiga Ratus Empat Puluh Lima Koma Enam Puluh Delapan" dengan ketelitian 2 digit di belakang.

4. CONCAT()
Fungsi CONCAT() ini bisa dibilang adalah fungsi yang cukup sering digunakan terkait perihal menyambungkan atau menggabunggkan dua string atau lebih. Misalkan kita menjalankan SELECT CONCAT('Tio',' ', 'Satrio',' ', 'Wicaksono'), maka akan menghasilkan Tio Satrio Wicaksono. Sebenarnya untuk masalah menggabungkan dua string atau lebih, kita juga bisa melakukannya dengan tanpa fungsi ini, melainkan dengan cara seperti ini.SELECT 'Tio'  ' '  'Satrio'  ' '  'Wicaksono', itu juga akan menghasilkan hasil yang serupa yaitu Tio Satrio Wicaksono. Namun, semua kembali kepada individu masing-masing, untuk sisi performa, saya pribadi belum dapat merekomendasikan yang mana yang lebih baik.

5. REPEAT()
Fungsi REPEAT() adalah fungsi untuk mengulang karakter atau string dengan sejumlah yang kita inginkan. Misalkan kita menjalankan SELECT REPEAT('*', 3), maka akan menghasilkan "***
".
6. REVERSE()
Fungsi REVERSE() adalah fungsi untuk memutar balik sebuah string. Misalkan kita menjalankan SELECT REVERSE('zyxwvutsrq'), maka akan menghasilkan qrstuvwxyz

7. SUBSTRING()
Fungsi SUBSTRING() adalah fungsi yang bisa dibilang paling sering digunakan, fungsinya adalah untuk mengambil sebagian karakter dari sebuah string, pertama ditentukan mulai dari mana posisi karakter pengambilannya, kemudian seberapa banyak jumlah pengambilannya, terhitung pengambilannya dari kiri ke kanan. Misalkan kita menjalankan SELECT SUBSTRING('Satrio', 3, 4), maka akan menghasilkan trio

Cukup sekian terlebih dahulu, sebenarnya masih banyak lagi fungsi-fungsi string pada MySQL, namun menurut saya ada beberapa fungsi yang memiliki manfaat yang sama. Namun di lain waktu saya akan melanjutkan lagi dalam penjabaran-penjabaran fungsi MySQL yang lainnya. Terimakasih dan semoga bermanfaat.