Iklan Menarik, Bisnis Internet

Thursday, March 8, 2012

Apa itu "Stored Procedure" ?

Pada Database Management System (DBMS), tentunya kita sudah sering mendengar istilah Stored Procedure, namun masih banyak juga dari kita yang mungkin belum begitu paham apa dan untuk apa Store Procedure itu. Oke mari kita mulai dari definisi :

A stored procedure is a subroutine available to applications that access a relational database system, atau stored procedure adalah sebuah subroutine yang tersedia untuk aplikasi (desktop/web base) mengakses database relational, dimana stored procedure tersimpan di dalam sebuah database.

Sederhananya, Stored Procedure adalah sebuah fungsi yang di tanam di dalam sebuah database, contoh kalau biasanya kita menuliskan perintah- perintah SQL (insert/update/delete, dll) pada aplikasi kita, namun jika kita menggunakan stored procedure, semua perintah- perintah yang berhubungan dengan manipulasi database (insert/update/delete/dll.) kita tanam pada database, nah sedangkan aplikasi kita tinggal mengeksekusi stored procedure tersebut, dengan serta nilai- nilai parameter yang dibutuhkan.

Lalu kenapa menggunakan stored procedure ? Penggunaan store procedure dalam sebuah pemrograman database memiliki beberapa keuntungan atau kelebihan sebagai berikut:

1. Performance 
Semua perintah SQL, yang kita kirimkan ke database server melalui kumpulan action yang disebut dengan execution. Hal ini menjadikan perintah SQL yang kita kirimkan melalui beberapa proses sebelum data dikembalikan ke client.
User mengirimkan request untuk mengeksekusi store procedure.SQL  Server kemudian mengecek apakah ada syntax error. Mengidentifikasi dan melakukan pengecekan alias pada FROM clausa.Membuat query plan. Meng-compile dan kemudian mengeksekusi query plan untuk kemudian mengembalikan data yang diminta.
Ada banyak proses yang tidak kita ketahui yang dijalankan, kemudian apakah dengan menggunakan store procedure kita akan mem bypass hal tersebut ?
Di satu sisi, ya. Versi terdahulu pada SQL Server menyimpan execution plan yang telah dieksekusi dalam system tables, membuat sebagian pre-compiled. Hal ini meningkatkan performance, karena server tidak melakukan kompilasi store procedure setiap kali ia dipanggil.
Pada versi terbaru SQL server, ada banyak perubahan pemrosesan statement. Store Procedure disimpan dalam procedure cache ketika di panggil, membuat subsequent lebih cepat dipanggil.

2. Security 
Store Procedure memberikan keuntungan yang baik dalam hal security. Dengan menggunakan store procedure, kita bisa memberikan permission untuk user yang ditunjuk untuk dapat mengakses data, menekan immense coding yang perlu kita lakukan pada Application Client. Ini adalah cara terbaik untuk mengontrol akses ke data. 

3. Modifications/Maintenance 
Jika kita menggunakan store procedure untuk mengakses database, setiap perubahan pada database dapat dipantau berdasarkan client application. Hal ini dimungkinkan karena kita dapat tahu persis dimana data diakses, dan kita juga tahu dimana kita harus melakukan perubahan. Hal ini berarti kita tidak perlu pusing kepala dengan ribuan baris source code pada client application untuk menemukan baris mana yang perlu dirubah.

4. Minimal processing at the client. 
Ketika membuat aplikasi client/server, normalnya adalah client yang bertanggung jawab mengenai integritas data yang masuk ke dalam database. Mengelola Primary Key,Foreign Key, semuanya dilakukan oleh client, dan database server hanya bertugas menyimpan data yang di berikan client.
Dengan menggunakan store proocedure membantu kita untuk membuat batch perintah SQL, yang bisa digunakan untuk memanage transaction,constraints dll. Hanya sedikit daya yang ditulis pada client apllication, menjadikan aplikasi client menjadi lebih ringan. Aplikasi ini akan lebih terfokus pada menampilkan data untuk keperluan user dan aplikasi client tidak tau banyak mengenai database.
Sebagai contoh. Jika kita memiliki database yang berisi ribuan rows dan ratusan table. Kita memerlukan beberapa perhitungan sebelum melakukan update pada setiap record. Jika kita mengambil data secara lengkap ke client, dan meminta client computer untuk memproses data secara lengkap, bisa dibayangkan apa yang ditimbulkan. Tetapi jika client bisa mengeksekusi store procedure, ketika kita telah selesai melakukan calculasi untuk melakukan update pada record.Client tidak perlu melakukan proses calculasi. Hal ini juga menekan proses yang terjadi di client, dan server yang menjalankan kalkulasinya.

5. Network traffic 
Aplikasi pada client selalu me request/ mengirimkan data ke database server. Data ini dikirimkan sebagai packet dan dikirimkan ke jaringan(Network) ke server.

Bahasa yang digunakan dalam menciptakan Stored Procedure disebut dengan Transact SQL atau seting disebut dengan T-SQL. Dalam T-SQL juga dikenal variable, flow-control statements dan function seperti halnya bahasa pemrograman lain.

0 comments:

Post a Comment