Stored Procedure Basis Data 2.

Slides:



Advertisements
Presentasi serupa
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Trigger.
Advertisements

SQL – DML.
MATA KULIAH : “LOGIKA DAN ALGORITMA”
STORED PROCEDURED Stored procedure dan stored function merupakan fasilitas baru dari MySQL versi 5.0.
Pertemuan 2 : Dasar-dasar SQL SBD C – Senin, Frank & Rudy
SISTEM BASIS DATA INTRO-5. •Setelah mengikuti perkuliahan ini diharapkan mahasiswa dapat mengerti : 1.Aplikasi perintah SQL ke MySql Server 2.Mengerti.
Error Handling (Exception) & INDEX
Database Create-Retrieve-Update-Delete (CRUD)
Konsep Basis Data di Web
Workshop SCS: Java Game Programming
Transact-SQL Disampaikan oleh: Agus Wahyu Widodo, ST
DML Lanjutan Pertemuan Minggu Ke-10.
Oleh : Kholid Fathoni, S.Kom., M.T.
Pemrograman Database dengan JAVA
Database MySQL.
Manajemen Basis Data menggunakan SQL Server
Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Algoritma dan Struktur Data SubAlgoritma (Prosedur & Fungsi)
Stored Procedure Basis Data Terapan.
Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Data Manipulation Language Basis Data 2.
Triggers & Stored Procedure The main reference of this presentation is from book: Peter Rob, Carlos Coronel, “Database systems: Design, Implementation.
MEMBUAT DATABASE MENGGUNAKAN MICROSOFT SQL SERVER 2008
BASIS DATA TERAPAN Triana Elizabeth, S. Kom
Trigger.
PL/SQL PROGRAMMING PL/SQL adalah prosedur berkelanjutan dari Oracle -SQL yang menawarkan satu bentuk bahasa pemrograman. PL/SQL memungkinkan user atau.
Praktek Pemograman Client-Server
STORED PROCEDURE Achmad Yasid, SKom.
Procedure , Function dan Parameter
Dikompilasi Oleh : Ary Bima Kurniawan ST., MT.
Procedure Siti Mukaromah, S.Kom.
TRIGGER.
Materi 5 Nama dan Environment Dasar-Dasar Pemrograman.
SINTAK STORED PROCEDURE
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Store procedure.
Tabled Value Parameter. Tabled Value Parameter merupakan tipe data yang dibuat oleh user Tabled Value Parameter digunakan untuk mengirimkan multiple rows.
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Perintah SQL: Data Definition.
SQL (Structure Query Language)
Dikompilasi Oleh : Ary Bima Kurniawan ST., MT.
CURSOR Siti Mukaromah, S.Kom 1. D EFINISI Cursor adalah nama untuk sebuah area SQL dimana informasi untuk pemrosesan pernyataan SQL yang sifatnya spesifik.
DATA DEFINITION LANGUAGE
Pemrograman Database Nyimas Artina, S.Kom, M.Si.
Cursor MI2163 Dasar Pemrograman Basis Data. Introduction Cursor merupakan suatu variabel yang digunakan untuk menampung hasil query yang terdiri atas.
HANDLING EXCEPTIONS.
Exception Handling: Non Predefined Exception
Stored Procedure Dengan Parameter
Stored Function Tanpa Parameter
TRIGGER (Statement & Row Trigger)
PENJURUSAN DI ORACLE ORACLE DEVELOPER
FUNGSI-FUNGSI AKSES MySql
STORED PROCEDURE & TRIGGER
SQL (Structure Query Language)
STORE PROCEDURE.
Manajemen Basis Data menggunakan SQL Server
Praktikum Berkas dan Basis Data
SQL OVERVIEW.
Prosedur.
Blok PL/SQL Non Modular dan Modular
Anonymous Blok PL/SQL dan Tipe Data
Stored Procedure Tanpa Parameter
Stored Function Dengan Parameter
CURSOR.
Nama Kelompok Hardani Novian S Musyafa’ Tanjung
CURSOR.
Trigger.
Oleh : FIRMAN JAYA, S.Pt, M.Kom
Integritas Basis Data Triggers, Store Procedure
Referensi Bahasa MySQL
Stored Procedure D. SINAGA, M.KOM.
ORACLE PL/SQL TRIGGER Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan.
CURSOR.
DPH1C4 Pemrograman berorientasi Obyek
Transcript presentasi:

