Anda di halaman 1dari 20

Vikha Suryo Kharismawan

F1319061

CH 7 - SQL UNTUK PEMBANGUNAN DATABASE


DAN PEMROSESAN APLIKASI

 
1. SQL DDL dan DML
a. SQL Data Definition Language (DDL): CREATE TABLE, ALTER TABLE, DROP
TABLE, TRUNCATE TABLE;
b.  SQL Data Manipulating Language (DML): INSERT, UPDATE, DELETE, MERGE
c. SQL Views: CREATE TABLE, ALTER TABLE, DROP TABLE
d. SQL / Persistent Stored Moduled  (SQL / PSM): Fungsi, Pemicu (Triggers), Prosedur
Penyimpanan
 
2. Mengelola Struktur Tabel dengan SQL DDL
SQL CREATE TABLE digunakan untuk membuat tabel, mendefinisikan kolom dan
kendala kolom, dan membuat hubungan.
a. Menggunakan pernyataan SQL CREATE TABLE
Format dasar pernyataan SQL CREATE TABLE adalah :
CREATE TABLE (
three-part column definition,
three-part column definition,
...
optional table constraint
...
);
Bagian dari definisi kolom tiga bagian yaitu nama kolom, tipe data kolom, dan batasan
pada nilai kolom (opsional). Dengan demikian, kita dapat menyatakan kembali format
CREATE TABLE sebagai:
CREATE TABLE (
ColumnName DataType OptionalConstraint,
ColumnName DataType OptionalConstraint,
...
Optional table constraint
...
);

Batasan kolom dan tabel yaitu berupa PRIMARY KEY, FOREIGN KEY, NULL,
NOT NULL, UNIQUE, dan CHECK. Selain itu, DEFAULT keyword (DEFAULT
tidak dianggap sebagai kendala kolom) dapat digunakan untuk menetapkan nilai awal. Di
bawah ini adalah ringkasan teknik-teknik untuk menciptakan hubungan menggunakan
batasan FOREIGN KEY, NULL, NOT NULL, dan UNIQUE dalam hubungan 1: N , 1:1,
dan hubungan biasa:

b. Pernyataan SQL ALTER TABLE


Pernyataan SQL ALTER TABLE digunakan untuk mengubah struktur tabel yang ada,
yaitu dengan menambah, menghapus, atau mengubah kolom, serta menambah atau
menghilangkan kendala (constrain).
 Menambahkan dan Menghapus Kolom (Adding and Dropping Columns)
Pernyataan berikut akan menambahkan kolom bernama MyColumn ke tabel
CUSTOMER dengan menggunakan klausa ADD SQL dalam pernyataan SQL
ALTER TABLE :
ALTER TABLE CUSTOMER
ADD MyColumn Char(5) NULL;

Kita bisa menghapus kolom yang ada dengan menggunakan klausa SQL DROP
COLUMN dalam pernyataan SQL ALTER TABLE:
ALTER TABLE CUSTOMER
DROP COLUMN MyColumn;
 
Perhatikan asimetri dalam syntax; kata kunci COLUMN digunakan dalam klausa
DROP COLUMN tetapi tidak dalam klausa ADD.

 
 Menambah dan Menghapus Batasan
Pernyataan ALTER TABLE dapat digunakan dengan klausa SQL ADD
CONSTRAINT untuk menambahkan batasan sebagai berikut:
ALTER TABLE CUSTOMER
ADD CONSTRAINT MyConstraint CHECK
(LastName NOT IN ('RobertsNoPay'));

Kita juga dapat menggunakan pernyataan ALTER TABLE dengan klausa SQL


DROP CONSTRAINT untuk menghapus batasan :
ALTER TABLE CUSTOMER
DROP CONSTRAINT MyConstraint;

c. Pernyataan SQL DROP TABLE


Pernyataan SQL DROP TABLE berikut ini akan menjatuhkan tabel TRANS dan semua
datanya:
DROP TABLE TRANS;

