NIM : 1605551055
Kelompok :7
MODUL II
“DDL”
Tujuan Praktikum
1. Mampu menerapkan penggunaan DDL dalam basisdata
2. Mampu melakukan konfigurasi relasi antar tabel dengan DDL
Tugas Pendahuluan
1. Buatlah sintaks dari masing-masing fungsi yang ada dalam Data Definition
Language (DDL) beserta contoh penggunaannya.
2. Sebutkan dan jelaskan tipe-tipe tabel yang ada di dalam MYSQL, serta
berikan contoh penggunaannya.
3. Sebutkan dan Jelaskan macam-macam referential integrity constraint di
dalam MYSQL, serta berikan contoh penggunaannya.
4. Bagaimana cara mengubah tipe tabel dan referential integrity constraint di
dalam MYSQL
5. Rancanglah minimal dua buah tabel yang memiliki relasi, lalu
implementasikan semua fungsi DDL ke tabel tersebut.
Jawaban
1. Sintak Dalam Data Definition Language
DDL adalah sebuah metode Query SQL yang berguna untuk mendefinisikan
data pada sebuah database. Query atau sintak yang dimiliki DDL adalah sebagai
berikut.
1.1 Create
Perintah Create digunakan untuk membuat database dan tabel baru[1]. Contoh
penggunaan dari sintak create adalah sebagai berikut.
1.1.1 Create Database
Create Database digunakan untuk membuat database yang baru. Database
adalah sebuah media utama yang harus dibuat dalam membangun sebuah basis data
agar nantinya dapat diletakkan beberapa tabel dengan field- field-nya.
Kode Program 1.1 merupakan sintak yang digunakan untuk membuat sebuah
database yang baru atau create database. Pembuatan Sintak ini adalah dengan
memasukkan nama database yang ingin dibuat.
1.2 Drop
Perintah Drop digunakan dalam penghapusan suatu tabel dan database[1].
Berikut ini merupakan penggunaan dari perintah drop.
1.2.1 Drop Database
Drop Database merupakan perintah yang digunakan untuk menghapus
database yang sudah ada. Sintak yang digunakan untuk menghapus suatu database
yaitu sebagai berikut.
Kode Program 1.6 merupakan sintak yang digunakan untuk mengubah atau
mengganti nama kolom yang terdapat dalam suatu tabel pada database. Sintak
nama_tabel merupakan nama tabel yang akan diubah nama kolomnya. Change
merupakan fungsi untuk mengubah nama kolom pada tabel yang akan diubah. Sintak
nama_kolom_lama adalah nama kolom lama yang akan diubah dan
nama_kolom_baru merupakan nama kolom yang baru yang ingin diubah, diikuti
dengan pemberian tipe data dan panjang datanya.
Kode Program 1.8 merupakan sintak dalam penghapusan kolom tabel pada
database. Sintak nama_tabel merupakan nama tabel yang menjadi tempat
penghapusan field dan sintak nama_kolom merupakan nama kolom atau field yang
akan dihapus.
2. Tipe-Tipe Tabel Dalam MySql
MySql memiliki kemampuan untuk mendefinisikan tipe tabelnya sendiri. Jika
kita tidak menyebutkan tipe tabel saat membuat tabel maka tipe tabel akan dibuat
otomatis sesuai dengan konfigurasi default server. Terdapat tiga tipe tabel di dalam
MySql diantaranya adalah sebagai berikut.
2.1 MyISAM
Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan mudah
untuk kita gunakan. Kelebihan utama dari MyISAM adalah kecepatan dan
kestabilannya. Tipe tabel MyISAM memiliki tiga jenis tabel yang akan secara
otomatis akan ditentukan apabila kita memilih menggunakan tipe tabel ini. Tiga jenis
tipe tabel MyISAM tersebut diantaranya.
2.1.1 MyISAM Static
Jenis tipe tabel ini digunakan apabila semua kolom pada tabel yang ada
didefinisikan dengan ukuran yang pasti (fixed). Karena sifatnya yang fixed, maka
jenis ini akan lebih cepat dan stabil.
2.2 InnoDB
Tipe tabel InnoDB merupakan tipe tabel yang dapat mendukung terjadinya
proses transaksi. Tipe tabel ini mendukung adanya row-level-locking pada tabel. Tipe
tabel ini juga mendukung adanya foreign key constraint.
2.3 Heap
Tipe tabel Heap merupakan tipe tabel yang digunakan apabila tabel tersebut
bersifat sementara. Tipe tabel heap tidak menyimpan datanya di dalam sebuah
hardisk, namun ia akan menyimpan datanya di dalam RAM. Tabel akan dengan
sendirinya akan hilang apabila koneksi MySQL dimatikan.
2.4 Memory
Memory merupakan tipe tabel yang menyimpan data di RAM untuk akses
cepat terhadap pencarian data. Storage engine yang awalnya dikenal sebagai HEAP
engine ini pemanfaatannya cenderung mengalami penurunan[2].
2.6 BDB
BDB merupakan tipe tabel yang mendukung terjadinya tabel proses transaksi.
Tipe tabel ini mirip dengan tipe tabel InnoDB, namun penggunaannya belum
maksimal.
2.7 Archive
Archive merupakan tipe tabel ini tersedia sejak MySQL versi 4.1. Tipe ini
digunakan untuk menyimpan tabel yang terkompresi, dimana biasanya digunakan
dalam proses backup. Tipe tabel ini biasanya digunakan untuk penyimpanan sejumlah
besar data tanpa pengindekan dengan sebuah footprint yang sangat kecil[3].
2.8 CSV
CSV menyimpan data dalam file teks dengan menggunakan tanda koma
sebagai format pemisah antar nilai-nilai dalam file teks tersebut[3].
2.9 Federated
Federated merupakan tipe tabel yang digunakan untuk menyimpan data dalam
remote database. Dalam MySQL 5.1, storage engine ini hanya bekerja dengan
MySQL, dengan menggunakan MySQL C client API. Dalam rilis masa depan,
dimaksudkan untuk memungkinkannya untuk terkoneksi dengan sumber data lainnya
dengan menggunakan driver-driver atau metode-metode koneksi klien yang
lainnya[3].
yang digunakan jika ada data classid yang dihapus pada tabel classid, maka data
classid yang ada dalam tabel hospital_room ini tidak akan ikut terhapus.
Sedangkan, sintaks ON UPDATE RESTRICT digunakan jika classid dalam tabel
classid di update, classid yang ada pada tabel hospital_room tidak akan ikut ter-
update.
3.2 Cascade
Cascade berarti baris-baris dalam tabel anak yang berisi nilai-nilai yang juga
terdapat dalam kolom terkait dari tabel induk dihapus ketika baris-baris yang
berkaitan dihapus dari tabel induk. Baris-baris dalam tabel anak yang berisi nilai-nilai
yang juga terdapat dalam kolom terkait dari tabel induk di-update ketika nilai-nilai
yang berkaitan di-update dalam tabel induk[3].
digunakan jika ada data classid yang dihapus pada tabel classid, maka secara
otomatis data classid yang ada dalam tabel hospital_room ini juga akan terhapus.
Sedangkan, sintak ON UPDATE CASCADE digunakan untuk proses update otomatis pada
classid dalam tabel hospital_room, apabila classid yang ada di tabel classid ini
di update.
Kode Program 3.3 merupakan contoh dari penggunaan sintak set null. Tabel
yang digunakan adalah tabel hospital_room dengan primary key yaitu roomid.
Sedangkan field classid merupakan foreign key yang direferensikan dari field classid
yang ada dalam tabel classid. Oleh karena itu, ditambahkan perintah FOREIGN KEY
(`classid`) REFERENCES `classid` (`classid`) ON DELETE SET NULL ON
UPDATE SET NULL. Selanjutnya, sintak ON DELETE SET NULL merupakan perintah yang
digunakan jika ada data classid yang dihapus pada tabel classid, maka secara
otomatis data classid yang ada dalam tabel hospital_room akan di kosongkan.
Sedangkan, sintaks ON UPDATE SET NULL digunakan jika terdapat proses update pada
classid dalam tabel classid, maka classid yang ada di tabel hospital_room ini
akan dikosongkan.
3.4 No Action
No Action berarti tidak ada aksi yang diambil dalam tabel anak ketika baris-
baris dihapus dari tabel induk atau nilai-nilai dalam kolom terkait dalam tabel induk
di-update[3].
Kode Program 3.4 merupakan contoh dari penggunaan sintak set null. Tabel
yang digunakan adalah tabel hospital_room dengan primary key yaitu roomid.
Sedangkan field classid merupakan foreign key yang direferensikan dari field classid
yang ada dalam tabel classid. Oleh karena itu, ditambahkan perintah FOREIGN KEY
(`classid`) REFERENCES `classid` (`classid`) ON DELETE NO ACTION ON
yang digunakan untuk melakukan penolakan penghapusan pada data classid yang
dihapus pada tabel classid, jika masih ada data classid yang sama dalam tabel
hospital_room. Sedangkan, sintaks ON UPDATE NO ACTION digunakan untuk
melakukan penolakan pada proses update pada classid dalam tabel classid, jika
terdapat data classid yang sama di tabel hospital_room.
Kode Program 4.1 merupakan sintak yang digunakan untuk mengubah tipe
tabel dalam suatu database. Tentukan nama tabel yang ingin diubah dan tentukan tipe
tabel atau engine apa yang ingin digunakan. Misalnya, tipe tabel pengembalian
diubah menjadi InnoDB.
Kode Program 4.2 merupakan contoh sintak yang digunakan untuk mengubah
tipe tabel dalam suatu database, dimana tipe tabel atau engine tabel pengembalian
diubah menjadi InnoDB.
4.2. Cara Mengubah Referential Integrity Constraint Dalam Mysql
Refrential Integrity Constraint tidak dapat diubah secara langsung. Ada
beberapa tahapan yang dilakukan untuk mengubah referential integrity constraint.
Berikut merupakan cara untuk mengubah referential integrity constraint.
4.2.1 Show Create Table
Nama constraint dari foreign key dapat diketahui dengan menggunakan
perintah show create table. Berikut merupakan kode program yang digunakan untuk
mengetahui nama constraint dari foreign key dalam suatu tabel.
Kode Program 4.3 merupakan sintak dan tampilan hasil saat sintak sudah
dijalankan. Dimana, nama constraint dari foreign key id_pinjam adalah
detail_pinjam_ibfk_1 dan nama constraint dari foreign key id_buku adalah
detail_pinjam_ibfk_2.
Kode Program 4.4 merupakan sintak untuk menghapus foreign key yang
terdapat pada suatu tabel, dimana nama constraint dari foreign key adalah
detail_pinjam_ibfk_1 pada tabel detail_pinjam.
Kode Program 5.1 merupakan sintak yang digunakan untuk membuat tabel
kota. Pada tabel kota terdapat kolom id_kota dengan tipe data int dan panjangnya
3 sebagai primary key dan kolom nama_kota dengan tipe data varchar dan
panjangnya 20.
Kode Program 5.2 merupakan sintak yang digunakan untuk membuat tabel
stasiun. Pada tabel stasiun terdapat kolom id_stasiun dengan tipe data int dan
panjangnya 3 sebagai primary key, kolom nama_stasiun dengan tipe data varchar
dan panjangnya 10 dan kolom id_kota dengan tipe data int dan panjangnya 3.
5.2 Alter
Perintah Alter digunakan untuk melakukan perubahan struktur tabel yang
telah dibuat, baik menambah field (Add), mengganti nama field (Change),
mengubah nama tabel (Rename), dan menghapus field (Drop) dalam suatu
database[1].
5.2.1 Alter Add
Perintah Alter Add digunakan untuk melakukan penambahan field atau kolom
dalam sebuah tabel pada database. Sintak yang digunakan untuk mengubah field atau
kolom terdapat dalam suatu tabel yaitu sebagai berikut.
Kode Program 5.4 merupakan sintak yang digunakan untuk mengubah atau
mengganti nama kolom yang terdapat dalam suatu tabel pada database. Pada kode
program tersebut, kolom id_stasiun pada tabel stasiun dengan tipe data integer
diubah panjang datanya menjadi 4.
Kode Program 5.6 merupakan sintak dalam penghapusan kolom tabel pada
database. Pada kode program tersebut, kolom nama_stasiun pada tabel stasiun
dihapus.
5.3 Drop
Perintah Drop digunakan dalam penghapusan suatu tabel dan database[1].
Berikut ini merupakan penggunaan dari perintah drop.
5.3.1 Drop Table
Drop Table merupakan perintah yang digunakan untuk menghapus tabel yang
terdapat dalam suatu database. Sintak yang digunakan untuk menghapus tabel yang
terdapat dalam suatu database yaitu sebagai berikut.
[1] Saputro, Haris. (2012). Modul Pembelajaran Praktek Basis Data (MySQL).
[Online]. Tersedia: http://dinus.ac.id/repository/docs/ajar/materi_1.pdf [23
Maret 2017].
[2] Pengelolaan Database, Tabel, Dan Index. Universitas Komputer Indonesia
[Online]. Tersedia:
http://repository.unikom.ac.id/30806/1/04.%20MENGELOLA
%20DATABASE%20DAN%20TABEL.pdf [15 April 2017]
[3] IGOS Training Tool Kit “RDBMS (Relational DataBase Management
System): MySQL”. Institut Teknologi Bandung [Online]. Tersedia:
ftp://ftp.itb.ac.id/pub/ISO-
IMAGES/linux/ebook_tik_linux_foss/8_buku_kebijakan_foss/rdbms
%20mysql/RDBMS-MySQL%20(uli).pdf [15 April 2017]