• Tidak ada hasil yang ditemukan

CASCADE ON DELETE NO ACTION

4.1.3. Perancangan Basisdata Fisikal

4.1.3.1. Menerjemahkan model data logikal untuk DBMS yang digunakan

4.1.3.1.1. Merancang relasi dasar

Tujuan langkah ini adalah untuk menentukan bagaimana representasi relasi dasar, yang telah diidentifikasi pada model data logikal, di dalam DBMS yang akan digunakan. Berikut ini adalah Database Definition Language (DBDL) untuk masing-masing relasi dengan dasar penggunaan SQL Server 2000 sebagai DBMS.

Tabel 4.16 Database Definition Language untuk relasi dasar Domain KodeMaster : integer with identity function

Domain NomorMember : fixed length character string, length 9 Domain KodeTransaksi : fixed length character string, length 10 Domain KodeForeign : integer

Domain Nama : variable length character string, length 25 Domain NamaPerusahaan : variable length character string, length 50 Domain NamaBarang : variable length character string, length 300 Domain Jenis : variable length character string, length 40 Domain Alamat : variable length character string, length 100 Domain Kota : variable length character string, length 15 Domain NomorTelepon : variable length character string, length 15 Domain NomorPlat : variable length character string, length 10 Domain WarnaMobil : variable length character string, length 15 Domain TipeMobil : variable length character string, length 20 Domain KilometerMobil : integer

Domain JumlahBarang : small integer

Domain StatusBlacklist : single character, must be one of ‘Y’ or ‘N’ Domain Status : single character, must be one of ‘A’ or ‘S’ Domain StatusProses : single character, must be one of ‘Q’ or ‘P’ Domain NomorKTP : variable length character string, length 20 Domain Tanggal : datetime

Domain Uang : monetary value

Domain Kurs : fixed length character string, length 3 must be one of ‘IDR’ or ‘USD’

1. Pelanggan (

kdPelanggan KodeMaster NOT NULL,

nama Nama NOT NULL,

alamat Alamat ,

kota Kota,

telp NomorTelepon,

fax NomorTelepon,

HP NomorTelepon,

blacklist StatusBlacklist NOT NULL DEFAULT ‘N’,

KTP NomorKTP,

jenisPelanggan Jenis NOT NULL, PRIMARY KEY (kdPelanggan) );

