Definisi : Relasi adalah tabel data 2 dimensi dengan karakteristik tertentu. Tabel 2 dimensi –layaknya suatu matriks- mempunyai

Baris (rows/records), dan Kolom (columns/attribute/field)

Karakteristik Relasi :

  • Mempunyai nama yang unik.
  • Setiap nilai harus atomik (not multivalued, not composite)
  • Setiap baris harus unik
  • Atribut pada tabel (columns) harus mempunyai nama yang unik

 

  • Bila relasi One to One maka foreign key diletakkan pada salah satu dari 2 entitas yang ada atau menyatukan ke dua entitas tersebut.
  • Bila relasi One to Many maka foreign key diletakkan di entitas yang Many
  • Bila relasi many to many maka dibuat “file konektor” yang berisi 2 foreign key yang berasal dari kedua entitas

 

Contoh sintaks DDL :
DDL untuk tabel
* Untuk membuat tabel
CREATE TABLE (
|
)
* Untuk menghapus tabel
DROP TABLE
* Untuk memodifikasi tabel
- Menambahkan kolom baru
ALTER TABLE
ADD
- Menghapus kolom
ALTER TABLE
DROP
DDL untuk view
* Untuk membuat view
CREATE VIEW AS
* Untuk menghapus view
DROP VIEW
DDL untuk trigger
* Untuk membuat trigger
CREATE TRIGGER ON TABLE ON [DELETE] [,] [INSERT] [,] [UPDATE] AS

Objek basis data yang termasuk DDL adalah :
Tabel
Tabel terdiri dari field-field atau kolom-kolom dengan tipe data tertentu dan baris-baris yang digunakan sebagai penyimpan data.
Contoh : tabel Mahasiswa yang terdiri dari field-field : NRP (primary key), Nama, Alamat, JenisKel, NIPDosen (foreign key dari field NIP pada tabel Dosen).
Sintaks DDLnya :
CREATE TABLE Mahasiswa (
NRP char(8),
Nama varchar(20) NOT NULL,
Alamat varchar(30),
JenisKel char(1) DEFAULT “L”,
NIPDosen char(9),
PRIMARY KEY (NRP),
CONSTRAINT fk_mhs_dosen FOREIGN KEY (NIPDosen) REFERENCES Dosen(NIP) ON DELETE RESTRICT ON UPDATE CASCADE ON INSERT RESTRICT
);

 

 

 

Macam-macam aturan Referential Integrity

Referential Integrity Constraint digunakan untuk menjaga konsistensi baris-baris data antara dua buah tabel. Pada umumnya, aturan ini mengharuskan sebuah baris pada sebuah tabel yang terelasikan pada tabel lain harus mengacu pada sebuah baris di dalam tabel tersebut.

Aturan untuk Referential Integrity biasanya digunakan jika terjadi proses modifikasi data (update, delete, dan insert).

Aturan untuk proses update : berlaku pada proses pengubahan data di parent table.

  • Update cascade : pembaruan sebuah baris data diikuti dengan pembaruan baris data pada child tableyang terelasikan
  • Update restrict : mencegah proses pembaruan data jika terdapat baris data di child table yang terelasikan
  • Update ignore : mengabaikan referensi. Boleh memperbarui data pada parent, tapi tidak memperbarui data yang berelasi pada child table.

Aturan untuk delete : berlaku pada proses modifikasi di parent table.

  • Delete cascade : menghapus seluruh baris data pada child table yg terelasikan
  • Delete restrict : mencegah penghapusan jika terdapat baris data yang berelasi pada child table
  • Delete ignore : mengabaikan referensi. Boleh menghapus data, dan tidak ada efeknya bagi child table.

Aturan untuk insert : berlaku pada proses penambahan data pada child table.

  • Insert restrict : tidak boleh menambah data pada child table, jika nilai yang dimasukkan pada kolom yang berelasi tidak terdapat pada parent tablenya.
  • Insert ignore : mengabaikan referensi. Boleh menambah data pada child, walaupun nilai yang dimasukkan pada kolom yang berelasi tidak terdapat pada parent table.

 

CONSTRAINT – constraint name and characteristics
<constraint name definition> CONSTRAINT <constraint name>
<constraint characteristics> <constraint check time> [ [ NOT ] DEFERRABLE [ <constraint check time> ] ]
<constraint check time> INITIALLY DEFERRED | INITIALLY IMMEDIATE

 

CONSTRAINT – table constraint definition
<table constraint definition> [ <constraint name definition> ] <table constraint> [ <constraint characteristics> ]
<table constraint> <unique constraint definition> | <referential constraint definition> | <check constraint definition>

 

UNIQUE – unique constraint definition
<unique constraint definition> <unique specification> <left paren> <unique column list> <right paren> | UNIQUE ( VALUE )
<unique specification> UNIQUE | PRIMARY KEY
<unique column list> <column name list>

 

FOREIGN KEY – referential constraint definition
<referential constraint definition> FOREIGN KEY <left paren> <referencing columns> <right paren> <references specification>
<references specification> REFERENCES <referenced table and columns> [ MATCH <match type> ] [ <referential triggered action> ]
<match type> FULL | PARTIAL | SIMPLE
<referencing columns> <reference column list>
<referenced table and columns> <table name> [ <left paren> <reference column list> <right paren> ]
<reference column list> <column name list>
<referential triggered action> <update rule> [ <delete rule> ] | <delete rule> [ <update rule> ]
<update rule> ON UPDATE <referential action>
<delete rule> ON DELETE <referential action>
<referential action> CASCADE | SET NULL | SET DEFAULT | RESTRICT | NO ACTION

 

 

 

Domain Constraint

Domain constraint merupakan bentuk integrity constraint yang paling sederhana. Setiap ada pemasukan data baru, maka akan langsung diperiksa oleh sistem. Domain constraint diterapkan pada atribut basis data sehingga sangat dimungkinkan beberapa atribut memiliki domain yang sama.

 

CREATE DOMAINdomain definition
<domain definition> CREATE DOMAIN <domain name> [ AS ] <predefined type> [ <default clause> ] [ <domain constraint>... ]
<domain constraint> [ <constraint name definition> ] <check constraint definition> [ <constraint characteristics> ]

 

ALTER DOMAINalter domain statement
<alter domain statement> ALTER DOMAIN <domain name> <alter domain action>
<alter domain action> <set domain default clause> | <drop domain default clause> | <add domain constraint definition> | <drop domain constraint definition>

 

 

Membuat Index

CREATE [ UNIQUE ] INDEX indexON table (field [ASC|DESC][, field [ASC|DESC], …])[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]

Membuat suatu index pada tabel yang telah ada.

dimana :

index nama dari index yang akan dibuat
table nama dari tabel yang akan mengandung index tersebut
field nama dari field yang akan di index

Gunakan UNIQUE untuk membuat nilai unik terhadap field tertentu sehingga tidak memungkinkan duplikasi data. Gunakan WITH clause untuk menentukan apakah :

  • Tidak memperbolehkan pemasukan nilai Null pada field yang diindex dengan menggunakan option DISALLOW NULL.
  • Menghindarkan record dengan nilai Null pada field yang diindex untuk diikutsertakan dalam index.
  • Membuat index sebagai PRIMARY, setiap tabel hanya dapat memiliki satu index PRIMARY.

Contoh membuat Index S_KEY berdasarkan Nama pada tabel PESERTA, perintah SQL DDL-nya adalah sebagai berikut :



Advertisement