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.
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.
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
Mengisi data pada table
Menampilkan data dari table yang telah kita isi
Terima kasih semoga bermanfaat
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 pembelianMembuat 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
Ijin copas gaaan.....
BalasHapusboleh saya minta relasi antar tabel yang sistem informasi koperasi? saya sudah download modulnya,terima kasih.
HapusIlmu yang sangat berguna mas makasih atas share nya :)
BalasHapusNiche blog :)
terima kasih telah berkunjung...
HapusIjin lihat2 tutornya & saya ingin belajar..
BalasHapusSangat bermanfaat sekali pak :D
Terima kasih
terima kasih telah berkunjung...
HapusSelamat malam Pak, Saya Lagi Belajar Integritas Data
BalasHapus1. Bagaimana cara menjaga integritas data untuk atribut yg sering berubah seperti "Harga" pada tabel parts yang juga ada pada tabel transaksi_parts? Apakah dibuat seperi tabel Log untuk perubahan tabel2 master?
2. Cara menentukan atribut2 yg perlu dimasukkan pada tabel relasi selain primary key nya?
terimakasih
boleh saya minta password persediaan_barang pak saya sudah download aplikasinya trima kasih...
BalasHapusyang 3nf gak ada yah ?
BalasHapusterima kasih gan atas ilmu nya .. thanks you
BalasHapusKita satu alumni.S2 STMIK.ERESHA.JUGA...keren.ini....
BalasHapusthanks gan atas infonya
BalasHapusmakasih mas Dedy Rusdiansyah... sangat bermanfaat
BalasHapussangat membantu gan..
BalasHapusIf some one desires to be updated with latest
BalasHapustechnologies then he must be visit this web page and be up to date daily.
Appreciate the recommendation. Let mee try it
BalasHapusout.
Ηell it's me, I am also visiting this web page regularly,
BalasHapusthis web site is truly fastidious and the people are actually sharing pleasant thoughts.
What's Taking place i am new to this, I stumbled upon this I've found It absolutely helpful and it has
BalasHapushelped me ouut loads. I am hoping to give a contribution & assist
different customers likke its aided me. Good job.
Hi, I desire to subscribe for this website to obtain most up-to-date updates, thus where can i do it please help out.
BalasHapusI really like it whenever people come together and share ideas.
BalasHapusGreat blog, keep it up!
Izin repost materinya ya pak..
BalasHapus