DBMS tidak akan menghapus tabel yang merupakan induk dalam batasan FOREIGN
KEY. Sehingga, untuk menghapus tabel seperti itu, pertama-tama kita harus menghapus
batasan foreign key atau tabel anak. Kemudian kita bisa menghapus tabel induk karena
tabel induk haruslah masuk pertama dan keluar terakhir.

d. Pernyataan SQL TRUNCATE TABLE


Pernyatan ini digunakan untuk menghapus semua data dari tabel tapi masih
meninggalkan struktur tabel tersebut di database. Pernyataan SQL TRUNCATE TABLE
tidak menggunakan klausa SQL WHERE untuk menentukan kondisi penghapusan data
— semua data dalam tabel selalu dihapus ketika TRUNCATE digunakan. Meskipun
mirip dengan pernyataan SQL DELETE, ada dua perbedaan penting antara keduanya.
Pertama, pernyataan DELETE tidak memungkinkan penggunaan klausa SQL WHERE.
Kedua, TRUNCATE me-reset semua nilai kunci pengganti kembali ke nilai awal,
sedangkan pernyataan DELETE tidak.
Pernyataan berikut dapat digunakan untuk menghapus semua data dalam tabel
CUSTOMER_ARTIST_INT :

TRUNCATE TABLE CUSTOMER_ARTIST_INT;

Pernyataan TRUNCATE TABLE tidak dapat digunakan dengan tabel yang


direferensikan oleh batasan foreign key karena ini bisa menciptakan nilai foreign key
yang tidak memiliki nilai kunci utama yang sesuai.

e.  Pernyataan SQL CREATE INDEX


Indeks adalah struktur data khusus yang dibuat untuk meningkatkan kinerja database.
SQL Server secara otomatis membuat indeks pada semua kunci utama dan asing. SQL
DDL menyertakan pernyataan SQL CREATE INDEX untuk membuat indeks, pernyataan
SQL ALTER INDEX untuk mengubah indeks database yang ada, dan pernyataan SQL
DROP INDEX untuk menghapus indeks dari database.

3. Pernyataan SQL DML


a. Pernyataan SQL INSERT
Pernyataan SQL INSERT digunakan untuk menambahkan baris data ke tabel. Beberapa
opsinya yaitu:
 Pernyataan SQL INSERT Menggunakan Nama Kolom
Versi standar dari pernyataan INSERT digunakan untuk memberi nama tabel,
memberi nama kolom, dan kemudian membuat format berikut:
INSERT INTO ARTIST
(LastName, FirstName, Nationality, DateOfBirth, DateDeceased)
VALUES ('Miro', 'Joan', 'Spanish', 1893, 1983);

Perhatikan bahwa nama dan nilai kolom terlampir dalam tanda kurung dan kunci
pengganti DBMS tidak termasuk dalam pernyataan. Jika kita memberikan data untuk
semua kolom, jika data itu dalam urutan yang sama dengan kolom dalam tabel, dan
jika kita tidak memiliki kunci pengganti, maka kita dapat menghilangkan daftar
kolom. Jika kita memiliki nilai parsial, cukup mengkodekan nama kolom yang kita
miliki datanya. Kita juga harus memiliki nilai untuk semua kolom NOT NULL.
Kolom yang tidak disebutkan secara spesifik dalam pernyataan INSERT akan
memiliki nilai yang ditetapkan ke NULL.

INSERT INTO ARTIST VALUES


('Miro', 'Joan', 'Spanish', 1893, 1983);

Selanjutnya, kita tidak perlu memberikan nilai dalam urutan yang sama dengan kolom
dalam tabel. Jika karena alasan tertentu kita ingin menuliskan Nationality dahulu, kita
dapat merevisi nama kolom dan nilai data.

 Bulk INSERT
