VIEW OR STORED PROCEDURE

dokumen-dokumen yang mirip
PL / SQL. Arif Basofi

Stored Procedure. M. Saefudin SKom, MMSI

Bab 5. Database Trigger POKOK BAHASAN: TUJUAN BELAJAR: 5.1. PENDAHULUAN

Transaction dan Trigger. M. Saefudin SKom, MMSI

Computer Science, University of Brawijaya. Putra Pandu Adikara, S.Kom VIEW & TABLE. Basis Data 2

Pertemuan I KONSEP DASAR STORED ROUTINES

TRIGGER TRIGGER 5/29/2017 HANI IRMAYANTI, S.KOM

IMPLEMENTASI TRIGGER, STORED PROCEDURE, FUNCTION DAN VIEW PADA MYSQL DALAM PERANCANGAN SYSTEM INVENTORY CAFFE BOULEVARD JAYAPURA

Oracle Academic Initiative

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 4 SINKRONISASI DATA

Pemrograman Basis Data dan SQL

BAB III ANALISIS DAN PERANCANGAN

BAB 6 PROGRAM UNITS DAN STRORED PROGRAMS UNITS

Modul 6 Function dan Trigger

Computer Science, University of Brawijaya. Putra Pandu Adikara, S.Kom. Trigger. Basis Data 2

Pengenalan Database Management System MySQL. Pokok Bahasan: Pengenalan DataBase Pembangunan database berbasis Client-Server Dasar-Dasar MySQL

Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel

Pertemuan VI F U N C T I O N

BAB VIII FUNGSI, PL/PGSQL dan TRIGER

Basis Data 2. Procedure dan Function Database. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

Modul 3 : Query Penggabungan Tabel

Pengertian. Mengapa SP? Mengapa SP? 07/05/2012 STORED PROCEDURE

Praktikum Basis Data 2017 TE UM MODUL 8 TRIGGER A. TUJUAN

TABLE JOIN SQL SERVER 2005

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

Membuat Function, Stored Procedur dan View pada MySQL

Stored Procedure (create, calling SP dari Oracle dan dari JAVA)

VIEW : Tabel Virtual VIEW 5/29/2017

PERTEMUAN 10 PEMBUATAN TABEL

@Tessy Badriyah, SKom. MT. PERTEMUAN 12 VIEW

Praktikum Basis Data 14 Structure Query Language 2

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela

CONSTRAINT clients_client_num_pk PRIMARY KEY (client_number));

Basis Data 2. Database Client / Server. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

SUBQUERY-2. MI2154 SQL LANJUT Dedy Rahman Wijaya, S.T., M.T., OCA

Transact-SQL (Trigger- Event, Store Procedure)

Stored Procedure (create, calling SP dari Oracle dan dari JAVA)

TRIGGER. Tujuan Mata Kuliah. Tools yang digunakan. Sesi7 : TRIGGER. Praktikum Pemrograman Client Server Database Hadi Kusumah, S.T.

BAB 1 PEMBUATAN REPORT

MODUL 1 DATABASE MYSQL

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

Kontrak Kuliah. Trigger dan Scheduled Events. Edi Sugiarto, S.Kom, M.Kom

Bab 3. Query Lanjutan POKOK BAHASAN: TUJUAN BELAJAR:

Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan.

PENGEMBANGAN APLIKASI SISTEM PENGATURAN BASIS DATA SECARA ONLINE. Agustinus Noertjahyana, Rendy Pangestu dan Dwi Budiman

5. Database MySQL. Apa Database MySQL Itu? Hirarki Dalam Database. Table

MODUL 3. View PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

PEMROGRAMAN JAVA Sistem gudang

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah: PEMROGRAMAN BASIS DATA. Oleh: Nisa Miftachurohmah, S. Kom

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

BAB 4 MEMBUAT LIST OF VALUE (LOV) DAN NON-BASE TABLE FIELDS

Praktikum Basis Data 2017 TE UM

PEMROGRAMAN JAVA Sistem gudang

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

