4.1.3 Perancangan Basisdata Fisikal
4.1.3.1 Perancangan Basisdata Relasional
Informasi yang dibutuhkan dalam perancangan basis data fisikal dapat diperoleh melalui kamus data dan mendefinisikan penggambaran relasional menggunakan Database Design Language (DBDL). Berikut ini adalah perancangan basisdata relasional untuk setiap entiti yang bertujuan untuk domain dari setiap atribut supaya user dapat mengerti penggunaan setiap atribut tersebut berdasarkan penjelasan beserta batasan yang terdapat dalam setiap atribut.
• DBDL untuk Karyawan
Domain KodeKaryawan char, length 6 Domain NamaKaryawan varchar, length 30
Domain Alamat varchar, length 100 Domain KodePos varchar, length 7 Domain NomorRekening varchar, length 14
Karyawan (
Kd_Kry KodeKaryawan NOT NULL,
Nm_Kry NamaKaryawan NOT NULL,
Alamat Alamat NOT NULL,
Kd_Pos KodePos NULL,
No_Rek NomorRekening NULL,
Jabatan Jabatan NOT NULL,
PRIMARY KEY (Kd_Kry) );
• DBDL untuk Pelanggan
Domain KodePelanggan char, length 6 Domain NamaPelanggan varchar, length 30
Domain Alamat varchar, length 100 Domain Fax varchar, length 15 Domain Email varchar, length 40 Domain KodePos varchar, length 7 Domain NomorRekening varchar, length 14 Pelanggan (
Kd_Plg KodePelanggan NOT NULL,
Nm_Plg NamaPelanggan NOT NULL,
Alamat Alamat NOT NULL,
Fax Fax NULL,
Kd_Pos KodePos NULL,
No_Rek NomorRekening NULL,
PRIMARY KEY (Kd_Plg) );
• DBDL untuk Pemasok
Domain KodePemasok char, length 6 Domain NamaPemasok varchar, length 30
Domain Alamat varchar, length 100 Domain Fax varchar, length 15 Domain Email varchar, length 40 Domain KodePos varchar, length 7 Domain NomorRekening varchar, length 14 Pemasok (
Kd_Pms KodePemasok NOT NULL,
Nm_Pms NamaPemasok NOT NULL,
Alamat Alamat NOT NULL,
Fax Fax NULL,
Email Email NULL,
Kd_Pos KodePos NULL,
No_Rek NomorRekening NULL,
PRIMARY KEY (Kd_Pms) );
• DBDL untuk Barang
Domain KodeBarang char, length 6 Domain NamaBarang varchar, length 30 Domain TipeBarang varchar, length 15 Domain PermukaanKulit varchar, length 15 Domain KodeWarna varchar, length 6 Domain HargaBeliPerUnit numeric
Domain HargaJualPerUnit numeric
Domain MinimumStok integer, antara 0-3000 Domain MaksimumStok integer, antara 1000-10000 Domain Jumlah integer, antara 0-10000 Barang (
Kd_Brg KodeBarang NOT NULL,
Nm_Brg NamaBarang NOT NULL,
Tipe_Brg TipeBarang NOT NULL, Permukaan_Kulit PermukaanKulit NULL,
Kd_Warna KodeWarna NOT NULL,
Hrg_Beli_Unit HargaBeliPerUnit NOT NULL, Hrg_Jual_Unit HargaJualPerUnit NOT NULL, Min_Stok MinimumStok NOT NULL, Max_Stok MaksimumStok NOT NULL,
Jumlah Jumlah NOT NULL
FOREIGN KEY (Kd_Warna) REFERENCES Warna (Kd_ Warna) ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Warna
Domain KodeWarna char, length 6 Domain JenisWarna varchar, length 15 Warna (
Kd_Warna KodeWarna NOTNULL,
Jenis_Warna JenisWarna NOTNULL, PRIMARY KEY (Kd_Warna)
);
• DBDL untuk Pemesanan_Penjualan
Domain KodePemesananPenjualan char, length 10 Domain TanggalPemesananPenjualan date
Domain TanggalDibutuhkan date
Domain KodePelanggan char, length 6 Domain KodeKaryawan char, length 6 Pemesanan_Penjualan (
Kd_Pemesanan_Penj KodePemesananPenjualan NOT NULL, Tgl_Pemesanan_Penj TanggalPemesananPenjualan NOT NULL,
Kd_Plg KodePelanggan NOT NULL,
Kd_Kry KodeKaryawan NOT NULL,
PRIMARY KEY (Kd_Pemesanan_Penj),
FOREIGN KEY (Kd_Plg) REFERENCES Pelanggan (Kd_Plg)ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Detail_Pemesanan_Penjualan
Domain KodePemesananPenjualan char, length 10 Domain KodeBarang varchar, length 6
Domain Jumlah integer
Detail_Pemesanan_Penjualan(
Kd_Pemesanan_Penj KodePemesananPenjualan NOT NULL,
Kd_Brg KodeBarang NOT NULL,
Jumlah Jumlah NOT NULL,
PRIMARY KEY (Kd_Pemesanan_Penj, Kd_Brg),
FOREIGN KEY (Kd_Pemesanan_Penj) REFERENCES Pemesanan_Penjualan (Kd_Pemesanan_Penj) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL
• DBDL untuk Penjualan
Domain KodePenjualan char, length 10 Domain TanggalPenjualan date
Domain KodePemesananPenjualan char, length 10 Domain Pajak integer, antara 0-10 Domain KodeKaryawan char, length 6 Penjualan (
Kd_Penj KodePenjualan NOT NULL, Tgl_Penj TanggalPenjualan NOT NULL, Kd_Pemesanan_Penj KodePemesananPenjualan NOT NULL,
Pajak Pajak NOT NULL,
Kd_Kry KodeKaryawan NOT NULL, PRIMARY KEY (Kd_Penj),
FOREIGN KEY (Kd_Pemesanan_Penj) REFERENCES Pemesanan_Penjualan (Kd_Pemesanan_Penj) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Detail_Penjualan
Domain KodePenjualan char, length 10 Domain KodeBarang char, length 6
Domain JumlahBarang integer, antara 0-1000 Domain Diskon integer, antara 0-100 Detail_Penjualan (
Kd_Penj KodePenjualan NOT NULL,
Kd_Brg KodeBarang NOT NULL,
Jumlah_Brg JumlahBarang NOT NULL,
Diskon Diskon NOT NULL,
PRIMARY KEY (Kd_Penj, Kd_Brg),
FOREIGN KEY (Kd_Penj) REFERENCES Penjualan (Kd_ Penj) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Pengembalian_Penjualan
Domain KodePengembalianPenjualan char, length 10
Domain TanggalPengembalianPenjualan date
Domain KodePenjualan char, length 10
Domain KodeKaryawan char, length 6 Pengembalian_Penjualan (
Kd_Pengembalian_Penj KodePengembalianPenjualan NOT NULL, Tgl_Pengembalian_Penj TanggalPengembalianPenjualan NOT NULL, Kd_Penj KodePenjualan NOT NULL, Kd_Kry KodeKaryawan NOT NULL,
PRIMARY KEY (Kd_ Pengembalian _Penj),
FOREIGN KEY (Kd_Penj) REFERENCES Penjualan (Kd_Penj) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL
);
• DBDL untuk Detail_ Pengembalian _Penjualan
Domain KodePengembalianPenjualan char, length 10 Domain KodeBarang char, length 6
Domain Jumlah integer
Domain Keterangan varchar, length 100 Detail_ Pengembalian _Penjualan (
Kd_Pengembalian_Penj Kode Pengembalian Penjualan NOT NULL Kd_Brg KodeBarang NOT NULL, Jumlah Jumlah NOT NULL, Keterangan Keterangan NOT NULL,
PRIMARY KEY (Kd_ Pengembalian _Penj, Kd_Brg),
FOREIGN KEY (Kd_Pengembalian_Penj) REFERENCES Pengembalian_ Penjualan (Kd_ Pengembalian _Penj) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL
• DBDL untuk Pemesanan_Pembelian
Domain KodePemesananPembelian char, length 10 Domain TanggalPemesananPembelian date
Domain TanggalDibutuhkan date
Domain KodeKaryawan char, length 6 Pemesanan_Pembelian (
Kd_Pemesanan_Pemb KodePemesananPembelian NOT NULL, Tgl_Pemesanan_PembTanggalPemesananPembelianNOT NULL
Tgl_Butuh TanggalDibutuhkan NOT NULL,
Kd_Kry KodeKaryawan NOT NULL,
PRIMARY KEY (Kd_Pemesanan_Pemb),
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Detail_Pemesanan_Pembelian
Domain KodePemesananPembelian char, length 10 Domain KodeBarang char, length 6
Domain Jumlah integer
Detail_Pemesanan_Pembelian (
Kd_Pemesanan_Pemb KodePemesananPembelian NOT NULL, Kd_Brg KodeBarang NOT NULL,
PRIMARY KEY (Kd_Pemesanan_Pemb, Kd_Brg),
FOREIGN KEY (Kd_Pemesanan_Pemb) REFERENCES Pemesanan_ Pembelian (Kd_Pemesanan_Pemb) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Pembelian
Domain KodePembelian char, length 10 Domain TanggalPembelian date
Domain KodePemesananPembelian char, length 10 Domain Pajak integer, antara 0-10 Domain KodeKaryawan char, length 6 Pembelian (
Kd_Pemb KodePembelian NOT NULL, Tgl_Pemb TanggalPembelian NOT NULL, Kd_Pemesanan_Pemb KodePemesananPembelian NOT NULL,
Pajak Pajak NOT NULL,
Kd_Kry KodeKaryawan NOT NULL, PRIMARY KEY (Kd_Pemb),
FOREIGN KEY (Kd_Pemesanan_Pemb) REFERENCES Pemesanan_ Pembelian (Kd_Pemesanan_Pemb) ON UPDATE
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Detail_Pembelian
Domain KodePembelian char, length 10 Domain KodeBarang char, length 6
Domain JumlahBarang integer, antara 0-1000 Domain Diskon integer, antara 0-100 Detail_Pembelian (
Kd_Pemb KodePembelian NOT NULL, Kd_Brg KodeBarang NOT NULL, Jumlah_Brg JumlahBarang NOT NULL,
Diskon Diskon NOT NULL,
PRIMARY KEY (Kd_Pemb, Kd_Brg),
FOREIGN KEY (Kd_Pemb) REFERENCES Pembelian (Kd_Pemb) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL );
Domain KodePengembalianPembelian char, length 10 Domain TanggalPengembalian Pembelian date
Domain KodePembelian char, length 10 Domain KodeKaryawan char, length 6 Pengembalian_Pembelian (
Kd_Pengembalian_Pemb KodePengembalianPembelian NOT NULL Tgl_Pengembalian_Pemb TanggalPengembalianPembelian NOT NULL, Kd_Pemb KodePembelian NOT NULL, Kd_Kry KodeKaryawan NOT NULL, PRIMARY KEY (Kd_ Pengembalian _Pemb),
FOREIGN KEY (Kd_Pemb) REFERENCES Pembelian(Kd_Pms)ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL
);
• DBDL untuk Detail_ Pengembalian _Pembelian
Domain KodePengembalianPembelian char, length 10 Domain KodeBarang char, length 6
Domain Jumlah integer
Domain Keterangan varchar, length 100 Detail_ Pengembalian _Pembelian (
Jumlah Jumlah NOT NULL, Keterangan Keterangan NOT NULL, PRIMARY KEY (Kd_ Pengembalian _Pemb, Kd_Brg),
FOREIGN KEY (Kd_Pengembalian_Pemb) REFERENCES Pengembalian_ Pembelian (Kd_ Pengembalian_Pemb) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL
);
• DBDL untuk Telp_Karyawan
Domain TelponKaryawan varchar, length 6 Domain KodeKaryawan char, length 6 Telp_Karyawan (
Telp_Kry TelponKaryawan NOT NULL, Kd_Kry KodeKaryawan NOT NULL, PRIMARY KEY (Telp_Kry),
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_ Kry) ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Telp_Pelanggan
Domain Kode Pelanggan char, length 6 Telp_ Pelanggan (
Telp_Plg Telpon Pelanggan NOT NULL, Kd_Plg Kode Pelanggan NOT NULL, PRIMARY KEY (Telp_Plg),
FOREIGN KEY (Kd_Plg) REFERENCES Pelanggan (Kd_Plg) ON UPDATE CASCADE ON DELETE SET NULL
);
• DBDL untuk Telp_Pemasok
Domain TelponPemasok varchar, length 6 Domain KodePemasok char, length 6 Telp_Pemasok (
Telp_Pms TelponPemasok NOT NULL, Kd_Pms KodePemasok NOT NULL, PRIMARY KEY (Telp_Pms),
FOREIGN KEY (Kd_Pms) REFERENCES Pemasok (Kd_ Pms) ON UPDATE CASCADE ON DELETE SET NULL );