Stored Procedure Basis Data 2

Stored Procedure Stored procedure  program yang disimpan dalam database dan dikompilasi bila digunakan Dalam Oracle, dapat ditulis dalam PL / SQL atau Java Dalam SQL Server, dapat ditulis dalam Transact-SQL atau CLR Stored Procedure yang disimpan dapat menerima parameter input dan dapat mengembalikan hasil Stored Procedure yang disimpan dapat dipanggil dari Program yang ditulis dalam bahasa standar, misalnya: Java, C # Scripting bahasa, misalnya: JavaScript, VBScript SQL command prompt, misalnya: sqlcmd, SQL Plus, Query Analyzer

Stored Procedure vs Procedure Persamaan dengan prosedur dlm pemrograman: Menerima parameter input dan mengembalikan beberapa nilai dalam bentuk parameter output ke pemanggil prosedure atau batch. Berisi statement pemrograman utk operasi dlm database, termasuk memanggil prosedur lainnya. Mengembali nilai status ke pemanggil prosedur atau batch untuk menunjukkan keberhasilan atau kegagalan (dan alasan untuk kegagalan).

Tipe Stored Procedure System Stored Procedure: Local Stored Procedure: Nama dimulai dengan sp_ atau xp_ (extended stored procedur akan dihilangkan) Dibuat dalam database master Tujuannya untuk pengaplikasian dalam database apapun Sering digunakan oleh sysadmin Local Stored Procedure: Ditetapkan di database lokal Nama sering dimulai dengan pr_ atau usp Dalam prakteknya lebih baik gunakan nama yang mudah: Tanpa prefix Sesuaikan dengan yang ada di aplikasi (misal menggunakan object/komponen seperti ORM)

Kelebihan Stored Procedure Keamanan lebih stored procedure selalu tersimpan pada database server Memberikan grant user permission utk menjalankan SP Mengurangi lalu lintas jaringan SP dapat mengurangi query SQL panjang menjadi satu baris yang ditransmisikan sehingga mengurangi lalu lintas client-server.

Kelebihan Stored Procedure Waktu Eksekusi lebih cepat Bila perlu T-SQL yang banyak dan berulang-ulang, maka SP bisa lebih cepat drpd batch T-SQL code. SP dicompile sekali, disimpan dalam memory dan digunakan untuk pemanggilan berikutnya (tidak perlu dikompilasi ulang). SQL dapat dioptimasikan oleh DBMS compiler Berbagi-pakai kode modular berimbas pada: Mengurangi pekerjaan berlebih – penggunaan ulang kode secara efisien Standarisasi pemrosesan Spesialisasi antara developer

Dasar Stored Procedure

Membuat Stored Procedure Sintaks: CREATE PROCEDURE NamaProsedur AS Deklarasi_Variable .. .. .. RETURN Contoh: CREATE PROCEDURE pr_honor AS SELECT namainstruktur, honor FROM instruktur

Menjalankan Stored Procedure dengan EXEC EXEC pr_honor EXEC sp_help dengan EXECUTE EXECUTE pr_honor EXECUTE sp_help langsung nama prosedur pr_honor sp_help

Mengkoreksi Sebuah Prosedur Statement ALTER harus digunakan ALTER PROCEDURE pr_honor AS select inisial, namainstruktur, honor from instruktur RETURN

Menghapus Stored Procedure digunakan statement DROP Sintaks: DROP PROCEDURE NamaProsedur Contoh: DROP PROCEDURE pr_honor DROP PROCEDURE uspHitungGaji

Mengubah Prosedur Tanpa Menggunakan ALTER Cek prosedur ada, bila ada di drop, kemudian baru create USE mydb IF EXISTS (SELECT name FROM sysobjects WHERE nama= 'pr_honor' AND type = 'P') DROP PROCEDURE pr_honor GO CREATE PROCEDURE pr_honor AS SELECT inisial, namainstruktur, honor FROM instruktur

Mengubah Prosedur Tanpa Menggunakan ALTER : SQL Server 2008 USE AdventureWorks2008R2; GO IF OBJECT_ID ( 'HumanResources.uspGetAllEmployees', 'P' ) IS NOT NULL DROP PROCEDURE HumanResources.uspGetAllEmployees; CREATE PROCEDURE HumanResources.uspGetAllEmployees AS SET NOCOUNT ON; SELECT LastName, FirstName, Department FROM HumanResources.vEmployeeDepartmentHistory;

