• Tidak ada hasil yang ditemukan

Perancangan Database Relasional

Dalam dokumen BAB 4 RANCANGAN SISTEM YANG DIUSULKAN (Halaman 62-74)

4.6.3 Perancangan Database Fisikal

4.6.3.1 Perancangan Database Relasional

Informasi yang dibutuhkan dalam perancangan database fisikal dapat diperoleh melalui kamus data dan mendefinisikan penggambaran relasional menggunakan Database Design Language (DBDL). Berikut ini adalah perancangan database relasional untuk setiap entiti yang bertujuan untuk domain dari setiap atribut supaya user dapat mengerti penggunaan setiap atribut tersebut berdasarkan penjelasan dan batasan yang terdapat dalam setiap atribut.

• DBDL untuk Karyawan

Domain Kode karyawan Varchar (10)

Domain Nama karyawan Varchar (50) Domain Jabatan Varchar (20) Domain Alamat karyawan Varchar (100) Domain Gaji karyawan Int

Karyawan (

KdKaryawan Kode karyawan NOT NULL, NamaKaryawan Nama karyawan NOT NULL,

KdJabatan Jabatan NOT NULL, Alamat Alamat karyawan NOT NULL, Gaji Gaji karyawan NOT NULL,

PRIMARY KEY (kdkaryawan),

);

• DBDL untuk Pelanggan

Domain Kode pelanggan Varchar (10)

Domain Nama pelanggan Varchar (50) Domain Alamat pelanggan Varchar (100) Domain No Fax pelanggan Int

Domain Email pelanggan Varchar (50) Pelanggan (

Kdpelanggan Kode pelanggan NOT NULL, Namapelanggan Nama pelanggan NOT NULL, Alamat Alamat pelanggan NOT NULL, Fax No Fax pelanggan NULL, Email Email pelanggan NULL, PRIMARY KEY (kdpelanggan)

);

• DBDL untuk Supplier

Domain Kode supplier Varchar (10) Domain Nama supplier Varchar (50)

Domain Alamat supplier Varchar (100) Domain No fax supplier Int

Domain Email supplier Varchar (50) Supplier (

KdSupplier Kode supplier NOT NULL, NamaSupplier Nama supplier NOT NULL,

Alamat Alamat supplier NOT NULL, Fax No fax supplier NULL, Email Email supplier NULL, PRIMARY KEY (KdSupplier)

);

• DBDL untuk Barang

Domain Kode barang Varchar (10) Domain Nama Barang Varchar (100) Domain Jenis Barang Varchar (10) Domain Jumlah Barang Int

Domain Harga Beli Int

Domain ROP Int

Domain Harga Jual Int

Domain Kode supplier Varchar (10) Barang (

NamaBarang Nama Barang NOT NULL, KdJenis Jenis Barang NOT NULL, Jumlah Jumlah Barang NOT NULL, HargaBeli Harga Beli NOT NULL,

ROP ROP NOT NULL,

HargaJual Harga Jual NOT NULL, KdSupplier Kode supplier NOT NULL, PRIMARY KEY (kdbarang),

CONSTRAINT FK_M sBarang

FOREIGN KEY (KdSupplier) REFERENCES M s_Supplier (KdSupplier) ON DELETE NO ACTION ON UPDATE CASCADE,

CONSTRAINT Ms_Barang1 CHECK (ROP > 0), CONSTRAINT Ms_Barang2 CHECK (Jumlah >= 0), CONSTRAINT Ms_Barang3 CHECK (HargaBeli > 0), CONSTRAINT Ms_Barang4

CHECK (HargaJual > HargaBeli) );

• DBDL untuk Pembelian

Domain Kode pembelian Varchar (10) Domain Kode karyawan Varchar (10)

Domain Kode supplier Varchar (10)

Domain Tanggal Datetime