2. DetailMember (

noMember NomorMember NOT NULL, tglMasuk Tanggal NOT NULL, tglJatuhTempo Tanggal NOT NULL,

status Status NOT NULL DEFAULT ‘A’, kdPelanggan KodeForeign NOT NULL,

FOREIGN KEY (kdPelanggan) REFERENCES Pelanggan (kdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION );

3. Mobil (

noPlat NomorPlat NOT NULL,

tipe TipeMobil NOT NULL,

warna WarnaMobil,

tahun Tahun,

kilometer KilometerMobil,

status Status NOT NULL DEFAULT ‘A’, kdPelanggan KodeForeign NOT NULL,

PRIMARY KEY (noPlat),

FOREIGN KEY (kdPelanggan) references Pelanggan (kdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION );

4. Divisi (

kdDivisi KodeMaster NOT NULL,

divisi Jenis NOT NULL,

PRIMARY KEY (kdDivisi) );

5. Karyawan (

kdKaryawan KodeMaster NOT NULL,

nama Nama NOT NULL,

kota Kota,

telp NomorTelepon, fax Nomor Telepon,

HP Nomor Telepon,

KTP NomorKTP,

tglLahir Tanggal,

status Status NOT NULL DEFAULT ‘A’, kdDivisi KodeForeign NOT NULL,

PRIMARY KEY (kdKaryawan),

FOREIGN KEY (kdDivisi) REFERENCES Divisi (kdDivisi) ON UPDATE CASCADE ON DELETE NO ACTION );

6. RegistrasiMember (

noRegistrasi KodeTransaksi NOT NULL,

tanggal Tanggal NOT NULL,

jmlhBayar Uang NOT NULL,

kdPelanggan KodeForeign NOT NULL, kdKaryawan KodeForeign NOT NULL, PRIMARY KEY (noRegistrasi),

FOREIGN KEY (kdPelanggan) REFERENCES Pelanggan (kdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (kdKaryawan) REFERENCES Karyawan (kdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION );

7. JenisBarang (

kdJenisBarang KodeMaster NOT NULL, jenisBarang Jenis NOT NULL, PRIMARY KEY (kdJenisBarang) );

8. Barang (

kdBarang KodeMaster NOT NULL, namaBarang NamaBarang NOT NULL, hargaJual Uang,

stok JumlahBarang NOT NULL, stokMin JumlahBarang,

stokMax JumlahBarang,

kdJenisBarang KodeForeign NOT NULL, PRIMARY KEY (kdBarang),

FOREIGN KEY (kdJenisBarang) REFERENCES JenisBarang (kdJenisBarang) ON UPDATE CASCADE ON DELETE NO ACTION );

9. DeliveryOrder (

noDO KodeTransaksi NOT NULL,

tanggal Tanggal NOT NULL,

status StatusProses NOT NULL DEFAULT ‘Q’, kdPelanggan KodeForeign NOT NULL,

kdKasir KodeForeign NOT NULL, kdGudang KodeForeign,

kdSupir KodeForeign, PRIMARY KEY (noDO),

FOREIGN KEY (kdPelanggan) REFERENCES Pelanggan (kdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (kdKasir) REFERENCES Karyawan (kdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (kdGudang) REFERENCES Karyawan (kdKaryawan), FOREIGN KEY (kdSupir) REFERENCES Karyawan (kdKaryawan) );

10. DetailDO (

noDO KodeTransaksi NOT NULL, kdBarang KodeForeign NOT NULL, qty JumlahBarang NOT NULL, PRIMARY KEY (noDO, kdBarang),

FOREIGN KEY (noDO) REFERENCES DeliveryOrder (noDO) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (kdBarang) REFERENCES Barang (kdBarang) ON UPDATE CASCADE ON DELETE NO ACTION );

11. FakturPenjualan (

noFaktur KodeTransaksi NOT NULL,

tanggal Tanggal NOT NULL,

diskon Uang NOT NULL DEFAULT 0, biayaServis Uang NOT NULL DEFAULT 0,

total Uang NOT NULL,

jmlhBayar Uang NOT NULL,

piutang Uang NOT NULL DEFAULT 0, kdPelanggan KodeForeign NOT NULL,

noPlat NomorPlat,

kdKasir KodeForeign NOT NULL, kdMontir KodeForeign,

noDO KodeTransaksi, PRIMARY KEY (noFaktur),

FOREIGN KEY (kdPelanggan) REFERENCES Pelanggan (kdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (noPlat) REFERENCES Mobil (noPlat),

FOREIGN KEY (kdKasir) REFERENCES Karyawan (kdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (kdMontir) REFERENCES Karyawan (kdKaryawan), FOREIGN KEY (noDO) REFERENCES DeliveryOrder (noDO) );

12. DetailPenjualan (

noFaktur KodeTransaksi NOT NULL, kdBarang KodeForeign NOT NULL, qty JumlahBarang NOT NULL,

hargaJual Uang NOT NULL,

FOREIGN KEY (noFaktur) REFERENCES FakturPenjualan (noFaktur) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (kdBarang) REFERENCES Barang (kdBarang) ON UPDATE CASCADE ON DELETE NO ACTION );

13. PelunasanPiutang (

noPelunasan KodeTransaksi NOT NULL,

tanggal Tanggal NOT NULL,

jmlhBayar Uang NOT NULL,

noFaktur KodeTransaksi NOT NULL, kdKaryawan KodeForeign NOT NULL, PRIMARY KEY (noPelunasan),

FOREIGN KEY (noFaktur) REFERENCES FakturPenjualan (noFaktur) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (kdKaryawan) REFERENCES Karyawan (kdKaryawan) );

14. Supplier (

kdSupplier KodeMaster NOT NULL, namaPerusahaan NamaPerusahaan NOT NULL, alamat Alamat ,

kota Kota,

telp NomorTelepon,

fax NomorTelepon,

contactPerson Nama,

status Status NOT NULL DEFAULT ‘A’, PRIMARY KEY (kdSupplier) );

15. HargaBeli (

kdBarang KodeForeign NOT NULL, kdSupplier KodeForeign NOT NULL,

hargaBeli Uang NOT NULL,

kurs Kurs NOT NULL DEFAULT ‘IDR’, PRIMARY KEY (kdBarang, kdSupplier),

FOREIGN KEY (kdBarang) REFERENCES Barang (kdBarang) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (kdSupplier) REFERENCES Supplier (kdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION );

16. Pembelian (

noPO KodeTransaksi NOT NULL, tanggal PO Tanggal NOT NULL,

status StatusProses NOT NULL DEFAULT ‘Q’, kdKasirPO KodeForeign NOT NULL,

kdSupplier KodeForeign NOT NULL, noFaktur KodeTransaksi NOT NULL, tanggalFB Tanggal NOT NULL,

total Uang NOT NULL,

jmlhBayar Uang NOT NULL,

utang Uang NOT NULL DEFAULT 0, kdKasirFB KodeForeign NOT NULL,

PRIMARY KEY (noPO),

FOREIGN KEY (kdKasirPO) REFERENCES Karyawan (kdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (kdKasirFB) REFERENCES Karyawan (kdKaryawan), FOREIGN KEY (kdSupplier) REFERENCES Supplier (kdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION );

17. DetailPO (

noPO KodeTransaksi NOT NULL, kdBarang KodeForeign NOT NULL, qty JumlahBarang NOT NULL, PRIMARY KEY (noPO, kdBarang),

FOREIGN KEY (noPO) REFERENCES PurchaseOrder (noPO) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (kdBarang) REFERENCES Barang (kdBarang) ON UPDATE CASCADE ON DELETE NO ACTION );

18. DetailPembelian (

noPO KodeTransaksi NOT NULL, kdBarang KodeForeign NOT NULL,

kdSupplier KodeForeign NOT NULL, qty JumlahBarang NOT NULL,

hargaBeli Uang NOT NULL DEFAULT 0, Primary Key (noPO, kdBarang, kdSupplier),

Foreign Key (noPO) references Pembelian (noPO) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key (kdBarang, kdSupplier) references HargaBeli (kdBarang, kdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION );

19. PelunasanUtang (

noPelunasan KodeTransaksi NOT NULL,

tanggal Tanggal NOT NULL,

jmlhBayar Uang NOT NULL,

kdKaryawan KodeForeign NOT NULL, noFaktur KodeTransaksi NOT NULL, PRIMARY KEY (noPelunasan),

FOREIGN KEY (kdKaryawan) REFERENCES Karyawan (kdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY (noFaktur) REFERENCES Pembelian (noFaktur) );

Dokumen terkait