DASAR-DASAR SQL SERVER 2005

Pertemuan VII TRIGGERS

KURSUS ONLINE JASA WEBMASTERS

DATABASE ADMINISTRATOR

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI.

Kontrak Kuliah. Stored Procedures and Function. Edi Sugiarto, S.Kom, M.Kom

Praktikum TRANSACT SQL. Tujuan : Praktikan mampu untuk mengerti dan memahami Transact-SQL

BAB 1 PENDAHULUAN. satu hal yang sangat dominan dan terjadi dengan sangat pesat. Informasi

Widhy Hayuhardhika NP, S.Kom

Gambar Layar pertama untuk pemecahan masalah Lost Update

MODUL II SQL A. TUJUAN

MODUL 2 PENGENALAN DATA DEFINITION LANGUAGE (DDL) & DATA MANIPULATION LANGUAGE (DML)

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 2 PEMBUATAN DATABASE LINK (HOMOGENOUS SERVICE)

PHP Accessing MySQL Database. Fajar Pradana S.ST., M.Eng

1 TEKNOLOGI OBJECT-RELATIONAL DBMS pada ORACLE 10g

STORE PROCEDURE. Pemrograman Client Server Sarji, S.Kom Studi kasus pada

Manajemen Data dengan Database MySQL Supriyono, M.Kom

Mengelola Data. Oleh: Arif Basofi


MODUL 4 INTERNET PROGRAMMING DATABASE

BAB V CURSOR AND RESULT SETS

BAB II DASAR TEORI. 2.1 Konsep Dasar Sistem Aplikasi Pengertian Sistem. Pengertian sistem adalah kumpulan dari elemen-elemen yang berinteraksi

Tahap Instalasi PostgreSQL di Windows

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

PERINTAH SQL DAN INTERKONEKSI PHP-MySQL

Optimasi Query. Optimasi Perintah SQL Informasi Jalur Akses Query Faktor-faktor yang berpengaruh terhadap kecepatan akses data

Contoh SQL Constraint

Obyek pada Oracle. Manajemen Obyek Basis Data dan Dictionary View. Obyek pada Oracle adalah segala hal yang bisa dibuat di Oracle, seperti:

3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

BAB 2 Membuat dan Menjalankan Form dengan Single Block

LAPORAN PRAKTIKUM 2 BASIS DATA

INTERNET PROGRAMMING DATABASE

LAPORAN TUGAS BASIS DATA I

Contoh SQL Constraint

Basis Data Relational

SISTEM BASIS DATA By Novareza Klifartha

Oracle Academic Initiative

SQL. Lecturer: Mahendra Data, S.Kom

APLIKASI KONVERSI FLOWCHART KE KODE PROGRAM BAHASA PEMROGRAMAN PL/SQL MYSQL

PRAKTIKUM PL/SQL (Trigger) OLEH : WIRATMOKO YUWONO, ST

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

Transkripsi:

