PENGENALAN BASIS DATA CONSTRAINT

dokumen-dokumen yang mirip
IMPLEMENTASI CONSTRAINT UNTUK MENJAMIN KONSISTENSI DAN INTEGRITAS DATA DALAM DATABASE

MENAMPILKAN DATA MENGGUNAKAN SQL SELECT

DATA DEFINITION LANGUAGE (DDL)

Contoh SQL Constraint

Modul Praktikum Sistem Basis Data S1-TI

Contoh SQL Constraint

DATA DEFINITION LANGUAGES (DDL)

Pertemuan III Oleh: Ilham Rais Arvianto, M.Pd

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

INTEGRITAS DAN KEAMANAN DATA. Gentisya Tri Mardiani, S.Kom., M.Kom

Administrasi Basis Data. Integritas Data. Yoannita

PENGENALAN MICROSOFT QUERY ANALYZER

Tampilan pada Enterprise Manager

Basis Data Terapan. Yoannita, S.Kom

KapitaSelekta. (KBKI82127, 2 sks) Materi : Pengenalan MySQL

BAB 5 ANOMALI DAN INTEGRITAS DATA PADA MODEL RELASIONAL

E-R Diagram Kusnawi, S.Kom, M.Eng

MODUL PRAKTIKUM 04. Database Implementation dengan Perintah SQL

Pertemuan 3 dan 4 : MODEL DATA RELASIONAL

BAB II PEMBUATAN DAN MANAJEMEN TABLE

Constraint dan Manajemen Data dalam Timezone Berbeda

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

Pertemuan 11. Donny Yulianto, S.Kom

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

LAPORAN TUGAS BASIS DATA I

Mahasiswa memahami fungsi-fungsi lain di dalam SQL Mahasiswa memahami tentang operasi agregasi Mahasiswa mampu mengaplikasikan operasi agregasi

PENGENALAN MICROSOFT SQL SERVER

V. BASIS DATA RELATIONAL. Baris berupa RECORD Model Data Relational Kolom berupa FIELD

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

TUGAS PRAKTIKUM SISTEM BASIS DATA

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

PRAKTIKUM 3 PEMBUATAN TABEL DENGAN SQL COMMAND 18 Constraint PRIMARY KEY pada tabel DOSEN, yaitu field NIP dapat didefnisikan pada saat pembuatan tabe

Transact SQL ; DDL 2 nd

PRAKTIKUM 2 IMPLEMENTASI MODEL DATA(PEMBUATAN DB)

IMPLEMENTASI TRIGGER, STORED PROCEDURE, FUNCTION DAN VIEW PADA MYSQL DALAM PERANCANGAN SYSTEM INVENTORY CAFFE BOULEVARD JAYAPURA

Pemodelan Basis Data Entity-Relationship Diagram (contoh kasus 2) Yusuf 2010

By Mrs Imana Malia Kondou, S.T. missimanakondou.wordpress.com

Praktikum Basis Data (Database Server MySQL) Bekerja Dengan Tabel

MODUL 7 STRUCTURED QUERY LANGUAGE

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

SQL DASAR BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

Structured Query Language

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

BAB III MODEL DATA RELASIONAL DAN ALJABAR RELASIONAL

KURSUS ONLINE JASA WEBMASTERS

BAB 2 LANDASAN TEORI

BAB III METODOLOGI PENELITIAN


Basis Data. DDL & Aturan Referential

Agenda SQL. Pemakai SQL. Kemampuan SQL 02/12/2010 STRUCTURED QUERY LANGUAGE (SQL) Structured Query Language (SQL) (Pert. 9)

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL

NORMALISASI DATA POKOK BAHASAN. Pendahuluan

INTERNET PROGRAMMING DATABASE

Praktikum Basis Data 14 Structure Query Language 2

PRAKTIKUM SISTEM BASISDATA

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

LAPORAN PRAKTIKUM SISTEM BASIS DATA

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

TABEL. Tabel Halaman 25

Tabel dan Key dalam Database Tipe data dan Karakter pada Database. Author : Minarni, S.Kom.,MM

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Konsep Normalisasi dan Anomali Tabel

MODUL IV DATA DEFINITION LANGUAGE (DDL)

Oracle Academic Initiative

SATUAN ACARA PERKULIAHAN MATA KULIAH SISTEM BASIS DATA KODE : TI11. C228 / 4 SKS

Database Systems: Ch. 3: The Relational Model. History of The Relational Model. Learning Objectives

