You are on page 1of 10

LAPORAN PRAKTIKUM

BASIS DATA

MODUL II & III

PEMBUATAN TABLE & DEKLARASI CONSTRAINT

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNOLOGI INDUSTRI
UPN “VETERAN’ YOGYAKARTA
2009
BAB I
DASAR TEORI

Constraint adalah aturan untuk membatasi data yang dapat dimasukkan ke


dalam suatu table. Adapun tujuan dari constraint ini adalah untuk menjaga integritas
data sehingga kekonsistenan dan kebenaran data yang disimpan terjamin.

1) Integrity Constraints (Batasan Integritas)


Constraint (batasan) merupakan aturan yang diberikan pada suatu tabel agar data
yang dimasukkan terjamin validitasnya. Batasan integritas akan menjaga basis data
dari kerusakan yang terjadi secara tidak sengaja dengan memastikan bahwa
perubahan yang diperbolehkan tidak mengakibatkan terjadinya inkonsistensi data.
Constraint dapat diklasifikasikan sesuai dengan elemen dari basis data yang
bersangkutan menjadi sebagai berikut.
1. Constraint tersebut intra-relasional apabila batasan (constraint)
terpenuhi dalam satu tabel. Constraint ini sendiri dapat dibedakan menjadi
2 yaitu: tuple constraint dan domain constraint. Tuple constraint
merupakan constraint yang bisa dievaluasi secara independen pada setiap
tuple-nya. Domain constraint atau sering disebut sebagai value constraint
merupakan suatu constraint dengan referensi kepada nilai (value) tertentu.
Implementasi dari penggunaan domain constraint pada SQL adalah
penggunaan klausa check .
2. Suatu constraint dikatakan inter-relasional apabila melibatkan lebih dari
satu relasi. Bentuk dari constraint ini adalah referential integrity.

2) 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.
Tipe-tipe Domain dalam SQLSQL-92 standar mendukung bermacam-macam tipe
domain yang built-in sebagai berikut :- char(n) : tipe karakter dengan panjang yang
tetap (n) (fixed-length character)- varchar(n) : tipe karakter dengan panjang
bervariasi. Maksimum panjang n.- int : integer- smallint : small integer- numeric
(p,d) : p menunjukkan jumlah digit bilangan dan d menunjukkan jumlah digit
dibelakang titik desimal.- real, double precision : floating-point dan double-
precision floating point- float (n) : floating-point number- date : tipe kalender- time
: tipe hari dalam jam,menit dan detik
SQL-92 menggunakan klausa create domain untuk mendefinisikan domain.Contoh :
create domain nama_perusahaan char(20)

Untuk menciptakan domain baru dapat digunakan perintah create domain. Sebagai
contoh adalah pada perintah:
create domain Dollar numeric (12,2)
create domain Pound numeric (12,2)
Perintah ini akan mendefinisikan domain Dollar dan Pound dengan yang merupakan
angka desimal sebanyak 12 digit dengan 2 digit berada di belakang koma. Pada
bahasa SQL juga terdapat klausa check yang bisa digunakan untuk memeriksa suatu
kondisi nilai tertentu yang diinginkan. Berikut adalah contoh penggunaan klausa
check pada perintah create domain.
Create domain HourlyWage numeric(5,2) constraint wage-value-test check
(value>=4.00)
Perintah tersebut akan mengecek nilai dari domain HourlyWage harus ≥ 4.00

Referential Integrity (Integritas Referensial)


Integritas referensial adalah seperangkat aturan yang mengatur hubungan antara
kunci primer dengan kunci tamu milik tabel-tabel yang berada dalam suatu basis data
relasional untuk menjaga konsistensi data. Tujuan integritas referensial sendiri
adalah untuk menjamin dan memastikan agar entitas dalam suatu tabel yang
menunjuk ke suatu pengenal unik pada suatu baris di tabel lain benar-benar
menunjuk pada nilai yang memang ada. Sehingga kejadian seperti pada ilustrasi
Gambar 2.7 tidak akan terjadi.
Berdasarkan operasi yang dilakukan, integritas referensial dapat dibedakan sebagai
berikut:
penambahan (insert)
penghapusan (delete)
peremajaan (update)
Integritas referensial membuat ketiga operasi di atas dapat dilaksanakan pada tabel
yang memiliki relasi. Sehingga proses penghapusan ataupun peremajaan suatu kolom
juga akan terjadi pada kolom tabel lain yang mempunyai referensi dengannya.
Dalam bahasa Data Definition Language SQL, kunci primer, kunci kandidat, dan
kunci tamu, dapat dispesifikasikan sebagai bagian dari pernyataan SQL create table.
Kunci kandidat merupakan kunci yang secara unik dapat digunakan untuk
mengidentifikasi suatu baris dalam tabel. Berikut adalah salah satu contoh DDL dari
pembuatan tabel perusahaan_utama.
create table perusahaan_utama
(kode_perusahaan char(6) not null,
nama varcar(25),
alamat char(9),
primary key (kode_perusahaan),
foreign key (kod) references nama on delete cascade)

