Friday, May 6, 2016

SQL Server constraint

Constraint atau batasan dalam database pada dasarnya adalah pembatasan nilai nilai yang diperbolehkan untuk diisikan dalam sebuah kolom atau kolom-kolom yang terdapat dalam sebuah tabel. Dengan menerapkan batasan-batasan dalam sebuah tabel maka dapat dipastikan hanya data data yang sesuai dengan batasan tersebut yang dapat masuk ke dalam tabel. Fungsi utama constraint adalah untuk menjamin konsistensi dan integritas data-data yang diisikan ke dalam sebuah tabel. Konstrain dapat dibuat pada level tabel atau level kolom, kecuali untuk constrain not null yang hanya dapat dibuat pada level kolom.
  • Primary key
  • Primary key atau kunci utama dalam sebuah tabel merupakan kunci yang akan membatasi pengisian record dalam sebuah tabel agar tidak duplikat atau redundan. Syarat sebuah field di jadikan primary key harus unik dan tidak boleh nilainya kosong (NOT NULL). Berikut adalah perintah dasar untuk membuat constraint primary key contoh tabel diatas sudah membentuk 1 kolom primary key yaitu KODE_JURUSAN, artinya nilai kode jurusan yang akan kita isikan tidak akan boleh sama, jika diisikan sama maka otomatis sql server akan menampilkan pesan kesalahan. oh ya primary key secara default adalah not null.



  • Foreign key
  • Foreing key atau kunci tamu merupakan kunci tamu yang digunakan sebagai penghubung satu tabel dengan tabel lainnya. Jika sebuah tabel memiliki foreing key maka tabel tersebut dapat disebut juga sebagai tabel kedua dimana tabel utamanya adalah tabel yang memiliki kolom primary key dari foreign key tersebut. Perintah untuk membuat foreign key sbb : Contoh :
    1. Membuat tabel induk
    2. Tabel diatas adalah tabel induk yang akan kita referensikan ke tabel lain sehingga di hasilkan nantinya FOREIGN key Contoh Perharikan tabel MAHASISWA di atas, terbentuk 1 PRIMARY KEY yaitu NIM dan 1 FOREIGN KEY yaitu KODE_JURUSAN, artinya adalah nilai kolom KODE_JURUSAN yang ada di tabel MAHASISWA harus ada di tabel JURUSAN agar konsistensi data nya terjamin. Oh iya tipe data dan panjang nilainya untuk membuat foreign key harus sama dengan tipe data primary key di tabel induknya. Lihat contoh di atas tipe data untuk kolom KODE_JURUSAN di tabel JURUSAN sama dengan KODE_JURUSAN yang ada di tabel MAHASISWA.

  • Unique
  • Constraint UNIQUE merupakan sebuah constraint yang akan membatasi pengisian record yang sama kedalam sebuah kolom jika kolom tersebut diberikan constraint UNIQUE. Constraint UNIQUE hampir sama dengan PRIMARY KEY, Yaitu menjamin bahwa setiap nilai record yang ada dalam sebuah kolom UNIQUE tidak boleh ada yang sama satu sama lain. UNIQUE dapat dibuat pada level kolom ataupun level tabel. Sama dengan constraint PRIMARY KEY, FOREIGN KEY, CHECK. Penulisan: Contoh : Tabel diatas sudah terbentuk 1 PRIMARY KEY yaitu NIP dan 1 UNIQUE yaitu KTP. Artinya nilai yang ada dalam kolom KTP tidak boleh sama, begiru juga dengan kolom NIP nilainya tidak boleh sama karena sudah di set PRIMARY KEY.
  • Not null
  • NOT NULL merupakan constraint yang digunkan untuk menjamin pengisian record ke dalam sebuah tabel agar nilai record tersebut harus berisi data. Sebuah kolom jika diberikan constraint NOT NULL, maka kolom tersebut harus berisikan nilai untuk tiap recordnya dan tidak boleh dikosongkan. Not null hanya bisa didefenisikan dalam sebuah tabel pada level kolom dan tidak bisa pada level tabel. Perbedaan antara not null dan primary key adalah bahwa setiap kolom yang dijadikan primary key pasti NOT NULL dan tidak berlaku sebaliknya. contoh Dalam tabel diatas ada 3 kolom yang di set sebgai NOT NULL yaitu NIP, NAMA, KTP yang artinya bahawa ketiga kolom tersebut tidak boleh di kosongkan pada saat pengisian record.
  • Check
  • CHECK merupakan constraint yang memaksa pengisian record sesuai dengan kondisi yang ditetapkan. Hampir sama dengan constraint FOREIGN KEY dalam hal bagaimana mengendalikan nilai yang akan di masukkan kedalam sebuah kolom. FOREIGN KEY mendapatkan nilai yang valid dari tabel lain sementara CHECK menentukan nilai valid dari ekspresi logika yang dibuat. contoh Tabel ditas untuk kolom GAJI diberikan constraint CHECK(GAJI > =0) yang artinya nilai pada saat pengisian record untuk kolom gaji harus lebih besar dari 0 contoh lain tabel ditas membentuk 1 constraint CHECK yaitu JENIS_KELAMIN yang artinya kolom JENIS_KELAMIN hanya bisa bernilai L atau P.