TUGAS SMBD REVIEW INDIVIDU
Posted: by Ajiex Estrada in
0
TUGAS
REVIEW INDIVIDU
REVIEW INDIVIDU
Sistem Manajemen Basis Data
OLEH :
SUDRAJAD SETO AJI
101051065
INSTITUT SAINS DAN TEKNOLOGI AKPRIND
YOGYAKARTA
2013
1.
RANCANGAN
STRUKTUR TABEL DATABASE YG DIGUNAKAN (Dalam Bentuk 3NF)
3.
DIAGRAM
KERELASIAN ANTAR TABEL DATABASE
4.
PERINTAH SQL NYA
Membuat database perpustakaan
create database dbperpustakaan;
Masuk ke 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. Menghitung jumlah total semua koleksi
perpustakaan
select count(*) from buku;
b. Menampilkan daftar buku dan penerbitnya,
urut ascending berdasarkan abjad judul buku
select kode_buku, kode_penerbit, judul_buku,
nama_penerbit from buku join penerbit where buku.kode_penerbit=penerbit.kode_penerbit
order by judul, judul asc;
c.
Menampilkan
daftar anggota sedang meminjam buku, urut ascending berdasarkan tanggal
pinjam
select
kode_anggota,kode_pinjam, nama_anggota,alamat, tanggal_pinjam from pinjam join
anggota where pinjam.kode_anggota=anggota.kode_anggota order by tanggal_pinjam,
tanggal_pinjam asc;
d.
Menampilkan
daftar seluruh anggota yang pernah membayar terlambat mengembalikan buku, urut ascending
berdasarkan abjad nama anggota
select
kode_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_anggota asc;
e.
Menampilkan
daftar seluruh anggota yang pernah membayar denda buku hilang, urut ascending
berdasarkan abjad nama anggota.
select kode_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_anggota asc;
f.
Menampilkan
daftar seluruh anggota yang pernah membayar denda buku rusak, urut ascending
berdasarkan abjad nama anggota
select kode_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_anggota asc;