Assertion
Penggunaan constraint berupa kunci primer dan kunci tamu pada deklarasi awal tabel
merupakan salah satu cara untuk memelihara integritas data. Domain constraint dan
Referential integrity constraint merupakan salah satu bentuk dari assertion. Pada
beberapa basis data penggunaan kunci primer dan kunci tamu sudah cukup untuk
menjaga integritas data. Tetapi pada beberapa kasus basis data diperlukan suatu
constraint ataupun aturan yang lebih baik.
Metode lain yang sering digunakan dalam pemeliharaan integritas adalah assertion
dan trigger. Assertion digunakan untuk mengekspresikan suatu kondisi basis data
sesuai dengan yang kita inginkan. Seperti halnya prosedur, assertion diberikan nama
tertentu sehingga bisa dibatalkan apabila ada kondisi tertentu yang menuntut
perubahan struktur basis data. Syntax dari definisi assertion adalah sebagai berikut.
create assertion AssertionName check (predicate)
Ketika assertion dibuat, maka sistem akan melakukan pengecekan validitas dari
assertion yang dibuat. Jika assertion yang dibuat valid maka perubahan terhadap
basis data hanya akan berlaku ketika tidak menyalahi assertion yang telah dibuat.
Pengecekan validitas tersebut akan memakan biaya yang besar terutama apabila
assertion yang dibuat cukup rumit, sehingga penggunaan dan pembuatan assertion
harus dilakukan dengan hati-hati. Karena itu tidak banyak developer sistem dan
DBMS yang menyediakan fasilitas ini.

Trigger
Trigger merupakan pernyataan yang dieksekusi secara otomatis oleh sistem basis
data sebagai akibat dari perubahan basis data. Ada beberapa persyaratan yang harus
dipenuhi untuk merancang mekanisme trigger, yaitu:
Menspesifikasikan kapan trigger harus dieksekusi.
Menspesifikasikan perintah yang akan dilaksanakan ketika trigger dijalankan.
Sistem basis data yang berbasis SQL pada umumnya menggunakan trigger,
walaupun sebelum versi SQL:1999 belum dimasukkan ke dalam standar SQL. Hanya
saja setiap sistem basis data menerapkan trigger melalui syntax yang berbeda-beda.
Syntax SQL:1999 mirip dengan syntax trigger pada IBM DB2 dan Oracle.
Trigger sebenarnya tidak lain adalah suatu pemrograman PL/SQL yang mirip dengan
procedure. Perbedaan mendasar dengan procedure adalah aktivasinya, dimana
procedure dapat dipanggil secara langsung sementara trigger dipanggil melalui
pemicu yang berupa bahasa DML (Data Manipulation Language). Bahasa DML
yang digunakan sebagai pemicu adalah insert, update dan delete
BAB II
Pembahasan
Listing Program
CREATE TABLE Mahasiswa(

Nim char (9)NOT NULL PRIMARY KEY,

Nama char(20),

Alamat char (20),

Kota char(15) DEFAULT 'Yogyakarta',

Tgl_lahir datetime,

Jenis_kel char(1)

);

Output

