04 mi2143 data integrity

Post on 12-Dec-2015

229 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

c

TRANSCRIPT

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.

top related