Pembelian (

KdPembelian Kode pembelian NOT NULL, KdKaryawan Kode karyawan NOT NULL, KdSupplier Kode supplier NOT NULL,

Tanggal Tanggal NOT NULL,

PRIMARY KEY (KdPembelian)

CONSTRAINT FK_TrPembelian1

FOREIGN KEY (KdKaryawan) REFERENCES M s_Karyawan

(KdKaryawan) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT FK_TrPembelian2

FOREIGNKEY (KdSupplier) REFERENCES M s_Supplier (KdSupplier) ON DELETE NO ACTION ON UPDATE CASCADE

);

• DBDL untuk Detail Pembelian

Domain Kode pembelian Varchar (10) Domain Kode Barang Varchar (10)

Domain Jumlah Int

Detail Pembelian (

KdPembelian Kode pembelian NOT NULL, KdBarang Kode karyawan NOT NULL,

CONSTRAINT PK_TrDetailPembelian PRIMARY KEY (KdPembelian, KdBarang),

CONSTRAINT FK_TrDetailPembelian1

FOREIGN KEY (KdPembelian) REFERENCES Tr_Pembelian (KdPembelian) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_TrDetailPembelian2

FOREIGN KEY (KdBarang) REFERENCES M s_Barang (KdBarang) ON DELETE NO ACTION ON UPDATE NO ACTION,

CONSTRAINT TrDetailPembelian1 CHECK (Qty >= 1)

);

• DBDL untuk Retur Pembelian

Domain Kode retur pembelian Varchar (10) Domain Kode pembelian Varchar (10) Domain Kode karyawan Varchar (10)

Domain Tanggal Datetime

Domain Status Varchar (10) Pembelian (

KdReturPembelian Kode retur pembelian NOT NULL, KdPembelian Kode pembelian NOT NULL, KdKaryawan Kode karyawan NOT NULL,

Tanggal Tanggal NOT NULL,

PRIMARY KEY (KdReturPembelian)

CONSTRAINT FK_TrReturPembelian1 FOREIGN KEY (KdPembelian) REFERENCES Tr_Pembelian (KdPembelian) ON DELETE CASCADE ON UPDATE CASCADE );

• DBDL untuk Detail Retur Pembelian

Domain Kode retur pembelian Varchar (10) Domain Kode barang Varchar (10) Domain Jumlah retur Int

Detail Retur Pembelian (

KdReturPembelian Kode retur pembelian NOT NULL, KdBarang Kode barang NOT NULL, QtyRetur Jumlah retur NOT NULL, CONSTRAINT PK_TrDetailReturBeli

PRIMARY KEY (KdReturPembelian, KdBarang),

CONSTRAINT FK_TrDetailReturBeli1

FOREIGN KEY (KdReturPembelian) REFERENCES Tr_ReturPembelian (KdReturPembelian) ON DELETE CASCADE ON UPDATE

CASCADE,

CONSTRAINT FK_TrDetailReturBeli2

FOREIGN KEY (KdBarang) REFERENCES M s_Barang (KdBarang) ON DELETE NO ACTION ON UPDATE NO ACTION,

CHECK (QtyRetur >= 1) );

• DBDL untuk Penjualan

Domain Kode penjualan Varchar (10) Domain Kode karyawan Varchar (10) Domain Kode pelanggan Varchar (50) Domain Tanggal penjualan Datetime Domain Tipe barang Varchar (10) Domain Tanggal jatuh tempo kredit Datetime

Penjualan (

KdPenjualan Kode penjualan NOT NULL, KdKaryawan Kode karyawan NOT NULL, KdPelanggan Kode pelanggan NOT NULL, Tanggal Tanggal Penjualan NOT NULL,

Tipe Tipe barang NOT NULL,

TglJatuhTempo Tanggal jatuh tempo kredit NOT NULL, PRIMARY KEY (KdPenjualan)

CONSTRAINT FK_TrPenjualan1

FOREIGN KEY (KdKaryawan) REFERENCES M s_Karyawan

(KdKaryawan) ON DELETE NO ACTION ON UPDATE CASCADE,

CONSTRAINT FK_TrPenjualan2 \

FOREIGN KEY (KdPelanggan) REFERENCES M s_Pelanggan

CONSTRAINT TrPenjualan3 CHECK (TglJatuhTempo > GETDATE())

);