VIEW OR STORED PROCEDURE Sumber SQLServer-Indo Pertimbangan apa saja sebelum kita memutuskan akan memakai View atau Store Procedure? Jawaban 1 : Kalo menurut saya, pertama, untuk membagi beban resource yang terpakai saat aplikasi di jalankan Jadi kalo semua query dijalankan pada aplikasi/client maka resource yang terpakai pada client tersebut akan besar, maka dari itu perintah query tersebut kita buat pada procedure ataupun view (eksekusi pada server). kedua, untuk mempermudah dalam menampilkan data, kadang struktur database yang kita buat agak mempersulit kita dalam proses query dikarenakan kebutuhan akan proses spesial reporting maka kita perlu buat view untuk mempermudahnya. ketiga, untuk mempermudah maintain aplikasi, apabila ada proses query yang sama dan berulang maka apabila kita gunakan store procedure akan lebih simple dalam proses pembuatan aplikasi. CMIIW, Wasalam, Eri Jawaban 2 : coba jawab... view?... view tidak bisa dipasang parameter... SP?... Stored Procedure lebih flexible karena ada parameter didalamnya... view yang diberi parameter.. kita biasa menyebutnya function.. (yg mereturn table... ) CMIIW Jawaban 3 : Dear Guseani, View mirip dengan tabel, namun SQL Server (SS) tidak menyimpan data di dalamnya melainkan definisi (query) suatu tabel. View umumnya digunakan untuk 2 tujuan : menyederhankan SQL Query yang kompleks dan mengimplementasikan security. Contoh: Kita punya sebuah tabel Karyawan dengan field: di bawah ini : CREATE TABLE Employee ( EmployeeID INT, FirstName VARCHAR(32),

LastName VARCHAR(32), Salary INT, SSN CHAR(9) ) GO Lalu kita ingin menampilkan info karyawan tanpa harus mencatumkan info gaji (salary). Disini, kita bisa memaksa user untuk menggunakan view agar user tidak mengetahui kolom-kolom apa yang ada dalam suatu tabel Karyawan. Dibawah ini saya buat view yang menampilkan info karyawan. CREATE VIEW EmployeeInfo AS SELECT EmployeeID, FirstName, LastName FROM Employee GO Namun demikian, View tidak bisa menerima parameter sebagaimana Stored Procedured (SP). SP bisa dikatakan adalah suatu subrutin. SP umumnya digunakan untuk mengirim nilai (send return values), mengirim parameter output ataupun enkapsulasi bisnis logic. Contoh: Apabila kita ingin menampilkan info karyawan berdasarkan SSN. CREATE PROCEDURE DisplayEmployee @SSN AS BEGIN SELECT EmployeeID, FirstName, LastName FROM Employee WHERE SSN=@SSN END GO SP di kompile terlebih dahulu pada saat pertama kali di jalankan. Dan tetap tersimpan di di dalam SQL Server. Kita hanya memanggil kembali setiap saat di butuhkan tanpa harus eksekusi ulang perintah2 SQL. Itu sebabnya SP menjanjikan performance yang jauh lebih baik daripada ad hoc query (termasuk View). Kembali ke pertanyaan Anda, lebih baik mana View atau SP? Itu semua kembali ke pilihan Anda. Namun demikian, saya pribadi lebih menyukai menulis SQL Query ke dalam SP. Meski SP termasuk rumit dalam maintenance, terutama dalam masa pengembangan aplikasi. Demikian penjelasan saya. Semoga membantu. Terima kasih. Jawaban 4 : Salam kenal, Saya coba bantu ya ^_^ Menurut saya, View itu sebaiknya digunakan apabila kita sering menggunakan query select yang sama dan berulang untuk mengambil data, sehingga daripada selalu melakukan query yang sama terus

menerus sebaiknya menggunakan View karena memiliki keuntungan dari sisi performance, efisiensi dan lebih praktis. Stored Procedure sebaiknya digunakan apabila database server terpisah secara fisik dengan aplikasi atau aplikasi Multi Tier. Keuntungannya : - Proses dilakukan di Database Server sehingga lebih cepat, aplikasi cukup memanggil stored procedure dan mengirim parameter yang diperlukan, sehingga mengurangi Overhead Jaringan antara Application Server dengan Database Server ketimbang Query diembedded di Aplikasi / Front End karena kalau di embedded di Front End maka Proses dilakukan di Application Server sehingga menambah Overhead Jaringan. - Dapat menggunakan T-SQL sehingga dapat melakukan logic business di Stored Procedure. Kekurangannya : Apabila mau ganti Database Server. Misal kalau mau ganti database server dari Oracle ke SQL Server. Porting Stored Procedurenya pasti repot banget tuh, antara PL SQL ke T-SQL. Kalau di embedded di Aplikasi kan tinggal ganti Koneksinya aja. Soalnya Logicnya dilakukan di Aplikasi dan SQLnya pake SQL Standard. Semoga membantu, Shandy H Jawaban 5 : Dear Gusaeni, View : Views are nothing but saved SQL statements, and are sometimes referred as "Virtual Tables". Keep in mind that Views cannot store data (except for Indexed Views); rather they only refer to data present in tables. Store Procedure : Store Procedure adalah kumpulan Pre-defined Transact-SQL yang digunakan untuk melakukan tugas/task khusus. Dalam Store Procedure dapat berisi beberapa statement dan setiap statement di kelompokan untuk satu object database. Dari definisi di atas jelas beda. Mungkin sbg ilustrasi : Table 01: Mhs, dgn field ID, Nama, Status Kenaikan Tingkat. Table 02: Nilai, dgn field ID, ID Matakuliah, Nilai Apabila casenya saya ingin mengupdate langsung Status Kenaikan Tingkat bila Nilai atas ID Mata Kuliah Database <= 60 mjd tidak lulus, maka cocok pakai Store Procedure. Jadi transaksi update Status Kenaikan Tingkat Table 01, bisa dilakukan di level database. Front end hanya mengirim parameternya saja. Create SP_Update Kenaikan Tingkat (@IDMhs, @ID_Mkul, @Nilai) if @ID_Mkul = 'DATABASE' & @Nilai <= 60 Update Mhs SET status = 'Tidak Lulus' endif

