04 MI2143 Data Integrity

  • Published on
    12-Dec-2015

  • View
    213

  • Download
    0

Embed Size (px)

DESCRIPTION

c

Transcript

<p>PowerPoint Presentation</p> <p>Data Integrity</p> <p>MI2143 Dasar SQLSemester Ganjil / Tahun Ajaran 2013-2014Hanya dipergunakan untuk kepentingan pengajaran di Lingkungan Politeknik TelkomDisajikan Oleh:Disusun Oleh:Wardani Muhamad S.T., M.T. wdm@politekniktelkom,ac.idKonsep Data IntegrityBasisdata hanya mempunyai kemampuan untuk menyimpan informasi, sedangkan DBMS harus dapat berperan untuk memastikan bahwa informasi yang tersimpan di dalam basisdata adalah benarUntuk memastikan bahwa informasi yang disimpan adalah benar, pada basisdata dapat ditambahkan constraintIntegrity Constraint (IC) adalah sebuah kondisi yang ditetapkan secara spesifik pada sebuah basisdata, dan dapat membatasi data yang tersimpan pada basisdata tersebutIC digunakan untuk memastikan akurasi dan konsistensi data pada basisdata relasional</p> <p>Tipe Integrity ConstraintOracle mendefinisikan enam constraint yang dapat digunakan:Not NULLUniquePrimary Key Foreign Key Constraint (Referential Integrity)Check Terdapat dua cara untuk mendeklarasikan constraint:Inline specification constraint menjadi bagian pada pendefinisian column secara individualOut-of-line specification constraint menjadi bagian pada pendefinisian tableSetiap constraint harus memiliki nama yang unik</p> <p>Inline SpecificationContoh:CREATE TABLE mahasiswa ( nim CHAR(6) CONSTRAINT pk_mhs PRIMARY KEY, nama VARCHAR2 (35))</p> <p>NOT NULL constraints must be declared inline. All other constraints can be declared either inline or out of line.4Out-of-line SpecificationContoh:</p> <p>CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2 (35), CONSTRAINT pk_mhs PRIMARY KEY (nim))</p> <p>NULL ValueJika sebuah kolom pada sebuah baris tidak mempunyai nilai, maka column tersebut dinyatakan NULLSemua tipe data memungkinkan adanya nilai NULLUntuk membatasi sebuah column dari nilai NULL, maka column tersebut harus dibatasi dengan menambahkan constraint NOT NULL atau PRIMARY KEYNOL tidak sama dengan NULLEkspresi aritmatika yang melibatkan nilai NULL akan mendapatkan hasil NULLContoh: 10 dikali dengan NULL sama dengan NULL</p> <p>1. Not Null ConstraintNot Null Constraint mencegah sebuah column mempunyai nilai NULLKeyword NULL sendiri pada dasarnya tidak digunakan untuk mendefinisikan ICNOT NULL dideklarasikan menggunakan inline specificationUntuk menguji kebenaran (memenuhi) Not Null Constraint setiap column harus memiliki sebuah nilai</p> <p>1. Not Null Constraint (cont.)Pattern (inline specification):</p> <p>Contoh:CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2 (35) CONSTRAINT nm_mhs_nn NOT NULL)</p> <p>2. UniqueUnique constraint tidak memperbolehkan beberapa baris data memiliki nilai yang sama pada column atau kumpulan column yang sama, akan tetapi memperbolehkan nilai NULLUnique Constraint menunjukkan column sebagai unique keyContoh:</p> <p>Composite Unique Constraint menunjukkan sekumpulan (kombinasi) column sebagai unique keyContoh: NIMNama30110029Muhammad Ali30110030Mike Tyson30110030Mike DoughlasNIMHobi_keNama_hobi301100291Renang301100301Shopping301100301Renang</p> <p>Pada tabel yang pertama, NIM diset memiliki constraint UNIQUE, sehingga seharusny tidak boleh ada nilai pada colum NIM yang sama (duplikat)9</p> <p>2. Unique (cont.)Pattern (inline specification)</p> <p>Contoh penggunaan: CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2 (35) CONSTRAINT nm_mhs_uni UNIQUE)</p> <p>Contoh penggunaan di slide menggunakan inline specification10</p> <p>2. Unique (cont.)Pattern (out-of-line specification)</p> <p>Contoh penggunaan: </p> <p>CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2(35), jns_kelamin CHAR(1), CONSTRAINT mhs_uni UNIQUE (nama,jns_kelamin))</p> <p>3. Primary KeyPrimary Key (PK) constraint merupakan kombinasi NOT Null dan unique constraintPK tidak memperbolehkan beberapa baris data memiliki nilai yang sama pada column atau kumpulan column yang sama, serta tidak memperbolehkan nilai NULLUntuk menguji kebenaran PK:Tidak ada duplikasi nilai pada column yang menjadi PKColumn yang menjadi bagian dari PK tidak memiliki Null ValuePK hanya dapat didefnisikan satu kali pada sebuah table</p> <p>3. Primary Key (2)Pattern (inline specification)</p> <p>Contoh:CREATE TABLE mahasiswa ( nim CHAR(6) CONSTRAINT pk_mhs PRIMARY KEY, nama VARCHAR2 (35))</p> <p>3. Primary Key (3)Pattern (out-of-line specification)</p> <p>Contoh:CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2 (35), CONSTRAINT pk_mhs PRIMARY KEY (nim))</p> <p>CREATE TABLE mahasiswa ( nim CHAR(6), nama VARCHAR2 (35), CONSTRAINT pk_mhs PRIMARY KEY (nim,nama))</p> <p>4. Foreign Keyforeign key mensyaratkan nilai yang dimiliki pada sebuah table cocok dengan nilai pada table pasangannyaColumn yang menjadi rujukan dan menghubungkan antara foreign key dengan primary key atau unique disebut dengan referenced keyKombinasi column yang menjadi foreign key disebut composite foreign keyTable atau view yang memiliki foreign key disebut child, dan table atau view yang menjadi rujukan disebut parentColumn yang menjadi foreign key dan column yang menjadi rujukan harus memiliki tipe data yang cocokSebuah kolom atau sekumpulan kolom dapat berperan sebagai foreign key sekaligus sebagai primary key atau uniqueSebuah table dapat memiliki lebih dari satu foreign key</p> <p>4. Foreign Key (2)Pattern</p> <p>Contoh:</p> <p>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))</p> <p>4. Foreign Key (3)On Delete Clausedigunakan 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 childSET NULL menjadikan nilai column pada child menjadi NULL jika terjadi penghapusan data pada parentContoh: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)</p> <p>5. CheckCheck constraint digunakan untuk membatasi nilai yang tersimpan didalam basisdata memenuhi kondisi yang sudah ditentukanSebuah column dapat memiliki lebih dari satu check constraintTidak ada batasan jumlah check constraint yang dikenakan pada sebuah column</p> <p>5. Check (2)Pattern</p> <p>Contoh:</p> <p>CREATE TABLE employees (... salary NUMBER(8,2) CONSTRAINT emp_salary_min CHECK (salary &gt; 0), ...)</p> <p>Referensi/Daftar PustakaOracle 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.</p>