UNIVERSITI TUN HUSSEIN ONN MALAYSIAFAKULTI KEJURUTERAAN ELEKTRIK DAN ELEKTRONIK
Penormalan(Normalization)1 Februari 2010
SEPINTAS LALU…
• Sejarah Penormalan• Definisi Penormalan• Masalah Pengulangan
Data dan Anomali• Proses penormalan
Why Normalization??
WHYNORMALIZATION??
Flexibility Data Integrity
Efficiency
Structure support many ways to look at data
Modification Anomalies
Eliminate redundant data and space
Pengenalan
• Diperkenalkan oleh E.F. Code pada tahun 1972• Satu hubungan data yang menguji sesuatu
hubungan sama ada ia memenuhi ciri-ciri dalambentuk ternormal.
Pengenalan
• Tiga bentuk normal pada peringkat awal iaitu:-– 1 Normal Form (1 NF)– 2 Normal Form (2 NF)– 3 Normal Form (3 NF)
• Semua bentuk normal melibatkan Functional Dependencies pada semua atribut
Pengenalan
• Bentuk Normal paling tinggi diperkenalkanselepas BCNF (Boyce Codd Normal Form) adalah4 NF dan 5 NF.
• Bentuk normal tinggi jarang digunakan.
Definisi
• Rekabentuk pangkalan data yang mengikutperaturan tertentu.
• Proses langkah demi langkah untuk memecahkanhubungan kepada beberapa hubungan yang kecilbagi mencapai tahap normal tertentu supayaanomali kemaskini dapat dihapuskan.
Normalization is a process for assigning attributes to entities. It reduces data redundancies and helps eliminate the data anomalies. (Rob and Coronel, 2004)
Definisi
• Setiap bentuk normal yang lebih tinggi memenuhisyarat bentuk normal yang dibawahnya.
• Untuk memahami penormalan perlu memahamiFungsi Sandaran, Kunci dan Penentu
Fungsi Sandaran
• Fully functionally Dependence• Partial Dependencies• Transitive Dependencies• Multi-valued Dependencies
Fully Functional Dependence
• Suatu atribut bersandar secara fungsi jika nilainyaditentukan oleh atribut lain
• Fungsi boleh dihuraikan seperti berikut:• X Y, di mana X ialah penentu dan Y adalah
atribut yang bersandar• Jika A (B, C)• Jadi A B dan A C
Fully Functional Dependence
• Contoh (Kroenke, 2005)
ExtendedPrice = Quantiti x Unitprice
ExtendedPrice bersandar secara fungsi kepadaQuantity dan UnitPrice
Partial Dependencies
• Kesandaran separuh (partial dependencies) ialahsatu keadaan yang wujud di mana terdapat kuncikomposit dalam suatu hubungan
• (A,B) C,D,E (partial dependencies)• (NoPekerja, NoProjek) Nama, Kemahiran,
TarikhMula, Telefon
Transitive Dependencies
• Kesandaran transitif (Transitive Dependencies) wujud apabila suatu atribut menentukan suatuatribut lain melalui atribut perantaraan.
• A B C• Jika A B dan B C• Secara tidak langsung A C• Jadi C bersandar secara transitif atas A dan B
Multi-valued Dependencies
• Kesandaran multi-nilai wujud apabila terdapatsekurang-kurangnya 3 atribut dalam satuhubungan (jadual) dan dua daripadanya adalahbebas satu sama lain
• A B C• Di mana B dan C tiada kaitan antara satu sama
lain
Anomali
• Anomali berlaku kerana rekabentuk pangkalandata yang tidak sesuai.
• Anomali selalu dikenali sebagai anomali ubah suaidata
• Terdapat 3 jenis anomali iaitu Anomali kemas kini, anomali hapus data dan anomali tambah data.
Anomali
• Anomali akan menyebabkan pertindihan(redundancy) dan pengulangan data (data duplication) yang menyebabkan pembaziranruang storan dan kekurangan integriti dalam DB.
Anomali
• Anomali Kemas kini– Ia berlaku apabila kemas kini terhadap satu fakta
memerlukan perubahan fakta dalam beberapa barisyang lain.
• Anomali Hapus Data– Ia berlaku apabila fakta berkenaan 2 perkara atau lebih
akan terlepas dengan satu arahan hapus dilaksanakan.
Anomali
• Anomali Tambah Data– Berlaku apabila kemasukan satu fakta berkenaan satu
perkara memerlukan fakta berkenaan dengan perkaralain turut dimasukkan.
Kes Anomali (AnomaliKemaskini)Matrik KodKursus NamaKursus JamKredit Nama Gred
14465 TA1014 Pengaturcaraan 4 Ahmad bin Ali C
16753 TA1014 Pengaturcaraan 4 Salmah bt Salim B
14465 TD1013 Mgmt. Info. Sys. 3 Ahmad bin Ali A
16753 TD1013 Mgmt. Info. Sys. 3 Salmah bt Salim A
16683 TM1013 Matematik 3 Hasan bin Husin B+
14465 TS1013 Statistik 3 Ahmad bin Ali B-
16683 TS1013 Statistik 3 Hasan bin Husin B
: : : : : :
: : : : : :
Jika berlaku sebarang perubahan pada satu rekod, maka semua rekodyang terlibat perlu diimbas dan dikemaskini. Kesan prestasi sistemmenjadi slow
Kes Anomali Kemaskini
• Anomali Kemaskini– Sekiranya nama kursus “Mgmt. Info. Sys.” hendak
diubah kepada “MIS” memerlukan pengimbasankeseluruhan jadual. Kemudian perubahan perlu dibuatbagi setiap baris yang mempunyai nilai nama kursus“Mgmt. Info. Sys.” kepada “MIS”
Kes Anomali (Anomali hapusdata)
Matrik KodKursus NamaKursus JamKredit Nama Gred
14465 TA1014 Pengaturcaraan 4 Ahmad bin Ali C
16753 TA1014 Pengaturcaraan 4 Salmah bt Salim B
14465 TD1013 Mgmt. Info. Sys. 3 Ahmad bin Ali A
16753 TD1013 Mgmt. Info. Sys. 3 Salmah bt Salim A
16683 TM1013 Matematik 3 Hasan bin Husin B+
14465 TS1013 Statistik 3 Ahmad bin Ali B-
16683 TS1013 Statistik 3 Hasan bin Husin B
: : : : : :
: : : : : :
Kes Anomali Hapus Data
• Anomali Hapus Data– Sekiranya pelajar Matrik “16683” iaitu Hasan bin Husin
berhenti dan rekodnya perlu dibuang. Perkara yang mungkin turut terbuang ialah maklumat yang tidaksepatutnya dibuang. Rekod yang turut terbuang sekaliialah maklumat TM1013 Matematik akan turut terhapus. Dua perkara turut terhapus iaitu Maklumat Pelajar danMaklumat Kursus.
Kes Anomali (Anomali Tambah Data)
Matrik KodKursus NamaKursus JamKredit Nama Gred
14465 TA1014 Pengaturcaraan 4 Ahmad bin Ali C
16753 TA1014 Pengaturcaraan 4 Salmah bt Salim B
14465 TD1013 Mgmt. Info. Sys. 3 Ahmad bin Ali A
16753 TD1013 Mgmt. Info. Sys. 3 Salmah bt Salim A
16683 TM1013 Matematik 3 Hasan bin Husin B+
14465 TS1013 Statistik 3 Ahmad bin Ali B-
16683 TS1013 Statistik 3 Hasan bin Husin B
: : : : : :
: : : : : :
Kes Anomali Tambah Data
• Anomali Tambah Data– Sekiranya Subjek baru hendak ditambah. Contohnya
“TV2013-Pangkalan Multimedia”. Ia tidak bolehdilakukan selagi tiada pelajar mendaftar kursustersebut. Disini penambahan dua perkara iaitumaklumat kursus dan maklumat pelajar yang ambilkursus tersebut
Bentuk Normal Pertama (1 NF)
• Satu hubungan adalah dalam bentuk normal pertama jika tidak wujud atribut yang mempunyaikumpulan data yang berulang.
• Setiap atribut perlu mempunyai satu nilai sahaja.
Bentuk Normal Pertama (1 NF)
NoPekerja Nama Kemahiran
NoProjek TarikhMula Telefon
1078 Osman OS {R212, R349} {2/8/04, 3/4/05 074530045
973 Khalid Database {R212,R232, R349, R415}
{4/7/04, 6/3/04, 5/8/05,4/7/05}
074533456
456 Safiah OS {R212, R415} {4/7/04, 6/6/04} 074532365
451 Rosdi Database {R332, R349} {3/6/04, 9/5/04} 074536734
PEKERJA
Bentuk Normal Pertama (1 NF)
• Kumpulan data berulang perlu dihapuskan dengan membentuk kunci utama (sama ada kunci komposit atau tidak)
• Kesandaran Fungsi• (NoPekerja, NoProjek) Nama Kemahiran,
TarikhMula, Telefon)
Bentuk Normal Pertama (1 NF)
NoPekerja NoProjek Nama Kemahiran TarikhMula Telefon
1078 R212 Osman OS 2/8/04 074530045
1078 R349 Osman OS 3/4/05 074530045
973 R212 Khalid Database 4/7/04 074533456
973 R232 Khalid Database 6/3/04 074533456
973 R349 Khalid Database 5/8/05 074533456
973 R415 Khalid Database 4/7/05 074533456
456 R212 Safiah OS 4/7/04 074532365
456 R415 Safiah OS 6/6/04 074532365
451 R332 Rosdi Database 3/6/04 074536734
451 R349 Rosdi Database 9/5/04 074536734
PEKERJA( NoPekerja, NoProjek, Nama, Kemahiran, TarikhMula, Telefon)
Bentuk Normal Kedua (2 NF)
• Satu hubungan adalah dalam bentuk 2 NF jika:-– Ia berada dalam bentuk 1 NF– Semua atribut bukan kunci bergantung sepenuhnya
kepada atribut kunci. (Tidak wujud partial dependency)
Bentuk Normal Kedua (2 NF)
• (NoPekerja, NoProjek) Nama Kemahiran, TarikhMula, Telefon)
• Hubungan Fungsi diatas mempunyai partial dependency iaitu atribut bukan kunci bergantung kepada kunci komposit.
Bentuk Normal Kedua (2 NF)
NoPekerja NoProjek Nama Kemahiran TarikhMula
Telefon
1078 R212 Osman OS 2/8/04 074530045
1078 R349 Osman OS 3/4/05 074530045
973 R212 Khalid Database 4/7/04 074533456
973 R232 Khalid Database 6/3/04 074533456
973 R349 Khalid Database 5/8/05 074533456
973 R415 Khalid Database 4/7/05 074533456
456 R212 Safiah OS 4/7/04 074532365
456 R415 Safiah OS 6/6/04 074532365
451 R332 Rosdi Database 3/6/04 074536734
451 R349 Rosdi Database 9/5/04 074536734
Bentuk Normal Kedua (2 NF)
• Nama, Kemahiran dan Telefon merujuk kepada pekerja yang sama wujud secara berulangan.
• Jika telefon dan kemahiran ditukar, setiap baris yang melibatkan pekerja berkenaan perlu dikemaskini. (Anomali kemaskini)
• Jika tidak ada projek untuk seorang pekerja, tidak terdapat baris yang dapat menyimpan maklumat pekerja. (Anomali tambah data)
Masalah yang timbul pada jadual 1 NF
Bentuk Normal Kedua (2 NF)
• Penyelesaian– Setiap atribut yang mempunyai kesandaran separuh
perlu dihapuskan.– Bagi menghapuskan kesandaran separuh, pemecahan
hubungan kepada 2 hubungan lain yan mempunyai maklumat berkenaan perkara yang berlainan.
Bentuk Normal Kedua (2 NF)
• Penyelesaian– Asal– (NoPekerja, NoProjek) Nama, Kemahiran,
TarikhMula, Telefon)– Hubungan kesandaran baru– NoPekerja Nama Kemahiran, Telefon– (NoPekerja, NoProjek) TarikhMula
Bentuk Normal Kedua (2 NF)
NoPekerja
Nama Kemahiran
Telefon
1078 Osman OS 074530045
973 Khalid Database
074533456
456 Safiah OS 074532365451 Rosdi Databas
e074536734
NoPekerja NoProjek TarikhMula
1078 R212 2/8/04
1078 R349 3/4/05
973 R212 4/7/04
973 R232 6/3/04
973 R349 5/8/05
973 R415 4/7/05
456 R212 4/7/04
456 R415 6/6/04
451 R332 3/6/04
451 R349 9/5/04
PEKERJATUGASAN
PEKERJA(NoPekerja, Nama, Kemahiran, Telefon)
TUGASAN(NoProjek, NoPekerja, TarikhMula)
Bentuk Normal Ketiga (3 NF)
• Satu hubungan adalah dalam bentuk normal ketiga jika:-– Ia dalam bentuk normal kedua– Tidak wujud kesandaran transitif
• Kesandaran Transitif– A B C– Jika A B dan B C– Secara tidak langsung A C– Jadi C bersandar secara transitif atas A dan B
Bentuk Normal Ketiga (3 NF)
NoPekerja Nama Kemahiran KadarUpah
1078 Osman OS 120
973 Khalid Database 90
456 Safiah OS 120451 Rosdi Database 90
243 Nafisah Network 130
Jadual dibawah berada dalam normal kedua dan terdapat kesandaran transitif.
NoPekerja Nama, Kemahiran, KadarUpah
Kesandaran Transitif yang wujud
NoPekerja Kemahiran KadarUpah
NoPekerja Kemahiran dan Kemahiran KadarUpah
Bentuk Normal Ketiga (3 NF)
• Secara tidak langsung NoPekerja KadarUpah• Kadar upah bagi kemahiran diulang beberapa kali• Jika kadar upah diubah, semua baris yang terlibat
perlu diubah• Jika ada pekerja belum diberi kemahiran,
maklumat pekerja tidak dapat disimpan.
Bentuk Normal Ketiga (3 NF)
• Bagi membentuk 3 NF hubungan transitif perlu dihapuskan dengan memecahkan hubungan kepada dua hubungan lain yang mempunyai maklumat yang berbeza.
Bentuk Normal Ketiga (3 NF)
• NoPekerja Nama, Kemahiran, KadarUpah• NoPekerja Nama, Kemahiran• Kemahiran KadarUpah
• Hubungan akhir yang dibentuk• PEKERJA(NoPekerja, Nama, Kemahiran)• UPAH(Kemahiran, KadarUpah)
Bentuk Normal Ketiga (3 NF)
NoPekerja Nama Kemahiran
1078 Osman OS973 Khalid Database456 Safiah OS451 Rosdi Database243 Nafisah Network
Kemahiran KadarUpah
OS 120
Database 90
Network 130
PEKERJA_KEMAHIRAN
KEMAHIRAN_UPAH
Bentuk Normal Boyce Codd (BCNF)
• Satu hubungan adalah dalam bentuk BCNF jika:-– Dalam bentuk 3 NF– Setiap penentu adalah
kunci
Bentuk Normal Boyce Codd (BCNF)
Pusat NoPekerja NoProjek TarikhMula Status
KL 1078 R212 2/8/04 Tamat
Penang 1078 R349 3/4/05 Analisa
Alor Setar 973 R212 4/7/04 Tamat
KL 973 R232 6/3/04 Tamat
Penang 973 R349 5/8/05 Analisa
Alor Setar 973 R415 4/7/05 Analisa
KL 456 R212 4/7/04 Tamat
Penang 456 R415 6/6/04 Tamat
Penang 451 R332 3/6/04 Tamat
KL 451 R349 9/5/04 Analisa
Bentuk Normal Boyce Codd (BCNF)
• Pusat, NoProjek NoPekerja, TarikhMula, Status• NoPekerja Pusat
Bentuk Normal Boyce Codd (BCNF)
Masalah• Pusat dan NoProjek menentukan noPekerja,
Tarikhmula dan Status. Tetapi NoPekerja juga menentukan pusat. Oleh itu, jika pekerja bertukar pusat banyak baris perlu dikemaskini.
Bentuk Normal Boyce Codd (BCNF)
• Penyelesaian• Setiap kunci calon yang bukan kunci primer
dengan memecahkan hubungan kepada 2 hubungan lain yang mempunyai tema yang sama
Bentuk Normal Boyce Codd (BCNF)
• Fungsi Sandaran• (NoProjek, NoPekerja) TarikhMula Status• Nopekerja Pusat
Bentuk Normal Boyce Codd (BCNF)
Pusat NoPekerjaKL 1078Alor Setar 973Alor Setar 973KL 456KL 451
NoPekerja NoProjek TarikhMula
Status
1078 R212 2/8/04 Tamat
973 R349 3/4/05 Analisa
456 R212 4/7/04 Tamat
1078 R232 6/3/04 Tamat
973 R349 5/8/05 Analisa
456 R415 4/7/05 Analisa
1234 R212 4/7/04 Tamat
789 R415 6/6/04 Tamat
: : : :
: : : :
Bentuk Normal Boyce Codd (BCNF)
Bentuk Normal Keempat (4 NF)
• Satu hubungan dalam Normal Keempat jika:-– Berada didalam bentuk BCNF– Tiada kesandaran multi-nilai
• Kesandaran Multi-nilai wujud apabila terdapat sekurang-kurangnya 3 atribut dalam satu hubungan dan dua daripadanya adalah bebas daripada satu sama lain. Nilai-nilai bagi atribut ini hanya bersandar pada atribut ketiga sahaja.
Bentuk Normal Keempat (4 NF)
• Hubungan_1( A, B, C)• Jika A B C• Di mana B dan C tiada kaitan antara satu sama
lain. Hubungan_1 dikatakan bersandar multi-nilai.• A B bermakna A menentukan banyak nilai B
Bentuk Normal Keempat (4 NF)
NoPekerja NoProjek Kemahiran
1078 R212 OS
1078 R349 OS
973 R212 Database
973 R232 Database
973 R349 Database
973 R415 Database
456 R212 OS
456 R415 OS
451 R332 Database
451 R349 Database
Bentuk Normal Keempat (4 NF)
• Penyelesaian• Asal• NoPekerja Kemahiran, NoProjek
• 4 NF• NoPekerja Kemahiran• NoPekerja NoProjek
Bentuk Normal Keempat (4 NF)
• Hubungan Akhir• PEKERJA_KEMAHIRAN(NoPekerja, Kemahiran)• PEKERJA_PROJEK(NoPekerja, NoProjek)
Bentuk Normal Keempat (4 NF)
NoPekerja Kemahiran
1078 OS
1078 OS
973 Database
973 Database
973 Database
973 Database
456 OS
456 OS
451 Database
451 Database
NoPekerja NoProjek1078 R212
1078 R349
973 R212
973 R232
973 R349
973 R415
456 R212
456 R415
451 R332
451 R349
PEKERJA_KEMAHIRAN PEKERJA_PROJEK
Bentuk Normal Kelima (5 NF)
• Hubungan yang menghapuskan anomali yang disebabkan kesandaran bersama dan tidak dapat dilakukan secara praktikal
• Juga dikenali sebagai Project-Join Normal Form (PJNF)
Bentuk Normal domain/key (DKNF)
• Hubungan berada dalam DKNF jika setiap kekangan pada hubungan berkenaan adalah selaras dengan definisi kunci dan domain. Kekangan atau peraturan atas nilai-nilai atribut adalah statik.
Latihan
Berdasarkan jadual di bawah, lakukan penormalan hingga ke bentuk normal ketiga.
Kod_pembekal
Nama_pembekal Kod-barangan
Nama_barangan
harga Nama_Pembeli
Tel_pembeli
S100 Muaz D100 Almari 460 Ismail 7231345
D102 Kerusi malas 1500 Naimah 9176543
D112 Meja makan 900 Razak 9245321
S200 Mutiara K100 Fail kertas 20 Ismail 7231345
D112 Meja makan 900 Ahmad 9276658
A642 Meja komputer 399 Nureen 9285765
Maklumat tambahan :Kod_Pembekal,Kod_Barangan Nama_pembekal,Nama_barangan,harga, Nama_Pembeli, Tel_pembeli Kod_Pembekal Nama_pembekalKod_Barangan Nama_barangan, Nama_Pembeli, Tel_pembeliTel_pembeli nama_pembeli