Click Here to Search This Site

Rabu, 06 Juni 2012

Dasar- Dasar SQL dengan Access (Constraint:FOREIGN KEY)


1.8    Constraint:  FOREIGN KEY

Foreign Key (FK) adalah kolom pada sebuah tabel yang menunjukkan bahwa kolom tersebut adalah Primary Key pada TABEL yang lain.



 

Tabel_A:
F1
F2
F3
F4
F5
1
xxx
x
xx
102






Tabel_B:
K1
K2
K3
101
x
X
102
z
V



Pada skenario di atas, record (101,x,X) pada tabel B tidak dapat dihapus, karena referensi dari 102, field F5 di tabel A masih ada.
Untuk dapat menghapus record tersebut, maka hapus dulu semua record, dimana field F5 mempunyai nilai 102.
Penulisan constraint di atas adalah:
CONSTRAINT FK_F5 FOREIGN KEY (F5)
   REFERENCES Tabel_B (K1)

Foreign Key harus menunjuk ke Primary Key atau UNIQUE pada tabel lain.
Contoh:
CREATE TABLE instansi (
   kode CHAR (5) PRIMARY KEY,
   nama_ins      CHAR (30)
)
go

CREATE TABLE peserta (
   nopeserta     INT,
   nama CHAR (16),
   jenkel        CHAR(1),
   alamat        CHAR (26),
   kota CHAR (12),
   kode_ins      CHAR (5),
   prestasi      INT,
   no_ktp        CHAR (20),
   CONSTRAINT fk_kode FOREIGN KEY (kode_ins) REFERENCES instansi (kode)
)

Selasa, 05 Juni 2012

Dasar- Dasar SQL dengan Access (Constraint:UNIQUE)


1.7    Constraint: UNIQUE

UNIQUE digunakan untuk menjamin bahwa nilai kolom daalah tungnal (tidak mmempunyai duplikat).
Primary Key vs UNIQUE , keduanya adalah kunci kata yang mempunyai arti sama.
MS-SQL mengijinkan field dengan constraint UNIQUE untuk mempunyai nilai "NULL" (kosong). Bila satu kolom mempunyai NULL, maka nilai NULL tidak boleh muncul pada kolom lainnya.
Primary Key sebaliknya tidak boleh kosong (secara implisit PK adalah NOT NULL).
Contoh:
CREATE TABLE peserta (
   nopeserta     int PRIMARY KEY,
   nama CHAR(16),
   no_ktp        CHAR(20) UNIQUE,
   .. ..
)
Contoh pernyataan constraint unique dalam bentuk lain:
CREATE TABLE peserta (
   nopeserta     INT PRIMARY KEY,
   nama CHAR(16),
   jenkel        CHAR(1),
   alamat        CHAR(26),
   kota CHAR(12),
   instansi      CHAR(12),
   prestasi      INT,
   no_ktp        CHAR(20),
   CONSTRAINT uq_no_ktp UNIQUE (no_ktp)
)

Minggu, 03 Juni 2012

Dasar- Dasar SQL dengan Access (Constraint: NOT NULL)


1.6    Constraint: NOT NULL

Jika sebuah kolom pada database tidak boleh kosong (harus terisi), maka constraint NOT NULL harus diberikan. Dengan demikian pada saat tabel diisi dengan data (misalnya melalui instruksi INSERT), maka kolom tersebut harus terisi. Jika tidak, sistem akan menolaknya.
Pada contoh adalah constraint pada kolom "nama", yang mana menyatakan bahwa nama tidak boleh kosong.
CREATE TABLE peserta (
   nopeserta     INT,
   nama CHAR (16)  NOT NULL,
   jenkel        CHAR(1),
   alamat        CHAR (26),
   kota CHAR (12),
   instansi      CHAR (12),
   prestasi      INT,
   CONSTRAINT PK_PESERTA PRIMARY KEY (nopeserta)
)

Sabtu, 02 Juni 2012

Dasar- Dasar SQL dengan Access (Primary Key)


1.5    Primary Key