Dalam format ini digunakan SQL SELECT untuk memberikan nilai. Misalkan Anda
memiliki nama, kebangsaan, tanggal lahir, dan tanggal meninggal dari sejumlah artis
di sebuah tabel bernama IMPORTED_ARTIST. Dalam hal ini, Anda dapat
menambahkan data tersebut ke tabel ARTIST dengan pernyataan berikut :
INSERT INTO ARTIST
(LastName, FirstName, Nationality, DateOfBirth, DateDeceased)
SELECT LastName, FirstName, Nationality,
DateOfBirth, DateDeceased
FROM IMPORTED_ARTIST;

Perhatikan bahwa kunci SQL VALUES tidak digunakan disini.


.

b. Pernyataan SQL UPDATE


Pernyataan SQL UPDATE digunakan untuk mengubah nilai baris yang sudah ada.
Misalnya, pernyataan berikut akan mengubah nilai City menjadi ‘New York City' untuk
pelanggan yang memiliki PelangganID 1000 (Jeffrey Janes ):
UPDATE CUSTOMER
SET City = 'New York City'
WHERE CustomerID = 1000;

Untuk mengubah nilai Kota dan State (Negara Bagian), kami akan menggunakan
pernyataan SQL berikut:
UPDATE CUSTOMER
SET City = 'New York City', State = 'NY'
WHERE CustomerID = 1000;

 Pembaruan Massal (Bulk Updates)


Kita bisa melakukan pembaruan massal menggunakan klausa SQL WHERE yang
dapat menemukan banyak baris. Jika, misalnya, kita ingin mengubah AreaCode untuk
setiap pelanggan yang tinggal di Denver, kita akan membuat kode :
UPDATE CUSTOMER
SET AreaCode = '303'
WHERE City = 'Denver';
 Memperbarui Menggunakan Nilai dari Tabel Lain
Pernyataan SQL UPDATE dapat mengatur kolom sama dengan nilai kolom dalam
tabel yang berbeda. Misalnya, kita memiliki tabel bernama TAX_TABLE dengan
kolom (Tax, City), di mana Tax adalah tarif pajak yang sesuai untuk City. Sekarang
anggaplah kita memiliki tabel bernama PURCHASE_ORDER yang mencakup
kolom TaxRate dan City. Kita dapat memperbarui semua baris untuk pesanan
pembelian di kota Bodega Bay dengan pernyataan SQL berikut:
UPDATE PURCHASE_ORDER
SET TaxRate =
(SELECT Tax
FROM TAX_TABLE
WHERE TAX_TABLE.City = 'Bodega Bay')
WHERE PURCHASE_ORDER.City = 'Bodega Bay';

Misalnya kita ingin memperbarui TaxRate untuk nomor pesanan pembelian 1000.


Dalam hal ini, kami menggunakan pernyataan SQL yang sedikit lebih rumit:

UPDATE PURCHASE_ORDER
SET TaxRate =
(SELECT Tax
From TAX_TABLE
WHERE TAX_TABLE.City = PURCHASE_ORDER.City)
WHERE PURCHASE_ORDER.Number = 1000;            
 
c. Pernyataan SQL MERGE
Pernyataan SQL MERGE pada dasarnya menggabungkan pernyataan SQL INSERT dan
SQL UPDATE menjadi satu pernyataan yang dapat menyisipkan atau memperbarui data,
tergantung pada apakah beberapa kondisi terpenuhi. Misalnya, sebelum staf memasukkan
data ke dalam tabel ARTIST, mereka dengan cermat meneliti data tentang setiap artis dan
menyimpannya dalam tabel yang bernama ARTIST_DATA_RESEARCH. Data artis
baru pada awalnya disimpan di ARTIST_DATA_RESEARCH, bersama dengan koreksi
ke data artis yang sudah ada di ARTIST. Aturan bisnis perusahaan adalah bahwa nama
ARTIST tidak pernah diubah setelah dimasukkan, tetapi jika kesalahan dalam
Nationality, DateOfBirth , atau DateDeceased ditemukan, kesalahan ini dapat diperbaiki.
Dalam hal ini, data ARTIST baru dapat dimasukkan dan data ARTIST diperbarui dengan
menggunakan pernyataan SQL MERGE berikut:

