Misalnya terdapat dua buah formulir, yaitu kartu stok dan faktur penjualan. 1. Faktur Penjualan
2. Kartu stok Kode Barang Nama Barang Harga dasar Sisa stok C-01 CD-RW 48X 400.000 6 M-02 Monitor 14 1.250.000 5 Rancanglah database menggunakan dua form tersebut diatas: 1. Unnormalized form : Data ditampilkan apa adanya tanpa harus mengikuti format tertentu.
No.Faktur 112 Tgl_faktur 01-062005 Hp
0855555555, 024702413
Total 1.000.000 1.500.000
Kd_kons K10
Nm_kons Udinus
No 01 02
Jml_jual 2 1
bayar 2.500.000 -
6 5
2. First normal form (1 NF ) o Atomic value, tidak terdapat atribut bernilai banyak (multivalue) Tabel barang
No.Faktur 112 Nm_brg CD-RW 48X Tabel HP Kd_kons K10 K10 K10 Tgl_f 01-06-2005 Jml_jual 2 Hp Kd_kons K10 Hrg_jual 500.000 Nm_kons Udinus Alm_jalan Jl. Nakula 5-11 Sisa_stok Alm_kota Semarang Kd_brg C-01
Harga_dsr 400.000
0855555555 0812222222 024702413 3. Second normal form ( 2 NF ) o Telah memenuhi bentuk normal pertama sudah terpenuhi o Semua atribut bergantung secara utuh kepada kunci utama atau menurut Fatansah semua atribut bukan kunci harus bergantung penuh ke semua atribut kunci bukan hanya sebagian belum terpenuhi, sehingga harus didekomposisi berdasarkan ketergantungan fungsional yang ada. No_faktur, kd_kons ,Kd_brg tgl_f, nm_brg,jml_jual,hrg_jual, Harga_dsr, sisa_stok, nm_kons, alm_jalan, alm_kota
No.Faktur 112 112 Tgl_f 01-06-2005 01-06-2005 Kd_kons K10 K10 Nm_kons Udinus Udinus Alm_jalan Jl. Nakula 5-11 Jl. Nakula 5-11 Alm_kota Semarang Semarang
6 5
Berdasarkan data diatas: kd_brg nm_brg, harga_dsr, sisa_stok Sedangkan jml_beli dan hrg_jual tidak bergantung kepada kd_brg tetapi bergantung kepada No_faktur,kd_brg jml_beli, hrg_jual Sehingga sampai bentuk normal II terbentuk tiga buah tabel yaitu : 1. Tabel1 dengan KF Kd_brg nm_brg, harga_dsr, sisa_stok 2. Tabel2 dengan KF Kd_kons nm_kons, alm_jalan, alm_kota 3. Tabel3 dengan KF No_faktur tgl_f, kd_kons 4. Tabel4 dengan KF No_faktur,kd_brg jml_jual, hrg_jual 5. Tabel 5 dengan KF Kd_kons hp 4. Third normal form Tidak ada ketergantungan transitif ( bukan kunci menentukan bukan kunci) atau 1. Tabel1 dengan KF Kd_brg nm_brg, harga_dsr, sisa_stok nm_brg harga_dsr, sisa_stok harga_dsr nm_brg , sisa_stok sisa_stok nm_brg, harga_dsr 2. Tabel2 dengan KF Kd_kons nm_kons, alm_jalan, alm_kota nm_kons alm_jalan, alm_kota alm_kota nm_kons, alm_jalan, alm_jalan nm_kons, alm_kota 3. Tabel3 dengan KF No_faktur tgl_f, kd_kons tgl_f kd_kons kd_kons tgl_f 4. Tabel4 dengan KF No_faktur,kd_brg jml_jual, hrg_jual jml_jual hrg_jual hrg_jual jml_jual 5. Tabel5 dengan KF Kd_kons Hp Memenuhi normal ke 3 karena tidakada ketergantungan transitif ERD N N Ju Konsumen Barang al 1 Memiliki N Table Relationship Konsumen * kd_kons nm_kons alm_jalan alm_kota Hp ** kd_kons hp Hp
Faktur Jual * no_faktur tgl_f ** kd_kons Detail Jual * *no_faktur ** kd_brg jml_Jual hrg_jual
TUGAS
Dari Contoh Perancangan database tersebut yang sudah diajarkan: Buatlah Tabel-tabel pada suatu database dengan Unnormal, Normal 1 s/d 3 dan Gambarkan Relasi tabelnya. 2. Dikumpulkan pertemuan Perkuliahan terakhir 3. Satu tugas untuk dua (2) mashasiswa. 4. Database Bebas cari di perusahaan-perusahaan dengan melampirkan Form (fotocopy Form)yang ada. 5. Perkulihan ini gunakan untuk diskusi dengan kelompok untuk menyelesaikan Tugas.
1.
Functional Dependencies (FD) / Ketergantungan Fungsional (KF) digunakan untuk menggambarkan atau mendeskripsikan bentuk normal atas suatu relasi FD adalah batasan terhadap gugus relasi yang berlaku diperoleh berdasarkan hubungan antar atribut data. * functional dependencies (FD) : Armstrongs Rule A1. Reflexive Jika y x maka x y, X X A2. Augmentation Jika x y maka (x,z) (y,z) A3. Transitive Jika x y dan y z maka x z A4. Decomposition Jika x (y,z) maka x y dan x z A5. Union Jika x y dan x z maka x (y,z) A6. Pseudotranstivity Jika x y dan (z,y) w maka (z,x) w * Manfaat FD pada dekomposisi Untuk : 1. Lossless Join Decomposition Mendapatkan dekomposisi yang tidak kehilangan data/informasi 2. No Redundancy Mendapatkkan skema relasi yang tidak mengandung redundansi 3. Dependency Preservation Terjaminnya pemeliharaan ketergantungan sehingga dapat mengatasi masalah update anomali Contoh Soal : Diketahui skema relasi R=(A,B,C,D,E,F,G,H) didekomposisi menjadi : R1=(A,B,C,D,G) dan R2=(B,D,E,F,H). FD pada R yang berlaku adalah : (1) B A,G (2) E D,H (3) A E,C (4) D F Ujilah apakah dekomposisi {R1,R2} tersebut lossless atau lossy ? 1. Uji Dekomposisi R1 R2 = (A,B,C,D,G) (B,D,E,F,H) = (A,B,C,D,E,F,G,H) =R .:. Terbukti bahwa {R1,R2} adalah dekomposisi dari R. 2. Uji Lossless R1 R2 = (A,B,C,D,G) (B,D,E,F,H)
B.
= (B,D) Akan dibuktikan bahwa paling sedikit satu kondisi berikut dipenuhi A. R1 R2 R1 ; (B,D) (A,B,C,D,G) atau R1 R2 R2 ; (B,D) (B,D,E,F,H) Buktikan : A. R1 R2 R1 ; (B,D) (A,B,C,D,G) Dari (1) B A,G maka : (5) B,D A,G,D (augmentasi) (6) B,D B,D (refleksif) Jadi (7) B,D A,B,D,G (1) B A,G maka (8) B A dan (Decomposisi) (9) B G Dari (3) A E,C maka (10) A E dan (decomposisi) (11) A C maka : Dari (8) B A dan (11) A C Maka (12) B C (transitif) Dan (13) B,D C,D (augmentasi) Dari (7) dan (13) didapat : B,D A,B,C,D,G (Jadi Lossless) R1 R2 R2 ; (B,D) (B,D,E,F,H) R1 R2 R2 ; (B,D) (B,D,E,F,H) Dari (4) D F (5) B,D B,F (augmentasi) (6) B,D B,D (refleksif) Jadi (7) B,D B,D,F (3) A E,C maka (8) A E dan (Decomposisi) (9) A C Dari (1) B A,G maka (10) B A dan (decomposisi) (11) B G maka : Dari (10) DAN (8) B A dan A E JADI (11) B E Maka (12) B,D E,D (augmentasi) Dari (2) E D,H Dari (11) dan (2) didapat : B E dan E D,H Maka (12) B D,H (13) B D (Decomposisi) (14) B H Dari (11) dan (14) didapat : B E dan B H (Union) Jadi (15) B E,H (16) B,D E,H,D (augmentasi) Jadi (7) dan (16) B,D B,D,E,F,H (Jadi Lossless)
3 6 2 2
B. Didekomposisi ( faktur jual dan Detail) Tabel Faktur Jual Tabel Detail_jual Nofaktur Tgl_f Kd_kons Nofaktur Kd_brg FJ0001 10-03-2009 K0001 FJ0001 FJ0001 FJ0001 FJ0001 FJ0001 B0001 B0002 B0003 B0004 B0005
Kartu Mahasiswa
NIM : A12.2007.00122 NAMA : Amir H Alamat : Jl. Pemuda II N0 240, Semarang barat Kode_pos : 50123 Telpon : 7012345 2. KHS
Rancanglah database menggunakan dua form tersebut diatas: 1. Unnormalized form o Data ditampilkan apa adanya tanpa harus mengikuti format tertentu.
Nim A12.2007.00122 Nama _mhs Amir H Amir H Alamat Kdpos Telpon Nim Nama_ mhs Amir H Amir H No 01 Kd_mt S0005 Nm_mt SBD SKS Stat us 2 B n il I P K A 3 . 0 B 3 . 0
A12.2007.00122
50123 50123
70123456 A12.200
7.00122
70123456 A12.200
7.00122
02
P0002
Pemro g. Pascal
2.8
A12.2007.00122 A12.2007.00122
Amir H Amir H
S0005 P0002
Semarang 50123 70123456 SBD Barat Semarang 50123 70123456 Pemrog. Pascal Barat
2 2
B U
A B
Second normal form ( 2 NF ) 1.Telah memenuhi bentuk normal pertama sudah terpenuhi 2.Semua atribut bergantung secara utuh kepada kunci utama atau menurut Fatansah semua atribut bukan kunci harus bergantung penuh ke semua atribut kunci bukan hanya sebagian belum terpenuhi, sehingga harus didekomposisi berdasarkan ketergantungan fungsional yang ada. Tabel KRS: Nim, Kd_mt Nil , Nm_matkul , Nm_mhs,alamat,Kota,kdpos, telpon, SKS, Status
MHS : Nim A12.2006.00011 A12.2006.00011 A11.2007.00555 Kd_mt MT01 MT02 MT01 Nil 70 70 70 Nm_mhs AMIR AMIR BUDI Alamat Kecamatan Kdpos Telpon Nm_mt SKS Status
2 2 2
B B U
Tidak memenuhi 2 NF karena ada ketergantungan fungsional lebih dari satu: Ketergantungan Fungsionalnya: Nim,Kd_mt Nil, status Nim Nm_mhs, alamat, kecamatan, kdpos Kd_mt Nm_matkul, sks
1. KRS / Nilai: Nim A12.2006.00011 A11.2007.00555 A11.2007.00555 2. MHS : Nim A12.2006.00011 Kd_mt MT01 MT01 MT02 Nm_mhs AMIR Nil 85 85 85 Status U B B Alamat Kecamatan Kdpos Telpon
Semarang Barat
50123
70123456
Nm_mt
Sks
SBD PASCAL
2 3
Tabel tersebut memenuhi normal kedua karena semua atribut bukan kunci tergantung penuh ke semua kunci ( tidak sebagian kunci). Normal ke 3 (3 NF) 1. Memenuhi normal 2 2. Tidak ada ketergantungan transitif (atribut bukan kunci tidak menentukan bukan kunci) Tabel MHS : Nim Nm_mhs, Alamat, kdpos, Kecamatan Tabel KRS : Nim,Kd_mt Nil, Status Tabel MTKUL : Kd_mt Nm_matkul, sks 1. Tabel MHS: Nim Nm_mhs, Alamat, kdpos, kecamatan
Nm_mhs Alamat, kdpos, kecamatan Alamat Nm_mhs, kdpos, kecamatan kdpos Nm_mhs,Alamat Tetapi atribut Kdpos kecamatan kecamatan Nm_mhs,alamat, kdpos tetapi kecamatan Kdpos ( tidak memenuhi 3NF karena ada ketergantungan transitif / bukan kunci menentukan bukan kunci) Karena ada 2 (dua) Ketergantungan Fungsional : Tabel mhs : Nim Nm_mhs, Alamat, kdpos Tabel pos : Kdpos kecamatan Sehingga didikomposisi menjadi: a. Tabel MHS Nim Nm_mhs, Alamat, kdpos Nm_mhs Alamat, kdpos Alamat Nm_mhs, kdpos kdpos Nm_mhs, Alamat b. Tabel POS kdpos kecamatan Tabel pos memenuhi 3 NF karena hanya satu atribut. 2. Tabel KRS: Nim,Kd_mt Nil, Status Nil Status Status Nil Memenuhi 3 NF karena atribut tidak ada ketergantungan transitif. 3. Tabel MTKUL: Kd_mt Nm_matkul, sks Nm_matkul sks Sks Nm_matkul Table Relationship MHS * nim nm_mhs alamat **kdpos
KRS ** Nim ** kd_mt Nil Status POS * kdpos kecamatan Nim Kd_m t N KRS Nil_tgs Nil_ua s MATKUL Kd_m t
Nim N
Nm_matku ll sks
Nim
Nil_mi d 1
Memili ki Kdpo s
C. Table Relationship ( + niltgs, nilmid,niluas) MHS KRS * nim ** Nim nm_mhs ** kd_mt alamat Nil_tgs **kdpos Nil_mid Nil_Uas status
a. Tabel MHS nim A21.2001.00234 A21.2001.00214 A12.2002.00123 . 100 Nm_mhs Dedy Sutanta Budi Susi n alamat Jl. A. Yani 20 Jl. Dago 10 Jl. Pemuda i/6 n Kdpos 40006 50001 50001 100 Kota Solo Semarang Semarang 100
Tabel Didekomposisi MHS dan Pos Tabel mhs nim A21.2001.00234 A21.2001.00214 A12.2002.00123 n Nm_mhs Dedy Sutanta Budi Susi n alamat Jl. A. Yani 20 Jl. Dago 10 Jl. Pemuda i/6 n Kdpos 40006 50001 50001 n Tabel Pos Kdpos 40006 50001 Kota Solo Semarang