Modul 6 - Database Dan Table
Modul 6 - Database Dan Table
Diktat
SISTEM MANAJEMEN BASIS DATA
2021
PS Teknologi Informasi UIN Ar-Raniry
Diktat Sistem Manajemen Basis Data
BAB VI
DATABASE DAN TABLE
A. Database
1.1. Pengertian Database
Dalam kegiatan tradisional, data disimpan pada lembaran-lembaran kertas,
kemudian lembaran-lembaran kertas tersebut disimpan pada sebuah map dan disusun
rapi pada sebuah lemari arsip. Penyusunannya diatur sedemikian rupa agar mudah
untuk ditemukan kembali. Untuk penyimpanan arsip tersebut membutuhkan suatu
ruangan khusus yang sering dinamakan sebagai ruangan arsip. Setiap map akan
diberikan kode tertentu untuk memudahkan pencarian. Setiap lemari juga akan
diberikan kode tertentu untuk memudahkan pencarian. Hal ini juga sering kita jumpai
di perpustakaan, dimana buku-buku disusun sedemikian rupa pada rak-rak buku dan
diberikan kode yang khusus atau unik. Tentunya juga akan membutuhkan ruangan
yang besar untuk menampung semua buku dan rak buku tersebut.
komputer yang kita kenal dengan teknologi pengarsipan secara digital yaitu
database.
besar. Sehingga efesiensi waktu, dan tempat akan dapat dilakukan dan data tersimpan
dengan aman.
• Sistem kontrol basis data (Database Control System) yang mengakses basis
data karena adanya perintah dari bahasa manipulasi data.
Jika kita lihat pada peta SQL DDL di atas selain Create, Alter, dan Drop,
perintah DDL lainnya adalah View dan Truncate. Kemudian kita melihat juga cabang
dari perintah utama yang berisi perintah-perintah yang dapat mengubah struktur dari
basis data dan tabel.
Langkah awal yang diperlukan untuk bekerja dengan MySQL adalah
membuat database. Dalam MySQL, pembuatan database dilakukan menggunakan
sintaks berikut ini:
CREATE DATABASE <nama database>;
Sebagai latihan anda dalam membuat database, kita akan membangun sebuah
database sederhana yaitu dbBuku sebagai database. Dengan demikian, sintaks yang
anda ketikkan ada MySQL adalah:
MariaDB [(none)]> create database dbBuku;
Untuk menampilkan daftar nama database yang ada pada server MySQL, gunakan
perintah berikut ini:
MariaDB [(none)]> SHOW DATABASES;
Sebelum database dapat digunakan, anda harus memilih terlebih dahulu database
yang akan digunakan dengan menggunakan perintah USE. Sintaks penggunaannya
adalah:
USE <nama database>;
Dengan demikian, sebelum anda dapat membuat tabel dan objek-objek lain di dalam
database dbBuku, anda harus memilih database tersebut dengan menuliskan sintaks:
penyimpanan harddisk atau karena database tersebut tidak dibutuhkan lagi. Untuk
menghapus database maka dapat digunakan sintaks berikut ini:
DROP DATABASE [IF EXIST] <nama database>;
Perintah DROP DATABASE tidak hanya menghapus nama database saja, tetapi juga
akan menghapus semua tabel dan objek lain yang ada di dalam database tersebut,
kemudian menghapus database itu sendiri. Maka dari itu, sebelum menghapus
sebuah database anda harus memastikan betul bahwa database beserta dengan tabel-
tabel nya memang benar-benar sudah tidak dibutuhkan lagi.
Perintah IF EXISTS bersifat opsional dan berfungsi untuk mencegah terjadinya
kesalahan perintah jika ternyata nama database yang akan dihapus tidak terdapat di
dalam server MySQL. Untuk mengapus database anda dapat menggunakan sintaks
berikut ini:
MariaDB [(none)]> drop database if exists dbbuku;
Perintah di atas hanya akan dieksekusi jika dalam server MySQL terdapat database
dengan nama dbBuku.
Perintah di atas akan menghapus database dan seluruh tabel atau objek lainnya yang
ada di dalam database dbBuku.
B. Tabel
Data di dalam basis data bersifat terpadu (integrated) dan berbagi data
(shared). Terpadu (integrated) berarti berkas-berkas yang ada pada basis data saling
terkait, terjadi keterhubungan data (dependensi data). Berbagi data (shared) berarti
data yang sama dapat dipakai atau digunakan oleh sejumlah pengguna dalam waktu
yang bersamaan. Sering dikenal dengan nama sistem multiuser atau banyak
pengguna.
Konsep basis data (database) ini dapat dipandang dari berbagai sudut, yaitu:
dari sisi sistem, basis data merupakan kumpulan tabel yang saling berhubungan.
Sedangkan sisi manajemen, basis data merupakan kumpulan data yang memodelkan
aktivitas-aktivitas yang terdapat di dalam suatu perusahaan atau organisasi. Terdapat
hirarki (tingkatan) basis data dan bagaimana keterhubungan antar tingkatan tersebut
dapat dilihat seperti gambar berikut ini:
• Field, berupa atribut dari record yang menunjukkan suatu item dari sebuah
field.
• Byte, merupakan atribut dari field yang berupa kumpulan karakter yang
memberntuk nilai dari sebuah field.
• Bit, adalah bagian terkecil dari data secara keseluruhan, yaitu berupa karakter
ASCII nol (0) atau satu (1) yang merupakan komponen Byte.
Tabel Pengarang
Nama Field Type Data Panjang
pengarang_id char 3
pengarang_nama varchar 30
Setiap field yang ada pada tabel kategori dan tabel pengarang adalah super
key.
2. Candidate key
Candidate Key adalah satu set atribut (tuple/field) yang secara unik
mengidentifikasi tuple/field dalam sebuah tabel. Candidate key merupakan
atribut pada super key yang tidak berulang.
Contoh :
Tabel Kategori
Nama Field Type Data Panjang
kategori_id Int auto increment
kategori_nama Varchar 25
Tabel Pengarang
Nama Field Type Data Panjang
pengarang_id char 3
pengarang_nama varchar 30
3. Primary key
Primary Key adalah candidate key yang dipilih (di antara candidate key lain)
untuk membedakan atau mengidentifikasi setiap baris dalam tabel. Primary
key dapat diartikan juga sebagai kunci utama yang digunakan pada field yang
memiliki nilai unik yang digunakan untuk mengidentifikasi setiap baris
dalam tabel.
Contoh :
Pada tabel katogori, field kategori_id adalah primary key.
Pada tabel pengarang, field pengaran_id adalah primary key.
4. Alternate key
Alternate Key adalah candidate key yang tidak dijadikan sebagai primary
key.
5. Foreign key
Foreign Key adalah kolom yang membuat hubungan (relasi) antara dua tabel.
Tujuan dari foreign key adalah untuk menjada integritas data dan
memungkinkan sebagai referensi silang antara dua tabel karena
mereferensikan kunci utama dari tabel lain.
Contoh:
Tabel Buku
Nama Field Type Data Panjang
buku_ISBN char 3
buku_judul varchar 75
penerbit_id char 4
buku_tglterbit date
buku_jmlhalaman int
buku_deskripsi text
buku_harga decimal
Pada tabel buku, field (kolom) buku_ISBN adalah primary key, field (kolom)
penerbit_id adalah foreign key tetapi primary key pada tabel penerbit.
Sebagai ilustrasi penjelasan relational keys diatas dapat anda perhatikan
gambar berikut ini :
Gambar 6.5 Penentuan candidate key, primary key dan alternate key
(Sumber : Internet)
field1, field2, dan seterusnya menunjukkan nama kolom yang akan dibuat
dalam tabel; sedangkan tipe data berfungsi untuk merepresentasikan jenis data dari
field bersangkutan.
TYPE bersifat opsional dan berfungsi untuk menentukan tipe tabel atau lebih
tepatnya tipe mesin penyimpanan (storage machine) dari tabel yang dibuat.
Tabel Kategori
Nama Field Type Data Panjang Key
kategori_id char 2 Primary key
kategori_nama varchar 25
Tabel Pengarang
Nama Field Type Data Panjang Key
pengarang_id char 3 Primary key
pengarang_nama varchar 30
Tabel Penerbit
Nama Field Type Data Panjang Key
penerbit_id char 4 Primary key
penerbit_nama varchar 50
Tabel Buku
Nama Field Type Data Panjang Key
buku_ISBN char 3 Primary key
buku_judul varchar 75
penerbit_id char 4 Foreign key
buku_tglterbit date
buku_jmlhalaman int 11
buku_deskripsi text
buku_harga Decimal
Tabel Link_Buku_Pengarang
Nama Field Type Data Panjang Key
buku_ISBN char 13 Primary key
Pengarang_id char 3 Primary key
Tabel Link_Buku_Kategori
Nama Field Type Data Panjang Key
buku_ISBN char 13 Primary key
Kategori_id char 2 Primary key
Setelah kita membuat struktur table database dalam bentuk tabel, maka
selanjutnya adalah membuat tabel-tabel tersebut ke dalam database dbbuku yang
sudah kita buat.
Untuk membuat tabel-tabel sesuai dengan studi kasus maka kita akan
membuat beberapa tabel yang saling berhubungan untuk database dbBuku.
Tabel KATEGORI
Tabel ini merupakan tabel referensi yang nantinya akan diisi dengan data kategori
buku. Tabel KATEGORI akan direlasikan dengan tabel BUKU melalui tabel bantu
(disebut tabel transaksi) dengan nama LINK_BUKU_KATEGORI.
Perintah di atas akan membuat tabel dengan nama KATEGORI yang berisi dua buah
kolom (field) dengan nama kategori_id dan kategori_nama. Kolom
kategori_id didefinisikan dengan tipe data int (integer). NOT NULL artinya
kolom ini tidak boleh kosong (harus berisi nilai) sedangkan AUTO_INCREMENT
digunakan untuk menaikkan nilai dari kolom ini setiap kali baris data dimasukkan ke
Database dan Tabel Halaman | 79
PS Teknologi Informasi UIN Ar-Raniry
Diktat Sistem Manajemen Basis Data
Tabel PENGARANG
Tabel ini juga merupakan tabel referensi dan digunakan untuk menyimpan data
pengarang. Tabel PENGARANG akan direlasikan dengan TABEL BUKU melalui tabel
bantu (sering disebut tabel transaksi) dengan nama LINK_BUKU_PENGARANG.
Perintah di atas akan membuat tabel PENGARANG yang terdiri dari dua buah kolom
yaitu kolom pegarang_id dan kolom pengarang_nama. Kolom yang
dijadikan sebagai primary key dalam tabel ini adalah pengarang_id. Dengan
demikian, pada saat pengisian data, setiap pengarang harus memiliki ID yang
berbeda.
Jika anda mengetikkan pada MySQL, maka perintahnya seperti ini:
Tabel PENERBIT
Tabel ini merupakan tabel referensi yang datanya akan diacu oleh tabel BUKU.
Fungsinya adalah untuk menyimpan data penerbit.
Perintah SQL nya:
Create table penerbit(
penerbit_id char(4) not null,
penerbit_nama varchar(50),
primary key(penerbit_id));
Perintah di atas akan membuat tabel PENERBIT yang terdiri dari dua buah kolom
yaitu kolom penerbit_id dan kolom penerbit_nama. Kolom yang dijadikan
sebagai primary key adalah penerbit_id. Sehingga setiap baris data yang
dimasukkan pada kolom penerbit_id harus memiliki ID yang berbeda. Nilai
penerbit_id inilah yang akan diacu oleh tabel BUKU.
Tabel BUKU
Tabel ini berfungsi untuk menyimpan data buku.
Perintah di atas akan membuat tabel BUKU yang terdiri dari tujuh kolom dengan
primary key buku_ISBN. Dalam tabel ini, kolom penerbit_id dijadikan sebagai
foreign key yang nilainya mengacu pada kolom penerbit_id dari tabel
PENERBIT. Ini berarti bahwa nilai penerbit_id yang akan diisikan ke dalam
tabel BUKU harus diambil dari salah satu nilai penerbit_id yang ada pada tabel
PENERBIT.
Foreign key dapat juga diartikan sebagai kunci pokok (primary key) pada tabel yang
lain (tabel yang menjadi referensi). Untuk membuat foreign key pada suatu tabel, kita
dapat menggunakan perintah sebagai berikut:
Foreign key(<nama kolom>)
References <nama tabel referensi>(<nama kolom pada tabel referensi>)
Tabel LINK_BUKU_PENGARANG
Tabel ini merupakan tabel bantu yang berfungsi untuk merelasikan antara tabel BUKU
dan tabel PENGARANG. Isi data dalam tabel ini hanya berupa perpaduan antara nilai
dari kolom buku_ISBN yang berasal dari tabel BUKU dan kolom pengarang_id
yang berasal dari tabel PENGARANG.
Perintah SQL nya:
Create table link_buku_pengarang(
buku_ISBN char(13) not null,
pengarang_id char(3)not null,
primary key(buku_ISBN, pengarang_id),
foreign key(buku_ISBN)
references buku(buku_ISBN),
foreign key(pengarang_id)
references pengarang(pengarang_id));
Pada studi kasus ini diasumsikan bahwa satu pengarang dapat menulis lebih dari satu
buku. Begitu juga satu buku dapat ditulis oleh lebih dari satu pengarang. Oleh karena
itu, selain didefinisikan sebagai foreign key, agar setiap baris data dalam tabel
LINK_BUKU_PENGARANG dapat bersifat unik, maka kita juga perlu mendefinisikan
kolom buku_ISBN dan pengarang_id sebagai primary key.
TABEL LINK_BUKU_KATEGORI
Tabel ini merupakan tabel bantu yang berfungsi untuk merelasikan antara tabel BUKU
dan tabel KATEGORI. Isi data di dalam tabel ini adalah perpaduan antara nilai dari
kolom buku_ISBN yang berasal dari tabel BUKU dan kolom kategori_id yang
berasal dari tabel KATEGORI.
Perintah SQL nya:
Create table link_buku_kategori(
buku_ISBN char(13) not null,
kategori_id char(2) not null,
primary key(buku_ISBN, kategori_id),
foreign key(buku_ISBN)
references buku(buku_ISBN),
foreign key(kategori_id)
references kategori(kategori_id));
buku dapat masuk ke beberapa kategori dan satu kategori dapat terdiri dari satu buku
atau lebih.
Jika anda mengetikkan pada MySQL, maka perintahnya seperti ini:
Pada keadaan-keadaan tertentu, ada kalanya kita ingin mengubah nama tabel atau
struktur dari tabel yang sudah ada di dalam database. Untuk mengatasi permasalahan
seperti ini, kita perlu menggunakan perintah ALTER TABLE.
Contoh:
Alter table kategori rename to kategori_buku;
2) Menambah Kolom
MySQL mengizinkan kita untuk menambah satu atau lebih kolom ke dalam
suatu tabel.
Contoh:
Alter table buku add column buku_sinopsis text;
alter table pengarang add column email varchar(25);
3) Mengubah Kolom
Kolom dalam suatu tabel dapat diubah sesuai kebutuhan. Kita dapat mengubah
nama kolom, tipe data, maupun ukuran data yang dialokasikan.
Contoh:
Alter table buku change buku_ISBN buku_id char(15);
Perintah di atas akan mengubah nama kolom buku_ISBN pada tabel buku
menjadi buku_id dengan tipe data char memiliki panjang 15.
4) Menghapus Kolom
Kolom dalam suatu tabel dapat dihapus dengan menyertakan klausa DROP
COLUMN pada perintah ALTER TABLE.
Contoh:
Alter table buku drop column buku_sinopsis;
Contoh:
Alter table buku add primary key buku_id;
<nama kolom> adalah nama kolom yang akan dijadikan sebagai primary
key.
Contoh:
Alter table buku add primary key buku_id;
<nama kolom> adalah nama kolom yang akan dijadikan sebagai foreign
key.
Untuk menghapus primary key maupun foreign key dari suatu tabel, gunakan
klausa DROP PRIMARY KEY atau DROP FOREIGN KEY pada saat
mengeksekusi perintah ALTER TABLE.
<nama foreign key> adalah nama foreign key yang didefinisikan pada
saat membuat foreign key. Sebagai contoh, kita mendefinisikan foreign key
pada tabel BUKU dengan perintah sebagai berikut:
Constraint fk_buku_penerbit foreign key(penerbit_id)
reference penerbit(penerbit_id);
Contoh:
Alter table add index idxjudul(buku_judul);
Untuk menghapus indeks dari suatu tabel, gunakan klausa DROP INDEX pada
saat mengeksekusi perintah ALTER TABLE.
Contoh:
Alter table buku drop index idxjudul;
7) Menghapus Tabel
Tabel yang terdapat di dalam database dapat dihapus menggunakan perintah
DROP TABLE.
Akan tetapi jika anda menginginkan untuk menghapus beberapa tabel dalam
satu perintah, maka perintah SQL nya dapat diubah menjadi seperti berikut:
Drop table link_buku_kategori, link_buku_pengarang;
Untuk lebih memahami bagaimana model dari Data Manipulation Language (DML),
bisa anda perhatikan pada gambar dibawah ini:
Contoh:
Insert into penerbit (penerbit_id, penerbit_nama)
Values (‘PB06’, ‘INFORMATIKA’);
Perintah di atas akan membuat baris data baru (new record) pada tabel
PENERBIT. Setiap data baru yang dimasukkan pada tabel PENERBIT akan
menjadi record baru di dalam tabel tersebut.
Dengan perintah tersebut, kolom penerbit_id akan diisi nilai ‘PB06’
dan kolom penerbit_nama akan diisi nilai ‘INFORMATIKA’.
Contoh:
Insert into penerbit Values (‘PB06’, ‘INFORMATIKA’);
Contoh:
Update penerbit
Set penerbit_nama=’INFORMATIKA BANDUNG’)
Where penerbit_id=‘PB06’;
Contoh:
Delete from buku
where buku_ISBN=’888-96771-3-5’;
Perintah di atas menghapus baris data pada tabel BUKU yang kolom
buku_ISBN-nya bernilai ‘888-96771-3-5’.
Perlu diperhatikan, pada saat anda menghapus baris data pada suatu tabel,
anda harus menyertakan kriteria atau kondisi, karena jika anda tidak
menyertakan kriteria atau kondisi maka semua baris data dalam tabel akan
terhapus.
Contoh:
Delete from buku;
Perintah di atas akan menghapus semua baris data pada tabel BUKU.
Tugas!
- Silahkan dikerjakan semua perintah diatas.
- Jika belum ada database dbbuku, maka silahkan dibuatkan database dbbuku.
- Jika belum ada tabel-tabel di dalam database dbbuku sesuai dengan materi di
atas, maka silahkan membuatkan tabel-tabel di dalam database dbbuku.
- Jika belum ada record (data-data) pada setiap tabel yang sudah dibuat pada
database dbbuku, maka masukkan record (data-data) sesuai dengan instruksi dari
dosen.
- Untuk membuat database dan tabel menggunakan perintah Data Definition
Language (DDL).
- Untuk memasukkan data-data (record-record) ke dalam tabel-table, maka
menggunakan perintah Data Manipulation Language (DML).
Referensi: