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
id
format
ast_produser
jml_disc
category rating
id_DVD studio_terbit
id_DVD 1
1
DVD
memiliki
Detail DVD
thn_release
peranan
N
e_produser
judul last_update
id_transaksi
komposer
produser
id_pelanggan
nama_pelanggan
penulis ko_produser
id_DVD N
Detail Transaksi
Transaksi
id_staff
1
detail_id
id_transaksi
tgl_kembali
nama_staff
tgl_pinjam
id_DVD
melakukan
last_update
N
nama_staff nama_pelanggan
id_staff
id_pelanggan
username
1 Staff
N melayani
Pelanggan no_telp
email
alamat email password
alamat
sutradara
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;