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.
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:
Membuat tablecreate database pembelian use pembelian
Mengisi data pada tablecreate 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
Menampilkan data dari table yang telah kita isi/*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'
/*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
Daftar Pustaka :
http://deddyrusdiansyah.blogspot.co.id/2012/12/penerapan-normalisasi-dan-implementasi.html