3. Gambarkan diagram kerelasian antar tabel database
JAWAB
4. Tuliskan perintah SQL untuk;
• Membuat database perpustakaan
Perintah SQL
mysql> create database perpustakaan;
mysql> use perpustakaan;
• Membuat tabel database master & transaksi
Perintah SQL
Membuat tabel user
mysql> create table user (user_name varchar(5) not null unique 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'));
Membuat tabel tanggal libur
Perintah SQL
mysql> create table tanggal_libur (
-> tanggal_libur date not null unique primary key,
-> keterangan_libur varchar(50) not null);
Membuat tabel tarif denda
Perintah SQL
mysql> create table tarif_denda (
-> jumlah_hari_maksimal tinyint(3) not null unique primary key,
-> jumlah_denda mediumint(9) not null);
Membuat tabel tarif hilang
Perintah SQL
mysql> create table tarif_hilang (
-> harga_maksimal mediumint (9) not null unique primary key,
-> jumlah_denda mediumint(9) not null);
Membuat tabel tarif rusak
Perintah SQL
mysql> create table tarif_rusak (
-> harga_maksimal mediumint (9) not null unique primary key,
-> jumlah_denda mediumint(9) not null);
Membuat tabel anggota
Perintah SQL
mysql> 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,
-> telp 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(kode_kecamatan)
-> on update cascade on delete cascade);
Membuat tabel jenis
Perintah SQL
mysql> create table jenis (
-> kode_jenis_buku char(4) not null unique primary key,
-> nama_jenis_buku varchar(20) not null);
Membuat tabel bidang
Perintah SQL
mysql> create table bidang (
-> kode_bidang char(4) not null unique primary key,
-> nama_bidang varchar(20) not null);
Membuat tabel penerbit
Perintah SQL
mysql> 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(kode_kecamatan) on update cascade on delete cascade);
Membuat tabel penulis
Perintah SQL
mysql> 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(kode_kecamatan) on update cascade on delete cascade);
Membuat tabel propinsi
Perintah SQL
mysql> create table propinsi (
-> kode_propinsi char(2) not null unique primary key,
-> nama_propinsi varchar(30) not null);
Membuat tabel kabupaten
Perintah SQL
mysql> 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(kode_propinsi) on update cascade on delete cascade);
Membuat tabel kecamatan
Perintah SQL
mysql> 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(kode_kabupaten) on update cascade on delete cascade);
Membuat tabel pinjam
Perintah SQL
mysql> 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(kode_anggota) on update cascade on delete cascade,
-> foreign key(kode_buku) references buku(kode_buku) on update cascade on delete cascade,
-> primary key(kode_anggota, kode_buku, tanggal_pinjam));
Membuat tabel kembali
Perintah SQL
mysql> 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(kode_anggota,kode_buku, tanggal_pinjam) on update cascade on
delete cascade,
-> primary key(kode_anggota, kode_buku,tanggal_pinjam));
Membuat tabel bayar denda
Perintah SQL
mysql> 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(kode_anggota,kode_buku, tanggal_pinjam) on update cascade on
delete cascade,
-> primary key(kode_anggota,kode_buku,tanggal_pinjam));
Membuat tabel bayar hilang
Perintah SQL
mysql> 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(kode_anggota,kode_buku,t
anggal_pinjam) on update cascade on delete cascade,
-> primary key(kode_anggota, kode_buku, tanggal_pinjam));
Membuat tabel bayar rusak
Perintah SQL
mysql> 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(kode_anggota,kode_buku,t
anggal_pinjam) on update cascade on delete cascade,
-> primary key(kode_anggota,kode_buku,tanggal_pinjam));
Membuat tabel buku
Perintah SQL
mysql> create table buku(
-> kode_buku char(10)not null unique primary key,
-> judul_buku varchar(100)not null,
-> kode_jenis_buku 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) 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_buku) references jenis(kode_jenis_buku) on update cascade on delete cascade,
-> foreign key(kode_bidang) references bidang(kode_bidang) on update cascade on delete cascade,
-> foreign key(kode_penulis) references penulis(kode_penulis) on update cascade on delete cascade,
-> foreign key(kode_penerbit) references penerbit(kode_penerbit) on update cascade on delete cascade);
• Menghitung jumlah total semua koleksi perpustakaan
Perintah SQL
mysql> SELECT SUM(jumlah) as jumlah_total_koleksi_perpustakaan FROM buku;
• Menampilkan daftar buku dan penerbitnya, urut ascending berdasarkan abjad judul buku
Perintah SQL
mysql> select judul_buku,nama_penerbit from buku INNER JOIN penerbit USING(kode_penerbit) ORDER BY judul_buku;
• Menampilkan daftar anggota sedang meminjam buku, urut ascending berdasarkan tanggal
pinjam
Perintah SQL
mysql> SELECT nama_anggota, tanggal_pinjam from anggota INNER JOIN
pinjam using(kode_anggota) ORDER BY tanggal_pinjam, nama_anggota;
• Menampilkan daftar seluruh anggota yang pernah membayar terlambat mengembalikan buku,
urut ascending berdasarkan abjad nama anggota
Perintah SQL
mysql> select nama_anggota,tanggal_pinjam,tanggal_bayar from
bayar_denda INNER JOIN anggota USING(kode_anggota) ORDER BY
nama_anggota;
• Menampilkan daftar seluruh anggota yang pernah membayar denda buku hilang, urut ascending
berdasarkan abjad nama anggota
Perintah SQL
mysql> select nama_anggota,tanggal_bayar,jumlah_denda from
bayar_hilang INNER JOIN anggota USING(kode_anggota) ORDER BY
nama_anggota;
• Menampilkan daftar seluruh anggota yang pernah membayar denda buku rusak, urut ascending
berdasarkan abjad nama anggota
Perintah SQL
mysql> select nama_anggota,tanggal_bayar,jumlah_denda from
bayar_rusak INNER JOIN anggota USING(kode_anggota) ORDER BY
nama_anggota;
Tidak ada komentar:
Posting Komentar