Normalization 1NF, 2NF And 3NF
Last updated
Was this helpful?
Last updated
Was this helpful?
Suatu tabel memenuhi 1stNF jika dan hanya jika tabel tersebut tidak memiliki atribut bernilai banyak atau lebih dari satu atribut dengan domain nilai yang sama.
Suatu tabel memenuhi 2ndNF jika dan hanya jika :
Tabel tersebut memenuhi 1stNF
Setiap atribut yang bukan kunci utama (primary key) tergantung secara fungsional terhadap semua atribut kunci utama dan bukan tergantung secara fungsional hanya pada sebagian atribut kunci utama.
Suatu tabel memenuhi bentuk normal 3rdNF jika dan hanya jika :
Tabel tersebut memenuhi 2ndNF.
Tidak ada atribut bukan kunci tergantung secara transitive pada kunci utama.
Bukalah berkas spreadsheet bernama DataSoftwareHouseAustria.XLSX
di yang dilampirkan bersama jobsheet ini.
File tersebut berisi data pegawai software house di Austria beserta atribut lain yang mendukung project yang dikerjakan di perusahaan tersebut.
Teliti setiap atribut yang tertulis pada data tersebut dan amati ketidak sesuaian atribut yang ada sehingga mempersulit proses insert, update, delete dan modifikasi.
Pertimbangkan pula bagaimana bentuk yang baik dan sesuai dengan aturan normalisasi yang efisien.
Normalisasi data sesuai bentuk normal kesatu karena data pada langkah 1 tidak memenuhi bentuk normal data bagian satu (1NF). Maka akan menghasilkan dekomposisi tabel sebagai berikut :
Lakukan pengecekan (Lossless–Join Decomposition) pada tabel baru hasil dekomposisi tersebut! \
Pengecekan FD pada tabel hasil langkah 2 akan menghasilkan data FD sebagai berikut :
Pada tabel project
num_project → name_project
Pada tabel employee
{num_project, num_employee, num_jobclass} ↛ name_employee
{num_project, num_employee, num_jobclass} ↛ street_address
{num_project, num_employee, num_jobclass} ↛ city
{num_project, num_employee, num_jobclass} ↛ postal_code
{num_project, num_employee, num_jobclass} ↛ name_jobclass
{num_project, num_employee, num_jobclass} ↛ chr_per_hour
{num_project, num_employee, num_jobclass} ↛ hours_billed
FD
num_project → name_project
no_employee →{name_employee, street_address, city, postal_code}
no_jobclass →{name_jobclass, chr_per_hours}
{num_project, num_employee,num_jobclass} → hours_billed
Normalisasi tabel menjadi bentuk 2NF. Berdasarkan informasi FD maka dekomposisi tabel yang semula 2 tabel menjadi 4 tabel sebagai berikut :
project{num_project, name_project}
employee{no_employee, name_employee, street_address, city, postal_code}
jobclass{no_jobclass, name_jobclass, chr_per_hours}
hours{num_project, num_employee,num_jobclass, hours_billed}
Lakukan pengecekan (Lossless–Join Decomposition)
dan (dependency preservation)
pada tabel baru hasil dekomposisi tersebut! \
Mencari hubungan syarat 3NF dengan mempertimbangkan X → A sesuai dengan ketentuan 3NF Terdapat beberapa non key yang memiliki ketergantungan dengan non key lain, sesuai FD baru sebagai berikut:
{city, street_address} → postal_code dimana X adalah superkey
name_project → {name_employee, name_jobclass} dimana X adalah superkey
{name_employee, name_jobclass} → chr_per_hours dimana dimana X adalah superkey
Berdasarkan FD tersebut maka tabel pada langkah 3 diperbaharui dekomposisinya menjadi :
project{num_project, name_project}
employee{no_employee, name_employee, street_address }
jobclass{no_jobclass, name_jobclass, chr_per_hours}
hours{num_project, num_employee,num_jobclass, hours_billed}
address{city, street_address, postal_code}
jobclass_detail{name_project, name_employee, name_jobclass}
charge{name_employee, name_jobclass, chr_per_hours}
Lakukan pengecekan (Lossless–Join Decomposition)
dan (dependency preservation)
pada tabel baru hasil dekomposisi tersebut! \