REVIEW SMBD

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)
·         PRIMARY KEY & FOREIGN KEY




·         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