TUGAS REVIEW
SISTEM MANAJEMEN BASIS DATA
PERANCANGAN SISTEM PENGOLAHAN DATA
PERPUSTAKAAN
( RANCANGAN STRUKTUR TABEL DALAM
BENTUK 3NF )
NAMA : AHMAD SYARIF
NIM : 101051046
KEL.HARI : KM_2
JURUSAN : TEKNIK
INFORMATIKA
FAKULTAS : TEKNOLOGI
INDUSTRI
INSTITUT
SAINS DAN TEKNOLOGI AKPRIND YOGYAKARTA
2012/2013
·
RANCANGAN
STRUKTUR TABEL DATABASE YG DIGUNAKAN (DLM BENTUK 3NF)
·
DIAGRAM
KERELASIAN ANTAR TABEL DATABASE
·
SCHEMA DATABASE
DENGAN DDL
o DEFINISI DATABASE
create database dbperpustakaan;
o DEFINISI TABEL DALAM DATABASE
use dbperpustakaan
create
table user (
user_namevarchar(5) not
nullunique primary key,
password
varchar(20) not null,
level_user
char(1) default ‘5’check(level_user=‘1’ or level_user=‘2’ or level_user=‘3’ or
level_user=‘4’ or level_user=‘5’));
create table
tanggal_libur (
tanggal_liburdate not nullunique primary key,
keterangan_libur
varchar(50) not null);
create
table tarif_denda (
jumlah_hari_maksimal
tinyint(3) not null unique primary key,
jumlah_denda
mediumint(9) not null);
create
table tarif_hilang (
harga_maksimal
mediumint (9) not null unique primary key,
jumlah_denda
mediumint(9) not null);
create
table tarif_rusak (
harga_maksimal
mediumint (9) not null unique primary key,
jumlah_denda
mediumint(9) not null);
create
table anggota (
kode_anggota
char(6) not null unique primary key,
nama_anggota
varchar(100) not null,
alamat
varchar(100) not null,
kode_kecamatan
char(6) not null,
telepon
varchar(12),
email
varchar(20),
tgl_mulai_anggota
date not null,
jenis_anggota
char(1) not null default ‘2’ check(jenis_anggota=‘1’ or jenis_anggota=‘2’),
status_anggota
char(1) not null default ‘1’ check(status_anggota=‘1’ or status_anggota=‘2’),
foreign
key(kode_kecamatan) references kecamatan on update cascade on deletecascade;
create
table jenis (
kode_jenis_buku
char(4) not null unique primary key,
nama_jenis_buku
varchar(20) not null;
create
table bidang (
kode_bidang
char(4) not null unique primary key,
nama_bidang
varchar(20) not null;
create
table penerbit (
kode_penerbit
char(4) not null unique primary key,
nama_penerbit
varchar(30) not null,
alamat
varchar(100) not null,
kode_kecamatan
char(6) not null,
telepon
varchar(12),
email
varchar(20),
foreign
key(kode_kecamatan) references kecamatan on update cascade on delete cascade;
create
table penulis (
kode_penulis
char(4) not null unique primary key,
nama_penulis_utama
varchar(100) not null,
alamat
varchar(100) not null,
kode_kecamatan
char(6) not null,
telepon
varchar(12),
email
varchar(20),
foreign
key(kode_kecamatan) references kecamatan on update cascade on delete cascade;
create
table propinsi (
kode_propinsi
char(2) not null unique primary key,
nama_propinsi
varchar(30) not null;
create
table kabupaten (
kode_kabupaten
char(4) not null unique primary key,
nama_kabupaten
varchar(30) not null,
kode_propinsi
char(2) not null,
foreign
key(kode_propinsi) references propinsi on update cascade on delete cascade;
create
table kecamatan (
kode_kecamatan
char(6) not null unique primary key,
nama_kecamatan
varchar(30) not null,
kode_kabupaten
char(4) not null,
foreign
key(kode_kabupaten) references kabupaten on update cascade on delete cascade;
create
table pinjam (
kode_anggota
char(6) not null,
kode_buku
char(10) not null,
tanggal_pinjam
date not null,
tanggal_harus_kembali
date not null,
foreign
key(kode_anggota) references anggota on update cascade on delete cascade,
foreign
key(kode_buku) references buku on update cascade on delete cascade,
primary
key(kode_anggota, kode_buku, tanggal_pinjam);
create
table kembali (
kode_anggota
char(6) not null,
kode_buku
char(10) not null,
tanggal_pinjam
date not null,
tanggal_
kembali date not null,
foreign
key(kode_anggota, kode_buku, tanggal_pinjam) references pinjam on update
cascade on delete cascade
primary
key(kode_anggota, kode_buku, tanggal_pinjam);
create
table bayar_denda (
kode_anggota
char(6) not null,
kode_buku
char(10) not null,
tanggal_pinjam
date not null,
tanggal_bayar
date not null,
jumlah_denda
mediumint(9),
foreign
key(kode_anggota, kode_buku, tanggal_pinjam) references kembali on update
cascade on delete cascade
primary
key(kode_anggota, kode_buku, tanggal_pinjam);
create
table bayar_hilang (
kode_anggota
char(6) not null,
kode_buku
char(10) not null,
tanggal_pinjam
date not null,
tanggal_bayar
date not null,
jumlah_denda
mediumint(9),
foreign
key(kode_anggota, kode_buku, tanggal_pinjam) references pinjam on update
cascade on delete cascade
primary
key(kode_anggota, kode_buku, tanggal_pinjam);
create
table bayar_rusak (
kode_anggota
char(6) not null,
kode_buku
char(10) not null,
tanggal_pinjam
date not null,
tanggal_bayar
date not null,
jumlah_denda
mediumint(9),
foreign
key(kode_anggota, kode_buku, tanggal_pinjam) references pinjam on update
cascade on delete cascade
primary
key(kode_anggota, kode_buku, tanggal_pinjam);
create
table buku (
kode_buku
char(10) not null unique primary key,
judul_buku
varchar(100) not null,
kode_jenis
char(4) not null,
kode_bidang
char(4) not null,
kode_penulis
char(4) not null,
kode_penerbit
char(4) not null,
jumlah
tinyint(2) not null,
bahasa
char(1) not null default ‘1’ check(bahasa=‘1’ or bahasa=‘2’),
isbn
char(12) not null,
tahun
char(4) nor null,
jumlah_halaman
mediumint(4) not null,
edisi char(1)
not null,
cetakan_ke
char(1) not null,
status
char(1) default ‘1’ check(status=’1’ or status=’2’),
foreign
key(kode_jenis) references jenis on update cascade on delete cascade,
foreign
key(kode_bidang) references bidang on update cascade on delete cascade,
foreign
key(kode_penulis) references penulis on update cascade on delete cascade,
foreign
key(kode_penerbit) references penerbit on update cascade on delete cascade;
a.
Menghitungjumlah total
semuakoleksiperpustakaan
select
count(*) from buku;
b. Menampilkandaftarbukudanpenerbitnya, urutascending
berdasarkanabjadjudulbuku
selectkode_buku,
kode_penerbit, judul_buku, nama_penerbit from buku join penerbit where
buku.kode_penerbit=penerbit.kode_penerbit order by judul, judulasc;
c.
Menampilkandaftaranggotasedangmeminjambuku,
urutascending berdasarkantanggalpinjam
selectkode_anggota,kode_pinjam,
nama_anggota,alamat, tanggal_pinjam from pinjam join anggota where
pinjam.kode_anggota=anggota.kode_anggota order by tanggal_pinjam,
tanggal_pinjamasc;
d.
Menampilkandaftarseluruhanggota
yang pernahmembayarterlambatmengembalikanbuku, urutascending berdasarkanabjadnamaanggota
selectkode_anggota,nama_anggota, tanggal_pinjam,
tanggal_bayar, jumlah_denda from bayar_denda join anggota where
bayar_denda.kode_anggota=anggota.kode_anggota order by nama_anggota,
nama_anggotaasc;
e.
Menampilkandaftarseluruhanggota
yang pernahmembayardendabukuhilang, urutascending berdasarkanabjadnamaanggota.
selectkode_anggota,nama_anggota,
tanggal_pinjam, tanggal_bayar, jumlah_denda from bayar_hilang join anggota
where bayar_hilang.kode_anggota=anggota.kode_anggota order by nama_anggota,
nama_anggotaasc;
f.
Menampilkandaftarseluruhanggota
yang pernahmembayardendabukurusak, urutascending berdasarkanabjadnamaanggota
selectkode_anggota,nama_anggota,
tanggal_pinjam, tanggal_bayar, jumlah_denda from bayar_rusak join anggota where
bayar_rusak.kode_anggota=anggota.kode_anggota order by nama_anggota,
nama_anggotaasc;
Tidak ada komentar:
Posting Komentar