-
RANCANGAN STRUKTUR TABEL DATABASE YG DIGUNAKAN (DLM BENTUK 3NF)
Tabel: user
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
user_name
|
VarChar
|
20
|
No
|
-
|
Primary Key
|
2
|
password
|
VarChar
|
20
|
No
|
-
|
-
|
3
|
level_user
|
Char
|
1
|
No
|
5
|
1 = admin; 2
= kepala sekolah; 3 = kepala perpustakaan
4 = anggota; 5 =
pengunjung
|
Tabel: tanggal_libur
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
tanggal_libur
|
Date
|
no
|
-
|
Primary Key
|
|
2
|
Keterangan_libur
|
Varchar
|
50
|
no
|
-
|
-
|
Tabel: tarif_denda
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
jumlah_hari_maksimal
|
Num
|
3
|
No
|
-
|
Primary Key
|
2
|
jumlah_denda
|
Num
|
7
|
No
|
-
|
-
|
Tabel: tarif _hilang
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
harga_maksimal
|
Num
|
7
|
No
|
-
|
Primary Key
|
2
|
jumlah_denda
|
Num
|
7
|
No
|
-
|
-
|
Tabel: tarif _rusak
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
harga_maksimal
|
Num
|
7
|
No
|
-
|
Primary Key
|
2
|
jumlah_denda
|
Num
|
7
|
No
|
-
|
-
|
Tabel: anggota
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_anggota
|
Char
|
6
|
no
|
-
|
Primary Key
|
2
|
nama_anggota
|
VarChar
|
100
|
no
|
-
|
-
|
3
|
alamat
|
VarChar
|
100
|
no
|
-
|
-
|
4
|
kode_kecamatan
|
Char
|
6
|
no
|
-
|
Foreign Key
|
5
|
telepon
|
VarChar
|
12
|
yes
|
-
|
-
|
6
|
email
|
VarChar
|
20
|
yes
|
-
|
-
|
7
|
tgl_mulai_anggota
|
Date
|
no
|
-
|
-
|
|
8
|
jenis_anggota
|
Char
|
1
|
no
|
2
|
1 = guru/
karyawan; 2 = siswa
|
9
|
status_anggota
|
Char
|
1
|
no
|
2
|
1 = aktif; 2 = tidak aktif
|
Tabel: jenis
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_jenis_buku
|
Char
|
4
|
No
|
-
|
Primary Key
|
2
|
nama_jenis_buku
|
VarChar
|
20
|
No
|
-
|
-
|
3
|
Tabel: bidang
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_bidang
|
Char
|
4
|
No
|
-
|
Primary Key
|
2
|
nama_bidang
|
VarChar
|
20
|
No
|
-
|
-
|
Tabel: penerbit
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_penerbit
|
Char
|
4
|
No
|
-
|
Primary Key
|
2
|
nama_penerbit
|
VarChar
|
30
|
No
|
-
|
-
|
3
|
alamat
|
VarChar
|
100
|
no
|
-
|
-
|
4
|
kode_kecamatan
|
Char
|
6
|
no
|
-
|
Foreign Key
|
5
|
telepon
|
VarChar
|
12
|
yes
|
-
|
-
|
6
|
email
|
VarChar
|
20
|
yes
|
-
|
-
|
Tabel: penulis
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_penulis
|
Char
|
4
|
No
|
-
|
Primary Key
|
2
|
nama_penulis
|
VarChar
|
100
|
No
|
-
|
-
|
3
|
alamat
|
VarChar
|
100
|
no
|
-
|
-
|
4
|
kode_kecamatan
|
Char
|
6
|
no
|
-
|
Foreign Key
|
5
|
telepon
|
VarChar
|
12
|
yes
|
-
|
-
|
6
|
email
|
VarChar
|
20
|
yes
|
-
|
-
|
Tabel: propinsi
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_propinsi
|
Char
|
2
|
No
|
-
|
Primary Key
|
2
|
nama_propinsi
|
VarChar
|
30
|
No
|
-
|
-
|
Tabel: kabupaten
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_kabupaten
|
Char
|
4
|
No
|
-
|
Primary Key
|
2
|
nama_kabupaten
|
VarChar
|
30
|
No
|
-
|
-
|
3
|
kode_propinsi
|
Char
|
2
|
No
|
-
|
Foreign Key
|
Tabel: kecamatan
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_kecamatan
|
Char
|
6
|
No
|
-
|
Primary Key
|
2
|
nama_kecamatan
|
VarChar
|
30
|
No
|
-
|
-
|
3
|
kode_kabupaten
|
Char
|
4
|
No
|
-
|
Foreign Key
|
Tabel: pinjam
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_pinjam
|
Primary Key
|
||||
2
|
kode_anggota
|
Char
|
6
|
No
|
-
|
Primary Key / Foreign Key
|
3
|
kode_buku
|
Char
|
10
|
No
|
-
|
Primary Key / Foreign Key
|
4
|
tanggal_pinjam
|
Date
|
No
|
Primary Key / Foreign Key
|
||
5
|
tanggal_harus_kembali
|
Date
|
N0
|
-
|
-
|
Tabel: kembali
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_pinjam
|
Primary Key / Foreign Key
|
||||
2
|
kode_kembali
|
Primary Key
|
||||
3
|
kode_anggota
|
Char
|
6
|
No
|
-
|
Primary Key / Foreign Key
|
4
|
kode_buku
|
Char
|
10
|
No
|
-
|
Primary Key / Foreign Key
|
5
|
tanggal_pinjam
|
Date
|
No
|
Primary Key / Foreign Key
|
||
6
|
tanggal_kembali
|
Date
|
No
|
-
|
-
|
Tabel: bayar_denda
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_kembali
|
Primary Key / Foreign Key
|
||||
2
|
kode_anggota
|
Char
|
6
|
No
|
-
|
Primary Key/ Foreign Key
|
3
|
kode_buku
|
Char
|
10
|
No
|
-
|
Primary Key/ Foreign Key
|
4
|
tanggal_pinjam
|
Date
|
No
|
Primary Key/ Foreign Key
|
||
5
|
tanggal_bayar
|
Date
|
No
|
-
|
-
|
|
6
|
jumlah_denda
|
Num
|
9
|
No
|
0
|
Dihitung otomatis
|
Tabel: bayar_hilang
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_pinjam
|
Primary Key / Foreign Key
|
||||
2
|
kode_anggota
|
Char
|
6
|
No
|
-
|
Primary Key / Foreign Key
|
3
|
kode_buku
|
Char
|
10
|
No
|
-
|
Primary Key / Foreign Key
|
4
|
tanggal_pinjam
|
Date
|
No
|
Primary Key / Foreign Key
|
||
5
|
tanggal_bayar
|
Date
|
No
|
-
|
-
|
|
6
|
jumlah_denda
|
Num
|
9
|
No
|
0
|
Dihitung otomatis
|
Tabel: bayar_rusak
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_pinjam
|
Primary Key / Foreign Key
|
||||
2
|
kode_anggota
|
Char
|
6
|
No
|
-
|
Primary Key / Foreign Key
|
3
|
kode_buku
|
Char
|
10
|
No
|
-
|
Primary Key / Foreign Key
|
4
|
tanggal_pinjam
|
Date
|
No
|
Primary Key / Foreign Key
|
||
5
|
tanggal_bayar
|
Date
|
No
|
-
|
-
|
|
6
|
jumlah_denda
|
Num
|
9
|
No
|
0
|
Dihitung otomatis
|
Tabel: buku
|
||||||
No
|
Nama Field
|
Tipe
|
Ukuran
|
Null
|
Default
|
Keterangan
|
1
|
kode_buku
|
Char
|
10
|
No
|
-
|
Primary Key
|
2
|
Judul_buku
|
VarChar
|
100
|
No
|
-
|
-
|
3
|
kode_jenis
|
Char
|
4
|
No
|
-
|
Foreign Key
|
4
|
kode_bidang
|
Char
|
4
|
No
|
-
|
Foreign Key
|
5
|
kode_penulis_utama
|
Char
|
4
|
No
|
-
|
Foreign Key
|
6
|
kode_penerbit
|
Char
|
4
|
No
|
-
|
Foreign Key
|
7
|
jumlah
|
Num
|
1
|
No
|
-
|
-
|
8
|
bahasa
|
Char
|
1
|
No
|
1
|
1 = Indonesia; 2 = Asing
|
9
|
isbn
|
Char
|
12
|
No
|
-
|
-
|
10
|
tahun
|
Char
|
4
|
No
|
-
|
-
|
11
|
jumlah_halaman
|
Num
|
1
|
No
|
-
|
-
|
12
|
edisi
|
Char
|
1
|
No
|
1
|
-
|
13
|
cetakan_ke
|
Char
|
1
|
No
|
1
|
-
|
14
|
status
|
Char
|
1
|
No
|
1
|
1 = Baik; 2 = Rusak
|
DIAGRAM KERELASIAN ANTAR TABEL DATABASE
PERINTAH SQL
1.create database
perpustakaan;
2. membuat table;
·
create
table user (
user_namevarchar(20) primary key not null,
password varchar(20) not null,
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 anggota (
kd_anggota char(6) primary key not null,
nama_anggota varchar(50) not null,
alamat varchar(50) not null,
telepon varchar(12),
jenis_anggota varchar(20));
·
create
table jenis_buku (
kd_jenis_buku char(4) primary key not null,
nama_jenis_buku varchar(30) not null);
·
create
table bidang (
kd_bidang char(4) primary key not null,
nama_bidang varchar(30) not null);
·
create
table penerbit (
kd_penerbit char(4) primary key not null,
nama_penerbit varchar(30) not null,
alamat varchar(50) not null,
kd_kecamatan char(6) not null,
telepon varchar(12)not null,
email varchar(20));
·
create
table propinsi (
kd_propinsi char(2) primary key
not null,
nama_propinsi varchar(30) not null);
·
create
table kabupaten (
kd_kabupaten char(6) primary key not null,
nama_kabupaten varchar(30) not null,
kd_propinsi char(2) not null,
foreign key(kd_propinsi) references propinsi on update cascade on
delete cascade);
·
create
table kecamatan (
kd_kecamatan char(6) primary key not null,
nama_kecamatan varchar(30) not null,
kd_kabupaten char(6) not null,
foreign key(kd_kabupaten) references kabupaten on update cascade on
delete cascade);
·
create
table buku (
kd_buku char(10) primary key not null,
judul_buku varchar(35) not null,
kd_jenis char(4) not null,
kd_bidang char(4) not null,
kd_penulis char(4) not null,
kd_penerbit char(4) not null,
jumlah int(10) not null,
tahun char(4) not 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);
·
create
table penulis (
kd_penulis char(4) primary key not null,
nama_penulis varchar(30) not null,
alamat varchar(50) not null,
kd_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 pinjam (
Kd_pinjam char (6) primary key not null,
kd_anggota char(6) not null,
kd_buku char(10) not null,
tanggal_pinjam date not null,
tanggal _kembali date not null,
foreign key(kd_anggota) references anggota on update cascade on delete
cascade,
foreign key(kd_buku) references buku on update cascade on delete
cascade,
primary key(kd_anggota, kd_buku, tanggal_pinjam);
·
create
table kembali (
Kd_pinjam char(6),
Kd_kembali char(6),
kd_anggota char(6) not null,
kd_buku char(10) not null,
tanggal_pinjam date not null,
tanggal_ kembali date not null,
foreign key(kd_anggota, kd_buku, tanggal_pinjam) references pinjam on
update cascade on delete cascade
primary key(kd_anggota, kd_buku, tanggal_pinjam);
·
create
table bayar_denda (
kd_anggota char(6) not null,
kd_buku char(10) not null,
tanggal_pinjam date not null,
tanggal_kembali date not null,
jumlah_denda numeric(9),
foreign key(kd_anggota, kd_buku, tanggal_pinjam) references kembali on
update cascade on delete cascade
primary key(kd_anggota, kd_buku, tanggal_pinjam);
·
create
table bayar_hilang (
kd_pinjam char(6) not null,
kd_anggota char(10) not null,
kd_buku char(6),
tanggal_pinjam date not null,
tanggal_bayar date not null,
jumlah numeric(9),
foreign key(kd_pinjam,kd_anggota, kd_buku, tanggal_pinjam) references
kembali on update cascade on delete cascade
primary key(kd_anggota, kd_buku, tanggal_pinjam);
3. select sum(jumlah) as jumlahsemuabuku from
buku;
4. select judul_buku, nama_penerbit from
penerbit left join buku on buku.kode_penerbit=penerbit.kode_penerbit left join
pinjam on buku.kode_buku=pinjam.kode_buku order by tanggal_pinjam;
5. select* from anggota left join pinjam on
anggota.kode_anggota=pinjam.kode_anggota where pinjam.kode_anggota=not null
order by tanggal_pinjam;
6. select anggota.kode_anggota,nama_anggota,
alamat, kode_kecamatan, telepon, email, tgl_mulai_anggota, jenis_anggota,
status_anggota from anggota left join bayar_denda on
anggota.kode_anggota=bayar_denda.kode_anggota where
bayar_denda.kode_anggota=not null order by nama_anggota;
7. select anggota.kode_anggota,nama_anggota,
alamat, kode_kecamatan, telepon, email, tgl_mulai_anggota, jenis_anggota,
status_anggota from anggota left join bayar_hilang on
anggota.kode_anggota=bayar_hilang.kode_anggota where bayar_hilang.kode_anggota=not
null order by nama_anggota;
8. select anggota.kode_anggota,nama_anggota,
alamat, kode_kecamatan, telepon, email, tgl_mulai_anggota, jenis_anggota,
status_anggota from anggota left join bayar_rusak on
anggota.kode_anggota=bayar_rusak.kode_anggota where
bayar_rusak.kode_anggota=not null order by nama_anggota;
Tidak ada komentar:
Posting Komentar