MERGE INTO ARTIST AS A USING ARTIST_DATA_RESEARCH AS ADR


ON (A.LastName = ADR.LastName
AND
A.FirstName = ADR.FirstName)
WHEN MATCHED THEN
UPDATE SET
A.Nationality = ADR.Nationality,
A.DateOfBirth = ADR.DateOfBirth,
A.DateDeceased = ADR.DateDeceased
WHEN NOT MATCHED THEN
INSERT (LastName, FirstName, Nationality, DateOfBirth,
DateDeceased)
VALUES (ADR.LastName, ADR.FirstName, ADR.Nationality,
ADR.DateOfBirth, ADR.DateDeceased);
 
d. Pernyataan SQL DELETE
Pernyataan SQL berikut akan menghapus baris untuk pelanggan dengan CustomerID
1000 :
DELETE FROM CUSTOMER
WHERE CustomerID = 1000;         

4. Menggunakan Tampilan SQL (SQL Views)


Tampilan SQL adalah tabel virtual yang dibangun dari tabel atau tampilan lain. Tampilan
tidak memiliki data sendiri tetapi memperoleh data dari tabel atau tampilan lainnya. Secara
umum, pemrogram aplikasi lebih suka bahwa pekerjaan mentransformasikan data database
menjadi informasi yang akan digunakan dan disajikan oleh aplikasi dilakukan oleh DBMS itu
sendiri. SQL View adalah alat DBMS utama untuk pekerjaan ini. Prinsip dasar adalah bahwa
semua penjumlahan, merata-rata, pengelompokan, perbandingan, dan operasi serupa harus
dilakukan dalam tampilan SQL dan hal itu adalah hasil akhir seperti yang muncul dalam
tampilan SQL yang diteruskan ke program aplikasi untuk digunakan.
Tampilan dibangun dari pernyataan SQL SELECT menggunakan pernyataan SQL CREATE
VIEW , dan diikuti oleh nama tampilan. Berikut kegunaan dari SQL Views:
 Menyembunyikan kolom atau baris dan untuk menampilkan hasil kolom yang dihitung
(dikomputasi)
 Menampilkan hasil kolom yang dihitung (dikomputasi)
 Menyembunyikan sintaks SQL yang rumit.
 Melayer fungsi bawaan.
 Memberikan tingkat isolasi antara data tabel dan tampilan data pengguna.
 Menetapkan pemicu yang berbeda untuk tampilan yang berbeda dari tabel yang sama.
 Menetapkan diff erent pemicu untuk diff erent dilihat dari tabel yang sama
