Add me on Google+
Add me on Facebook

Penerapan Normalisasi dan Implementasi ke Database SQL Server

Diposting oleh Label: di
Kali ini saya akan menerangkan tahap-tahap penerapan normalisasi hingga menjadi sebuah ERD pada SQL server. Sering kali mahasiswa bertanya "bagaimana awal mulanya pembuatan sistem informasi" salah satu cara terbaik awal pembuatan sistem informasi adalah menanyakan kebutuhan user / pengguna terhadap sebuah sistem yang akan dibangun, biasanya kebutuhan ini awalnya dari sebuah "MASALAH" yang harus dicarikan solusi.
Bermodalkan interview kepada pengguna kebutuhan apa yang harus dibuat, biasanya kita mencari informasi proses bisnis dari perusahaan tersebut, sehingga akhirnya kita mengetahui format manual sistem yang berjalan   contohnya disini BON PEMBELIAN.

1. Bentuk Normal Pertama (1NF)
dari manual bon pembelian diatas kita dapat menjadi bentuk normal pertama dengan memisah-misahkan data pada atribut-atribut yang tepat dan bernilai atomik, juga seluruh record / baris harus lengkap adanya.

2. Bentuk Normal Kedua (2NF).
Bentuk normal kedua dengan melakukan dekomposisi tabel diatas menjadi beberapa tabel dan mencari kunci primer dari tiap-tiap tabel tersebut dan atribut kunci haruslah unik.


3. Bentuk Normal Ketiga (3NF)
Bentuk normal ketiga mempunyai syarat, setiap relasi tidak mempunyai atribut yang bergantung transitif, harus bergantung penuh pada kunci utama dan harus memenuhi bentuk normal kedua (2 NF).

Implementasi ERD (entity relationship diagram) pada contoh diatas, bisa dituangkan kedalam database MS SQL Server 2005, seperti terlihat pada gambar beikut ini :

Record Fisik database :


berikutnya saya akan menjelaskan pemakaian script sql server dalam membuat tabel-tabel diatas dan relasi yang terbentuk.

Membuat database Pembelian:
create database pembelian
use pembelian
Membuat table 
create table kendaraan (
no_polisi char(10),
warna char(20),
merek char(30),
tahun char(5),
primary key (no_polisi)
)
sp_help kendaraan

create table mekanik (
mekanik_id char(5),
nama_mekanik varchar(50),
primary key (mekanik_id)
)
sp_help mekanik

create table parts (
kode_parts char(20),
nama_parts varchar(50),
harga int,
primary key (kode_parts)
)
sp_help parts

create table bon_pembelian (
no_faktur char(10),
tanggal datetime,
no_polisi char(10),
mekanik_id char(5),
potongan int,
primary key (no_faktur),
constraint FK_nopolisi foreign key (no_polisi) references kendaraan(no_polisi),
constraint FK_mekanik foreign key (mekanik_id) references mekanik(mekanik_id)
)
sp_help bon_pembelian

create table transaksi_parts (
no_faktur char(10),
kode_parts char(20),
qty int,
harga int,
discount int,
primary key (no_faktur,kode_parts),
constraint FK_nofaktur foreign key (no_faktur) references bon_pembelian(no_faktur),
constraint FK_kodeparts foreign key (kode_parts) references parts(kode_parts)
)
sp_help transaksi_parts
Mengisi data pada table

/*jawaban no.3 */
/** Isi data table kendaraan **/
INSERT INTO kendaraan VALUES('B3117LB','Biru','Supra X','2005')
INSERT INTO kendaraan VALUES('B2121AA','Merah','Supra X','2005')
/** isi data table mekanik **/
INSERT INTO mekanik VALUES('DDE','Djoko Dewanto')
/** isi data table parts **/
INSERT INTO parts VALUES('20W501000CC','Oli Top 1 000cc',27000)
INSERT INTO parts VALUES('SERV001','Engine Tune Up',25000)
/** isi data table bon_pembelian **/
INSERT INTO bon_pembelian VALUES('05103214',GETDATE(),'B3117LB','DDE',2000)
INSERT INTO bon_pembelian VALUES('05103215',GETDATE(),'B2121AA','DDE',0)
/** isi data table transkasi_parts **/
INSERT INTO transaksi_parts (no_faktur,kode_parts,qty,harga,discount)
select '05103214','20W501000CC',2,harga,1000 FROM parts where kode_parts='20W501000CC'
INSERT INTO transaksi_parts (no_faktur,kode_parts,qty,harga,discount)
select '05103214','SERV001',1,harga,2000 FROM parts where kode_parts='SERV001'
INSERT INTO transaksi_parts (no_faktur,kode_parts,qty,harga,discount)
select '05103215','SERV001',1,harga,2000 FROM parts where kode_parts='SERV001'
 Menampilkan data dari table yang telah kita isi

/*jawaban no.3 */
select * from kendaraan
select * from mekanik
select * from parts
select * from bon_pembelian
select * from transaksi_parts

/** Relasi antar table hingga terbentuk 1NF **/
select a.no_faktur, a.tanggal,a.no_polisi,e.warna,e.merek,e.tahun,a.mekanik_id,d.nama_mekanik,
b.kode_parts,c.nama_parts,b.qty,b.harga,b.discount,(b.qty*b.harga)-(b.qty*b.discount) as jumlah,a.potongan,
(select sum((qty*harga)-(qty*discount))-a.potongan from transaksi_parts where no_faktur=a.no_faktur) as total
from bon_pembelian as a
join transaksi_parts as b ON a.no_faktur=b.no_faktur
join parts as c ON b.kode_parts=c.kode_parts
join mekanik as d ON a.mekanik_id=d.mekanik_id
join kendaraan as e ON a.no_polisi=e.no_polisi

Terima kasih semoga bermanfaat 
Posting Komentar Komentar Anda Merupakan Komitmen Dari Saya..
------------------------------------------------------------------------------------------------------*/
Catatan :

✓ Link Aktifkan di sini kawan : © OFFICIAL PARTNER
☀ Dilarang promosi / meng-iklankan suatu produk dll
✓ Berkomentar dengan bahasa yang sopan
------------------------------------------------------------------------------------------------------*/
Terimakasih Atas Kunjungannya...

Semoga Bermanfaat :D

Back to Top