Tinggal SP ini kita set kapan saat mau dipanggil. entah by trigger, or di call langsung dari frontend. Jadi kita tidak perlu memferivikasi kelulusan mahasiswa dari Front-Endnya. Untuk View kita bisa create predefined Query SQL. mis siswa yang tidak lulus dan nilainya, yang bisa kita panggil kapan saja. SELECT IDMhs, Nama, Nilai FROM Table Mhs, Nilai Where Mhs.id=Nilai. id and Mhs.Status = 'Tidak Lulus' and Nilai.Mkul = "Database". Semoga cukup membantu.. Yugo. Jawaban 6 : Yang perlu diperhatikan adalah pertimbangan performance yang akan kita capai lewat pembuatan view dan stored procedure ini. View sangat membantu kita untuk merefleksikan field-field yang tidak ada di satu table tetapi ada di table lain, untuk itu kita bisa gunakan view ini dengan cara membuat relasi (join) antar tabletable tersebut. Tetapi yang perlu diperhatikan dalam pembuatan view ini adalah tentunya keterkaitan antara table-table yang dipakai dalam view ini, semakin banyak relasi tentuanya akan semakin berat si SQL dalam melakukan suatu proses query dalam view tersebut, karena SQL akan melakukan proses loading semua data yang ada dalam table ke dalam view, baru kemudian SQL akan memfilternya, kalau kita lakukan query berdasarkan kriteria tertentu pada view tersebut. Salah satu untuk mensiasati hal performace ini adalah dengan cara membuat view ini menjadi indexed view atau partition view (topik ini pernah dibahas oleh Pak Kiki), dengan begitu view yang kita bentuk akan lebih efektif dibandingkan dengan view tanpa index atau tanpa partisi. Hubungannya view dengan stored procedure saya rasa bukan aple-to-aple, karena view adalah untuk merefleksikan sebuah metadata, sedangkan stored procedure adalah untuk melakukan suatu proses pengolahan data yang dilakukan di server side. Kita bisa saja mengganti view dengan stored procedure ini untuk melakukan retrieving suatu data dalam table, misal kita punya view yang isinya merupakan relasi antara table employee dan department, kita tinggal ambil statement query view tersebut dan kita masukkan ke dalam sebuah stored procedure. Perbedaannya adalah, untuk view si SQL akan melakukan retrieving pada semua isi table yang ter-relasi baru kemudian di filter, tetapi kalo kita gunakan stored procedure si SQL tidak akan akan melakukan loading semua table yang ter-relasi, tetapi langsung melakukan filtering berdasarkan query yang kita maksud. To Mas Kasim, thanks buat imelnya, cuma sekarang ini memang lagi banyak kerjaan, jadinya cuma bisa lihat-lihat/ mantau millist saja. :)