Contoh:
Kita akan mendefinisikan tampilan bernama CustomerNameView pada tabel CUSTOMER
yang menampilkan data LastName dan FirstName pelanggan, tetapi diberi label ulang
sebagai CustomerLastName dan CustomerFirstName:
CREATE VIEW CustomerNameView AS
SELECT LastName AS CustomerLastName,
FirstName AS CustomerFirstName
FROM CUSTOMER;
Setelah tampilan dibuat, tampilan dapat digunakan dalam klausa FROM dari pernyataan
SELECT. Format berikut untuk memperoleh daftar nama pelanggan dalam urutan yang
diurutkan :
SELECT *
FROM CustomerNameView
ORDER B CustomerLastName, CustomerFirstName;
            
             
 
 
 
 
 
 
 
 
 

 
 
  
a. Menggunakan SQL Views untuk Menyembunyikan Kolom dan Baris
Misalnya, kita ingin daftar pelanggan yang disederhanakan yang hanya memiliki nama
dan nomor telepon. Pernyataan SQL berikut mendefinisikan tampilan,
BasicCustomerDataView, yang akan menghasilkan daftar itu:
CREATE VIEW CustomerBasicDataView AS
SELECT LastName AS CustomerLastName,
FirstName AS CustomerFirstName,
AreaCode, PhoneNumber
FROM CUSTOMER;
Untuk menggunakan tampilan ini, kita dapat menjalankan pernyataan SQL berikut:
SELECT *
FROM CustomerBasicDataView
ORDER BY CustomerLastName, CustomerFirstName;             
Hasilnya adalah:
Tampilan SQL juga dapat menyembunyikan baris dengan memberikan klausa WHERE
dalam definisi tampilan. Pernyataan SQL berikutnya mendefinisikan tampilan dari nama
pelanggan dan data telepon untuk semua pelanggan dengan alamat di Negara Bagian
Washington:
CREATE VIEW CustomerBasicDataWAView AS
SELECT LastName AS CustomerLastName,
FirstName AS CustomerFirstName,
AreaCode, PhoneNumber
FROM CUSTOMER
WHERE State='WA';

Untuk menggunakan tampilan ini, kita dapat menjalankan pernyataan SQL berikut
SELECT *
FROM CustomerBasicDataWAView
ORDER BY CustomerLastName, CustomerFirstName;
Hasilnya:                                                                        
b. Menggunakan SQL Views untuk Menampilkan Hasil dari Kolom yang Dihitung
Tujuan lain dari tampilan adalah untuk menunjukkan hasil dari kolom yang dihitung
tanpa mengharuskan pengguna untuk memasukkan ekspresi dalam perhitungan.
Misalnya, tampilan berikut menggabungkan kolom AreaCode dan PhoneNumber dan
memformat hasilnya:
CREATE VIEW CustomerPhoneView AS
SELECT LastName AS CustomerLastName,
FirstName AS CustomerFirstName,
('(' + AreaCode + ') ' + PhoneNumber) AS CustomerPhone
FROM CUSTOMER;

Ketika pengguna tampilan mengeksekusi pernyataan SQL berikut:                           


SELECT *
FROM CustomerPhoneView
ORDER BY CustomerLastName, CustomerFirstName;                           
             
Berikut adalah hasilnya:

 
c. Menggunakan SQL Views untuk Menyembunyikan Sintaks SQL yang Rumit
Dengan menggunakan tampilan, pengembang tidak perlu memasukkan pernyataan SQL
yang kompleks ketika mereka menginginkan hasil tertentu. Juga, tampilan seperti itu
memberi manfaat pernyataan SQL yang rumit bagi pengembang yang tidak tahu
bagaimana menulis pernyataan seperti itu. Penggunaan tampilan ini juga memastikan
konsistensi.
Misalnya, kita ingin melihat pelanggan mana yang tertarik pada artis mana, dan mereka
ingin melihat nama pelanggan dan artis. Untuk menampilkan minat ini, diperlukan dua
gabungan (join), yaitu satu untuk menggabungkan CUSTOMER ke
CUSTOMER_ARTIST_INT dan untuk menggabungkan hasilnya ke ARTIST. Kita dapat
mengkode pernyataan SQL yang membangun gabungan ini dan mendefinisikannya
sebagai tampilan SQL untuk membuat CustomerInterestsView :
CREATE VIEW CustomerInterestsView AS
SELECT C.LastName AS CustomerLastName,
C.FirstName AS CustomerFirstName,
A.LastName AS ArtistName
FROM CUSTOMER AS C JOIN CUSTOMER_ARTIST_INT AS CAI
ON C.CustomerID = CAI.CustomerID
JOIN ARTIST AS A
ON CAI.ArtistID = A.ArtistID;       

Pernyataan berikut menunjukkan hasil yang diurutkan berdasarkan CustomerLastName


dan CustomerFirstName :

