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 3 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
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
table adalah kebalikan dari tahapinsert 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 denganrecord 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 Berkas dan Basis Data.
D. Langkah Kerja
1. Jalankan pgAdmin III pada PostgreSQL 9.3, caranya dengan membuka Start > All Programs > PostgreSQL 9.3
> pgAdmin III.
1. 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, misal “mandiri”, kemudian klik OK.
2. Pada tab properties, klik pada mandiri, lalu pilih
ikon gambar puzzle warna kuning dan hijau) lalu pilih PSQL Console.
3. Membuat tabel nasabah, cabang_bank dan rekening.
4. Membuat tabel transaksi
5. Membuat tabel nasabah_has_rekening
6. Untuk mengecek hasil pembuatan tabel gunakan perintah
\dt:
7. Selanjutnya, memasukkan record-record ke dalam tabel
yang telah dibuat dengan perintah insert into , pada tabel nasabah , tabel
cabang_bank , tabel rekening , tabel nasabah_has_rekening
, tabel transaksi.
8. Melihat hasil pada masing-masing tabel. Pada
tabel nasabah , tabel cabang_bank , tabel rekening , tabel
nasabah_has_rekening , tabel transaksi.
E.
Analisa
PostgreSQL merupakan sebuah
object-relational database system yang powerful dan bersifat open source. PostgreSQL
sangat scalable baik dalam kuantitas data yang dapat ditanganinya maupun dalam
jumlah concurrent user yang dapat diakomodasi olehnya.
F.
Tugas
Implementasikan hasil rancangan database yang menangani data kuliah pada
tugas modul 3 ke dalam program pgAdmin III. Masukkan beberapa record ke setiap tabel dalam database
yang telah dibuat. Print out hasil implemenatasi rancangan tersebut dan analisa
hasilnya.
Langkah-langkah pembuatan database kuliah:
1. Jalankan 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 (2)
> New Database, beri nama pada kolom nama, karena ingin membuat database
kuliah, maka beri nama universitas, misal “UMS”, kemudian klik OK.
3. Pada tab properties, klik pada UMS, lalu pilih ikon
gambar puzzle warna kuning dan hijau) lalu pilih PSQL Console.
4.
Membuat tabel customer , produk , dokter ,
customer_has_produk dan petugas_resepsionis.
5. Mengecek hasil pembuatan tabel dengan perintah \dt:
1. Melihat hasil input pada masing-masing tabel:
Pada tabel customer , produk , dokter , customer_has_produk dan petugas_resepsionis.
Tidak ada komentar:
Posting Komentar