Back-End Programming
Back-End programming adalah program yang berjalan pada database secara otomatis ketika terjadi suatu pemicu tertentu. Dalam oracle ada beberapa metode untuk melakukan back-end programming, yaitu dengan trigger dan stored procedure.
Trigger
Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada sebuah tabel. Aktivasi trigger didasarkan pada event yang terjadi di dalam tabel tersebut sehingga trigger dapat membantu dalam menjaga integritas dan konsistensi data. Implementasi trigger yang sering ditemui dalam dunia nyata adalah untuk mengeset dan mengubah nilai kolom dalam suatu tabel sehingga validasi nilai dari tabel tersebut akan terjaga. Adanya trigger dalam database akan meringankan kita dalam pembuatan aplikasi karena di dalam aplikasi yang kita buat, kita tidak perlu lagi untuk melakukan validasi data.
Berikut adalah daftar yang mungkin untuk aktivasi trigger :
Event |
Keterangan |
Before Insert | Diaktifkan sekali sebelum statement insert |
After Insert | Diaktifkan sekali setelah statement insert |
Before Update | Diaktifkan sekali sebelum statement update |
After Update | Diaktifkan sekali setelah statement update |
Before Delete | Diaktifkan sekali sebelum statement delete |
After Delete | Diaktifkan sekali setelah statement delete |
Model-model yang digunakan untuk menspesifikasi aturan basis data aktif adalah model ECA (Event-Condition-Action). Aturan dalam model ECA memiliki tiga komponen yaitu:
- Event, yang memicu suatu rule tersebut biasanya berupa operasi perubahan basis data yang secara eksplisit ditambahkan ke basis data. Namun pada umumnya, bisa berupa event temporal atau jenis event eksternal yang lain.
- Condition, menentukan apakah suatu rule dijalankan atau tidak. Ketika suatu trigger dijalankan, maka bagian condition (bersifat optional) akan dievaluasi jika didefinisikan oleh yang membuat trigger. Jika evaluasi bagian condition bernilai TRUE maka aksi suatu rule dijalankan.
- Action, biasanya berupa statement sql.
Manfaat trigger antara lain adalah :
- Membuat integrity constraint yang kompleks.
- Mencatat aktivitas suatu tabel (logging).
- Sinkronisasi
Contoh Kasus :
Pada database supermarket, jika ada pembelian baru maka otomatis stok barang pada tabel barang akan berkurang sesuai dengan jumlah barang yang dibeli. Maka sintaks lengkapnya dalam pl / sql adalah sebagai berikut :
create table barang( kode_barang varchar2(10) primary key, nama varchar2(50), stok_barang number );
create table pembelian( id_pembelian number primary key, kode_barang varchar2(10), constraint fk_kd_brg foreign_key (kode_barang) references barang(kode_barang) jumlah_beli number, harga number );
create or replace trigger trg_stok_brg after insert on jumlah_beli for each row begin update barang set stok_barang =stok_barang – :new.jumlah_beli where id_pembelian = :new.id_pembelian; end; / |
Stored Procedure
Subprogram adalah PL/SQL Blok yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Dimana secara umum procedure digunakan untuk melaksanakan aksi dan function digunakan untuk komputasi suatu nilai.
Stored procedure adalah subprogram yang disimpan di dalam database berupa SQL + Bahasa prosedural. Ada beberapa kelebihan yang dapat diperoleh dengan menggunakan stored procedure, meliputi :
- Dijalankan di database server -> performance lebih baik, network trafik lebih rendah.
- Tools DBA -> praktis, selalu tersedia di database server.
- Dapat digunakan oleh banyak aplikasi
- Standarisasi business logic.
- SP dapat dipanggil oleh aplikasi luar
- Dapat memanfaatkan tipe, fungsi yang disediakan DBMS
- Powerfull, tools sangat penting bagi DB designer, DB programmer dan DBA
- Hampir semua RDBMS mensupport.
- Walaupun syntax berbeda, umumnya menggunakan prinsip yang sama
XML (Extensible Markup Language)
XML adalah markup language sepertinya halnya HTML untuk dokumen yang mengandung informasi terstuktur dan ditujukan untuk pertukaran dokumen via web. XML berberntuk file teks yang cross platform, independen terhadap software dan hardware. Berikut adalah spesifikasi XML :
- Tag: <nama> budi </nama>
- Tag didefinisikan sendiri.
- Tag dapat mempunyai atribut,
- contoh : <daftar_mahasiswa jumlah = “40”> … </daftar_mahasiswa>
- Struktur -> hirarki (tag dalam tag),
- contoh: <mahasiswa><nama> susis </nama></mahasiswa>
Keuntungan XML :
- Self Documenting -> dengan melihat tag, dapat diketahui isi dokumen.
- Dapat dibaca software dan manusia.
- Fleksibel
- Dapat dikembangkan tanpa melanggar format lama.
- Contoh: pada <pengarang>, tambah tag <telepon>, maka XML yang lama tetap dapat dibaca.
- Hirarkis -> dapat merepresentasikan data kompleks
- Independen terhadap bahasa pemrograman dan sistem operasi
Kerugian XML :
- Pengulangan tag -> tidak efisien, ukuran file membengkak
Beberapa aturan XML :
- Setiap tag harus ada penutupnya.
- Penamaan Tag
- case sensitive. <nama> tidak sama dengan <Nama>.
- Tidak diawali dengan angka
- Tidak mengandung spasi
- Hindari ‘-’ dan ‘.’
- Urutan hirarki harus benar.
- Contoh yang salah: <mahasiswa> <nama> susis </mahasiswa></nama>
- Setiap XML harus mengandung root (akar)
<root>
<child>
<subchild>…..</subchild>
</child>
</root>
- Setiap atribut harus dalam tanda petik. Contoh:
- <surat tanggal = “12/12/2007”>
- <catatan oleh = “ Jum’at ” >
- Komentar dalam XML:
- <!—baris komentar –!>
Untuk membaca XML diperlukan proses parser. Parser XML dapat dilakukan dengan dua cara, yaitu :
- Tree based, isi XML dipindahkan ke memori terlebih dulu -> DOM (Document Object Model).
- Event based -> tidak dipindahkan ke memori. Fungsi callback dipanggil setiap menemui element. -> SAX (Simple API XML)
Keamanan Data
Sistem database dapat didefinisikan sebagai komputerisasi sistem penyimpanan data yang tujuannya untuk memelihara informasi serta agar informasi tersedia pada saat dibutuhkan. Dalam sistem database itu perlu dijaga keamanan datanya karena data yang diakses oleh pihak yang tidak berwenang akan merugikan pemilik database tersebut baik database miliki perusahaan, kelompok tertentu atau bahkan perorangan.
- Fisikal, lokasi-lokasi dimana terdapat sistem komputer haruslah aman secara fisik terhadap kerusakan.
- Manusia, dijaga dari pihak yang tidak berwenang untuk menghindari manipulasi data olehnya.
- Sistem Operasi, kelemahan ini memungkinkan pengaksesan data oleh pihak tak berwenang, karena hampir seluruh jaringan sistem database menggunakan akses jarak jauh.
- Pengaturan hak akses sistem basis data yang baik.
Berikut adalah poin-poin penting yang harus diperhatikan dalam keamanan data :
1. Otorisasi, meliputi :
- Pemberian Wewenang atau hak istimewa (priviledge) untuk mengakses sistem atau obyek database
- Kendali otorisasi (=kontrol akses) dapat dibangun pada perangkat lunak dengan 2 fungsi :
- Mengendalikan sistem atau obyek yang dapat diakses
- Mengendalikan bagaimana pengguna menggunakannya
- Sistem administrasi yang bertanggungjawab untuk memberikan hak akses dengan membuat account pengguna.
2. Tabel View
Merupakan metode pembatasan bagi pengguna untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan. Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh pengguna. Contoh pada Database relasional, untuk pengamanan dilakukan beberapa level :
- Level Relasi : pengguna diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi.
- Level View : pengguna diperbolehkan atau tidak diperbolehkan mengakses data yang terapat pada view.
- Read Authorization : pengguna diperbolehkan membaca data, tetapi tidak dapat memodifikasi.
- Insert Authorization : pengguna diperbolehkan menambah data baru, tetapi tidak dapat memodifikasi data yang sudah ada.
- Update Authorization : pengguna diperbolehkan memodifikasi data, tetapi tidak dapat menghapus data.
- Delete Authorization : pengguna diperbolehkan menghapus data.
3. Backup data dan Recovery, tindakan ini diperlukan untuk mencegah kehilangan data dari hal-hal yang tidak terduga.
- Backup : proses secara periodik untuk membuat duplikat dari database dan melakukan logging file media penyimpanan eksternal.
- Jurnaling : proses menyimpan dan mengatur log file dari semua perubahan yang dibuat di database untuk proses recovery yang efektif jika terjadi kesalahan.
- Isi Jurnal :
- Record transaksi :
- Identifikasi dari record
- Tipe record jurnal (transaksi start, insert, update, delete, abort, commit)
- Item data sebelum perubahan (operasi update dan delete)
- Item data setelah perubahan (operasi insert dan update)
- Informasi manajemen jurnal (misal : pointer sebelum dan record jurnal selanjutnya untuk semua transaksi)
- Record checkpoint :
- Suatu informasi pada jurnal untuk memulihkan database dari kegagalan, kalau sekedar redo, akan sulit penyimpanan sejauh mana jurnal untuk mencarinya kembali, maka untuk membatasi pencarian menggunakan teknik ini. Recovery : merupakan upaya untuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.
- Record transaksi :
4. Kesatuan data dan Enkripsi :
- Enkripsi : Mengkodekan informasi pada data dengan sandi khusus yang hanya dapat dibuka oleh pihak yang berwenang / memegang kuncinya
- Integritas : Metode pemeriksaan dan validasi data (metode integrity constrain), yaitu berisi aturan-aturan atau batasan-batasan untuk tujuan terlaksananya integritas data.
- Konkuren : mekanisme untuk menjamin bahwa transaksi yang konkuren pada database multi user tidak saling menganggu operasinya masing-masing. Adanya penjadwalan proses yang akurat (time stamping).
Referensi
2007. Ryan Mudafiq, www.Ilmukomputer.com
2012. Pratama. gogopratamax.blogspot.com