MODUL 6
IMPLEMENTASI TABEL-TABEL BASIS DATA (2)
(PENGGUNAAN INSTRUKSI CREATE TABLE & OPTIONS-NYA
SERTA
MEMASUKKAN RECORD KE DALAM TABEL-TABEL BASIS DATA)
A. Tujuan
Mahasiswa mampu membuat struktur tabel-tabel basis data berdasarkan
perancangan di modul 4 dan mengimplementasikan tabel-tabel tersebut di basis
data.
Pengenalan
PostgreSQL
PostgreSQL
adalah sebuah object-relational database management system(ORDBMS), bersifat
open source, mendukung standar SQL92 dan SQL99 serta mendukung bahasa
pemrograman C, C++, Java, Tcl, Perl, Python, PHP, dst.
Fitur
penting PostgreSQL: Inheritance, Data types, Functions, Constraints, Triggers,
Rules, dan Transactional Integrity.
Arsitektur
PostgreSQL berbasis Client-Server. Backend Software untuk database server
(server-side) adalah Postmaster.
Frontend
software (client-side):
-
Psql (disediakan dalam paket PostgreSQL)
-
Client berbasis GUI (PgAdmin, PgAccess, ApplixWare)
-
Buat aplikasi sendiri (C, C++, Java, PHP, dsb.)
Beberapa
URL untuk PostgreSQL:
-
www.postgresql.org
-
www.postgresql.org/docs
-
techdocs.postgresql.org
Tahap
Pembuatan Tabel
1.
Membuat semua tabel yang paling utama (yang tidak memiliki FK).
2.
Membuat semua tabel yang berhubungan langsung (atau memiliki relationship)
dengan tabel yang dibuat di tahap sebelumnya. Mulailah secara urut dari tabel
dengan jumlah FK yang paling ssedikit ke ang paling banyak.
3.
Ulangi tahap 2 sampai semua tabel selesai dibuat.
Implementasi
Manual
Contoh
untuk menetukan Primary Key (PK):
-
CREATE TABLE dosen (nip INTEGER PRIMARY KEY, nama_dosen VARCHAR(45),
alamat_dosen VARCHAR(255));
Contoh
untuk menentukan Foreign Key (FK):
-
CREATE TABLE mahasiswa (nim INTEGER PRIMARY KEY, nip INTEGER REFERENCES
dosen(nip), nama_mhs VARCHAR(45), alamat_mhs VARCHAR(255));
Referential
Integrity
1.
Integritas databse mengacu pada hubungan antar tabel melalui Foreign Keyyang
bersangkutan.
2.
Pada insert, record harus dimasukkan di tabel utama dahulu, kemudian baru
di tabel kedua.
3.
Pada delete, record harus dihapus di tabel kedua dahulu, kemudian baru di tabel
utama.
4.
Secara default, PostgreSQL akan menolak insert atau delete yang melanggar
integritas database.
Insert
Table
1.
Perintah SQL untuk memasukkan data di tabel untuk semua kolom:
INSERT
INTO
VALUES
(, ...);
2.
Untuk memasukkan data pada kolom-kolom tertentu:
INSERT
INTO (, ...)
VALUES
(, ...);
Tahap
Insert Table
1.
Tahap insert table mengikuti tahap pembuatan tabel
2.
Tahap 1: Lakukan insert pada semua tabel yang paling utama (yang tidak memiliki
FK).
3.
Tahap 2: Lakukan insert pada semua tabel yang langsung berhubungan dengan tabel
yang di-insert di tahap sebelumnya, secara urut dari tabel dengan jumlah FK
yang paling sedikit ke yang paling banyak.
4.
Tahap 3: ulangi tahap 2 sampai semua insert selesai dilakukan.
Tahap
Delete Table
1.
Untuk menjaga integritas database, maka tahap untuk melakukan delete
tableadalah kebalikan dari tahap insert table.
2.
Secara default, PostgerSQL akan menolak delete yang melanggar integritas database.
Dengan kata lain, record di tabel utama tidak akan dihapus jika masih ada
record di tabel kedua yang berhubungan dengan record utama tersebut.
Advanced
Create Table Options:
Default
•
Untuk menentukan nilai default kolom jika tidak ada data yang di-insert untuk
kolo itu:
-
CREATE TABLE mahasiswa (nim integer PRIMARY KEY, nama_mhs VARCHAR(45), fakultas
VARCHAR(5) DEFAULT ‘FKI’:
Contoh
insert:
-
INSERT INTO mahasiswa (nim, nam_mhs) VALUES (1, ‘Ali Topan’);
Not
Null
•
Untuk membatasi agar nilai kolom tidak boleh NULL:
-
CREATE TABLE ruang (kode_ruang VARCHAR(20) PRIMARY KEY, lokasi_ruang
VARCHAR(255) NOT NULL, kapasitas_ruang INTEGER NOT NULL);
•
Jika kolom ditentukan NOT NULL, maka insert harus memasukkan nilai untuk kolom
tersebut. Bisa menggunakan DEFAULT sehingga nilai kolom ditambahkan secara
otomatis.
Pengertian
NULL
•
Khusus untuk tipe string (varchar atau char), NULL tidak sama dengan kosong.
Jika nilai kolom adalah NULL, artinya nilai tidak diketahui atau nilai tidak
ada sama sekali. Jika nilaikolom adalah kosong, artinya kolom tersebut memang
diketahui nilainya (ada nilainya), yaitu nilai kosong (empty string).
Contoh:
-
CREATE TABLE test (kode INTEGER PRIMARY KEY, nama VARCHAR(20));
-
INSERT INTO test (kode) VALUES (1);
-
INSERT INTO test VALUES (2, ‘ ’);
Perhatikan
hasil berikut:
-
SELECT*FROM test WHERE nama IS NULL;
-
SELECT*FROM test WHERE nama = ‘ ‘;
Unique
•
Untuk memastikan bahwa nilai kolom unik:
-
CREATE TABLE mata_kulaih (kode_mk INTEGER PRIMARY KEY, nama_mk VARCHAR(45)
UNIQUE);
•
Untuk multikolom yang unik:
-
CREATE TABLE dosen (nip INTEGER PRIMARY KEY, nama_dosen VARCHAR(45),
alamat_dosen VARCHAR(255), UNIQUE (nama_dosen, alamat_dosen));
Check
•
Untuk membatasi nilai kolom, misalnya:
-
CREATE TABLE produk (kode_produk INTEGER PRIMARY KEY, nama_produk VARCHAR(45),
harga INTEGER, CHECK (harga <= 100000 AND kode_produk > 100));
•
Check di atas membatasi bahwa harga harus maksimal Rp 100000, dan kode_produk
harus di atas 100.
Penentuan
Referential Integrity
Contoh:
-
CREATE TABLE pemasok (kode_pemasok INTEGER PRIMARY KEY, nama_pemasok
VARCHAR(45), kode_produk INTEGER REFERENCES produk ON DELETE CASCADE ON UPDATE
CASCADE);
Untuk
contoh di atas, jika ada update atau delete di tabel utama, maka tabel kedua
secara otomatis disesuaikan.
Macam
action:
• NO
ACTION atau RESTRICT: update atau delete tidak dilakukan. Ini merupakan pilihan
default.
•
CASCADE: nilai kolom di tabel kedua disesuaikan dengan nilai kolom di tabel
utama.
• SET
NULL: nilai kolom di tabel kedua dijadikan NULL.
• SET
DEFAULT: nilai kolom di tabel kedua dijadikan nilai DEFAULT (nilai DEFAULT
harus ditentukan pada waktu pembuatan tabel).
Autoincrement
•
Untuk fitur autoincrement, gunakan “serial”:
-
CREATE TABLE nasabah (id_nasabah SERIAL PRIMARY KEY, nama_nasabah VARCHAR(45));
•
Untuk contoh di atas, id_nasabah tidak perlu di-insert, karena database secara
otomatis akan menambahkannya secara urut. Kita cukup hanya memasukkan
nam_nasabah saja:
-
INSERT INTO nasabah (nama_nasabah) VALUES (‘Ali Topan’);
•
Serial hanya bisa dari 1 sampai 232. Jika tidak cukup, gunakan bigserial yang
bisa dari 1 sampai 264. Penghapusan record tidak akan mempengaruhi urutan untuk
serial dan bigserial. Nilai untuk kolom yang menggunakan serial/bigserial akan
selalu bertambah 1, tidak akan pernah kembali mundur. Misalnya:
-
DELETE FROM nasabah WHERE id_nasabah=1;
-
INSERT INTO nasabah (nama_nasabah) VALUES (‘Ali Topan’);
-
Perhatikan id_nasabah: SELECT*FROM nasabah;
C.
Alat dan Bahan
1.
Komputer dengan sistem operasi Windows 7.
2.
Program aplikasi PostgreSQL 9.3
3.
Modul Praktikum Sistem Berkas dan Basis Data.
D.
Langkah Kerja
1.
Jalankan pgAdmin III.
2.
Pada tab object browser (sebelah kiri), double klik pada PostgreSQL 9.3
(localhost:5432), kemudian klik kanan pada Databases (1) > New Database,
beri nama pada kolom nama, karena ingin membuat database bank, maka beri nama
“bank”, kemudian klik OK
3.
Pada tab bank, lalu pilih ikon SQL.
4.
Selanjutnya membuat tabel nasabah, cabang_bank, rekening, transaksi dan
nasabah_has_rekening dengan mengikuti perintah pada modul.
5.
Untuk mengecek hasil pembuatan tabel gunakan perintah \dt dan untuk mengcek
hasil pada PostgreSQL ketik “select*from (nama tabel yang akan dicek)”.
6.
Selanjutnya, memasukkan record-record ke dalam tabel yang telah dibuat dengan
perintah insert into seperti gambar berikut.
Pada
tabel nasabah :
Pada tabel cabang_bank :
Pada
tabel rekening :
Pada
tabel nasabah_has_rekening :
Pada
tabel transaksi :
7.
Untuk melihat hasil pada masing-masing tabel dengan menggunakan perintah select
* from (nama tabel).
E. Analisa
Dari percobaan di atas, dapat disimpulkan bahwa membuat database
menggunakan PostgreSQL 9.3, sepenuhnya berbasis teks. Jadi untuk membuat,
memasukkan, dan menghapus data menggunakan perintah tertentu yang telah
dibakukan oleh SQL. Dalam percobaan ini, dibutuhkan kemampuan menghafal yang
baik, namun selain menghafal kita juga harus memahami setiap perintah yang
diketikkan.
F. Tugas
Implementasikan hasil rancangan database pada tudas modul 4 ke
dalam program pgAdmin III. Masukkan beberapa record ke setiap tabel dalam
database yang telah Anda buat. Print out hasil implementasi rancangan tersebut
dan analisa hasilnya.
Langkah-langkah pembuatan database apotik:
1. Jalankan pgAdmin III.
2. Pada tab object browser (sebelah kiri), double klik pada
PostgreSQL 9.3 (localhost:5432), kemudian klik kanan pada Databases (2) >
New Database, beri nama pada kolom nama, karena ingin membuat database apotik,
maka beri nama “apotik”, kemudian klik OK.
3. Pada
tab apotik, lalu pilih ikon SQL.
4.
Membuat tabel karyawan, obat, supplier, pelanggan :
5.
Selanjutnya memasukkan record-record ke dalam masing-masing tabel yang telah
dibuat dengan perintah insert into.
Pada
tabel karyawan, obat, supplier, pelanggan seperti berikut :
6.
Melihat hasil tabel pada Command Prompt seperti berikut.
Tidak ada komentar:
Posting Komentar