• Tidak ada hasil yang ditemukan

Perancangan Relasi Dasar

Dalam dokumen BAB III ANALISIS DAN PERANCANGAN (Halaman 93-114)

DBMS: SQL SERVER 2000 Vendor: Microsoft

3.2.4 Perancangan Basis Data Fisikal

3.2.4.1.1 Perancangan Relasi Dasar

Tujuan dari tahap ini adalah untuk mengidentifikasi relasional basis data dalam model data logikal global yang digunakan dalam DBMS dengan menggunakan DBDL (Database Design Language). DBDL yang digunakan adalah sebagai berikut:

Relasi Perusahaan :

Domain NamaPerusahaan : variable length character string, length 30

Domain Alamat : variable length character string, length 100 Domain Telepon : variable length character string, length 12 Domain Fax : variable length character string, length 12 Perusahaan (

NamaPerusahaan NamaPerusahaan NOT NULL, Alamat AlamatPerusahaan NOT NULL,

Telepon Telepon NOT NULL,

PRIMARY KEY(NamaPerusahaan));

Relasi Cabang :

Domain KodeCabang : fixed length character string, length 6 Domain AlamatCabang : length character string, length 100 Domain Telepon : variable length character string, length 12 Domain Fax : variable length character string, length 12

Domain NamaPerusahaan : variable length character string, length 30

Cabang (

KodeCabang KodeCabang NOT NULL,

AlamatCabang AlamatCabang NOT NULL,

Telepon Telepon NOT NULL,

Fax Fax NOT NULL,

NamaPerusahaan NamaPerusahaan NOT NULL, PRIMARY KEY(KodeCabang),

FOREIGN KEY NamaPerusahaan REFERENCES Perusahaan(NamaPerusahaan) ON UPDATE CASCADE ON DELETE NO ACTION);

Relasi Jabatan :

Domain KodeJabatan : fixed length character string, length 6 Domain NamaJabatan:variable length character string, length 30 Jabatan (

KodeJabatan KodeJabatan NOT NULL, NamaJabatan NamaJabatan NOT NULL, PRIMARY KEY (KodeJabatan));

Relasi Barang :

Domain KodeBarang : fixed length character string, length 6 Domain NamaBarang:variable length character string, length 30 Domain Satuan : variable length character string, length 30 Domain stok : integer

Domain KodeCabang : fixed length character string, length 6 Barang (

KodeBarang KodeBarang NOT NULL, NamaBarang NamaBarang NOT NULL, Satuan NamaSatuan NOT NULL, Stok StokBarang NOT NULL,

KodeCabang KodeCabang NOT NULL, PRIMARY KEY (KodeBarang)

FOREIGN KEY KodeCabang REFERENCES Cabang (KodeCabang) ON UPDATE CASCADE ON DELETE CASCADE);

Relasi Kota

Domain KodeKota: fixed length character string, length 6 Domain NamaKota : variable length character string, length 30 Kota (

KodeKota KodeKota NOT NULL, NamaKota NamaKota NOT NULL, PRIMARY KEY (KodeKota));

Relasi Kecamatan

Domain KodeKec: fixed length character string, length 6 Domain NamaKec: variable length character string, length 30 Kecamatan (

KodeKec KodeKecamatan NOT NULL, NamaKec NamaKecamatan NOT NULL,

PRIMARY KEY (KodeKec));

Relasi Kelurahan:

Domain KodeKel : fixed length character string, length 6 Domain NamaKel: variable length character string, length 30 Domain KodeKec : fixed length character string, length 6 Domain KodeKota: fixed length character string, length 6 Kelurahan (

KodeKel Kode Kelurahan NOT NULL, NamaKel Nama Kelurahan NOT NULL, KodeKec Kode Kecamatan NOT NULL, KodeKota Kode Kota NOT NULL, PRIMARY KEY (KodeKel),

FOREIGN KEY KodeKec REFERENCES Kecamatan (KodeKec) ON UPDATE CASCADE ON DELETE CASCADE FOREIGN KEY KodeKota REFERENCES Kota(KodeKota) ON UPDATE CASCADE ON DELETE CASCADE);

Relasi Pegawai :

Domain KodePegawai : fixed length character string,length 10 Domain NamaPegawai: variable length character string,

