2. Weak Entity
4.1.3 Perancangan Basis Data Fisikal
4.1.3.1 Merancang Relasi-Relasi Dasar
Tahap awal perancangan fisikal ini bertujuan untuk memutuskan bagaimana menggambarkan relasi basis model data logikal global pada DBM S. Untuk memulai prosesnya, dilakukan penyusunan informasi tentang relasi yang terbentuk pada perancangan logikal. Informasi yang tersusun antara lain nama relasi, atribut-atribut, primary keys, foreign keys, refential integrity, domain yang terdiri dari tipe data, panjang, constraints, dan apakah atribut yang bernilai null.
Berikut ini adalah perancangan DBDL untuk setiap entiti yang bertujuan untuk membuat domain dari setiap atribut agar user dapat mengerti penggunaan setiap atribut tersebut
berdasarkan penjelasannya dan juga batasan yang terdapat di dalam setiap atribut.
1. DBDL (Database Design Language) untuk Tabel msbarang Domain kdbarang fixed length character string, 5 Domain nama_barang variable length character string, 20 Domain harga integer
Domain stok integer Domain satuan integer msbarang (
kdbarang kode barang NOT NULL nama_barang nama barang NOT NULL harga harga barang NOT NULL
stok stok NOT NULL
satuan satuan barang NOT NULL Primary Key (kdbarang)
)
2. DBDL (Database Design Language) untuk Tabel pembelianD Domain kdpembelian fixed length character string, 5 Domain kdbarang fixed length character string, 5 Domain qty integer
pembelianD (
kdpembelian kode pembelian NOT NULL kdbarang kode barang NOT NULL qty jumlah barang NOT NULL
Primary Key (kdpembelian,kdbarang)
Foreign Key (kdpembelian) References pembelian (kdpembelian)
ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdbarang) References msbarang (kdbarang)
ON UPDATE CASCADE ON DELETE NO ACTION )
3. DBDL (Database Design Language) untuk Tabel pembelianH Domain kdpembelian fixed length character string, 5 Domain kdsuplier fixed length character string, 5 Domain kdkaryawan fixed length character string, 5 Domain tgl_pembelian datetime
pembelianH (
kdpembelian kode pembelian NOT NULL kdsuplier kode suplier NOT NULL kdkaryawan kode karyawan NOT NULL tgl_pembelian tanggal pembelian NOT NULL Primary Key (kdpembelian)
Foreign Key (kdsuplier) References mssuplier (kdsuplier) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdkaryawan) References mskaryawan
(kdkaryawan)
ON UPDATE CASCADE ON DELETE NO ACTION )
4. DBDL (Database Design Language) untuk Tabel mssuplier Domain kdsuplier fixed length character string, 5 Domain nama_suplier variable length character string, 20 Domain alamat_suplier variable length character string, 20 Domain kota variable length character string, 20 mssuplier (
kdsuplier kode suplier NOT NULL nama_suplier nama suplier NOT NULL alamat_suplier alamat suplier NOT NULL
kota kota NOT NULL
Primary Key (kdsuplier) )
5. DBDL (Database Design Language) untuk Tabel TelpSuplier Domain NoTelpSuplier numeric
Domain kdsuplier fixed length character string, 5 TelpSuplier (
NoTelpSuplier no telepon suplier NOT NULL kdsuplier kode suplier NOT NULL Primary Key (NoTelpSuplier)
Foreign Key (kdsuplier) References mssuplier (kdsuplier) ON UPDATE CASCADE ON DELETE NO ACTION )
6. DBDL (Database Design Language) untuk Tabel msuser Domain userID variable length character string, 20
Domain pass fixed length character string, 35 Domain status fixed length character string, 1 Domain login integer, 1
msuser (
userID nama user NULL pass password user NULL status status jabatan NOT NULL login status login NOT NULL Primary Key (userID)
)
7. DBDL (Database Design Language) untuk Tabel mskaryawan
Domain kdkaryawan fixed length character string, 5 Domain userID variable length character string, 20 Domain kdjabatan fixed length character string, 5 Domain nama_karyawan variable length character string, 20 Domain alamat_karyawan variable length character string, 20 Domain kota variable length character string, 20 mskaryawan (
kdkaryawan kode karyawan NOT NULL
userID nama user NOT NULL
kdjabatan kode jabatan NOT NULL nama_karyawan nama karyawan NOT NULL alamat_karyawan alamat karyawan NOT NULL
kota kota karyawan NOT NULL Primary Key (kdkaryawan)
Foreign Key (userID) References msuser (userID)
ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdjabatan) References msjabatan (kdjabatan)
ON UPDATE CASCADE ON DELETE NO ACTION )
8. DBDL (Database Design Language) untuk Tabel TelpKaryawan
Domain NoTelpKaryawan numeric
Domain kdkaryawan fixed length character string, 5 TelpKaryawan (
NoTelpKaryawan no telepon karyawan NOT NULL kdkaryawan kode karyawan NOT NULL Primary Key (NoTelpKaryawan)
Foreign Key (kdkaryawan) References mskaryawan (kdkaryawan)
ON UPDATE CASCADE ON DELETE NO ACTION )
9. DBDL (Database Design Language) untuk Tabel msrental Domain kdrental fixed length character string, 5 Domain nama_rental variable length character string, 20 Domain alamat_rental variable length character string, 20 Domain kota variable length character string, 20
msrental (
kdrental kode rental NOT NULL nama_rental nama rental NOT NULL alamat_rental alamat rental NOT NULL
kota kota rental NOT NULL
Primary Key (kdrental) )
10. DBDL (Database Design Language) untuk Tabel penawaranH
Domain kdpenawaran fixed length character string, 5 Domain kdkonsumen fixed length character string, 5 Domain kdkaryawan fixed length character string, 5 Domain kdproyek fixed length character string, 5 Domain nama_penawaranvariable length character string, 20 Domain tgl_penawaran datetime
Domain jumlah_penawaran integer
Domain status fixed length character string, 10 penawaranH (
kdpenawaran kode penawaran NOT NULL kdkonsumen kode konsumen NOT NULL kdkaryawan kode karyawan NOT NULL kdproyek kode proyek NOT NULL nama_penawaran nama penawaran NOT NULL tgl_penawaran tanggal penawaran NOT NULL
status status penawaran NOT NULL Primary Key (kdpenawaran)
Foreign Key (kdkonsumen) References mskonsumen (kdkonsumen)
ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdkaryawan) References mskaryawan (kdkaryawan)
ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdproyek) References msjabatan (kdproyek) ON UPDATE CASCADE ON DELETE NO ACTION )
11. DBDL (Database Design Language) untuk Tabel pembayaranH
Domain kdpembayaran fixed length character string, 5 Domain kdkaryawan fixed length character string, 5 Domain kdproyek fixed length character string, 5 Domain tgl_pelunasan datetime
pembayaran (
kdpembayaran kode pembayaran NOT NULL kdkaryawan kode karyawan NOT NULL kdproyek kode proyek NOT NULL tgl_pelunasan tanggal pelunasan NOT NULL Primary Key (kdpembayaran)
Foreign Key (kdkaryawan) References mskaryawan (kdkaryawan)
ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdproyek) References msproyek (kdproyek)
ON UPDATE CASCADE ON DELETE NO ACTION )
12. DBDL (Database Design Language) untuk Tabel msjabatan Domain kdjabatan fixed length character string, 5 Domain jabatan variable length character string, 20 msjabatan (
kdjabatan kode jabatan NOT NULL
jabatan jabatan NOT NULL
Primary Key (kdjabatan) )
13. DBDL (Database Design Language) untuk Tabel peminjamanH
Domain kdkaryawan fixed length character string, 5 Domain kdpeminjaman fixed length character string, 5 Domain kdrental fixed length character string, 5 Domain tgl_pinjam datetime
Domain tgl_kembali datetime peminjamanH (
kdkaryawan kode karyawan NOT NULL kdpeminjaman kode peminjaman NOT NULL
kdrental kode rental NOT NULL tgl_pinjam tanggal pinjam NOT NULL tgl_kembali tanggal kembali NOT NULL Primary Key (kdkaryawan, kdpeminjaman)
Foreign Key (kdkaryawan) References mskaryawan (kdkaryawan)
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key (kdperalatan) References msperalatan (kdperalatan)
ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdrental) References msrental (kdrental)
ON UPDATE CASCADE ON DELETE NO ACTION )
14. DBDL (Database Design Language) untuk Tabel TelpRental Domain NoTelpRental numeric
Domain kdrental fixed length character string, 5 TelpRental (
NoTelpRental no telp rental NOT NULL kdrental kode rental NOT NULL Primary Key (NoTelpRental)
Foreign Key (kdrental) References msrental (kdrental) ON UPDATE CASCADE ON DELETE NO ACTION )
15. DBDL (Database Design Language) untuk Tabel msproyek Domain kdproyek fixed length character string, 5 Domain nama_proyek variable length character string, 20 Domain alamat_proyek variable length character string, 20 Domain kota variable length character string, 20 Domain tgl_mulai datetime
Domain tgl_selesai datetime Domain harga_proyek integer msproyek (
kdproyek kode proyek NOT NULL nama_proyek nama proyek NOT NULL alamat_proyek alamat proyek NOT NULL
kota kota proyek NOT NULL
tgl_mulai tanggal mulai NOT NULL tgl_selesai tanggal selesai NOT NULL harga_proyek harga proyek NOT NULL Primary Key (kdproyek)
)
16. DBDL (Database Design Language) untuk Tabel pembayaranD
Domain kdpembayaran fixed length character string, 5 Domainkdkonsumen fixed length character string, 5 Domain tgl_pembayaran integer
pembayaranD (
kdpembayaran kode pembayaran NOT NULL kdkonsumen kode konsumen NOT NULL jml_pembayaran jumlah pembayaran NOT NULL tgl_pembayaran tanggal pembayaran NOT NULL Primary Key (kdpembayaran, kdkonsumen)
Foreign Key (kdpembayaran) References mspembayaran (kdpembayaran)
ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdkonsumen) References mskonsumen (kdkonsumen)
ON UPDATE CASCADE ON DELETE NO ACTION )
17. DBDL (Database Design Language) untuk Tabel peminjamanD
Domain kdkaryawan fixed length character string, 5 Domain kdpeminjaman fixed length character string, 5 Domain kdperalatan fixed length character string, 5 Domain qty integer
peminjamanD (
kdkaryawan kode karyawan NOT NULL kdpeminjaman kode peminjaman NOT NULL kdperalatan kode peralatan NOT NULL qty jumlah peralatan NOT NULL
Primary Key (kdkaryawan, kdpeminjaman, kdperalatan)
Foreign Key (kdkaryawan) References mskaryawan (kdkaryawan)
ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdpeminjaman) References mspeminjaman (kdpeminjaman)
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key (kdperalatan) References msperalatan (kdperalatan)
ON UPDATE CASCADE ON DELETE NO ACTION )
18. DBDL (Database Design Language) untuk Tabel penawaranD
Domain kdpenawaran fixed length character string, 5 Domain kdperalatan fixed length character string, 5 Domain kdbarang fixed length character string, 5 Domain kdjasa fixed length character string, 5 Domain qty_barang integer
Domain qty_peralatan integer penawaranD (
kdpenawaran kode penawaran NOT NULL kdperalatan kode peralatan NOT NULL kdbarang kode barang NOT NULL
qty_barang jumlah barang NOT NULL qty_peralatan jumlah peralatan NOT NULL Primary Key (kdpenawaran, kdperalatan, kdbarang, kdjasa) Foreign Key (kdpenawaran) References mspenawaran (kdpenawaran)
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key (kdperalatan) References msperalatan (kdperalatan)
ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdbarang) References msbarang (kdbarang)
ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdjasa) References msjasa (kdjasa)
ON UPDATE CASCADE ON DELETE NO ACTION )
19. DBDL (Database Design Language) untuk Tabel msjasa Domain kdjasa fixed length character string, 5 Domain jasa variable length character string, 20 Domain biaya integer
msjasa (
kdjasa kode jasa NOT NULL
jasa jasa NOT NULL
biaya harga jasa NOT NULL
Primary Key (kdjasa) )
20. DBDL (Database Design Language) untuk Tabel mskonsumen
Domain kdkonsumen fixed length character string, 5 Domain nama_konsumen variable length character string, 20 Domain alamat_konsumen variable length character string, 20 Domain kota variable length character string, 20 mskonsumen (
kdkonsumen kode konsumen NOT NULL nama_konsumen nama konsumen NOT NULL alamat_konsumen alamat konsumen NOT NULL
kota kota konsumen NOT NULL
Primary Key (kdkonsumen) )
21. DBDL (Database Design Language) untuk Tabel TelpKonsumen
Domain NoTelpKonsumen numeric
Domain kdkonsumen fixed length character string, 5 TelpKonsumen (
NoTelpKonsumen no telepon konsumen NOT NULL kdkonsumen kode konsumen NOT NULL Primary Key (NoTelpKonsumen)
Foreign Key (kdkonsumen) References mskonsumen (kdkonsumen)
)
22. DBDL (Database Design Language) untuk Tabel msperalatan Domain kdperalatan fixed length character string, 5 Domain nama_peralatan variable length character string, 20 Domain harga_sewa integer
Domain stok integer msperalatan (
kdperalatan kode peralatan NOT NULL nama_peralatan nama peralatan NOT NULL harga_sewa harga sewa NOT NULL stok stok peralatan NOT NULL Primary Key (kdperalatan)
)