Integritas Data
Integritas Data, yaitu
model integrasi data yang dilakukan langsung pada database atau struktur data
dari aplikasi. integritas adalah “kesetiaan representasional informasi
untuk keadaan sebenarnya dari objek yang mewakili informasi, dimana kesetiaan
itu sendiri terdiri dari empat atribut inti yaitu: kelengkapan, ketepatan
waktu, akurasi / kebenaran, dan validitas”.
Ada
bebereapa jenis Constraints Integrity, yaitu:
·
Entity Integrity atau Integritas
Entitas
Integritas
ini merupakan aturan yang menyatakan bahwa setiap table harus
memiliki primary keydan setiap kolom primary key tersebut
haruslah unique dan not null.
·
Referential Integrity atau
Integritas Referensial
Integritas
ini menyatakan bahwa setiap foreign key pada suatu table harus
mengacu pada primary key dari table lainya.
·
Domain Integrity
Integritas
ini menetapkan bahwa setiap elemen dari relasi harus sesuai dengan jenis dan
batasan atribut elemen tersebut.
·
User Defined Integrity
Untuk
jenis yang satu ini, menetapkan aturan sesuai keinginan user sendiri,
misal untuk umur harus diantara 0 sampai 17, selain itu tidak diperbolehkan.
Transaksi
Sebuah transaksi adalah
unit eksekusi program yang mengakses dan mungkin mungkin mengubah beberapa item
data. Suatu transaksi harus melihat database yang konsisten. Selama eksekusi
transaksi, database mungkin tidak konsisten. Ketika sebuah transaksi
dianggap commit maka database harus konsisten.
Dua hal yang berkaitan
dengan manajemen transaksi:
+ Kegagalan fungsi
(Failures), terdiri dari kegagalan perangkat keras (hardware) dan system crash
+ Eksekusi beberapa
transaksi secara bersamaa
Untuk menjaga integritas
data, database sistem harus menjamin:
- Atomicity.
Jika semua operasi pada
sebuah transaksi sukses maka transaksi dianggap sukses, jika salahsatu
operasi pada suatu transaksi gagal maka transaksi dianggap gagal.
- Consistency.
Eksekusi sebuah
transaksi secara terisolasi bertujuan untuk menjaga konsistensi database.
- Isolation.
Meskipun ada beberapa
transaksi yang berlangsung bersamaan, masing-masing transaksi tidak boleh
mengetahui transaksi lain yang sedang berlangsung. Hasil transaksi sementara
harus disembunyikan dari transaksi lain yang sedang berlangsung. Sehingga,
untuk pasangan transaksi Ti dan Tj, yang terlihat
oleh Ti adalah Tj selesai melakukan eksekusi
sebelum Ti mulai, atau Tj memulai eksekusi
setelah Ti selesai.
- Durability.
Setelah sebuah transaksi
sukses dilakukan, perubahan-perubahan yang dibuatnya terhadap database bersifat
permanen, bahkan jika terjadi kegagalan sistem.
Contoh. Sebuah transaksi
transfer uang
Transaksi untuk transfer
$50 dari account A ke account B:
1. read(A)
2. A := A
– 50
3. write(A)
4. read(B)
5. B := B
+ 50
6. write(B)
Consistency requirement
– jumlah A dan B tidak berubah setelah eksekusi transaksi.
Atomicity requirement —
Jika transaksi gagal dijalankan setelah langkah ke 3 dan sebelum langkah ke 6,
maka sistem harus menjamin bahwa perubahan yang terjadi tidak direfleksikan di
database, jika hal ini tidak dapat dilakukan maka akan menghasilkan
inconsistency.
State (keadaan)
Transaksi
+
Active, merupakan keadaan (state) awal; transaksi berada di state ini
ketika dia sedang dieksekusi
+ Partially
committed, setelah operasi (statement) terakhir telah dieksekusi.
+ Failed, setelah
diketahui bahwa eksekusi secara normal tidak lagi dapat dilakukan.
+ Aborted, setelah
sebuah transaksi di-roll back (dikembalikan ke kondisi sebelum transaksi). Ada
dua pilihan setelah transaksi di-abort :
–
Ulangi transaksi
–
hanya jika tidak ada kesalahan logika internal
+
Committed, setelah semua operasi selesai dijalankan dengan sukses.
Concurrency
Proses-Proses
yang disebut konkurensi apabila proses-proses (lebih dari satu proses) berada
pada saat yang sama. Karena proses tersebut bisa saja tidak saling bergantung
tetapi saling berinteraksi.
Masalah Concurrency
1. Lost update/kehilangan modifikasi.
Masalah operasi update yg sukses dari seorang pengguna kemudian ditimpali oleh
operasi update dari pengguna lain
2.
Uncommited dependency/ketergantungan pada saat belum commit
Permasalahan timbul pada saat transaksi dibiarkan melihat hasil dari transasksi
lain yang belum commit.
3.
Inconsistent analysis/analisis yang tidak konsisten
Permasalahan timbul apabila suatu transaksi membaca beberapa nilai tetapi
transasksi berikutnya memodifikasi salah satu nilai.
Pengontrollan Concurrency
Lebih
dari satu pengguna (pada DBMS terpusat) dapat melakukan operasi pada basis data
secara simultan. Jika tidak dikontrol, hal ini dapat menyebab kan interferensi
satu sama lain sehingga basis data menjadi tidak konsisten. Untuk mencegahnya,
DBMS mengimple-mentasikan pengontrolan konkurensi. Implementasi pengamanan
sangat penting untuk menjamin sistem tidak diinterupsi dan diganggu. Proteksi
dan pengamanan terdapat perangkat keras dan sistem operasi yang sama pentingnya
Backend Programming
Backend Programming adalah code yang tidak terlihat oleh user dan bekerja
dibelakang layar atau server.
Stored Procedure
Stored
Procedure adalah sekumpulan perintah SQL yang disusun dalam sebuah prosedur
yang memiliki nama dan fungsi tertentu.
Struktur
badan procedur secara umum :
CREATE OR REPLACE PROCEDURE
<nama procedure> AS
/*Deklarasi variable, type, dan local subprogram*/
BEGIN
/*Bagian utama prosedur*/
EXCEPTION
/*Penangan error*/
END <nama procedur>;
Function
Selain
Stored Procedure, terdapat juga Function. Sedikit berbeda dengan Stored
Procedure, disini ada nilai yang dikembalikan.
Struktur
badan Function secara umum:
CREATE OR REPLACE FUNCTION
<nama fungsi> RETURN <tipe data>
AS
/*Deklarasi variable, type, dan local subprogram*/
BEGIN
/*Bagian utama fungsi*/
EXCEPTION
/*Penangan error*/
RETURN(<Nilai yang
dikembalikan>);
END <nama fungsi>;
/
Untuk
mengeksekusi stored procedure dan fungsi gunakan perintah :
EXECUTE <nama
procedure/fungsi>;
Sedangkan
untuk menghapusnya menggunakan perintah
DROP PROCEDURE/FUNCTIOM <nama
procedure/function>;
Trigger
Secara
keseluruhan trigger hampir sama dengan Procedure dan Function, hanya saja untuk
Trigger dioperasikan secara otomatis ketika terdapat aktivitas
statement-statement SQL seperti Insert, Update dan Delete. Trigger ini bisa
diaktivasi sebelum atau pun sesudah terjadinya satatement-statement tersebut.
Struktur
badan Trigger secara umum:
CREATE OR REPLACE TRIGGER
<nama trigger>
(BEFORE|AFTER) (INSERT|UPDATE [OF
<nama_kolom>, …]|DELETE) ON <nama_tabel>
[FOR EACH ROW] [WHEN (kondisi)]
DECLARE
/*Deklarasi variable, tipe data*/
BEGIN
/*Bagian utama trigger*/
END;
/
Trigger
ini memiliki status apakah dia aktif atau nonaktif. Untuk mengubah status
Trigger berikut sintaksnya :
ALTER TRIGGER
<nama_trigger> DISABLE | ENABLE;
dimana
DISABLE untuk menonaktifkan Trigger, dan ENABLE untuk mengaktifkan Trigger.
Sintaks
untuk menghapus Trigger :
DROP TRIGGER
<nama_trigger>;
XML
XML merupakan sebuah bahasa pemrograman berbasis web untuk dokumen yang
mengandung informasi terstruktur. XML memiliki kepanjangan Extensible Markup
Language. XML ini ditujukan untuk pertukaran dokumen via web. Hampir sama
dengan Markup Languange lainya seperti HTML, XML juga memiliki tag-tag
didalamnya. Hanya saja tag-tag tersebut bisa dinamakan sendiri, contoh nya
<umur> </umur>. Tag-tag tersebut juga bisa memiliki atribut seperti
<barang warna=”hijau”> </barang>.
Keunggulan dari XML :
·
Dapat dibaca software dan manusia.
·
Flexible.
·
Independen terhadap bahasa pemrograman.
Dari
beberapa keuntungan diatas masih terselip satu kerugian dari XML yaitu
pengulangan Tag.
Aturan XML :
ü Setiap
tag harus ada penutupnya.
ü Penamaan
Tag :
ü Case
sensitive
ü Tidak
diawali angka
ü Tidak
mengandung spasi
ü Hindari
penggunaan '-' dan '.'
ü Urutan
hirarki harus benar.
ü Setiap
XML harus mengandung root.
ü Setiap
atribut harus dalam tanda petik.
ü Komentar
dalam XML : <!--komentar-->
Keamanan basis data
Keamanan
basis data merupakan suatu proteksi terhadap pengrusakan data dan pemakaian
data oleh pemakai yang tidak punya kewenangan. Untuk menjaga keamanan Basis
Data, dapat dilakukan beberapa cara berikut ini :
·
Penentuan perangkat lunak Data Base
Server yang handal.
·
Pemberian otoritas kepada user mana saja
yang berhak mengakses, serta memanipulasi data- data yang ada.
Tujuan
Keamanan Basis data :
·
Confidentiality
·
Integrity
·
Availability
Ancaman
keamanan terhadap Basis data
·
Interuption
·
Interception
·
Modification
·
Fabrication
Pengaturan
Keamanan Basis Data :
1. Otorisasi
Pemberian
wewenang atau hak istimewa (privilege) untuk mengakses sistem atau obyek
database kepada pengguna yang bertanggung jawab
2. Tabel
View
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.
3. Backup
data dan recovery
a. Backup adalah proses
secara periodik untuk membuat duplikat dari database dan melakukan logging file
(atau program) ke media penyimpanan eksternal.
b. Recovery merupakan
upaya untuk mengembalikan basis data ke keadaaan yang dianggap benar setelah
terjadinya suatu kegagalan.
Terdapat
3 jenis pemulihan, antara lain :
·
Pemulihan terhadap kegagalan transaksi :
Kesatuan prosedur alam program yang dapat mengubah / memperbarui data pada
sejumlah tabel.
·
Pemulihan terhadap kegagalan media :
Pemulihan karena kegagalan media dengan cara mengambil atau memuat kembali
salinan basis data (backup)
·
Pemulihan terhadap kegagalan sistem :
Karena gangguan sistem, hang, listrik terputus alirannya.
References :