510 likes | 731 Views
PERTEMUAN 9. NORMALISASI. LatiFah rifani. BAD DATABASE!!!. Data yang sama disimpan di beberapa tempat . Ketidakmampuan untuk menghasilkan informasi tertentu. Lost data. Terjadi adanya redudansi data dan atau duplikasi data. Timbul adanya null value. CONTOH 1:. Nama. Kota.
E N D
PERTEMUAN 9 NORMALISASI LatiFahrifani
BAD DATABASE!!! • Data yang samadisimpan di beberapatempat. • Ketidakmampuanuntukmenghasilkaninformasitertentu.
Lost data. • Terjadiadanyaredudansi data danatauduplikasi data. • Timbuladanya null value.
CONTOH 1: Nama Kota Pembelian Harga Santi Surabaya Gula 120 Rika Semarang Beras 200 Santi Surabaya Tepung 100 Dwi Jakarta Sabun 10
PERMASALAHAN contoh 1: • Redundansi • Data untuknama, dankotadiulangiuntuktiappembelianyang dibuat • Tempatyang terbuangpercuma • Proses update yang rumit, dapatmenyebabkaninkonsistensinilaiatribut, contohnyauntukatributharga. • Nilainull • Tidakdapatmenyimpaninformasitentangsebuahnamaapabilatidakadapembelian. • Dapatdiselesaikandenganpenggunaannilai null, tetapinilai null sulitditangani.
Contoh 2: NIM KD MK BIAYA 94410200 TI-101 120 94410201 TI-104 100 94410202 TI-104 100 94410203 TI-102 110 94410204 TI-102 110 94410205 TI-105 115
PERMASALAHAN CONTOH 2: • Biaya yang selaluberulang-ulangpadasetiapmahasiswa yang mengambilnya. • Mudahterjadianomalisasi.
PENDAHULUAN • Normalisasi database biasanyajarangdilakukandalam database skalakecil, dandianggaptidakdiperlukanuntukpenggunaan personal. Namunseiringdenganperkembanganinformasi yang dikandungdalamdalamsebuah database, proses normalisasisangatmembantudalammenghematruang yang digunakanolehsetiaptabeldidalamnya, sekaligusmempercepat proses permintaan data.
Normalisasibisadisebutjugasebagai proses pengelompokanatribut-atributdarisuaturelasisehinggamembentuk WELL STRUCTURED RELATION. • WELL STRUCTURED RELATION adalahsebuahrelasi yang jumlahkerangkapandatanyasedikit (Minimum Amount Of Redundancy), sertamemberikankemungkinanbagiused untukmelakukan INSERT, DELETE, MODIFY, terhadapbaris-baris data padarelasitersebut, yang tidakberakibatterjadinya ERROR atau INKONSISTENSI DATA, yang disebabkanolehoperasi-operasitersebut.
Dalammerancang database, kitaharusdapatmenentukanstrukturlogik yang tepatpada data yang sudahdidapat. • Semuarelasidalam database relasionalselalusudahternormalisasi, dalamartibahwasemuarelasisudahdidefinisikanterhadap domain sederhana, yaitu domain yang hanyabernilaiatomik. • Normalisasidiperlukanuntukmenghilangkan / mengurangiredudansi data.
PENGERTIAN • Teknik yang digunakanuntukmembantumengidentifikasirelasi-relasidanbatasan-batasansuaturepresentasi data secaratepat. • Proses pengelompokkan data kedalambentuktabeluntukmenyatakanentitasdanhubunganmerekasehinggaterwujudsatubentuk database yang mudahdimodifikasi. • Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi.
Proses normalisasiakansangatmembantudalammenghematruang yang digunakanolehsetiaptabel di dalamnya, sekaligusmempercepatproses permintaan data. • TahapNormalisasidimulaidaritahap paling ringan (1NF) hingga paling ketat (5NF) • Biasanyahanyasampaipadatingkat 3NF atau BCNF karenasudahcukupmemadaiuntukmenghasilkantabel-tabel yang berkualitasbaik.
TABEL UNIVERSAL • Tabel Universal (Universal / Star Table) sebuahtabel yang merangkumsemuakelompok data yang salingberhubungan, bukanmerupakantabel yang baik. • Contoh:
Sejarahperkembangan • Diperkenalkanoleh EF Coddpadatahun 1972. • Dilakukanuntukujicobasuaturelasiuntukmenentukanapakahrelasitersebutsudahbaik.
tujuan • Menghindariterjadinya error atauinkonsistensi data. • Menghindariredudansi data. • Menghematruang yang digunakanolehsetiaptabel di dalamnya, sekaligusmempercepat proses permintaandata. • Untuk mempermudah pemodifikasian data
ANOMALI • Merupakanpenyimpangan-penyimpanganatau error atauinkonsistensi data yang terjadipadasaatdilakukan proses delete, insert, ataupun modify dalamsuatu basis data.
Macam-macamanomali • Insertion Anomaly • Merupakan error ataukesalahan yang terjadisebagaiakibatdarioperasimenyisipkan tuple/record padasebuahrelasi. • Delete Anomaly • Merupakan error ataukesalahan yang terjadisebagaiakibatdarioperasipenghapusanterhadap tuple/record padasebuahrelasi. • Update Anomaly • Merupakan error ataukesalahan yang terjadisebagaiakibatdarioperasiperubahan (update) tuple/record padasebuahrelasi.
Contoh 1: RELASI KULIAH Insertion Anomaly Delete Anomaly Update Anomaly
Penyelesaian: • Relasikuliahharus di buatmenjadi 2 tabel:
KetergantunganFungsional • Definisi: • Atribut Y padarelasi R dikatakantergantungfungsionalpadaatributX (R.X ---> R.Y), jikadanhanyajikasetiapnilai X padarelasiR mempunyaitepatsatunilai Y pada R. • Misal, terdapatskema database Pemasok-barang : • Pemasok (No-pem, Na-pem)
Tabel PEMASOK-BARANG • Ketergantunganfungsionaldaritabel PEMASOK-BARANG adalah : • No-pem ---> Na-pem
KetergantunganFungsionalPenuh • Definisi : • Atribut Y padarelasi R dikatakantergantungfungsionalpenuhpadaatribut X padarelasi R, jika Y tidaktergantungpada subset dari X ( bila X adalah key gabungan) • Contoh : • KIRIM-BARANG( No-pem, Na-pem, No-bar, Jumlah)
Ketergantunganfungsional : No-pem --> Nm-pem No-bar, No-pem --> Jumlah (Tergantungpenuhthdkeynya)
KetergantunganTransitif • Definisi : • Atribut Z padarelasi R dikatakantergantungtransitifpadaatributX , jikaatribut Y tergantungpadaatribut X padarelasi R danatribut Z tergantungpadaatribut Y padarelasi R. • (X Y, Y Z , maka X Z )
No-pemKode-kota Kota No-bar Jumlah P01 1 Jakarta B01 1000 P01 1 Jakarta B02 1500 P01 1 Jakarta B03 2000 P02 3 Bandung B03 1000 P03 2 Surabaya B02 2000 Ketergantungantransitif : No-pemKode-kota Kode-kota Kota , maka No-pemKota
Contohsoal: NIM Nm_ MhsNilaiKd_MKNm_MKKd_Dosen Nm-Dosen 2683 Welli 90 MI350 Manajamen DB B104 AtiA 2514 Ika 70 MI465 Sistem B317 Dita B 5432 BakriAk. 65 MI350 Manajemen DB B104 AtiC 5430 Rita 70 AKN201 Akuntansi D310 LiaB 5431 Sita 75 MKT300 Pemasaran B212 Lola A TEMUKAN: Ketergantunganfungsional Ketergantunganfungsionalpenuh Ketergantungantransitif.
Proses Normalisasi • Proses normalisasi model data: • Temukanentitas-entitasutamadalam model data. • Temukanhubunganantarasetiapentitas. • Tentukanatribut yang dimilikimasing-masingentitas. • Normalisasi model data dilakukandenganmengikutilangkah-langkahsederhana, mengubahnyaagar memenuhiapa yang disebutsebagaibentuk normal pertama, kedua, laluketigasecaraberturutan.
Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat. • Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Langkah-langkahnormalisasi Bentuk normal pertama: • Tidakada set atribut yang berulangataubernilaiganda. • Telahditentukannya primary key untuktabelataurelasi. • Tiapatributhanyamemilikisatupengertian. • Tiapatribut yang dapatmemiikibanyaknilaisebenarnyamenggambarkanentitasataurelasi yang terpisah.
Contoh Misal data mahasiswa sbb: Atau: Tabel-tabel di atastidakmemenuhisyarat 1NF
Didekomposisi menjadi: • TabelMahasiswa • TabelHobi
ATAU Tabel-tabel di atastidakmemenuhisyarat 1NF
SOLUSINYA SEMUA PRIMARY KEY TIDAK BOLEH DALAM KEADAAN NULL VALUE
Bentuk normal kedua: • Bentuk data telahmemenuhikriteriabentuk normal kesatu. • Atributbukankunci(non-key attribute) haruslahmemilikiketergantunganfungsionalsepenuhnyapada primary key. • Jikaterdapatatribut yang tidakmemilikiketergantunganterhadap primary key, makaatributtersebutharusdipindahataudihilangkan
Contoh Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF: • Tidakmemenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggapsebagai primary key sedangkan: {Mhs_nrp, mk_kode} mhs_nama {Mhs_nrp, mk_kode} mhs_alamat {Mhs_nrp, mk_kode} mk_nama {Mhs_nrp, mk_kode} mk_sks {Mhs_nrp, mk_kodenihuruf • Tabel di atasperludidekomposisimenjadibeberapatabel yang memenuhisyarat 2NF
Contoh Functional dependencynya sbb: {Mhs_nrp, mk_kode} nihuruf (fd1) Mhs_nrp {mhs_nama, mhs_alamat} (fd2) Mk_kode {mk_nama, mk_sks} (fd3) fd1 (mhs_nrp, mk_kode, nihuruf) TabelNilai fd2 (Mhs_nrp, mhs_nama, mhs_alamat) TabelMahasiswa fd3 (mk_kode, mk_nama, mk_sks) TabelMataKuliah
NILAI MAHASISWA MATAKULIAH
Bentuk Normal Ketiga: • Bentuk data telahmemenuhikriteriabentuk normal kedua. • Atributbukankunci(non-key attribute) tidakbolehmemilikiketergantunganfungsionalterhadapatributbukankuncilainnya. Seluruhatributbukankuncipadasuaturelasihanyamemilikiketergantunganfungsionalterhadap primary key di relasiitusaja.
Contoh Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF: Mahasiswa • karenamasihterdapatatributnon primary key (yaknialm_kotadanalm_Provinsi) yang memilikiketergantunganterhadapatributnon primary key yang lain (yaknialm_kodepos): alm_kodepos {alm_Provinsi, alm_kota} • Sehinggatabeltersebutperludidekomposisimenjadi: Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos) Kodepos (alm_kodepos, alm_provinsi, alm_kota)
Boyce-Code Normal Form (BCNF) • BentukBCNF terpenuhidalamsebuahtabel, jikauntuksetiapfunctional dependencyterhadapsetiapatributataugabunganatributdalambentuk: X Y makaX adalahsuper key • tabeltersebutharus di-dekomposisiberdasarkanfunctional dependency yang ada, sehingga X menjadisuper key daritabel-tabelhasildekomposisi • Setiaptabeldalam BCNF merupakan 3NF. Akan tetapisetiap 3NF belumtentutermasuk BCNF . Perbedaannya, untuk functional dependency X A, BCNF tidakmembolehkan A sebagaibagiandari primary key.
Bentuk Normal TahapKeempat (4th Normal Form /4NF) • Bentuk normal 4NF terpenuhidalamsebuahtabeljikatelahmemenuhibentuk BCNF, dantabeltersebuttidakbolehmemilikilebihdarisebuahmultivalued atribute • Untuksetiapmultivalued dependencies (MVD) jugaharusmerupakanfunctional dependencies.
Contoh Misal, tabel berikut tidak memenuhi 4NF: Setiap employee dapatbekerja di lebihdari project dandapatmemilikilebihdarisatu skill. Untukkasussepertiinitabeltersebutharus di-dekomposisimenjadi: (Employee, Project) (Employee, Skill)
Bentuk Normal TahapKeLIMA(5th Normal Form /5NF) • Bentuk normal 5NF terpenuhijikatidakdapatmemilikisebuahlossless decomposition menjaditabel-tabelyglebihkecil. • Jika 4 bentuk normal sebelumnyadibentukberdasarkanfunctional dependency, 5NF dibentukberdasarkankonsepjoin dependence. Yakniapabilasebuahtabeltelah di-dekomposisimenjaditabel-tabellebihkecil, harusbisadigabungkanlagi (join) untukmembentuktabelsemula.
LATIHAN: DiberikantabelMahasiswa di bawahini, akandilakukan normalisasisampaibentuk normal ketiga Bentuk normal 1 (1NF)
Tabeldi atassudahdalambentuk normal keSatu(1NF) MENGAPA ???? Karena: Tidakada data yang berulang Setiap domain terisidengan data (tidakada domain yang kosong). Bentuk normal 2 (2NF)
Belummemenuhikriteria 3NF, Karenaatribut non-key Nilaidan Bobotmasihmemilikiketergantu- nganfungsional.