Pembahasan :
1. create table Mahasiswa(), pernyataan ini berfungsi untuk membuat
sebuah table bernama Mahasiswa. Tanda ( digunakan untuk sebagai awal
pendifinisian table dan diakhiri dengan tanda ). Didalam tanda () ini nantinya
diisikan field-field yang akan dimasukkan ke dalam table.
2. Nim char (10)NOT NULL PRIMARY KEY, pernyataan ini berfungsi untuk
membuat field bernama Nim yang bertipe char dengan ukuran 10, dan field ini
berfungsi sebagai primary key.
3. Nama char(15) NOT NULL, pernyataan ini berfungsi untuk membuat field
bernama ‘Nama’ dengan variable bertipe char dengan ukuran 15.
4. Alamat char (20) NOT NULL, pernyataan ini berfungsi untuk membuat
field bernama ‘Alamat’ dengan variable bertipe char dengan ukuran 20.
5. Kota char(8) NOT NULL, pernyataan ini berfungsi untuk membuat field
bernama ‘Kota’ dengan variable bertipe char dengan ukuran 8.
6. Tgl_lahir datetime, pernyataan ini berfungsi untuk membuat field
bernama ‘Tgl_lahir’ dengan variable bertipe datetime (YYYY-MM-DD : HH-
MM-SS).
7. Jenis_kel char(1)pernyataan ini berfungsi untuk membuat field bernama
‘Jenis_kel’ dengan variable bertipe char dengan ukuran 1.

Listing Program Inputan

INSERT INTO Mahasiswa values ('123010001','Ifan','Jl


Babarsari','','1980-07-27','L');

INSERT INTO Mahasiswa values ('123010002','Adi','Jl


Janti','','1979-06-28','L');

INSERT INTO Mahasiswa values ('123010003','Ayu','Jl


Pemuda','Klaten','1981-05-10','P');

INSERT INTO Mahasiswa values ('123010004','Yulia','Jl


Veteran','Sleman','1970-04-15','P')

SELECT * FROM Mahasiswa;

Output

Pembahasan :
1. insert into mahasiswa values ('123010001','Ifan','Jl

Babarsari','','1980-06-27','L'), pernyataan ini berfungsi untuk


memasukkan data ke dalam table mahasiswa, dimana pernyataan yang di
masukkan akan berdada di dalam tanda (). Pada pernyataan tersebut berarti
field Nim akan berisi 123010001, field Nama akan berisi Ifan, field Alamat
berisi Jl Babarsari, field Kota berisi ‘ ’ , field Tgl_lahir akan berisi 1980-06-
2:00-00-00, dan field Jenis_kel berisi L.
2. select * from Mahasiswa, pernyataan ini berfungsi untuk nampilkan
seluruh data dari table mahasiswa.
BAB III
TUGAS

Tabel Buku

CREATE TABLE Buku (

Kode_buku char(4) NOT NULL PRIMARY KEY,

Judul char(20),

Pengarang char(15),

Jml_buku int,

Kode_penerbit char(2),

FOREIGN KEY fkKode_penerbit (Kode_penerbit) REFERENCES Penerbit


(Kode_penerbit)

Output

Tabel Penerbit

create table Penerbit(

Kode_penerbit char(2),

Nm_penerbit char(15)

Output
Tabel Pinjam

create table Pinjam(

Tgl_pinjam datetime,

Mhs_no_induk char(9),

Buk_kode_buku char(4),

Tgl_hrs_kembali datetime,

Tgl_kembali datetime

Output

Inputan Tabel Buku

insert into Buku values ('S001','DOS','M.Urip','10','01')

insert into Buku values ('BD01','dBase III plus','Epsi


B','5','01')

insert into Buku values ('BD04','Clipper','Ahmad G','4','02')

insert into Buku values ('FI01','Fisika','Sutrisno','10','04')

Output
Inputan Tabel Penerbit

insert into Penerbit values ('01','Piksi ITB')

insert into Penerbit values ('02','Ganesha')

insert into Penerbit values ('03','Epsilon')

insert into Penerbit values ('04','Gramedia')

Output

Inputan Tabel Pinjam

insert into Pinjam values ('2003-04-20','123010001','S001','2003-


04-23','2003-04-23')

insert into Pinjam values ('2003-04-20','123010002','BD01','2003-


04-23','2003-04-22')

insert into Pinjam values ('2003-04-20','123010003','BD04','2003-


04-23','2003-04-24')

insert into Pinjam values ('2003-04-21','123010003','FI01','2003-


04-24','2003-04-25')

insert into Pinjam values ('2003-04-21','123010004','S001','2003-


04-24','2003-04-25')

insert into Pinjam values ('2003-04-21','123010001','BD01','2003-


04-24','2003-04-24')

Output

You might also like