Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

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

Presentasi serupa


Presentasi berjudul: "Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Stored Procedure Basis Data 2."— Transcript presentasi:

1 Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Stored Procedure Basis Data 2

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

3 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).

4 Tipe Stored Procedure  System 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)

5 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.

6 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

7 Dasar Stored Procedure

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

9 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

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

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

12 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 GO

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

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

15 Parameter

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

17 Parameter  Input parameter  Digunakan untuk memberikan nilai dari pemanggil ke dalam SP  Contoh: CREATE PROC pr_honor INT) AS …  Output parameter  Digunakan untuk mengembalikan nilai non-recordset dari SP ke pemanggil Misalnya SP untuk insert, mengembalikan nilai hasil identity  Contoh: CREATE PROC pr_honor INT CHAR(1) OUTPUT) AS …

18 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 int OUTPUT)

19 Eksekusi Output Parameter Contoh: INT EXEC m 10, OUTPUT PRINT 'hasil = ' + str  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.

20 Parameter dgn Default Value  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 INT=5) AS select nama instruktur, honor from instruktur where Return  Urutan parameter  Tempatkan parameter dengan default value di akhir dari daftar parameter untuk penggunaan fleksibel

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

22 RETURN & ERROR

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

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

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

26 Studi Kasus

27 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 varchar(128) ) AS SELECT * GO

28  Hasilnya:  Error Message  Server: Msg 137, Level 15, State 2, Procedure find_data, Line 6 Must declare the variable  Pesan kesalahan tersebut nampak ganjil karena telah didefinisikan sebagai variable

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

30 TUGAS: MUST READ!

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


Download ppt "Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Stored Procedure Basis Data 2."

Presentasi serupa


Iklan oleh Google