Domain AlamatPegawai: variable length character string, length 100

Domain KodeKel : fixed length character string, length 6 Domain TglLahir : Date, must be less than now()

Domain JenisKelamin : Single character, must be one of ‘L’, ‘P’

Domain TglMasukKerja : Date

Domain NoTelepon : variable length character string, length 12

Domain NoHP: variable length character string, length 12

Domain KodeJabatan: fixed length character string, length 6 Domain KodeCabang: fixed length character string, length 6 Domain StatusPegawai: boolean

Pegawai(

KodePegawai KodePegawai NOT NULL,

NamaPegawai NamaPegawai NOT NULL,

AlamatPegawai AlamatPegawai NOT NULL,

KodeKel KodeKelurahan NOT NULL,

JenisKelamin JenisKelamin NOT NULL CONSTRAINT cekjenis CHECK

(JenisKelamin like ‘L’ OR ‘P’)

TglMasukKerja TanggalMasukKerja NOT NULL, NoTelepon NomorTelepon,

NoHP NomorHP,

KodeJabatan KodeJabatan NOT NULL,

KodeCabang KodeCabang NOT NULL,

StatusPegawai StatusPegawai NOT NULL, PRIMARY KEY(KodePegawai),

FOREIGN KEY KodeKel REFERENCES Kelurahan(KodeKel) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY KodeJabatan REFERENCES Jabatan(KodeJabatan) ON UPDATE CASCADE ON DELETE NO ACTION

FOREIGN KEY KodeCabang REFERENCES Cabang(KodeCabang) ON UPDATE CASCADE ON DELETE NO ACTION);

Relasi Pelanggan :

Domain KodePelanggan: fixed length character string,length 10

Domain NamaPelanggan: variable length character string, length 30

Domain AlamatPengiriman: variable length character string, length 100

Domain KodeKelKirim: fixed length character string, length 6

Domain AlamatPenagihan: variable length character string, length 100

Domain KodeKelTagih: fixed length character string, length 6

Domain NoTelepon : variable length character string, length 12

Domain StatusPelanggan: Boolean Pelanggan (

KodePelanggan KodePelanggan NOT NULL, NamaPelanggan NamaPelanggan NOT NULL, AlamatPengiriman AlamatPengiriman NOT NULL, KodeKelKirim KodeKelurahanKirim NOT NULL, AlamatPenagihan AlamatPenagihan NOT NULL,

KodeKelTagih KodeKelurahanTagih NOT NULL, NoTelepon NomorTelepon NOT NULL, StatusPelanggan StatusPelanggan NOT NULL, PRIMARY KEY (KodePelanggan),

FOREIGN KEY KodeKelKirim REFERENCES Kelurahan(KodeKel) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY KodeKelTagih REFERENCES Kelurahan(KodeKel) ON UPDATE CASCADE ON DELETE NO ACTION);

Relasi Kendaraan:

Domain NoPolisi: variable length character string, length 8 Domain MerekMobil: variable length character string, length 30 Domain Type: variable length character string, length 30 Domain Tahun: integer

Domain KapasitasStd: integer Domain StatusKendaraan: boolean Kendaraan (

MerekMobil Merek NOT NULL,

Type Type NOT NULL,

Tahun Tahun NOT NULL,

KapasitasStd KapasitasStandart NOT NULL, StatusKendaraan StatusKendaraan NOT NULL,

PRIMARY KEY (NoPolisi));

Relasi BP:

Domain KodeBP: fixed length character string, length 10 Domain Tgl: date

Domain JenisPembayaran: single character, must be one of ‘K’,’L’

Domain JmlPinjamanGalon: Integer

Domain HargaPinjamanGalon: monetary value Domain StatusBP: Boolean

Domain KodePelanggan: fixed length character string, length 10 Domain KodePegawai : fixed length character string, length 10 BP (

KodeBP KodeBP NOT NULL,

JenisPembayaran JenisPembayaran NOT NULL CONSTRAINT cekjenispembayaran CHECK (JenisPembayaran like ‘K’ OR ‘L’),

JmlPinjamanGalon JumlahPinjaman Galon NOT NULL, HargaPinjamanGalon HargaPinjamanGalon NOT NULL,

StatusBP StatusBP NOT NULL,

KodePelanggan KodePelanggan NOT NULL, KodePegawai KodePegawai NOT NULL, PRIMARY KEY (KodeBP),

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

FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION);

