Penerapan Normalisasi dan Implementasi ke Database SQL Server

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
1create database pembelian
2use  pembelian
Membuat table
01create table kendaraan (
02no_polisi char(10),
03warna char(20),
04merek char(30),
05tahun char(5),
06primary key (no_polisi)
07)
08sp_help kendaraan
09 
10create table mekanik (
11mekanik_id char(5),
12nama_mekanik varchar(50),
13primary key (mekanik_id)
14)
15sp_help mekanik
16 
17create table parts (
18kode_parts char(20),
19nama_parts varchar(50),
20harga int,
21primary key (kode_parts)
22)
23sp_help parts
24 
25create table bon_pembelian (
26no_faktur char(10),
27tanggal datetime,
28no_polisi char(10),
29mekanik_id char(5),
30potongan int,
31primary key (no_faktur),
32constraint FK_nopolisi foreign key (no_polisi) references kendaraan(no_polisi),
33constraint FK_mekanik foreign key (mekanik_id) references mekanik(mekanik_id)
34)
35sp_help bon_pembelian
36 
37create table transaksi_parts (
38no_faktur char(10),
39kode_parts char(20),
40qty int,
41harga int,
42discount int,
43primary key (no_faktur,kode_parts),
44constraint FK_nofaktur foreign key (no_faktur) references bon_pembelian(no_faktur),
45constraint FK_kodeparts foreign key (kode_parts) references parts(kode_parts)
46)
47sp_help transaksi_parts

Mengisi data pada table
01/*jawaban no.3 */
02/** Isi data table kendaraan **/
03INSERT INTO kendaraan VALUES('B3117LB','Biru','Supra X','2005')
04INSERT INTO kendaraan VALUES('B2121AA','Merah','Supra X','2005')
05/** isi data table mekanik **/
06INSERT INTO mekanik VALUES('DDE','Djoko Dewanto')
07/** isi data table  parts **/
08INSERT INTO parts VALUES('20W501000CC','Oli Top 1 000cc',27000)
09INSERT INTO parts VALUES('SERV001','Engine Tune Up',25000)
10/** isi data table  bon_pembelian **/
11INSERT INTO bon_pembelian VALUES('05103214',GETDATE(),'B3117LB','DDE',2000)
12INSERT INTO bon_pembelian VALUES('05103215',GETDATE(),'B2121AA','DDE',0)
13/** isi data table  transkasi_parts **/
14INSERT INTO transaksi_parts (no_faktur,kode_parts,qty,harga,discount)
15select '05103214','20W501000CC',2,harga,1000 FROM parts where kode_parts='20W501000CC'
16INSERT INTO transaksi_parts (no_faktur,kode_parts,qty,harga,discount)
17select '05103214','SERV001',1,harga,2000 FROM parts where kode_parts='SERV001'
18INSERT INTO transaksi_parts (no_faktur,kode_parts,qty,harga,discount)
19select '05103215','SERV001',1,harga,2000 FROM parts where kode_parts='SERV001'

Menampilkan data dari table yang telah kita isi
01/*jawaban no.3 */
02select * from kendaraan
03select * from mekanik
04select * from parts
05select * from bon_pembelian
06select * from transaksi_parts
07 
08/** Relasi antar table hingga terbentuk 1NF **/
09select a.no_faktur, a.tanggal,a.no_polisi,e.warna,e.merek,e.tahun,a.mekanik_id,d.nama_mekanik,
10b.kode_parts,c.nama_parts,b.qty,b.harga,b.discount,(b.qty*b.harga)-(b.qty*b.discount) as jumlah,a.potongan,
11(select sum((qty*harga)-(qty*discount))-a.potongan from transaksi_parts where no_faktur=a.no_faktur) as total
12from bon_pembelian as a
13join transaksi_parts  as b ON a.no_faktur=b.no_faktur
14join parts as c ON b.kode_parts=c.kode_parts
15join mekanik as d ON a.mekanik_id=d.mekanik_id
16join kendaraan as e ON a.no_polisi=e.no_polisi
Terima kasih semoga bermanfaat

sumber : Deddy Rusdiansyah

Penerapan Normalisasi dan Implementasi ke Database SQL Server Rating: 4.5 Diposkan Oleh: admin

0 komentar:

Post a Comment