Laman

Jumat, 18 Januari 2013

JAWABAN REVIEW SMBD No 3 dan 4

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