Apa itu DDL & DML? Semua perintah SQL dibagi dalam 2 kategori besar sesuai fungsinya, yaitu :

PRAKTIKUM SISTEM BASISDATA. Disusun Oleh : Anggi Nurcahyo ( )

BASIS DATA. Model Data Relational. Fakultas Ilmu Komputer UDINUS

Pengenalan Structured Query Language

BAB 7 MERANCANG BASIS DATA

MODUL VII DATABASE DAN MICROSOFT SQL SERVER 2000

PERTEMUAN 11 CONSTRAINT. Tujuan Pembelajaran : Memahami definisi Constraint Dapat Membuat Constraint Dapat Melakukan pemeliharaan Constraint

MODUL PRAKTIKUM 03 MENGENAL MEMBUAT TABEL

Perangkat Lunak Pengembangan Web

MODUL 5 INTERNET PROGRAMMING : MySQL

MODUL 1. Pembuatan tabel, pendefinisian constraint, export dan import PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

Modul 3 : Query Penggabungan Tabel

PENGENALAN SINTAKS DASAR DALAM MySQL

Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

JURNAL PRAKTIKUM (LAB. ACTIVITY) PENGOLAHAN BASIS DATA DT022

Basis Data. Structured Query Language (SQL)

SATUAN ACARA PERKULIAHAN MATA KULIAH SISTEM BASIS DATA 1 (MI) KODE / SKS KK / 2 SKS

LAPORAN PRAKTIKUM SISTEM BASIS DATA

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

KETERAMPILAN KOMPUTER 2B** (IT :S1-SA) Pertemuan 7. Database Dbase IV AHMAD HIDAYAT

STRUCTURE QUERY LANGUAGE DDL & DML

SISTEM BASIS DATA Pertemuan 11 Structure Query Language DDL - DML

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Praktikum Basis Data Terapan 2

INTEGRITY CONSTRAINT BASIS DATA RELASIONAL DENGAN MENGGUNAKAN PL/PGSQL DAN CHECK CONSTRAINT

Pertemuan 12 Pengenalan Structured Query Language

Praktikum Basis Data 2017 TE UM

DATA DEFINITION LANGUAGE

PENERAPAN CONSTRINE TABLE PADA DATABASE

RENCANA PEMBELAJARAN SEMESTER PROGRAM STUDI AKUNTANSI KOMPUTER D3 BISNIS DAN KEWIRAUSAHAAN UNIVERSITAS GUNADARMA

Database. Danu Wira Pangestu 1. Mengenal Database. Lisensi Dokumen:

Mudafiq Riyan Pratama

KURSUS ONLINE JASA WEBMASTERS

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

Transkripsi:

PENGENALAN BASIS DATA CONSTRAINT Pendahuluan Constraint/ batasan-batasan di dalam SQL Server memiliki fungsi untuk menjamin konsistensi data dan integritas data di dalam tabel ketika di isikan (lihat kembali tujuan normalisasi dalam sebuah tabel/ kenapa sebuah tabel harus di normalisasi). Dalam SQL Server ada beberapa jenis constraint, yaitu: PRIMARY KEY FOREIGN KEY UNIQUE NOT NULL CHECK Constraint dapat di buat pada level tabel atau level kolom, kecuali untuk constraint 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 (redundant). Syarat sebuah kolom/ field dijadikan PRIMARY KEY dalam sebuah tabel adalah unik dan tidak boleh kosong (NOT NULL). Artinya bahwa nilai recordrecord dalam kolom yang dijadikan PRIMARY KEY haruslah unik satu sama lain dan nilainya tidak boleh di kosongkan. Jika sebuah kolom di beri constraint PRIMARY KEY maka sudah pasti kolom tersebut nilainya tidak boleh kosong atau harus berisi data. Berikut adalah perintah dasar pembuatan constraint PRIMARY KEY: CONSTRAINT pk_(nama-tabel)_(nama-kolom) [jenis_constraint] Keterangan: PK = Singkatan dari jenis constraint yaitu PRIMARY KEY Nama-tabel = Nama tabel tempat constraint tersebut di buat 1

