Upload
isti-istiqomah
View
1.152
Download
26
Embed Size (px)
Citation preview
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.
N
N
memiliki
1
NTransaksi
melakukan
id_DVD
nama_pelanggan
tgl_kembali
id_pelanggan
nama_stafftgl_pinjam
id_staff
id_transaksi
judul
last_update
1
DVD
id_DVD
judul
jml_disc
thn_release
category
studio_terbit
rating
format
status
1
Detail DVD
id_DVD
sutradarako_produser
peranan
e_produser
ast_produser
produser
idactor
penulis
komposer
Staff melayani Pelanggan
nama_staff
id_staff
1
alamatemail
username
password
nama_pelanggan id_pelanggan
N
no_telp
alamatemail
Detail Transaksi
id_DVD
detail_id
id_transaksi
last_update
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;