Sistem Basis Data : Integritas Data
Integritas
Data
Integritas data adalah jaminan konsistensi data terhadap semua status konstrain yang diberlakukan terhadap data tersebut, sehingga memberikan jaminan keabsahan data itu sendiri. Integritas data sangat erat kaitannya dengan keamanan keberadaan data, dimana dapat terjadi secara institusional atau asidental.
Jenis-Jenis Integritas Data dapat dikelompokkan sebagai berikut :
- Entity Integritas
- Domain Integritas
- Refrential Integritas
- User Defined Integritas
1. Entity Integritas
Entity
Integritas mendefinisikan sebuah baris sebagai sebuah entitas yang unik untuk
suatu tabel. Entity integritas memaksa integritas dari column atau primary key
dari suatu tabel (melalui index, unique, constraints, primary key). Primary key
tidak boleh null.
2.
Domain Integritas
Domain
Integritas merupakan validasi dari masukan untuk sebuah kolom. Anda dapat
memaksa domain integritas dengan membatasi tipe (melalui data types), format
(melalui check constraints dan rules), atau range nilai-nilai yang mungkin (melalui
Foreign Key Constraints, Check Constraints, Default Definitions dan rules).
3.
Refrential Integritas
Refrential
Integritas memastikan bahwa seluruh nilai dari foreign key cocok dengan nilai
primary key yang dihubungkan.
4.
User Defined Integritas
User–defined
integritas mengizinkan Anda untuk menentukan spesific business rules sendiri
yang tidak sama pada kategori integrity yang lain.
Types of Data Integrity
Bagian
ini menggambarkan atauran yang dapaat diterapkan pada kolom tabel ayang
menekankan perbedaan tipe data pada integritas data.
1.
Null Rule
Aturan
null adalah definisi aturan pada single column yang membolehkan atau
tidak membolehkan inserts atau updates untuk pengisian rows kosong (the absence
of a value) pada kolom ini.
2.
Unique Column Values
Aturan
nilai unique didefinisan pada sebuah column (or set of columns) yang
membolehkan insert or update hanya pada row jika itu berisi sebuah nilai
unique dalam sebuah kolom (or set of columns).
3.
Primary Key Values
Aturan
nilai primary key didefinisikan pada sebuah key (a column or set of columns)
tertentu bahwasetiap each row dalam table dapat mengidentifikasi keunikan
dengan nilai kunci tersebut
4.
Referential Integrity Rules
Aturan
referential integrity adalah definsi aturan pada sebuah kunci key (a column or
set of columns) dalam sebuah table yang menjamin bahwa data dalam kunci cocok
dengan nilai dalam sebuah relasi table (the referenced value).
Aturan-Aturan Referential Integrity
Referential
integrity mengacu pada kaitan antar row/record dari 2 tabel yang berhubungan
melalui Foreign Key yang bersangkutan.
Pada
insert, record harus dimasukkan di tabel utama dahulu, kemudian baru di tabel
kedua.
Pada
delete, record harus dihapus di tabel kedua dahulu, kemudian baru di tabel
utama.
Field
yang dihubungkan dari tabel utama haruslah berupa Primary Key.
Kedua
field yang saling behubungkan harus memiliki Tipe data dan lebar data yang
sama.
Tidak
dibenarkan penghapusan record pada tabel utama yang telah dihubungkan dengan
tabel yang direlasikan.
Macam action dalam Referential Integrity:
NO
ACTION atau RESTRICT : update atau delete tidak dilakukan. Ini merupakan
pilihan default.
CASCADE
: nilai kolom di tabel kedua disesuaikan dengan nilai kolom di tabel utama
SET
NULL : nilai kolom di tabel kedua dijadikan NULL
SET
DEFAULT : nilai kolom di tabel kedua dijadikan nilai DEFAULT (nilai DEFAULT
harus ditentukan pada waktu pembuatan tabel).
Membuat Constraint
Constraint
merupakan suatu aturan yang membatasi jenis data yang diijinkan untuk
dimasukkan ke dalam tabel. Constraint dapat dibuat baik pada saat pembuatan
tabel atau setelah tabel dibuat. Ketika constraint dibuat setelah pembuatan
tabel, maka constraint tersebut hanya mengecek data yang ada (yang telah
dimasukkan dalam tabel). Jika ada beberapa pelanggaran maka constraint
akan ditolak.
Tipe-Tipe Constraint
Microsoft SQL Sever menyediakan beberapa tipe Constraint, yaitu :
-
PRIMARY KEY Constraint, untuk menspesifikasikan
kolom dalam tabel. Tidak boleh kosong, dan harus unik, untuk menghubungkan satu
tabel dengan tabel lain.
-
FOREIGN KEY Constraint, digunakan untuk
menspesifikasikan kolom foreing key pada suatu tabel. Foreing key digunakan
untuk menghubungkan dua tabel. Kolom foreign key adalah kolom atau kombinasi
beberapa kolom dalam suatu tabel yang selalu merujuk pada kolom primary
keypada suatu tabel. SQL Server 2000 / MySQL – Navicat 2005 @ 2010 :
www.didiksetiyadi.com 2 , dds@didiksetiyadi.com
-
UNIQUE Constraint, digunakan untuk menjamin bahwa
data pada suatu kolom atauy beberapa kolom tidak diijinkan sama. CHECK
Constraint, digunakan untuk membatasi suatu nilai pada kolom dengan nilai
tertentuyang diijinkan masuk.
-
DEFAULT Constraint, merupakan atribut opsionalyang
digunakan untuk memberikan suatu nilai tertentupada suatu kolom jika kolom
tersebut tidak dimasukkan suatu data.
-
Not Null, digunakan untuk menjamin tidak ada nilai
null ( kosong) yang muncul pada suatu kolom tertentu sehingga bila tidak
mengisikan nilai pada kolom tersebut maka akan muncul error.
TRIGGER, PROCEDURE, FUNCTION
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.
TRIGGER, PROCEDURE, FUNCTION
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.
KEY Constraints dan
DOMAIN Constraints
Jika kondisi key dan domain constraints terpenuhi dan semua skema basis data memenuhi Domain Key Normal Form, maka semua integritas konstrain pada basis data terpenuhi.
Keamanan Basis Data
Keamanan basis data adalah pemberian perlindungan basis data terhadap ancaman dan gangguan, baik yang bersifat teknis maupun administrasi. Gangguan terhadap basis data sangat bervariasi, dimana dapat meliputi : hardware, software, manusia, dan data. Secara keseluruhan gangguan, baik fisik maupun non fisik meliputi : pencurian, hilangnya kerahasian, kehilangan privasi, kehilangan integritas, dan kehilangan kemampuan.
Untuk memberikan perlindungan keamanan basis data, diantaranya dapat dilakukan dengan pemberian otoritas terhadap pengguna dalam melakukan akses objek, yang meliputi : tabel basis data, view, aplikasi, prosedur atau objek lainnya dalam sistem. Adapun untuk jenis-jenis otorisasi adalah :
Read Authorization, pemberian otorisasi hanya untuk melakukan pembacaan data saja, dan tidak memiliki otorisasi untuk melakukan modifikasi data.
Insert Authorization, pemberian otorisasi untuk melakukan insert data baru, dan tidak memiliki otorisasi untuk melakukan modifikasi data yang sudah ada.
Update Authorization, pemberian otorisasi untuk melakukan modifikasi data, dan tidak memiliki otorisasi melakukan pengahapusan data.
Delete Authorization, pemberian otoritas untuk melakukan penghapusan data, hanya tuple (record) bukan relasi (tabel).
Index Authorization, pemberian otorisasi untuk membuat dan menghapus indek data.
Resource Authorization, pemberian otorisasi untuk melakukan pembuatan tabel (relasi) baru.
Alteration Authorization, pemberian otorisasi untuk menambahkan atau menghapus atribut pada suatu relasi (tabel).
Drop Authorization, pemberian otorisasi untuk menghapus relasi (tabel).
Jika kondisi key dan domain constraints terpenuhi dan semua skema basis data memenuhi Domain Key Normal Form, maka semua integritas konstrain pada basis data terpenuhi.
Keamanan Basis Data
Keamanan basis data adalah pemberian perlindungan basis data terhadap ancaman dan gangguan, baik yang bersifat teknis maupun administrasi. Gangguan terhadap basis data sangat bervariasi, dimana dapat meliputi : hardware, software, manusia, dan data. Secara keseluruhan gangguan, baik fisik maupun non fisik meliputi : pencurian, hilangnya kerahasian, kehilangan privasi, kehilangan integritas, dan kehilangan kemampuan.
Untuk memberikan perlindungan keamanan basis data, diantaranya dapat dilakukan dengan pemberian otoritas terhadap pengguna dalam melakukan akses objek, yang meliputi : tabel basis data, view, aplikasi, prosedur atau objek lainnya dalam sistem. Adapun untuk jenis-jenis otorisasi adalah :
Read Authorization, pemberian otorisasi hanya untuk melakukan pembacaan data saja, dan tidak memiliki otorisasi untuk melakukan modifikasi data.
Insert Authorization, pemberian otorisasi untuk melakukan insert data baru, dan tidak memiliki otorisasi untuk melakukan modifikasi data yang sudah ada.
Update Authorization, pemberian otorisasi untuk melakukan modifikasi data, dan tidak memiliki otorisasi melakukan pengahapusan data.
Delete Authorization, pemberian otoritas untuk melakukan penghapusan data, hanya tuple (record) bukan relasi (tabel).
Index Authorization, pemberian otorisasi untuk membuat dan menghapus indek data.
Resource Authorization, pemberian otorisasi untuk melakukan pembuatan tabel (relasi) baru.
Alteration Authorization, pemberian otorisasi untuk menambahkan atau menghapus atribut pada suatu relasi (tabel).
Drop Authorization, pemberian otorisasi untuk menghapus relasi (tabel).
·
TRIGGER,
PROCEDURE, FUNCTION
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.
Syntax:
CREATE [or replace]
TRIGGER nama_trigger
( BEFORE|AFTER ) ( INSERT|UPDATE [OF nama_kolom,..]|DELETE )ON nama_tabel
[FOR EACH ROW] [WHEN (kondisi)]
DECLARE
Deklarasi tipe data
BEGIN
Trigger body
END;
/
( BEFORE|AFTER ) ( INSERT|UPDATE [OF nama_kolom,..]|DELETE )ON nama_tabel
[FOR EACH ROW] [WHEN (kondisi)]
DECLARE
Deklarasi tipe data
BEGIN
Trigger body
END;
/
Anonymous Block
Block PL/SQL tak bernama (anonymous) menyimpannya dalam Oracle Precompiler.
Anonymous block tidak dibuat (CREATE) dan tak disimpan pada database, biasanya dijalankan dari dalam aplikasi, pada run-time aplikasi akan mengirimkan anonymous PL/SQL block ini kepada database oracle, dimana anonymous block tsb di compile dan dieksekusi.
Syntax:
DECLARE
Deklarasi variabel
BEGIN
Program prosedural
EXCEPTION
Penangananan eksepsi (ERROR)
END;
/
Deklarasi variabel
BEGIN
Program prosedural
EXCEPTION
Penangananan eksepsi (ERROR)
END;
/
SUBPROGRAM
PL/SQL Block yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Dimana secara umum procedure
Syntax:
Prosedur
CREATE OR REPLACE
PROCEDURE AS
Deklarasi variabel
BEGIN
Prosedural & sql
EXCEPTION
Penanganan eksepsi (ERROR)
END ;
/
Deklarasi variabel
BEGIN
Prosedural & sql
EXCEPTION
Penanganan eksepsi (ERROR)
END ;
/
Fungsi
CREATE OR REPLACE
FUNCTION RETURN
AS
Deklarasi variabel
BEGIN
procedural and SQL
EXCEPTION
penanganan eksepsi (ERROR)
RETURN();
kalusa return ini wajib di deklarasikan
END;
/
AS
Deklarasi variabel
BEGIN
procedural and SQL
EXCEPTION
penanganan eksepsi (ERROR)
RETURN();
kalusa return ini wajib di deklarasikan
END;
/