STUDI KASUS ERD DAN NORMALISASI
Studi Kasus normalisasi:
STUDI KASUS
TOKO ABC
No. Faktur :
Tanggal : Kepada :
Tanggal : Kepada :
No.
|
Nama
|
Jumlah
|
Harga
|
Total
|
Total Bayar
|
||||
Diskon
|
||||
Jumlah Bayar
|
Petugas : …………………………..
TAHAP-TAHAP NORMALISASI DATA
A. BASIS
DATA BELUM TERNORMALISASI
Berdasarkan faktur di atas, maka
gambaran database yang belum ternormalisasi adalah sebagai berikut :
1. Tabel
yang memiliki field dengan banyak data / tidak tunggal
Tanggal
|
Nama_pelanggan
|
Daftar_Belanja
|
|
05070101
|
29/05/07
|
Pitoyo
|
Bedak,
Beras, Minyak Tanah, Buku
|
05070102
|
29/05/07
|
Bowo
|
Baby Oil,
Garam, Gula, Pensil
|
05070103
|
30/05/07
|
Erlina
|
Sikat
gigi, Sabun, Odol, Sampo
|
06070001
|
01/06/07
|
Dayat
|
Beras
|
2, Tabel dengan field yang mengalami repeating groups
No_Faktur
|
Tanggal
|
Pelanggan
|
Belanja 1
|
Harga1
|
Belanja2
|
Harga2
|
Belanja3
|
Harga3
|
Belanja4
|
Harga4
|
05070101
|
29/05/07
|
Pitoyo
|
Bedak
|
1500
|
Beras
|
10000
|
Minyak Tanah
|
3500
|
Buku
|
2000
|
05070102
|
29/05/07
|
Bowo
|
Baby Oil
|
5600
|
Garam
|
2500
|
Gula
|
4000
|
Pensil
|
1500
|
05070103
|
30/05/07
|
Erlina
|
Sikat gigi
|
12000
|
Sabun
|
2500
|
Odol
|
13000
|
Sampo
|
16000
|
06070001
|
01/06/07
|
Dayat
|
Beras
|
25000
|
Walaupun susunan tabel data di atas
belum menampilkan keseluruhan atribut dari bentuk faktur yang tertera pada
masalahini, tetapi ia telah dapat menggambarkan bentuk basis data yang belum
ternormalisasi, karena suatu relasi memenuhi 1-NF jika dan hanya jika setiap
atribut hanya memiliki nilai tunggal dalam satu baris / record dan tidak
mengalami repeating groups.
ERD
- Permasalahan
Toko X
adalah sebuah toko dimana gudang untuk menyimpan barang-barangnya lebih dari
satu. Data yang dicatatnya adalah supplier yang memasok barang, barang atau
produk yang ada dalam toko, nota pembelian yang didapat dari proses
pembelian,dan stok yang ada pada masing-masing gudang. Permasalah yang
muncul adalah sulitnya untuk mengecek stok barang pada masing-masing gudang
karena jarak sehingga mengakibatkan proses penyimpanan menjadi terhambat.
- Tahap 1: Penentuan Entities
produk : menyimpan semua informasi
mengenai semua produk yang ditawarkan.
pemasok : menyimpan semua informasi mengenai semua pemasok.
nota_pembelian : menyimpan semua informasi mengenai semua transaksi pembelian produk dari pemasok.
gudang : menyimpan semua informasi mengenai gudang untuk penyimpanan produk
pemasok : menyimpan semua informasi mengenai semua pemasok.
nota_pembelian : menyimpan semua informasi mengenai semua transaksi pembelian produk dari pemasok.
gudang : menyimpan semua informasi mengenai gudang untuk penyimpanan produk
- Tahap 2 : Penentuan Attributes
produk :
-
kode_produk: kode unik untuk tiap macam produk (string) PK.
- nama_produk: nama lengkap untuk produk (string).
- harga_jual: harga jual produk di toko (integer)
- nama_produk: nama lengkap untuk produk (string).
- harga_jual: harga jual produk di toko (integer)
pemasok:
-
kode_pemasok: kode unik untuk tiap pemasok (string) PK.
- nama_pemasok: nama lengkap untuk pemasok (string).
- alamat_pemasok: alamat lengkap untuk pemasok (string)
- nama_pemasok: nama lengkap untuk pemasok (string).
- alamat_pemasok: alamat lengkap untuk pemasok (string)
nota_pembelian:
-
no_nota: kode untuk nota pembelian (integer) PK.
- tanggal: tanggal transaksi dilakukan (date)
- tanggal: tanggal transaksi dilakukan (date)
gudang:
-
kode_gudang: kode untuk ruang kelas (string) PK.
- alamat_gudang: alamat lengkap untuk gudang (string)
- alamat_gudang: alamat lengkap untuk gudang (string)
- Tahap 3: Penentuan Relationships
- produk disimpan di gudang:
- Tabel utama: produk, gudang
- Tabel kedua: stok_produk
- Relationship: Many-to-many (m:n)
- Attribute penghubung: kode_produk, kode_gudang (FK kode_produk, kode_gudang di stok_produk)
- produk tercatat di nota_pembelian:
- Tabel utama: produk, nota_pembelian
- Tabel kedua: rincian_nota_pembelian
- Relationship: Many-to-many (m:n)
- Attribute penghubung: kode_produk, no_nota (FK kode_produk, no_nota di rincian_nota_pembelian)
- pemasok tercatat di nota_pembelian:
- Tabel utama: pemasok
- Tabel kedua: nota_pembelian
- Relationship: One-to-many (1:n).
- Attribute penghubung: kode_pemasok (FK kode_pemasok di nota_pembelian)
- Implementasi
CREATE TABLE
produk (
kode_produk
varchar(20) PRIMARY KEY,
nama_produk
varchar(45) UNIQUE,
harga_jual
integer
);
CREATE TABLE
pemasok (
kode_pemasok
varchar(20) PRIMARY KEY,
nama_pemasok
varchar(20) NOT NULL,
alamat_pemasok
varchar(45) NOT NULL,
CHECK(nama_pemasok!=”
AND alamat_pemasok!=”)
);
CREATE TABLE
gudang (
kode_gudang
varchar(20) PRIMARY KEY,
alamat_gudang
varchar(45)
);
CREATE TABLE
pembelian (
no_nota
serial PRIMARY KEY,
kode_pemasok
varchar(20) REFERENCES pemasok(kode_pemasok),
tanggal date
DEFAULT current_date
);
CREATE TABLE
nota_pembelian (
no_nota serial
PRIMARY KEY,
kode_pemasok
varchar(20) REFERENCES pemasok(kode_pemasok),
tanggal date
DEFAULT current_date
);
CREATE TABLE
rincian_nota_pembelian (
kode_produk
varchar(20) REFERENCES produk(kode_produk),
no_nota
integer REFERENCES nota_pembelian(no_nota),
harga_satuan
integer,
jumlah
integer NOT NULL,
CHECK(jumlah>=20),
FOREIGN
KEY(kode_produk, no_nota)
);
CREATE TABLE
stok_produk (
kode_produk
varchar(20) REFERENCES produk(kode_produk),
kode_gudang
varchar(20) REFERENCES gudang(kode_gudang),
jumlah_stok
integer NOT NULL,
CHECK(jumlah_stok<=200),
FOREIGN KEY
(kode_produk, kode_gudang)
);
sumber:
www.stafsite.gunadarma.ac.id
materi sidang comprehensi Wisnu Ajie Supardi S.Kom
http://itsum.wordpress.com/2010/09/16/pembuatan-entity-relationship-diagram-erd-studi-kasus-database-inventori-toko-x/
materi sidang comprehensi Wisnu Ajie Supardi S.Kom
http://itsum.wordpress.com/2010/09/16/pembuatan-entity-relationship-diagram-erd-studi-kasus-database-inventori-toko-x/
www.gunadarma.ac.id
No comments:
Post a Comment