Upload
icha-frisca
View
77
Download
1
Embed Size (px)
Citation preview
DASAR SQLMI2143
YGK
Integritas Data
Constraint
Batasan atau aturan yang ada pada table
Mencegah penghapusan/pengubahan data dari suatu table yang mempunyai keterkaitan dengan table yang lain
Melakukan pengecekan terhadap sebuah kolom
Defining Constraint
Column Level Constraint
CREATE TABLE employees(employee_id NUMBER(6)
CONSTRAINT emp_emp_id_pk PRIMARY KEY,
first_name VARCHAR2(20),...);
Table Level Constraint
CREATE TABLE employees(employee_id NUMBER(6),first_name VARCHAR2(20),...job_id VARCHAR2(10) NOT NULL,CONSTRAINT emp_emp_id_pk
PRIMARY KEY (EMPLOYEE_ID));
Tipe Integritas Data
Null RuleUnique Column ValuesCheckPrimary Key ValuesReferential Integrity Rules
Not Null
Tidak boleh ada data yang null values.CREATE TABLE employees(
employee_id NUMBER(6),last_name VARCHAR2(25) NOT NULL,salary NUMBER(8,2),commission_pct NUMBER(2,2),hire_date DATE
CONSTRAINT emp_hire_date_nn NOT NULL,
...
Unique
Setiap record harus unique/berbeda.CREATE TABLE employees(
employee_id NUMBER(6),last_name VARCHAR2(25) NOT NULL,email VARCHAR2(25),salary NUMBER(8,2),commission_pct NUMBER(2,2),hire_date DATE NOT NULL,...CONSTRAINT emp_email_uk UNIQUE(email));
Check
Pengecekan untuk kolom-kolom tertentu
salary NUMBER(2)CONSTRAINT emp_salary_minCHECK (salary > 0),
...
Primary Key
Kolom kunci yang membedakan antar data dalam sebuah table
Not Null
Primary Key
CREATE TABLE departments(department_id NUMBER(4),department_name VARCHAR2(30)CONSTRAINT dept_name_nn NOT NULL,manager_id NUMBER(6),location_id NUMBER(4),CONSTRAINT dept_id_pk PRIMARY KEY(department_id));
Referential Integrity
Kolom yang mengacu pada sebuah data di table lain
Foreign Key
CREATE TABLE employees(employee_id NUMBER(6),last_name VARCHAR2(25) NOT NULL,email VARCHAR2(25),salary NUMBER(8,2),commission_pct NUMBER(2,2),hire_date DATE NOT NULL,...department_id NUMBER(4),CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) REFERENCES departments(department_id),CONSTRAINT emp_email_uk UNIQUE(email));
Rule of Referential Integrity
Restrict : Tidak memperbolehkan Set to Null : Diubah ke Null values Set to Default : Diubah ke Default
values Cascade : Mengikuti parent table No Action : tidak memperbolehkan
Set to Null
constraint nama_constraint foreign key(nama_kolom) references nama_table(nama_kolom)on delete set null
cascade
constraint nama_constraint foreign key(nama_kolom) references nama_table(nama_kolom)on delete cascade
Menambah Constraint
ALTER TABLE nama_tableADD [CONSTRAINT constraint] type (column);
ALTER TABLE employeesADD CONSTRAINT emp_manager_fkFOREIGN KEY(manager_id)REFERENCES employees(employee_id);
Menghapus Constraint
ALTER TABLE nama_tableDROP [CONSTRAINT constraint] type (column);
ALTER TABLE departmentsDROP PRIMARY KEY CASCADE;
Menampilkan Constraint
SELECT constraint_name, constraint_type,search_conditionFROM user_constraintsWHERE table_name = 'EMPLOYEES';
Menghidupkan dan Mematikan Constraint
ALTER TABLE nama_tableDISABLE | ENABLE CONSTRAINT nama_constraint [CASCADE];
NonMember
PK,FK1 IdPeminjam
Member
PK,FK1 Idpeminjam
Idmember No_Rekening
Peminjaman
PK IdpinjamPK,FK1 Idpeminjam
tglpinjam
Buku
PK Idbuku
Penerbit harga_pinjam namapengarang lamapinjam
Detail_Pinjaman
PK,FK1 IdpinjamPK,FK2 IdbukuPK Iddetailpinjambuku
Harga Tglwajibkembali
Detail_pengembalian
PK,FK2 idpengembalianPK,FK2 Iddetailpinjambuku
Telp_Peminjam
PK,FK1 idepeminjamPK Telp
Peminjam
PK idepeminjam
Nama Kota Propinsi Kodepos
Pengembalian
PK idepengembalian
Tgl_kembali denda
Practice Make Perfect!!!