SELECT *
FROM CustomerInterestsView
ORDER BY CustomerLastName, CustomerFirstName;              

d. Melayer Fungsi Bawaan


Kita tidak dapat menggunakan komputasi atau fungsi bawaan sebagai bagian dari klausa
SQL WHERE. Namun, kita bisa membangun tampilan yang dapat menghitung variabel
dan kemudian menulis pernyataan SQL pada tampilan itu dengan menggunakan variabel
yang dihitung dalam klausa WHERE. Untuk memahami hal ini, pertimbangkan definisi
tampilan SQL untuk ArtistWorkNetView :
CREATE VIEW ArtistWorkNetView AS
SELECT LastName AS ArtistLastName,
FirstName AS ArtistFirstName,
W.WorkID, Title, Copy, DateSold,
AcquisitionPrice, SalesPrice,
(SalesPrice – AcquisitionPrice) AS NetProfit
FROM TRANS AS T JOIN WORK AS W
ON T.WorkID = W.WorkID
JOIN ARTIST AS A
ON W.ArtistID = A.ArtistID;

Tampilan SQL ini tergabung dengan TRANS, WORK, dan ARTIST dan membentuk
NetProfit kolom yang dikomputasi. Kita sekarang dapat menggunakan NetProfit dalam
klausa SQL WHERE dalam kueri sebagai berikut:

SELECT ArtistLastName, ArtistFirstName,


WorkID, Title, Copy, DateSold, NetProfit
FROM ArtistWorkNetView
WHERE NetProfit > 5000
ORDER BY DateSold;

Di sini kita menggunakan hasil dari perhitungan dalam klausa WHERE, sesuatu yang
tidak diizinkan dalam pernyataan SQL tunggal ( hasil perhitungan dapat digunakan
dalam klausa WHERE, tetapi tidak dengan nama ). Hasil pernyataan SQL SELECT
adalah:

 
e. Menggunakan Tampilan SQL untuk Isolasi, Izin Banyak (Multiple Permissions),
dan Pemicu Banyak (Multiple Triggers)
 Memisahkan tabel data sumber dari kode aplikasi. Contoh:
CREATE VIEW CustomerTableBasicDataView AS
SELECT *
FROM CUSTOMER;
Tampilan ini menetapkan alias CustomerTableBasicDataView ke tabel CUSTOMER,
dan ketika kita memformat tampilan ini, kita dapat dengan mudah memilih semua
data dalam tampilan: 
SELECT *
FROM CustomerTableBasicDataView;                           
                           
Hasilnya adalah data dalam tabel PELANGGAN itu sendiri (termasuk semua kolom):

 Berikan berbagai set izin pemrosesan ke tabel yang sama.


Dimungkinkan untuk membatasi memasukkan, memperbarui, menghapus, dan
membaca izin pada tabel dan tampilan. Misalnya, sebuah organisasi mungkin
mendefinisikan tampilan CUSTOMER yang disebut CustomerTableReadView
dengan izin read-only pada CUSTOMER dan tampilan kedua CUSTOMER yang
disebut CustomerTableUpdateView dengan izin baca dan memperbarui. Aplikasi
yang tidak perlu memperbarui data pelanggan akan berfungsi dengan
CustomerTableReadView, sedangkan yang perlu memperbarui data ini akan bekerja
dengan CustomerTableUpdateView.

 Mengaktifkan definisi beberapa set pemicu pada sumber data yang sama.
Teknik ini biasanya digunakan dalam hubungan O-M dan M-M. Dalam hal ini, satu
tampilan memiliki serangkaian pemicu yang melarang penghapusan anak yang
diperlukan dan tampilan lain memiliki serangkaian pemicu yang menghapus anak
yang diperlukan beserta induknya. Tampilan akan berbeda untuk setiap aplikasi,
tergantung pada otoritasnya masing-masing.
 
