Anda di halaman 1dari 8

DESAIN DATABASE PENYEWAAN DVD

TUGAS PRAKTIKUM SISTEM BASIS DATA

Diajukan untuk Memenuhi Tugas


Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer
Universitas Komputer Indonesia

Disusun Oleh :

Rizkia Agustin 10107236


Istiqomah 10107268
Kelas : IF-5

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2010
1. Diagram ER

Model data yang akan didesain adalah model data untuk membuat toko fiksi yang menyewakan
DVD ke pelanggannya. Database mencatat inventori DVD, menyediakan informasi mengenai DVD,
menyimpan transaksi penyewaan, dan menyimpan nama-nama dari pelanggan dan pekerja. Berikut ini
adalah diagram ER yang dimiliki oleh penyewaan dvd.

status judul
actor
format id ast_produser
jml_disc
category
rating
id_DVD komposer
produser
studio_terbit
id_DVD
1 1
DVD memiliki Detail DVD
thn_release
peranan
N
judul e_produser
id_pelanggan nama_pelanggan
penulis
last_update ko_produser
id_DVD sutradara

N id_transaksi
id_transaksi Detail Transaksi Transaksi

id_staff 1 tgl_kembali
detail_id tgl_pinjam
nama_staff
id_DVD

last_update
melakukan

nama_staff
id_staff nama_pelanggan id_pelanggan
username

1 N
Staff melayani Pelanggan

no_telp
email alamat
alamat
email
password
Berdasarkan diagram ER di atas, dapat diketahui bahwa model data penyewaan dvd ada 5 buah
entitas yang terdiri dari entitas pelanggan, staff, dvd, detail_dvd, detail_transaksi dan transaksi.

2. Normalisasi

Normalisasi merupakan sebuah proses pengujian pada tabel untuk menentukan apakah sebuah
tabel telah memenuhi aturan-aturan dan dapat dinyatakan berada dalam bentuk normal. Normalisasi dari
contoh kasus model data penyewaan dvd adalah sebagai berikut.

a. Skema Relasi.

Transaksi (id_transaksi, id_pelanggan, nama_pelanggan, id_DVD, judul, id_staff, nama_staff,


tgl_pinjam, tgl_kembali, last_update).

b. Relasi 1NF

transaksi (id_transaksi, id_DVD, judul, tgl_pinjam, tgl_kembali, last_update, id_staff, nama_staff).


pelanggan (id_pelanggan, nama_pelanggan,)
id_staff  nama_staff

c. Relasi 2NF

transaksi (id_transaksi, tgl_pinjam, tgl_kembali, last_update, id_DVD, judul)


pelanggan (id_pelanggan, nama_pelanggan,)
staff (id_staff, nama_staff)
Id_DVD  judul

d. Relasi 3NF

transaksi (id_transaksi, tgl_pinjam, tgl_kembali, last_update)


pelanggan (id_pelanggan, nama_pelanggan,)
staff (id_staff, nama_staff)
dvd_info (id_DVD, judul)

3. Perintah-perintah MySQL

Berikut adalah perintah-perintah MySQL untuk membuat model data penyewaan dvd.

a. Membuat Database
CREATE DATABASE rental_dvd;

b. Menampilkan database yang ada


SHOW DATABASES;
Hasilnya :
+-----------------------------+
| Database |
+-----------------------------+
| information_schema |
| mysql |
| rental_dvd |
+-----------------------------+

c. Memilih database yang akan digunakan


USE rental_dvd;

d. Membuat Tabel

Tabel DVD_info
create table DVD_info
(
id_DVD smallint unsigned not null primary key,
judul varchar(255) not null,
jml_disc int not null,
thn_release year(4) not null,
category varchar(25) not null,
studio_terbit varchar(30) not null,
rating enum('G','PG','PG-13','R','NC-17'),
format varchar(30) not null,
status varchar(25) not null
);