Relasi BPDetail:

Domain KodeBP: fixed length character string, length 6 Domain KodeBarang: fixed length character string, length 6 Domain HargaBarang: monetary value

Domain JmlDefaultKirim: integer BPDetail (

KodeBP KodeBP NOT NULL,

KodeBarang KodeBarang NOT NULL, HargaBarang HargaBarang NOT NULL, JmlDefaultKirim JumlahDefaultKirim NOT NULL, PRIMARY KEY (KodeBP,KodeBarang),

FOREIGN KEY KodeBP REFERENCES BP(KodeBP) ON UPDATE CASCADE ON DELETE CASCADE,

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

Relasi JadwalKirim:

Domain HariKirim: variable length character string, length 6 Domain KodeBP: fixed length character string, length 10 JadwalKirim (

HariKirim HariKirim NOT NULL,

KodeBP KodeBP NOT NULL,

FOREIGN KEY KodeBP REFERENCES BP(KodeBP) ON UPDATE CASCADE ON DELETE CASCADE);

Relasi RKD:

Domain KodeRKD: fixed length character string, length 10 Domain Tgl: date

Domain Keterangan: variable length character string, length 100 Domain KodePegawai: fixed length character string, length 10 Domain KodeDriver: fixed length character string, length 10 Domain NoPolisi: variable length character string, length 8 RKD (

KodeRKD KodeRKD NOT NULL,

Tgl Tanggal NOT NULL,

KodePegawai KodePegawai NOT NULL, KodeDriver Supir NOT NULL, NoPolisi NoPolisi NOT NULL, PRIMARY KEY (KodeRKD),

FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY KodeDriver REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY NoPolisi REFERENCES Kendaraan(NoPolisi) ON UPDATE CASCADE ON DELETE NO ACTION);

Relasi PO :

Domain KodePO: fixed length character string, length 10 Domain Tgl: date

Domain KodePegawai: fixed length character string, length 10 Domain KodeRKD: fixed length character string, length 10 Domain KodeBP: fixed length character string, length 10 PO (

KodePO KodePO NOT NULL,

Tgl Tanggal NOT NULL,

KodePegawai KodePegawai NOT NULL, KodeRKD KodeRKD NOT NULL,

KodeBP KodeBP NOT NULL,

FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY KodeRKD REFERENCES RKD(KodeRKD) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY KodeBP REFERENCES BP(KodeBP) ON UPDATE CASCADE ON DELETE NO ACTION);

Relasi PODetail :

Domain KodePO: fixed length character string, length 10 Domain KodeBarang: fixed length character string, length 6 Domain QtyDiminta : integer

PODetail (

KodePO KodePO NOT NULL,

KodeBarang KodeBarang NOT NULL,

QtyDiminta KuantitiDiminta NOT NULL, PRIMARY KEY (KodePO, KodeBarang),

FOREIGN KEY KodePO REFERENCES PO(KodePO) ON UPDATE CASCADE ON DELETE CASCADE,

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

Relasi Penagihan :

Domain KodePenagihan: fixed length character string, length 10 Domain TglPenagihan: date

Domain TglJatuhTempo: date Domain TglPembayaran: date

Domain Jumlah: monetary value Domain disc: float

Domain TotalPenagihan: monetary value Domain StatusTagih: boolean

Domain KodeDriver: fixed length character string, length 10 Domain KodePegawai: fixed length character string, length 10 Penagihan (

KodePenagihan KodePenagihan NOT NULL, TglPenagihan TanggalPenagihan NOT NULL, TglPembayaran TanggalPembayaran NOT NULL,

Disc PotonganHarga NOT NULL, TotalPenagihan TotalPenagihan NOT NULL, StatusTagih StatusTagih NOT NULL, KodePegawai KodePegawai NOT NULL, KodeDriver KodeDriver,

PRIMARY KEY (KodePenagihan),

FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY KodeDriver REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION,

Derived Jumlah (Σ(SJ.totalDijual)),

Derived tglJatuhTempo (dateadd (day,10,tglPenagihan)), Derived totalPenagihan ((jumlah – (jumlah * disc)) + (jumlah

–(jumlah * disc)) * ppn)

Relasi SJ :

Domain KodeSJ: fixed length character string, length 10 Domain Tgl: date

Domain KodePegawai: fixed length character string, length 10 Domain KodePO : fixed length character string, length 10 Domain KodePenagihan: fixed length character string, length 10 SJ (

KodeSJ KodeSJ NOT NULL,

Tgl Tanggal NOT NULL,

TotalDijual TotalDijual,

KodePegawai KodePegawai NOT NULL,

KodePO KodePO NOT NULL,

KodePenagihan KodePenagihan, PRIMARY KEY (KodeSJ),

FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY KodePO REFERENCES PO(KodePO) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY KodePenagihan REFERENCES Penagihan(KodePenagihan) ON UPDATE CASCADE ON DELETE NO ACTION),

Derived totalDijual (Σ(SJDetail.jumlahDijual));

Relasi SJDetail :

Domain KodeSJ: fixed length character string, length 10 Domain KodeBarang: fixed length character string, length 6

Domain QtyDijual : integer

Domain JumlahDijual : monetary value

Domain Keterangan :variable length character string, length 100 SJDetail (

KodeSJ KodeSJ NOT NULL,

KodeBarang KodeBarang NOT NULL, QtyDijual KuantitiDijual,

JumlahDijual JumlahDijual, Keterangan Keterangan,

PRIMARY KEY (KodeSJ, KodeBarang),

FOREIGN KEY KodeSJ REFERENCES SJ(KodeSJ) ON UPDATE CASCADE ON DELETE CASCADE,

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

Derived jumlahDijual (qtyDijual * PODetail.hargaBarang);

Relasi BPBJ :

Domain KodeBPBJ : fixed length character string, length 10 Domain Tgl : date

Domain KodeRKD : fixed length character string, length 10 Domain KodePegawai : fixed length character string, length 10 BPBJ(

Tgl Tanggal NOT NULL,

KodeRKD KodeRKD NOT NULL,

KodePegawai KodePegawai NOT NULL, PRIMARY KEY (KodeBPBJ),

FOREIGN KEY KodeRKD REFERENCES RKD(KodeRKD) ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION);

Relasi BPBJDetail :

Domain KodeBPBJ: fixed length character string, length 10 Domain KodeBarang: fixed length character string, length 6 Domain QtyDiberikan: integer

Domain QtySisaBarang: integer

Domain Keterangan :variable length character string, length 100 BPBJDetail (

KodeBPBJ KodeBPBJ NOT NULL,

KodeBarang KodeBarang NOT NULL, QtyDiberikan Kuantiti Diberikan NOT NULL, QtySisaBarang KuantitiSisaBarang,

Keterangan Keterangan,

PRIMARY KEY (KodeBPBJ, KodeBarang),

FOREIGN KEY KodeBPBJ REFERENCES BPBJ(KodeBPBJ) ON UPDATE CASCADE ON DELETE CASCADE,

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

Relasi BSTPJ :

Domain KodeBSTPJ: fixed length character string, length 10 Domain Tgl : date

Domain KodePegawai: fixed length character string, length 10 BSTPJ (

KodeBSTPJ KodeBSTPJ NOT NULL,

Tgl Tanggal NOT NULL,

KodePegawai KodePegawai NOT NULL, PRIMARY KEY (KodeBSTPJ),

FOREIGN KEY KodePegawai REFERENCES Pegawai(KodePegawai) ON UPDATE CASCADE ON DELETE NO ACTION);

Relasi BSTPJDetail :

Domain KodeBSTPJ : fixed length character string, length 10 Domain KodeBarang : fixed length character string, length 6 Domain QtyMasuk : Integer

BSTPJDetail (

KodeBSTPJ KodeBSTPJ NOT NULL,

KodeBarang KodeBarang NOT NULL,

QtyMasuk KuantitiMasuk NOT NULL,

PRIMARY KEY (KodeBSTPJ, KodeBarang),

FOREIGN KEY KodeBSTPJ REFERENCES BSTPJ(KodeBSTPJ) ON UPDATE CASCADE ON DELETE CASCADE,

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

3.2.4.2 Perancangan Representasi Fisikal

Dalam dokumen BAB III ANALISIS DAN PERANCANGAN (Halaman 93-114)

Dokumen terkait