f. Memperbarui Tampilan SQL
Beberapa tampilan dapat diperbarui sedangkan yang lain tidak bisa.
1) Tampilan yang dapat diupdate:     
 Tampilan berdasarkan pada satu tabel tanpa kolom yang dikomputasi dan semua
kolom yang bukan nol ada dalam tampilan.
 Tampilan berdasarkan pada sejumlah tabel, dengan atau tanpa kolom yang
dikomputasi, dan pemicu INSTEAD OF yang ditentukan untuk tampilan.

2) Tampilan yang kemungkinan dapat diperbarui:     


 Berdasarkan tabel tunggal, kunci utama dalam tampilan, beberapa kolom yang
diperlukan hilang dari tampilan, perbaruan dan hapus mungkin diizinkan.
Sisipan juga tidak diizinkan.
 Berdasarkan beberapa tabel, pembaruan mungkin diizinkan pada tabel paling
subordinat dalam tampilan jika baris tabel itu dapat diidentifikasi secara unik.
 
5. Menanamkan SQL dalam Kode Program
Untuk menanamkan pernyataan SQL dalam kode program, dua masalah harus diselesaikan.
Masalah pertama adalah bahwa beberapa cara untuk menetapkan hasil pernyataan SQL ke
variabel program harus tersedia. Masalah kedua menyangkut ketidakcocokan paradigma
antara SQL dan bahasa pemrograman aplikasi. Untuk mengatasi ketidakcocokan ini, hasil
pernyataan SQL diproses sebagai pseudofile menggunakan kursor.                                                                 
a. SQL / Modul Tersimpan Persisten (SQL / PSM)
Setiap produk DBMS memiliki varian atau ekstensi SQL sendiri, termasuk fitur yang
memungkinkan SQL berfungsi sama dengan bahasa pemrograman prosedural. Standar
ANSI / ISO menyebut ini sebagai SQL / Persistent Stored Module (SQL / PSM). SQL /
PSM adalah bagian dari standar SQL yang menyediakan penyimpanan modul kode
program yang dapat digunakan kembali dalam database. SQL / PSM menentukan bahwa
pernyataan SQL akan dimasukkan dalam fungsi yang ditentukan pengguna, pemicu, dan
prosedur tersimpan dalam database. Ini juga menentukan variabel SQL, kursor,
pernyataan kontrol-of-flow, dan prosedur output.               
                                                 

b. Menggunakan Fungsi Buatan Pengguna SQL


Sebuah fungsi yang ditetapkan pengguna (user-defined function atau fungsi yang
disimpan) adalah seperangkat pernyataan SQL tersimpan yang:
 disebut dengan nama dari pernyataan SQL lain
 kemungkinan memiliki parameter input yang diteruskan oleh pernyataan SQL
panggilan
 mengembalikan nilai output ke pernyataan SQL yang disebut fungsi
Tergantung pada implementasi produk DBMS, fungsi yang ditentukan pengguna dapat
ditulis sebagai:
 Sebuah fungsi skalar bernilai, yang mengembalikan nilai tunggal berdasarkan
baris
 Fungsi tabel bernilai, yang mengembalikan tabel nilai
 Sebuah fungsi agregat, yang mengembalikan nilai tunggal berdasarkan kolom
pengelompokan (mirip dengan fungsi agregat SQL built-in misalnya SUM)

c. Menggunakan Pemicu SQL


Sebuah pemicu (trigger) adalah program tersimpan yang dieksekusi oleh DBMS setiap
kali peristiwa tertentu terjadi. Pemicu dilampirkan ke tabel atau tampilan. Tabel atau
tampilan mungkin memiliki banyak pemicu, tetapi pemicu dikaitkan dengan hanya satu
tabel atau tampilan. Pemicu akan muncul karena permintaan SQL DML INSERT,
UPDATE, atau DELETE pada tabel atau tampilan yang dilampirkan.