Jawaban 7 : Kalo ini saya kurang setuju. Setahu saya sih query akan di-process oleh SQL Server dengan cara yang sama, tanpa melihat apakah query tersebut ada didalam view, SP, Trigger, atau UDF. Query Processor tetap akan mengambil data sesuai dengan kondisi JOIN yang ada pada query kita, jadi di view pun data akan dikirim ke client sebanyak yang terdefinisi pada kriteria JOIN, dan ini berlaku sama buat view, SP, Trigger, ataupun UDF. Detailnya bisa dibaca di BOL, bagian Query Processing Architecture Setiap kali Query Processing menjalankan query process-nya kira2 adalah sbb: 1. Pengecekan Syntax 2. Pemilihan execution plan yang paling optimal 3. Eksekusi query Yang membedakan antara view dan SP adalah query yang ada di SP sudah di-compile terlebih dahulu, sedangkan view tidak. Compile maksudnya adalah pemilihan mana execution plan yang paling optimal. Jadi ada 1 step yang di-skip buat SP, UDF dan trigger. View tidak pernah direkomendasikan buat di-rewrite sebagai SP, karena fungsinya akan berbeda. View menghasilkan result set sedangkan SP tidak (di SP disebutnya return value). Jadinya kalo sebelumnya output view bisa digunakan/diproses, misalnya view di-join dgn table lain, setelah di rewrite sebagai SP, fungsi itu nggak bisa lagi dilakukan. Rekomendasinya adalah nge-rewrite view sebagai UDF. Baca di bagian UDF di BOL, karena salah satu fungsi UDF adalah sebagai compliment dr view. Jawaban 8 : Kondisi performance akan terlihat ketika data yang kita query sangat banyak, akan terlihat perbedaan antara pemakain query dengan view dan tanpa view (dgn adhoc query) Jawaban 9 : Salam kenal, Saya coba bantu ya ^_^ Menurut saya, View itu sebaiknya digunakan apabila kita sering menggunakan query select yang sama dan berulang untuk mengambil data, sehingga daripada selalu melakukan query yang sama terus menerus sebaiknya menggunakan View karena memiliki keuntungan dari sisi performance, efisiensi dan lebih praktis. Stored Procedure sebaiknya digunakan apabila database server terpisah secara fisik dengan aplikasi atau aplikasi Multi Tier. Keuntungannya : - Proses dilakukan di Database Server sehingga lebih cepat, aplikasi cukup memanggil stored procedure dan mengirim parameter yang diperlukan, sehingga mengurangi Overhead Jaringan antara Application Server dengan Database Server ketimbang Query diembedded di Aplikasi /

Front End karena kalau di embedded di Front End maka Proses dilakukan di Application Server sehingga menambah Overhead Jaringan. - Dapat menggunakan T-SQL sehingga dapat melakukan logic business di Stored Procedure. Kekurangannya : - Apabila mau ganti Database Server. Misal kalau mau ganti database server dari Oracle ke SQL Server. Porting Stored Procedurenya pasti repot banget tuh, antara PL SQL ke T-SQL. Kalau di embedded di Aplikasi kan tinggal ganti Koneksinya aja. Soalnya Logicnya dilakukan di Aplikasi dan SQLnya pake SQL Standard. Semoga membantu, Shandy H Jawaban 10 : Mau nambahin dikit perbedaan SP dan view ya : SP : menerima parameter dapat berisi beberapa statements, loops, IF ELSE dll dapat melakukan modifikasi2 pada 1 atatu beberapa table tidak dapat digunakan sebagai target dr statement INSERT, UPDATE or DELETE View : tidak dapat menerima parameter hanya bisa berisi 1 query SELECT tidak dapat melakukan modifikasi table seperti SP tetapi terkadang ini masih digunakan sebagai target dr statement INSERT, UPDATE or DELETE Kalo kecepatan nya saya sendiri belum pernah mengetes lebih lanjut. Tapi saya sendiri lebih banyak menggunakan SP daripada view dalam pekerjaan saya, karena menurut saya sedikit lebih cepat dr view, lebih flexibel serta dapat melakukan lebih banyak hal daripada View. Ivan W Semoga Bermanfaat, Salam