MODUL 5
IMPLEMENTASI TABEL-TABEL BASIS DATA (1)
(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. Landasan Teori
Basis data dapat
diimplementasikan berdasarkan E-R diagra
m yang telah dibuat. Implementasi database bisa:
m 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:
- 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.
7. Setelah memasukkan
record pada masing-masing tabel, lalu dengan menggunakan perintah
select*from untuk mengecek hasil dari setiap 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 yang menangani data kuliah pada tugas modul 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.
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 “kuliah”, kemudian klik OK.
3. Pada tab kuliah, lalu
pilih ikon SQL.
4. Membuat tabel
mahasiswa, dosen, mata_kuliah, ruang_kelas:
5. Membuat tabel
mahasiswa_has_mata_kuliah:
6. Mengecek hasil pembuatan
tabel dengan perintah \dt.
7. Selanjutnya memasukkan
record-record ke dalam masing-masing tabel yang telah dibuat dengan
perintah insert into.
Pada tabel dosen,
mahasiswa, mata_kuliah, ruang_kelas:
Pada tabel
mahasiswa_has_mata_kuliah:
8. Melihat hasil dari
pembuatan pada PostgreSQL.
Pada tabel mahasiswa :
Pada tabel dosen :
Pada tabel mata_kuliah :
Pada tabel ruang_kelas :
Pada tabel mahasiswa_has_mata_kuliah :
Tampilan hasil tabel pada Command Prompt seperti
berikut.
Analisa :
Dari implementasi
database data-data kuliah untuk setiap relasi dari satu ke banyak (1:n)
akan ada atribut primary key dari tabel (dengan relasi satu) yang
ditambahkan ke tabel dengan relasi banyak. Misalnya untuk relasi dari
dosen ke mata_kuliah (1:n), pada tabel mata_kuliah akan ditambahkan
primary key dari dosen, yaitu nik. Kemudian
untuk relasi dari banyak ke banyak (m:n), kita harus membuat tabel baru
yang menghubungkan dua tabel yang saling berelasi tadi. Misal, dari
relasi mahasiswa ke mata_kuliah (m:n), dibuat tabel baru dengan nama
mahasiswa_has_mata_kuliah yang berisikan atribut primary key dari kedua
tabel (mahasiswa dan mata_kuliah) yaitu nim dan kode_mk.
Tidak ada komentar:
Posting Komentar