Tabel Pelanggan
create table Pelanggan
(
id_pelanggan varchar(8) not null primary key,
nama_pelanggan varchar(45) not null,
email varchar(50),
alamat varchar(255) not null,
no_telp varchar(10) not null
);

Tabel Transaksi
create table transaksi
(
id_transaksi varchar(11) not null primary key,
id_pelanggan varchar(8) not null,
nama_pelanggan varchar(45) not null,
id_DVD smallint unsigned not null,
judul varchar(255) not null,
tgl_pinjam datetime not null,
tgl_kembali datetime not null,
id_staff varchar(8) not null,
nama_staff varchar(45) not null,
last_update timestamp not null ,
foreign key(id_pelanggan) references pelanggan(id_pelanggan),
foreign key(id_DVD) references DVD_info(id_DVD),
foreign key(id_staff) references staff(id_staff)
);

Tabel Staff
create table Staff
(
id_staff varchar(8) not null primary key,
nama_staff varchar(45) not null,
email varchar(50),
alamat varchar(255) not null,
username varchar(16) not null,
password varchar(40)
);

Tabel detail_DVD
create table detail_DVD
(
id smallint(5) unsigned not null primary key,
id_DVD smallint unsigned not null,
actor varchar(45) not null,
peranan varchar(45) not null,
sutradara varchar(45) not null,
produser varchar(45) not null,
e_produser varchar(45) not null,
ko_produser varchar(45) not null,
ast_produser varchar(45) not null,
penulis varchar(45) not null,
komposer varchar(45) not null,
foreign key(id_DVD) references DVD_info(id_DVD)
);
Tabel detail_transaksi
create table detail_transaksi
(
detail_id int not null primary key,
id_transaksi varchar(11) not null,
id_DVD smallint unsigned not null,
last_update timestamp not null ,
foreign key(id_transaksi) references transaksi (id_transaksi ),
foreign key(id_DVD) references DVD_info(id_DVD)
);

e. Menampilkan Tabel
SHOW tables;

Hasilnya :
+----------------------+
| Tables_in_rental_dvd |
+----------------------+
| detail_dvd |
| detail_transaksi |
| dvd_info |
| pelanggan |
| staff |
| transaksi |
+----------------------+

f. Mendeskripsikan tabel

Tabel detail_dvd
DESC detail_dvd;
+--------------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+----------------------+------+-----+---------+-------+
| id | smallint(5) unsigned | NO | PRI | NULL | |
| id_DVD | smallint(5) unsigned | NO | MUL | NULL | |
| actor | varchar(45) | NO | | NULL | |
| peranan | varchar(45) | NO | | NULL | |
| sutradara | varchar(45) | NO | | NULL | |
| produser | varchar(45) | NO | | NULL | |
| e_produser | varchar(45) | NO | | NULL | |
| ko_produser | varchar(45) | NO | | NULL | |
| ast_produser | varchar(45) | NO | | NULL | |
| penulis | varchar(45) | NO | | NULL | |
| komposer | varchar(45) | NO | | NULL | |
+--------------+----------------------+------+-----+---------+-------+
Tabel detail_transaksi
DESC detail_transaksi;

Tabel dvd_info
DESC dvd_info;

Tabel pelanggan
DESC pelanggan;

+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| id_pelanggan | varchar(8) | NO | PRI | NULL | |
| nama_pelanggan | varchar(45) | NO | | NULL | |
| email | varchar(50) | YES | | NULL | |
| alamat | varchar(255) | NO | | NULL | |
| no_telp | varchar(10) | NO | | NULL | |
+----------------+--------------+------+-----+---------+-------+

Tabel staff
DESC staff;

+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id_staff | varchar(8) | NO | PRI | NULL | |
| nama_staff | varchar(45) | NO | | NULL | |
| email | varchar(50) | YES | | NULL | |
| alamat | varchar(255) | NO | | NULL | |
| username | varchar(16) | NO | | NULL | |
| password | varchar(40) | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+

Tabel transaksi
DESC transaksi;