Data Integrity
MI2143 – Dasar SQLSemester Ganjil / Tahun Ajaran 2013-2014
Hanya dipergunakan untuk kepentingan pengajaran di Lingkungan Politeknik Telkom
Disajikan Oleh:
Disusun Oleh:
Wardani Muhamad S.T., M.T. – wdm@politekniktelkom,ac.id
Konsep Data Integrity
Basisdata hanya mempunyai kemampuan untuk menyimpan informasi, sedangkan DBMS harus dapat berperan untuk memastikan bahwa informasi yang tersimpan di dalam basisdata adalah benar
Untuk memastikan bahwa informasi yang disimpan adalah benar, pada basisdata dapat ditambahkan constraint
Integrity Constraint (IC) adalah sebuah kondisi yang ditetapkan secara spesifik pada sebuah basisdata, dan dapat membatasi data yang tersimpan pada basisdata tersebut
IC digunakan untuk memastikan akurasi dan konsistensi data pada basisdata relasional
Tipe Integrity Constraint
Oracle mendefinisikan enam constraint yang dapat digunakan:
1. Not NULL
2. Unique
3. Primary Key
4. Foreign Key Constraint (Referential Integrity)
5. Check
Terdapat dua cara untuk mendeklarasikan constraint:
1. Inline specification constraint menjadi bagian pada pendefinisian column secara individual
2. Out-of-line specification constraint menjadi bagian pada pendefinisian table
Setiap constraint harus memiliki nama yang unik
Inline Specification
Contoh:
CREATE TABLE mahasiswa ( nim CHAR(6) CONSTRAINT pk_mhs PRIMARY KEY, nama VARCHAR2 (35))
Out-of-line Specification
Contoh:
CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2 (35), CONSTRAINT pk_mhs PRIMARY KEY (nim))
NULL Value
Jika sebuah kolom pada sebuah baris tidak mempunyai nilai, maka column tersebut dinyatakan NULL
Semua tipe data memungkinkan adanya nilai NULL
Untuk membatasi sebuah column dari nilai NULL, maka column tersebut harus dibatasi dengan menambahkan constraint NOT NULL atau PRIMARY KEY
NOL tidak sama dengan NULL
Ekspresi aritmatika yang melibatkan nilai NULL akan mendapatkan hasil NULL
Contoh: 10 dikali dengan NULL sama dengan NULL
1. Not Null Constraint
Not Null Constraint mencegah sebuah column mempunyai nilai NULL
Keyword NULL sendiri pada dasarnya tidak digunakan untuk mendefinisikan IC
NOT NULL dideklarasikan menggunakan inline specification
Untuk menguji kebenaran (memenuhi) Not Null Constraint setiap column harus memiliki sebuah nilai
1. Not Null Constraint (cont.)
Pattern (inline specification):
Contoh:
CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2 (35) CONSTRAINT nm_mhs_nn NOT NULL)
2. Unique
Unique constraint tidak memperbolehkan beberapa baris data memiliki nilai yang sama pada column atau kumpulan column yang sama, akan tetapi memperbolehkan nilai NULL
Unique Constraint menunjukkan column sebagai unique key
Contoh:
Composite Unique Constraint menunjukkan sekumpulan (kombinasi) column sebagai unique key
Contoh:
NIM Nama
30110029 Muhammad Ali
30110030 Mike Tyson
30110030 Mike Doughlas
NIM Hobi_ke Nama_hobi
30110029 1 Renang
30110030 1 Shopping
30110030 1 Renang
2. Unique (cont.)
Pattern (inline specification)
Contoh penggunaan:
CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2 (35) CONSTRAINT nm_mhs_uni UNIQUE)
2. Unique (cont.)
Pattern (out-of-line specification)
Contoh penggunaan:
CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2(35), jns_kelamin CHAR(1), CONSTRAINT mhs_uni UNIQUE (nama,jns_kelamin))
3. Primary Key
Primary Key (PK) constraint merupakan kombinasi NOT Null dan unique constraint
PK tidak memperbolehkan beberapa baris data memiliki nilai yang sama pada column atau kumpulan column yang sama, serta tidak memperbolehkan nilai NULL
Untuk menguji kebenaran PK:
Tidak ada duplikasi nilai pada column yang menjadi PK
Column yang menjadi bagian dari PK tidak memiliki Null Value
PK hanya dapat didefnisikan satu kali pada sebuah table
3. Primary Key (2)
Pattern (inline specification)
Contoh:CREATE TABLE mahasiswa ( nim CHAR(6) CONSTRAINT pk_mhs PRIMARY KEY, nama VARCHAR2 (35))
3. Primary Key (3)
Pattern (out-of-line specification)
Contoh:
CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2 (35), CONSTRAINT pk_mhs PRIMARY KEY (nim))
CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2 (35), CONSTRAINT pk_mhs PRIMARY KEY (nim,nama))
4. Foreign Key
foreign key mensyaratkan nilai yang dimiliki pada sebuah table cocok dengan nilai pada table pasangannya
Column yang menjadi rujukan dan menghubungkan antara foreign key dengan primary key atau unique disebut dengan referenced key
Kombinasi column yang menjadi foreign key disebut composite foreign key
Table atau view yang memiliki foreign key disebut child, dan table atau view yang menjadi rujukan disebut parent
Column yang menjadi foreign key dan column yang menjadi rujukan harus memiliki tipe data yang cocok
Sebuah kolom atau sekumpulan kolom dapat berperan sebagai foreign key sekaligus sebagai primary key atau unique
Sebuah table dapat memiliki lebih dari satu foreign key
4. Foreign Key (2) Pattern
Contoh:CREATE TABLE mahasiswa ( nim CHAR(6) CONSTRAINT pk_mhs PRIMARY KEY, nama VARCHAR2 (35) id_prodi CHAR(2), CONSTRAINT fk_mhs_prodi FOREIGN KEY (id_prodi) REFERENCES prodi(id_prodi))
4. Foreign Key (3)
On Delete Clause
digunakan untuk menentukan bagaimana Oracle secara otomatis mengelola referential integrity jika terjadi penghapusan pada data yang menjadi rujukan (parent)
Jenis ON DELETE Clause: CASCADE penghapusan data pada parent akan menghapus
data pada child
SET NULL menjadikan nilai column pada child menjadi NULL jika terjadi penghapusan data pada parent
Contoh:CREATE TABLE mahasiswa ( nim CHAR(6) CONSTRAINT pk_mhs PRIMARY KEY, nama VARCHAR2 (35) id_prodi CHAR(2), CONSTRAINT fk_mhs_prodi FOREIGN KEY (id_prodi) REFERENCES prodi(id_prodi) ON DELETE CASCADE)
5. Check
Check constraint digunakan untuk membatasi nilai yang tersimpan didalam basisdata memenuhi kondisi yang sudah ditentukan
Sebuah column dapat memiliki lebih dari satu check constraint
Tidak ada batasan jumlah check constraint yang dikenakan pada sebuah column
5. Check (2)
Pattern
Contoh:
CREATE TABLE employees (... salary NUMBER(8,2) CONSTRAINT emp_salary_min CHECK (salary > 0), ...)
Referensi/Daftar Pustaka
Oracle Database 10g. SQL Fundamental 1 – Student Guide Volume 1. California: Oracle Publisher 2004.
Oracle Database 10g. SQL Reference 10g Release 2. California: Oracle Publisher 2005.