Primary Key dapat dibuat langsung pada saat kreasi TABEL, atau pada waktu yang lain (kemudian) dengan menggunakan instruksi ALTER.
Primary Key disebut sebagai "constraint" untuk menjaga integritas data, yaitu bahwa sebuah PK tidak boleh mempunyai DUPLIKAT dan otomatis tidak NULL.
Format pembuatan Primary Key adalah:
create table NamaTabel (
     NamaField Tipe CONSTRAINT PK_NamaTabel PRIMARY KEY,
)
Membuat Primary Key pada kolom nopeserta:
CREATE TABLE peserta (
   nopeserta     INT CONSTRAINT PK_peserta PRIMARY KEY,
   nama          CHAR (16),
   jenkel        CHAR (1),
   alamat        CHAR (16),
   kota          CHAR (16),
   instansi      CHAR (12),
   prestasi      INT
)

Perhatikan, bahwa secara konvensi nama Primary Key yang diberikan adalah "PK_" + NamaTabel.
Sebagai alternatif , Primary Key dapat juga diciptakan dengan instruksi seperti di bawah ini dimana primary key adalah NamaField3:
create table NamaTabel (
   NamaField1    Tipe1,
   NamaField2    Tipe2,
   NamaField3    Tipe3,
   NamaField4    Tipe4,
   constraint PK_NamaTabel PRIMARY KEY (NamaField3)
)

Atau jika Primary Key terdiri atas banyak kolom (multiple column) maka constraint dapat dibuat sebagai berikut:
create table NamaTabel (
   NamaField1 Tipe1,
   NamaField2 Tipe2,
   NamaField3 Tipe3,
   NamaField4 Tipe4,
   NamaField4 Tipe5,
   NamaField4 Tipe6,
   NamaField4 Tipe7,
   constraint PK_NamaTabel
     PRIMARY KEY (NamaField3, NamaField2, NamaField7)
)
Contoh:
create table peserta (
   nopeserta     int,
   nama char(16),
   jenkel        CHAR(1),
   alamat        char(26),
   kota char(12),
   instansi      char(12),
   prestasi      int,
   constraint pk_peserta primary_key (nopeserta)
)
Contoh memilih primary key yang lain:
create table peserta (
   nopeserta     int,
   nama char(16),
   jenkel        CHAR(1),
   alamat        char(26),
   kota char(12),
   instansi      char(12),
   prestasi      int,
   constraint pk_peserta primary_key (nama, alamat, kota)
)

Jumat, 01 Juni 2012

Dasar- Dasar SQL dengan Access


1.4    Integritas Data

Integritas data adalah konsistensi dan kebenaran data yang disimpan. Antara kehidupan nyata dan nilai dari data harus dilindungi oleh sistem, agar mempunyai arti yang sesuai.
Misalnya umur manusia tidak ada yang negatif, bila dalam field "usia" misalnya terdapat angka minus, maka hal ini menyalahi integritas data.
Sejauh mungkin integritas dat atetap dijaga melalui:
>  Validasi field secara manual
>  Verifikasi satu field melalui field yang lainnya
>  Validasi data dari satu tabel ke tabel lainnya
>  Verifikasi bahwa transaksi berjalan secara sukses dari awal hingga akhir.

1.4.1  Beberapa Jenis Integritas Data

Integritas Entitas

Dalam tabel setiap baris harus mempunyai identitas yang unik, yang disebut sebagai primary key. Hubungan antara primary key dan foreign key menyatakan apakah sebuah baris tabel dapat diubah atau dihapus.
Batasan:
>  PRIMARY KEY
>  UNIQUE KEY
>  UNIQUE INDEX
Batasan dan implementasi:
>  DEFAULT
>  FOREIGN KEY
Tipe data, defaults, rules.

Integritas Referensial

Menyatakan relasi antar tabel, menyangkut hubungan foreign key dengan primary key. Sebuah foreign key tidak dapat dimasukkan ke dalam sebuah tabel bila primary key tidak atau belum ada.
Batasan dan implementasi:
>  FOREIGN KEY

Integritas melalui aturan yang didefinisikan sendiri

Sesuai dengan aturan logika dan bisnis yang ada, maka pemakai dapat menetapkan batasan dan aturan dari data yang disimpan.
Batasan dan implementasi:
>  Batasan melalui tabel dan kolom pada saat pembuatan tabel
>  FOREIGN KEY