Nama-kolom = Nama kolom yang akan di beri constraint Jenis_constraint = Jenis-jenis constraint yang akan dibuat (PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK. Contoh: Contoh berikut adalah contoh perintah pembuatan constraint PRIMARY KEY pada kolom nip dengan nama constraint-nya pk_dosen_nip di tabel dosen pada level kolom. CREATE TABLE dosen ( CONSTRAINT pk_dosen_nip PRIMARY KEY, nama_dosen VARCHAR(45), alamat_dosen VARCHAR(255) FOREIGN KEY FOREIGN KEY atau KUNCI TAMU merupakan kunci yang digunakan sebagai penghubung antara satu tabel dengan tabel lainnya. Jika sebuah tabel memiliki FOREIGN KEY maka tabel tersebut dapat di sebut juga dengan tabel kedua dimana tabel utamanya adalah tabel yang memiliki kolom PRIMARY KEY dari FOREIGN KEY tersebut. Perintah dasarnya: CONSTRAINT fk_(nama-tabel)_(nama-kolom) FOREIGN KEY REFERENCES tabel-referensi(kolom-referensi) Keterangan: FK = Singkatan dari FOREIGN KEY Nama-Tabel = Nama tabel tempat FOREIGN KEY tersebut dibuat. Nama-Kolom = Nama Kolom yang akan dijadikan FOREIGN KEY FOREIGN KEY = Jenis constraint-nya, yaitu FOREIGN KEY REFERENCES = Kata kunci untuk merelasikan tabel ini ke tabel utamanya (tabel yang memiliki PRIMAR KEY) Tabel-Referensi = Tabel yang akan dijadikan referensi (tabel utama). Kolom-Referensi = Kolom yang menjadi referensi dari tabel utama. Berikut adalah contoh penggunaan FOREIGN KEY pada level kolom dan pada level tabel: 2

CREATE TABLE mahasiswa ( nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY KEY, CONSTRAINT fk_mahasiswa_nim FOREIGN KEY REFERENCES dosen(nip), nama_mhs VARCHAR(45), alamat_mhs VARCHAR(255) Berikut adalah contoh pemberian pilihan ON DELETE CASCADE dan ON UPDATE CASCADE pada sebuah tabel untuk kolom yang menjadi FOREIGN KEY. CREATE TABLE mahasiswa ( nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY KEY, CONSTRAINT fk_mahasiswa_nim FOREIGN KEY REFERENCES dosen(nip) ON DELETE CASCADE ON UPDATE CASCADE, nama_mhs VARCHAR(45), alamat_mhs VARCHAR(255) UNIQUE Constraint UNIQUE merupakan sebuah constraint yang akan membatasi pengisian record yang sama kedalam sebuah kolom jika kolom tersebut di berikan constraint UNIQUE dalam sebuah tabel. Constraint ini hampir sama dengan PRIMARY KEY, yaitu menjamin bahwa setiap nilai record yang ada dalam sebuah kolom UNIQUE tidak boleh ada yang sama (unik satu sama lain). UNIQUE dapat dibuat pada level kolom ataupun level tabel. Sama dengan constraint PRIMARY KEY, FOREIGN KEY, CHECK. Perintah dasarnya: CONSTRAINT UQ_(nama-tabel)_(nama-kolom) UNIQUE Keterangan: UQ = Singkatan dari UNIQUE Nama-Tabel = Nama tabel tempat UNIQUE tersebut dibuat. Nama-Kolom = Nama Kolom yang akan dijadikan UNIQUE UNIQUE = Jenis constraint-nya, yaitu UNIQUE Berikut adalah contoh penggunaan UNIQUE dan PRIMARY KEY secara bersamaan pada level kolom: 3

CREATE TABLE dosen ( CONSTRAINT pk_dosen_nip PRIMARY KEY, nama_dosen VARCHAR(45) CONSTRAINT UQ_dosen_nama UNIQUE, alamat_dosen VARCHAR(255) NOT NULL NOT NULL merupakan constraint yang digunakan untuk menjamin pengisian record ke sebuah tabel agar nilai record tersebut harus berisi data. Sebuah kolom jika di berikan constraint NOT NULL, maka kolom tersebut harus berisikan nilai untuk recordnya dan tidak boleh di kosongkan. NOT NULL hanya bisa di definisikan 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. Berikut adalah contoh penggunaan constraint NOT NULL: CREATE TABLE dosen ( CONSTRAINT PK_dosen_nip PRIMARY KEY NOT NULL, nama_dosen VARCHAR(45), alamat_dosen VARCHAR(255) CHECK CHECK merupakan constraint yang memaksa integritas domain dengan membatasi pemasukan nilai yang mungkin di masukkan ke dalam sebuah kolom atau beberapa kolom. Hampir sama dengan constraint FOREIGN KEY dalam hal bagaimana mengendalikan nilai yang akan di masukkan kedalam sebuah kolom. Perbedaannya adalah pada bagaimana keduanya menentukan nilai mana yang valid. FOREIGN KEY mendapatkan daftar nilai valid dari tabel yang lain, sementara CHECK menentukan nilai valid dari ekspresi logika yang tidak menggunakan data yang berdasarkan data pada kolom yang lain. Contohnya, sangat 4

mungkin bagi kita membatasi jangkauan nilai untuk kolom gaji dengan membuat constraint CHECK yang membolehkan data yang memiliki jangkauan dari $15,000 hingga $100,000. Pembatasan ini akan mencegah pengisian gaji di luar jangkauan nilai gaji normal. Untuk kasus tersebut dapat dibuat constraint CHECK dengan menggunakan ekspresi logika (BOOLEAN) yang mengembalikan nilai TRUE atau FALSE berdasarkan operator logika yang dibuat. Berikut adalah contoh ekspresi logikanya: Gaji >= 15000 AND salary <= 100000 Dalam satu kolom dapat di terapkan lebih dari satu constraint CHECK. Pengecekannya dilakukan berdasarkan urutan pembuatan constraint CHECK tersebut. Selain itu satu constraint CHECK dapat di terapkan di lebih dari satu kolom (multiple columns) dengan cara membuatnya pada level tabel. Contohnya, Constraint Multiple CHECK dapat digunakan untuk memastikan bahwa tiap record dalam kolom country dengan nilai USA juga memiliki 2 karakter nilai pada kolom state. Hal ini memungkinkan pengecekan kondisi lebih dari satu dalam satu tempat. Berikut adalah contoh penggunaan constraint CHECK dalam sebuah tabel: CREATE TABLE rekening ( No_rekening CHAR(15) CONSTRAINT pk_rekening_no_rekening NOT NULL, Kode_cabang CHAR(5) CONSTRAINT fk_rekening_kode_cabang FOREIGN KEY REFERENCES cabang_bank(kode_cabang), Pin CHAR(6), Saldo MONEY CONSTRAINT chk_rekening_saldo CHECK (saldo > 50000) 5

Tabel mahasiswa Nim CHAR(10), PRIMARY KEY, NOT NULL PK_mahasiswa_nim Nik CHAR(15), FOREIGN KEY FK_mahasiswa_nik Nama_mhs VARCHAR(45) Nama Mahasiswa Alamat_mhs VARCHAR(255) Alamat Mahasiswa Tabel dosen Nik CHAR(15), PRIMARY KEY, NOT NULL PK_dosen_nik Nama_dosen VARCHAR(45) Nama Dosen Alamat_dosen VARCHAR(255) Alamat Dosen Tabel Mata Kuliah Kode_mk CHAR(10), PRIMARY KEY, NOT NULL PK_mata_kuliah_kode_mk Nik CHAR(15), FOREIGN KEY FK_mata_kuliah_nik Kode_ruang CHAR(10), FOREIGN KEY FK_mata_kuliah_kode_ruang Nama_mk VARCHAR(45) Nama Mata Kuliah Deskripsi_mk VARCHAR(255) Deskripsi Mata Kuliah Tabel ruang Kode_ruang CHAR(10), PRIMARY KEY, NOT NULL PK_ruang_kode_ruang Lokasi_ruang VARCHAR(45) Lokasi Ruang Kuliah Kapasitas_ruang INTEGER, CHECK > 10 dan < 80 CHK_ruang_kapasitas_ruang Tabel mahasiswa_ambil_mata_kuliah Nim CHAR(10), FOREIGN KEY, FK_mahasiswa_ambil_mata_kuliah_nim Nik CHAR(15), FOREIGN KEY, FK_mahasiswa_ambil_mata_kuliah_nik 6

Untuk membuat tabel-tabel diatas menggunakan perintah SQL di jendela editor Query Analyzer, berikut beberapa tips yang perlu di perhatikan: Buatlah tabel-tabel yang paling utama terlebih dahulu, yaitu tabel-tabel yang tidak memiliki FOREIGN KEY. Membuat semua tabel yang berhubungan langsung (atau memiliki relationship) dengan tabel yang di buat di tahap sebelumnya. Mulailah secara urut dari tabel dengan jumlah FOREIGN KEY yang paling sedikit ke yang paling banyak. Jika ada tabel yang tidak bisa dibuat, maka dilewatkan saja dahulu. Ulangi tahap ke-2 sampai semua tabel selesai dibuat. Membuat Tabel dengan Constraint Untuk membuat constraint menggunakan perintah SQL Query di SQL Server, harus menggunakan Query Analyzer. Berikut adalah contoh struktur tabel new_dosen beserta perintah SQL untuk membuat tabel new_dosen dengan beberapa constraint di dalamnya. Nama tabel: new_dosen No Field Type Desc 1 Nik CHAR(15) PK, Not Null 2 Nama_dosen Varchar(45) Not Null, UNIQUE 3 Alamat_dosen Varchar(255) Not Null, Default JOGJA 4 No_telp Varchar(20) CREATE TABLE new_dosen ( id_nasabah CHAR(15) NOT NULL CONSTRAINT PK_dosen_nik PRIMARY KEY, nama_dosen VARCHAR(45) NOT NULL CONSTRAINT UQ_dosen_nama_dosen UNIQUE, alamat_dosen VARCHAR(255) NOT NULL DEFAULT JOGJA, no_telp VARCHAR(20) Aktifkan Query Analyzer untuk mengetikkan perintah SQL Query diatas. Sebelumnya aktifkan terlebih dahulu database akademik_xxxx dengan mengetikkan perintah USE akademik_xxxx. 7

Tabel new_dosen akan dibuat di dalam database akademik_xxxx. Latihan 1. Jika ada record yang di isikan di tabel anak (tabel FOREIGN KEY) dan record tersebut tidak terdapat di tabel induk (tabel PRIMARY KEY). Apa yang terjadi? 2. Pilihan apa yang di gunakan jika akan menghapus semua record yang berelasi di tabel anak (tabel FOREIGN KEY) secara otomatis, jika record yang berhubungan di tabel induk di hapus (tabel PRIMARY KEY). 3. Jika ada record yang di isikan di tabel anak (tabel FOREIGN KEY) dan record tersebut tidak terdapat di tabel induk (tabel PRIMARY KEY). Apa yang terjadi? 4. Pilihan apa yang di gunakan jika akan menghapus semua record yang berelasi di tabel anak (tabel FOREIGN KEY) secara otomatis, jika record yang berhubungan di tabel induk di hapus (tabel PRIMARY KEY). Buatlah tabel-tabel baru sesuai dengan struktur dan constraintnya sebagai berikut: Tabel mahasiswa Nim CHAR(10), PRIMARY KEY, NOT NULL PK_mahasiswa_nim Nik CHAR(15), FOREIGN KEY, FK_mahasiswa_nik Nama_mhs VARCHAR(45) Nama Mahasiswa Alamat_mhs VARCHAR(255) Alamat Mahasiswa Tabel dosen Nik CHAR(15), PRIMARY KEY, NOT NULL PK_dosen_nik Nama_dosen VARCHAR(45) Nama Dosen Alamat_dosen VARCHAR(255) Alamat Dosen 8

Tabel Mata Kuliah Kode_mk CHAR(10), PRIMARY KEY, NOT NULL PK_mata_kuliah_kode_mk Nik CHAR(15), FOREIGN KEY, FK_mata_kuliah_nik Kode_ruang CHAR(10), FOREIGN KEY FK_mata_kuliah_kode_ruang Nama_mk VARCHAR(45) Nama Mata Kuliah Deskripsi_mk VARCHAR(255) Deskripsi Mata Kuliah Tabel ruang Kode_ruang CHAR(10), PRIMARY KEY, NOT NULL PK_ruang_kode_ruang Lokasi_ruang VARCHAR(45) Lokasi Ruang Kuliah Kapasitas_ruang INTEGER, CHECK > 10 dan < 80 CHK_ruang_kapasitas_ruang Tabel mahasiswa_ambil_mata_kuliah Nim CHAR(10), FOREIGN KEY, FK_mahasiswa_ambil_mata_kuliah_nim Kode_mk CHAR(15), FOREIGN KEY, FK_mahasiswa_ambil_mata_kuliah_kode_mk Daftar Pustaka 1. Arief Rudyanto M, Pemrograman Basis Data Menggunakan Transact-SQL dengan Microsoft SQL Server, Penerbit Andi Yogyakarta, 2006 2. Silberschatz A, Database System Concept 5 th Edition, McGraw-Hill, 2005 3. Connoly T., Begg C, DataBase Systems: A Practical Approach to Design, Implementation and Management 4 th Edition, Addison Wesley, 2004 9