Mengubah Nama Stored Procedure Gunakan sintaks SP_RENAME Contoh: SP_RENAME pr_honor, pr_honor2

Parameter

Parameter Prosedur dapat mempunyai parameter berupa variable yang disuplai oleh program yang memanggilnya Sintaks parameter @param as datatype = default [OUT/OUTPUT] Contoh: CREATE PROC pr_honor (@p1 int, @p2 char(16), .. ) AS Deklarasi_Variable .. .. ..

Parameter Input parameter Output parameter Digunakan untuk memberikan nilai dari pemanggil ke dalam SP Contoh: CREATE PROC pr_honor (@p1 INT) AS … Output parameter Digunakan untuk mengembalikan nilai non-recordset dari SP ke pemanggil Misalnya SP untuk insert, mengembalikan nilai hasil identity CREATE PROC pr_honor (@p1 INT, @p2 CHAR(16),@pout1 INT OUT, @pout2 CHAR(1) OUTPUT) AS …

Output Parameter Nilai parameter bisa diolah pada program prosedur dan untuk kemudian parameter tersebut dapat diubah dan diberikan nilainya pada program yang memanggilnya. CREATE PROC m ( @p1 int, @p2 int, @h int OUTPUT) AS SELECT @h= @p1 * @p2

Eksekusi Output Parameter Contoh: DECLARE @hsl INT EXEC m 10, 20, @hsl OUTPUT PRINT 'hasil = ' + str (@hsl) Pada contoh ada 3 parameter, yaitu p1 dan p2 sebagai input parameter dan h sebagai output parameter. Saat eksekusi, p1 adalah 10, p2 adalah 20 dan hsl merupakan hasil perkalian.

Parameter dgn Default Value Untuk menghindari null karena nilai tidak diberikan Merupakan nilai default yang otomatis diberikan bila tidak dispesifikasikan ketika pemanggilan SP Contoh: CREATE PROC pr_honor (@p1 INT=5) AS select nama instruktur, honor from instruktur where inisial=@ini Return Urutan parameter Tempatkan parameter dengan default value di akhir dari daftar parameter untuk penggunaan fleksibel

Eksekusi Procedure Berparameter Pada saat eksekusi, parameter diberikan setelah nama SP Berdasarkan nama: EXEC pr_GetTopProducts @StartID = 1, @EndID = 10 Berdasarkan posisi: EXEC pr_GetTopProducts 1, 10 Leveraging Default values EXEC pr_GetTopProducts @EndID=10

RETURN & ERROR

Return Digunakan untuk mengembalikan nilai hasil balik berupa status dari eksekusi sukses atau gagal Statement return juga bisa digunakan untuk menghentikan segala eksekusi

Error @@ERROR  Fungsi ini digunakan untuk mengimplementasikan penanganan kode kesalahan. Berisi ID Error yang dihasilkan oleh pernyataan SQL terakhir yang dijalankan. @@ERROR berisi 0  Sukses, selain itu gagal Contoh CREATE PROC Proc1 @ColumnPK INT=NULL AS BEGIN INSERT INTO TABLE1 VALUES(@ColumnPK) IF @@Error <> 0 PRINT 'Error occurred' END

Membangkitkan Error Untuk membangkitkan pesan kesalahan gunakan sintaks RAISEERROR Contoh RAISERROR('demo error', 1, 1)

Studi Kasus

Melewatkan Nama Object sebagai Parameter Parameter tidak dapat memuat suatu object kecuali kita menggunakan object tersebut di dalam SP dengan statement EXEC (sering disebut dynamic query) Contoh: Bad Dynamic Query CREATE PROC find_data ( @table varchar(128) ) AS SELECT * FROM @table GO

Hasilnya: Error Message Server: Msg 137, Level 15, State 2, Procedure find_data, Line 6 Must declare the variable ‘@table’. Pesan kesalahan tersebut nampak ganjil karena parameter @table telah didefinisikan sebagai variable

Solusi Pemecahan CREATE PROC find_data ( @table varchar(128) ) AS EXEC ('select * from ' + @table) RETURN GO

TUGAS: MUST READ!

T-SQL VARIABLE PROGRAMMING STRUCTURE T-SQL Global Variable, Local Variable Declaration Assignment PROGRAMMING STRUCTURE T-SQL IF THEN, CASE WHEN WHILE, CONTINUE, BREAK TRY…CATCH