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.
B.
Dasar Teori
Basis data
dapat diimplementasikan berdasarkan E-R diagram yang telah dibuat. Implementasi
database bisa:
1. Secara manual (dengan perintah SQL
‘CREATE TABLE’)
2. Secara semi-manual dengan bantuan client
berbasis GUI (MySQL Front, PgAccess, phpPgAdmin, dst.)
3. Secara otomatis dengan CASE Tools
(DBDesigner)
·
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:
·
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 Key yang
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
<nama tabel>
VALUES
(<nilai kolom>, ...);
2. Untuk memasukkan data pada kolom-kolom
tertentu:
INSERT
INTO <nama tabel> (<nama kolom>, ...)
VALUES
(<nilai kolom>, ...);
·
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 table
adalah 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:
o
NO
ACTION atau RESTRICT: update atau delete tidak dilakukan. Ini merupakan
pilihan default.
o
CASCADE:
nilai kolom di tabel kedua disesuaikan dengan nilai kolom di tabel utama.
o
SET
NULL: nilai kolom di tabel kedua dijadikan NULL.
o
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 Basis Data.
D.
Langkah Kerja
1. Jalankan pgAdmin III pada PostgreSQL 9.3,
caranya denganmembuka Start > All
Programs > PostgreSQL 9.3 > pgAdmin III.
2. Pada tab object browser (sebelah kiri), double klik pada PostgreSQL 9.3 (localhost:5432),
kemudian klik kanan pada Databases>
New Database, beri nama pada kolom nama, karena ingin membuat database
bank, maka beri nama bank, misal “bank”, kemudian klik OK
3. Pada tab properties, klik pada Perbankan,
lalu pilih ikon gambar puzzle warna kuning dan hijau) lalu pilih CREATE script.
4. Membuat table nasabah, cabang_bank, rekening, transaksi, dan nasabah_has_rekening dengan perintah create table.
5. Untuk
mengecek hasil pembuatan tabel gunakan perintah \dt atau dengan select *from
table yang diinginkan
6. Selanjutnya,
memasukkan record-record ke dalam tabel yang telah dibuat dengan perintah
insert into.
Pada tabel rekening:
Pada tabel nasabah_has_rekening:
Pada tabel transaksi:
7. Melihat
hasil pada masing-masing tabel.
Pada tabel nasabah:
Pada tabel cabang_bank:
Pada tabel rekening:
Pada tabel nasabah_has_rekening:
Pada tabel transaksi:
E.
Analisa
Pada percobaan menggunakan PostgreSQL
9.3 dengan PSQL console perlu teliti, karena sepenuhnya berbasis teks. Jadi
untuk membuat, memasukan, dan menghapus data menggunakan perintah-perintah
tertentu yang telah dibakukan oleh SQL. Maka dalam percobaan menggunakan
PostgreSQL 9.3 harus dibutuhkan kemampuan menghafal yang baik serta 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
implementasi:
Database Universitas:
1. Menjalankan pgAdmin III pada PostgreSQL
9.3, caranya dengan membuka Start >
All Programs > PostgreSQL 9.3 > pgAdmin III.
2. Pada tab object browser (sebelah kiri), double klik pada PostgreSQL 9.3 (localhost:5432),
kemudian klik kanan pada Databases>
New Database, beri nama pada kolom nama, karena ingin membuat database
bank, maka beri nama bank, misal “kuliah”, kemudian klik OK.
3. Pada tab properties, klik pada kuliah,
lalu pilih ikon gambar puzzle warna kuning dan hijau) lalu pilih create
script.
4. Membuat table mahasiswa, dosen, mata_kuliah, ruang_kelas, dan mhs_has_mk dengan menggunakan perintah create table.
5. Memasukkan record-record ke dalam semua
tabel yang telah dibuat dengan perintah insert
into.
6. Melihat isi record yang telah dimasukkan
dengan perintah select* from.
a. Tabel mahasiswa:
b. Tabel dosen:
c. Tabel matakuliah:
d. Tabel ruang_kelas:
e. Tabel mhs_has_mk:
Tidak ada komentar:
Posting Komentar