Ringkasan Pemicu SQL oleh Produk DBMS


Kegunaan pemicu SQL:
 Memberikan Nilai Default
DEFAULT hanya berfungsi untuk ekspresi sederhana, dan jika perhitungan nilai
default memerlukan logika yang rumit, maka pemicu INSERT harus digunakan
sebagai gantinya.
 Menjalankan Kendala Data
Meskipun kendala SQL CHECK dapat digunakan untuk menjalankan batasan
domain, jangkauan, dan intrarelasi, tapi tidak ada vendor DBMS yang
mengimplementasikan fitur SQL-92 untuk kendala interrelation CHECK, yang
disebut ASSERTIONs dalam standar SQL. Akibatnya, kendala tersebut
diimplementasikan dalam pemicu.
 Memperbarui Tampilan
Aplikasi terkadang dapat memperbarui tampilan yang tidak dapat diperbarui oleh
DBMS dengan menerapkan logika yang khusus untuk pengaturan bisnis yang
diberikan. Dalam hal ini, logika khusus aplikasi untuk memperbarui tampilan
ditempatkan di pemicu INSTEAD OF. Ketika pemicu INSTEAD OF dibuat, DBMS
akan memanggil pemicu. Jika kita membuat pemicu INSTEAD OF INSERT pada
tampilan MyView dan jika pemicu kita tidak melakukan apa-apa selain mengirim
pesan email, maka pesan email itu menjadi hasil dari INSERT pada tampilan.
INSERT MyView berarti “mengirim email” dan tidak lebih.
 Menerapkan Tindakan Integritas Referensial
Singkatnya, ketika pemicu diaktifkan, DBMS memberikan nilai lama dan nilai baru
untuk pembaruan. Nilai baru disediakan untuk sisipan dan pembaruan, dan sedangkan
lama disediakan untuk pembaruan dan penghapusan. Bagaimana nilai-nilai ini disediakan
untuk pemicu tergantung pada DBMS yang digunakan.

d.  Menggunakan Prosedur Yang Disimpan


Prosedur tersimpan adalah program yang disimpan dalam basis data dan dikompilasi saat
digunakan. Prosedur tersimpan dapat menerima parameter input dan mengembalikan
hasil. Tidak seperti pemicu, cakupannya adalah database; mereka dapat digunakan oleh
setiap proses yang memiliki izin untuk menjalankan prosedur tersimpan. Prosedur
tersimpan dapat dipanggil dari program yang ditulis dalam bahasa yang sama yang
digunakan untuk pemicu. Mereka juga dapat dipanggil dari utilitas DBMS SQL. Berikut
beberapa keuntungan Prosedur Tersimpan (Stored Procedures):
 Keamanan lebih terjamin;
 Menurunkan lalu-lintas jaringan;
 SQL dapat dioptimalkan;
 Berbagi kode;
 Kerja mejadi lebih sedikit;
 Pemrosesan standar;
 Spesialisasi diantara pengembang.

Pemicu (Trigger) vs. Prosedur Tersimpan

Pemicu (Trigger) Prosedur Tersimpan


Modul kode yang dipanggil dengan Modul kode yang dipanggil oleh pengguna
DBMS ketika INSERT, UPDATE, atau administrator basis data;
atau perintah DELETE dikeluarkan;
Ditugaskan ke sebuah tabel atau Ditugaskan ke database, tetapi tidak ke tabel
tampilan; atau tampilan;
Bergantung pada DBMS, mungkin Dapat
memiliki lebih dari satu pemicu per mengeluarkan perintah INSERT, UPDATE,
tabel atau tampilan; DELETE, dan MERGE
Pemicu dapat mengeluarkan perintah Digunakan untuk tugas administrasi berulang
INSERT, UPDATE, dan DELETE atau sebagai bagian dari aplikasi
dan dengan demikian dapat
menyebabkan pemicu lainnya.

Anda mungkin juga menyukai