• DBDL untuk Detail Penjualan

Domain Kode penjualan Varchar (10) Domain Kode barang Varchar (10)

Domain Jumlah Int

Detail Penjualan (

KdPenjualan Kode penjualan NOT NULL, KdBarang Kode barang NOT NULL, Qty Jumlah NOT NULL,

CONSTRAINT PK_TrDetailPenjualan PRIMARY KEY (KdPenjualan, KdBarang),

CONSTRAINT FK_TrDetailPenjualan1

FOREIGN KEY (KdPenjualan) REFERENCES Tr_Penjualan (KdPenjualan) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_TrDetailPenjualan2

FOREIGN KEY (KdBarang) REFERENCES M s_Barang (KdBarang) ON DELETE NO ACTION ON UPDATE CASCADE,

CONSTRAINT TrDetailPenjualan1 CHECK (Qty >= 1)

• DBDL untuk Retur Penjualan

Domain Kode retur penjualan Varchar (10) Domain Kode penjualan Varchar (10) Domain Kode karyawan Varchar (10) Domain Kode tanggal Datetime Domain Kode status Varchar (10) Retur Penjualan (

KdReturPenjualan Kode retur penjualan NOT NULL, KdPenjualan Kode penjualan NOT NULL, KdKaryawan Kode karyawan NOT NULL,

Tanggal Tanggal NOT NULL,

Status Status NOT NULL,

PRIMARY KEY (KdReturPenjualan)

CONSTRAINT FK_TrReturPenjualan1 FOREIGN KEY (KdPenjualan) REFERENCES Tr_Penjualan (KdPenjualan) ON DELETE CASCADE ON UPDATE CASCADE );

• DBDL untuk Detail Retur Penjualan

Domain Kode retur penjualan Varchar (10) Domain Kode barang Varchar (10) Domain Jumlah retur Int

Retur Penjualan (

KdBarang Kode barang NOT NULL, QtyRetur Jumlah retur NOT NULL, CONSTRAINT PK_TrDetailReturJual

PRIMARY KEY (KdReturPenjualan, KdBarang), CONSTRAINT FK_TrDetailReturJual1

FOREIGN KEY (KdReturPenjualan) REFERENCES

Tr_ReturPenjualan (KdReturPenjualan) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT FK_TrDetailReturJual2

FOREIGN KEY (KdBarang) REFERENCES M s_Barang (KdBarang) ON DELETE NO ACTION ON UPDATE CASCADE,

CONSTRAINT TrDetailReturJual1 CHECK (QtyRetur >= 1)

);

• DBDL untuk Telpkaryawan

Domain No telp karyawan Int

Domain KdKaryawan Varchar(10) Telpkaryawan (

Telpkaryawan No telp karyawan NOT NULL, Kdkaryawan Kodekaryawan NOT NULL, PRIMARY KEY (Telpkaryawan),

FOREIGN KEY (Kdkaryawan) REFERENCES Karyawan (Kdkaryawan) ON UPDATE CASCADE ON DELETE SET NULL

);

• DBDL untuk Telppelanggan

Domain No telp pelanggan Int

Domain Kdpelanggan Varchar(10) Telppelanggan (

Telppelanggan No telp pelanggan NOT NULL, Kdpelanggan Kodepelanggan NOT NULL, PRIMARY KEY (Telppelanggan),

FOREIGN KEY (Kdpelanggan) REFERENCES Pelanggan (Kdpelanggan) ON UPDATE CASCADE ON DELETE SET NULL

);

• DBDL untuk Telpsupplier

Domain No telp supplier Int

Domain Kdsupplier Varchar(10) Telpsupplier (

Telpsupplier No telp supplier NOT NULL, Kdsupplier Kodesupplier NOT NULL, PRIMARY KEY (Telpsupplier),

FOREIGN KEY (Kdsupplier) REFERENCES supplier (Kdsupplier) ON UPDATE CASCADE ON DELETE SET NULL

);

Dalam dokumen BAB 4 RANCANGAN SISTEM YANG DIUSULKAN (Halaman 62-74)

Dokumen terkait