You are on page 1of 50

PENORMALAN

OBJEKTIF
• Mengetahui peranan penormalan dalam proses
mereka bentuk pangkalan data
• Mengetahui bentuk-bentuk penormalan: 1 NF, 2NF,
3NF
• Memahami bagaimana bentuk penormalan dapat
ditukarkan daripada bentuk normal lebih rendah
kepada bentuk normal lebih tinggi
PENGENALAN
• Penormalan ialah proses menganalisis dan membetulkan struktur jadual
untuk meminimumkan kelewahan data seterusnya mengurangkan
kemungkinan berlakunya anomali-anomali data
• Perhubungan atau jadual analisis berdasarkan kebergantungan fungsi
dan kekunci primer (atau kekunci calon).
• Proses penormalan melibatkan satu siri langkah yang dipanggil bentuk
normal seperti:
Bentuk normal pertama (1NF)
Bentuk normal kedua (2NF)
Bentuk normal ketiga (3NF)
TEKNIK REKABENTUK PANGKALAN DATA
• Rekabentuk Atas ke Bawah
Membina model data menggunakan Permodelan Perhubungan Entiti dan notasi
Gambarajah Perhubungan Entiti (ERD)
Menggunakan penormalan untuk menganalisis hubungan antara atribut dalam
setiap entiti dan menentukan jika struktur jadual masih boleh diperbaiki melalui
penormalan

• Rekabentuk Bawah ke Atas


Menganalisis perhubungan antara atribut atau medan-medan dalam struktur
data sedia ada (fail, lembaran kerja ataupun struktur pangkalan data lama)
Melaksanakan proses penormalan untuk meningkatkan lagi struktur data sedia
ada dan menghasilkan rekabentuk pangkalan data yang lebih baik
TEKNIK REKABENTUK PANGKALAN DATA
INVOIS

• Pembelian barang-barang yang dijual oleh koperasi sekolah daripada pembekal


CONTOH :
TRANSAKSI PEMBELIAN KOPERASI-PEMBEKAL
ms50
ANOMALI DATA

• Terdapat kelewahan data (data redundancy) dalam jadual tersebut yang akan
menyebabkan berlakunya masalah data tidak konsisten dan juga anomali data
ANOMALI DATA
• Anomali Penambahan (insertion anomaly)
Merupakan masalah yang berlaku semasa memasukkan rekod baru ke dalam
sesuatu jadual
Contohnya, apabila maklumat vendor baru ditambah ke dalam jadual, maklumat
invois juga perlu ditambah, walaupun pembelian belum dibuat daripada vendor
tersebut CTH
• Anomali Pengemaskinian (updation anomaly)
Merupakan masalah yang berlaku apabila pengemaskinian rekod dalam
pangkalan data tidak dapat dilakukan tanpa mengemaskinian rekod yang lain
Contohnya, jika nama item perlu diubah, ia melibatkan perubahan nama item
yang sama kepada banyak rekod dalam pangkalan data CTH
ANOMALI DATA
• Anomali Penghapusan (deletion anomaly)
Merupakan masalah yang berlaku apabila penghapusan sesuatu rekod
menyebabkan rekod yang lain juga turut dihapuskan
Contohnya, apabila vendor bernama Bagus Sdn. Bhd. tidak lagi membekalkan
barang-barang kepada koperasi, sekiranya rekod vendor ini dihapuskan
daripada pangkalan data, maklumat item (T-shirt) yang terlibat bagi pembelian
daripada vendor tersebut juga turut dihapuskan CTH
ANOMALI DATA

back

back

back
TUJUAN PENORMALAN
• Penormalan perlu bagi mengelakkan kelewahan data, anomali data, pembaziran ruang
storan dan memudahkan penyelenggaraan (penambahan, pengemaskinian dan
penghapusan) data.
• Proses penormalan dilaksanakan untuk memastikan setiap jadual mempunyai ciri-ciri berikut:
Setiap jadual mewakili satu subjek sahaja contohnya, Vendor, Item, Pembelian
Tiada data yang sama disimpan dalam lebih daripada satu jadual secara tidak perlu
(jadual mempunyai kelewahan data yang minimum dan terkawal)
Semua atribut bukan kunci dalam jadual adalah bergantung kepada kekunci primer untuk
memastikan data dapat dikenalpasti secara unik oleh kekunci primer
Setiap jadual adalah bebas daripada anomali penambahan (insert), pengemaskinian
(update) dan penghapusan (delete) untuk memastikan integriti dan ketekalan terhadap
data
KEBERGANTUNGAN FUNGSI

• Proses penormalan adalah berdasarkan kepada konsep kebergantungan fungsi


Mengenalpasti kebergantungan fungsi bagi hubungan yang diberi dan
Memecahkan hubungan atau jadual tersebut kepada set hubungan atau jadual
baru berdasarkan kebergantungan yang dikenalpasti
• Analisis kebergantungan fungsi membolehkan jadual dipecahkan kepada beberapa
jadual yang lebih kecil untuk mengurangkan kelewahan data dan mengekalkan
integriti rujukan
KEBERGANTUNGAN FUNGSI
• Simbol kebergantungan fungsi adalah seperti berikut:
A -> B
Di mana A adalah penentu, iaitu jika nilai A diketahui, hanya satu nilai B dapat ditentukan
• Sebagai contoh, bagi kebergantungan fungsi berikut:
• Cepat
KodVendor -> NamaVendor, NoTelVendor Sdn.Bhd.
06-3335678
Bagi setiap nilai KodVendor, V01 •
hanya ada satu sahaja nilai NamaVendor • Bagus
V02 • Sdn.Bhd.
dan NoTelVendor yang diperolehi 06-3335679
berdasarkan nilai tersebut V03 •
• Pantas
Sdn.Bhd.
06-3335677
KEBERGANTUNGAN FUNGSI
KodVendor -> NamaVendor, NoTelVendor NoInvois -> NamaItem
KEBERGANTUNGAN FUNGSI
• Berdasarkan jadual, NoInvois dan KodItem adalah kunci komposit bagi jadual tersebut.
NoInvois, KodItem -> Tarikh, KodVendor, NamaVendor, NoTelVendor, NamaItem,
Kuantiti,
HargaItem

• 15-Jun-2018,
Kunci komposit V01, Cepat Sdn.
ialah gabungan ,12345 • Bhd. 06-3335678,
dari dua atau I011 Pen, 150, 0.50
lebih kunci calon
yang digunakan • 15-Jun-2018,
untuk mengecam
,12345 • V01, Cepat Sdn.
sesuatu lajur I012 Bhd. 06-3335678,
Kertas A4, 50,
secara unik. 7.90
KEBERGANTUNGAN FUNGSI

Terdapat tiga (3) jenis kebergantungan fungsi:


• Kebergantungan Fungsi Sepenuh
• Kebergantungan Fungsi Separa
• Kebergantungan Fungsi Transitif
LATIHAN 1
KEBERGANTUNGAN FUNGSI
• Kebergantungan Fungsi Sepenuh
Berlaku apabila atribut-atribut bergantung sepenuhnya kepada semua atribut kunci
dalam jadual
Jika A -> B dan A ialah kunci komposit, atribut B bergantung sepenuhnya ke atas kunci
komposit A dan bukan kepada subset bagi kunci komposit A, maka atribut B
mempunyai kebergantungan fungsi sepenuh kepada A.
Contoh: NoInvois, KodItem -> Kuantiti
Bukan kebergantungan fungsi

• 150 • 150
I011 ,12345 •

I011 ,12348 • • 100 I011 • • 100

I013 ,12345 • • 100 I013 • • 100


I013 ,12348 •
• 50 • 50
KEBERGANTUNGAN FUNGSI
• Kebergantungan Fungsi Separa
 Berlaku apabila atribut-atribut bergantung kepada salah satu daripada atribut kunci komposit dalam jadual
 Jika (A, B) -> (C, D), B -> C, dan (A, B) adalah kekunci primer, maka kebergantungan fungsi B -> C
adalah kebergantungan separa kerana hanya sebahagian kekunci primer (B) diperlukan untuk
menentukan nilai C
 Contoh:
NoInvois -> Tarikh KodItem -> NamaItem, HargaItem, KodVendor, NamaVendor, NoTelVendor

• Pen, 0.50, V01,


12345 • Cepat Sdn. Bhd.,
• 15-Jun-2018 1011 • 06-3335678

• Kertas A4, 7.90,


12346 • • 16-Jun-2018 V01, Cepat Sdn.
1012 • Bhd., 06-3335678
• 16-Jun-2018
12347 • • Air Mineral, 0.50,
1051 • V03, Pantas Sdn.
Bhd., 06-3335677
KEBERGANTUNGAN FUNGSI
• Kebergantungan Fungsi Transitif
Berlaku apabila atribut-atribut bergantung kepada atribut bukan kunci dalam jadual
Jika terdapat kebergantungan X->Y, Y->Z dan X adalah kekunci primer, kebergantungan X-> Z
adalah kebergantungan fungsi transitif kerana X menentukan nilai Z melalui Y.
Contoh daripada Kebergantungan Fungsi berikut:
KodItem -> NamaItem, Harga, KodVendor, NamaVendor, NoTelVendor
• Cepat
terdapat Kebergantungan Fungsi Transitif iaitu:
Sdn.Bhd.
KodVendor -> NamaVendor, NoTelVendor 06-3335678
V01 •
• Bagus
Sdn.Bhd.
V02 • 06-3335679

V03 • • Pantas
Sdn.Bhd.
06-3335677
PROSES PENORMALAN
 Proses penormalan melibatkan langkah-langkah yang berperingkat dan sistematik
untuk menghasilkan bentuk penormalan yang lebih tinggi.
Tiga (3) bentuk penormalan yang perlu dilaksanakan untuk menghasilkan jadual
yang ternormal

• Bentuk Normal Pertama (1NF)


Dalam bentuk jadual yang tiada kumpulan yang berulang dan kekunci primer
telah ditentukan

• Bentuk Normal Kedua (2NF)


Dalam bentuk 1NF dan tiada kebergantungan fungsi separa

• Bentuk Normal Ketiga (3NF)


Dalam bentuk 2NF dan tiada kebergantungan fungsi transitif
PENUKARAN KEPADA
BENTUK NORMAL PERTAMA (1NF)

• Objektif: memastikan lajur jadual adalah atomik dan mempunyai kekunci primer
• Tiga langkah penting:
go i. Menghapuskan Kumpulan Berulang
Kumpulan berulang berlaku apabila wujud satu kumpulan entri berbilang
bagi data yang sama bagi satu ketikaan atribut kunci
go ii. Mengenalpasti Kekunci Primer
Satu atau lebih atribut yang dapat mengenalpasti nilai atribut-atribut lain
secara unik
go iii. Mengenalpasti semua kebergantungan fungsi
Sepenuh, separa dan transitif
MENGHAPUSKAN KUMPULAN BERULANG
MENGHAPUSKAN KUMPULAN BERULANG

back
MENGENALPASTI KEKUNCI PRIMER
• Kekunci Primer bagi jadual ialah kombinasi NoInvois dan KodItem kerana gabungan nilai kedua-dua
atribut ini dapat mengenalpasti nilai atribut-atribut lain secara unik
NoInvois, KodItem -> Tarikh, KodVendor, NamaVendor, NoTelVendor, NamaItem,

Kuantiti, Harga
• Skema hubungan dapat dihasilkan berdasarkan Jadual 1NF. Sintaks skema hubungan adalah seperti
berikut:
NAMA ENTITI (atribut1 <KP>, atribut2 <KA>, atribut3, atribut4, ........ atributN )
• Bagi jadual yang dibincangkan, hubungan dapat dihasilkan seperti berikut:
PEMBELIAN (NoInvois<KP>, Tarikh, KodVendor, NamaVendor, NoTelVendor,
back
KodItem<KP>, NamaItem, Kuantiti, Harga)
MENGENALPASTI SEMUA
KEBERGANTUNGAN FUNGSI
• Kebergantungan Fungsi kepada Kekunci Primer
NoInvois, KodItem -> Tarikh, KodVendor, NamaVendor, NoTelVendor, NamaItem,
Kuantiti, Harga
• Kebergantungan Fungsi Separa
NoInvois -> Tarikh
KodItem -> KodVendor, NamaVendor, NoTelVendor, NamaItem, Harga
• Kebergantungan Fungsi Transitif
KodVendor -> NamaVendor, NoTelVendor
• Kebergantungan Fungsi Penuh
NoInvois, KodItem -> Kuantiti back
RAJAH KEBERGANTUNGAN 1NF
Kebergantungan fungsi yang dikenalpasti boleh ditunjukkan menggunakan
Rajah kebergantungan bagi Bentuk Normal Pertama (1NF) seperti di bawah:

NoInvois KodItem Tarikh Kod Nama No Tel Nama Kuantiti Harga


Vendor Vendor Vendor Item

Kebergantungan Separa
Kebergantungan Separa
Kebergantungan Transitif

Rajah 1
SKEMA HUBUNGAN 1NF

• Masalah struktur jadual 1NF ialah ia mengandungi kebergantungan separa (kebergantungan


berdasarkan sebahagian daripada kunci primer).
• Jadual yang mengandungi kebergantungan separa masih mengandungi kelewahan data.
• Cth: jika sesuatu item dibeli berulangkali, maka data NamaItem dan Harga yang sama perlu
disimpan berulang kali.
PENUKARAN KEPADA
BENTUK NORMAL KEDUA (2NF)
• Objektif: untuk menghapuskan kebergantungan separa
• Penukaran kepada 2NF berlaku hanya apabila jadual 1NF mempunyai kunci komposit
• Jika jadual 1NF mempunyai kunci primer yang mempunyai satu atribut, maka jadual
ini secara automatik berada dalam 2NF.
• Langkah-langkah menukarkan jadual 1NF kepada 2NF
i. Cipta jadual baru untuk menghapuskan kebergantungan separa
ii. Menetapkan semula atribut bergantung yang sepadan
CIPTA JADUAL BARU UNTUK MENGHAPUSKAN
KEBERGANTUNGAN SEPARA
• Bagi setiap komponen kekunci primer yang menjadi penentu bagi kebergantungan
separa, cipta satu jadual baru dengan salinan atribut penentu sebagai kekunci
primer
NoInvois
KodItem
• Atribut penentu mesti kekal dalam jadual asal kerana ia akan menjadi kekunci asing
untuk menghubungkan jadual yang baru dengan jadual asal
• Berdasarkan rajah kebergantungan dalam Rajah 1 , komponen kekunci primer
ialah seperti berikut:
NoInvois
KodItem
NoInvois, KodItem
MENETAPKAN SEMULA ATRIBUT BERGANTUNG
YANG SEPADAN
• Atribut yang bergantung kepada penentu dalam kebergantungan separa dikeluarkan
daripada jadual asal dan diletakkan dalam jadual baru bersama penentu
NoInvois -> Tarikh
KodItem -> KodVendor, Nama Vendor, NoTelVendor, NamaItem, Harga
• Atribut penentu iaitu NoInvois dan KodItem dikekalkan dalam jadual asal dan
menjadi kekunci asing (KA) bagi menghubungkan jadual baru dengan jadual asal
• Mana-mana atribut yang tidak bergantung dalam kebergantungan separa akan kekal
dalam jadual asal dan ia mempunyai kebergantungan sepenuh kepada kekunci
primer
NoInvois, KodItem -> Kuantiti
RAJAH KEBERGANTUNGAN
2NF
SKEMA HUBUNGAN 2NF

• Skema perhubungan dalam jadual 2NF:


PENUKARAN KEPADA
BENTUK NORMAL KETIGA (3NF)

• Objektif penukaran jadual daripada 2NF ke 3NF adalah untuk


menghapuskan Kebergantungan Fungsi Transitif

• Langkah-langkah menukarkan jadual 2NF kepada 3NF adalah seperti


berikut:
i. Cipta jadual baru untuk menghapuskan kebergantungan
fungsi transitif
ii. Menetapkan semula atribut bergantung yang sepadan
CIPTA JADUAL BARU UNTUK MENGHAPUSKAN
KEBERGANTUNGAN FUNGSI TRANSITIF
• Bagi setiap kebergantungan transitif, tulis salinan penentu sebagai kekunci primer
bagi jadual yang baru
• Sebagai contoh, berdasarkan jadual 2NF, penentu bagi kebergantungan transitif
ialah: KodVendor
MENETAPKAN SEMULA ATRIBUT
BERGANTUNG YANG SEPADAN

• NamaVendor dan NoTelVendor dimasukkan dalam jadual baru dan dibuang


daripada jadual asal
KodVendor -> NamaVendor, NoTelVendor
• Penentu bagi kebergantungan transitif dikekalkan dalam jadual asal sebagai kekunci
asing bagi menghubungkan jadual baru dan jadual asal
ITEM (KodItem<KP>, KodVendor<KA>, NamaItem, Harga)
SKEMA HUBUNGAN 3NF

• Skema perhubungan dalam 3NF yang terhasil adalah seperti berikut:


PEMBELIAN (NoInvois<KP>, Tarikh)
ITEM (KodItem<KP>, KodVendor<KA>, NamaItem, Harga)
VENDOR (KodVendor<KP>, NamaVendor, NoTelVendor)
SENARAI_PEMBELIAN (NoInvois<KP><KA>, KodItem<KP><KA>, Kuantiti)
RAJAH KEBERGANTUNGAN 3NF
JADUAL
T
E
R
N
O
R
M
A
L
GAMBARAJAH PERHUBUNGAN ENTITI
MENAMBAHBAIK REKABENTUK

• Rekabentuk jadual-jadual yang terhasil selepas penormalan masih boleh ditambah baik
dengan
i. Mengenalpasti atribut-atribut baru
Jadual PEMBELIAN: atribut Jumlah ditambah untuk menyimpan jumlah keseluruhan
pembelian
Jadual ITEM: atribut KuantitiTersedia untuk menyimpan maklumat kuantiti item dalam
simpanan dan HargaJual bagi menyimpan harga jualan item
Jadual VENDOR, atribut AlamatVendor boleh ditambah untuk menyimpan maklumat
alamat vendor

ii. Menilai semula nama atribut


Jadual PEMBELIAN, nama atribut Tarikh boleh ditukar kepada TarikhPembelian untuk
menunjukkan tarikh barang dibeli daripada vendor
Jadual ITEM, nama atribut Harga item boleh ditukar kepada HargaKos untuk
menunjukkan harga belian daripada vendor
MENAMBAHBAIK REKABENTUK

iii.Mengalami keatoman atribut


AlamatVendor boleh dipecahkan lagi kepada Jalan, Bandar, Poskod dan Negeri
sebagai atribut

iv. Mengenalpasti perhubungan baru


Sekiranya maklumat guru yang menguruskan pembelian barang-barang
diperlukan
Atribut IdGuru perlu ditambah ke dalam jadual PEMBELIAN sebagai kekunci
asing bagi menghubungkan jadual PEMBELIAN kepada jadual GURU
RAJAH
KEBERGANTUNGAN
JADUAL YANG DITAMBAH BAIK
E
R
D
RINGKASAN

• Penormalan meminimumkan kelewahan data


• Tiga bentuk penormalan (1NF, 2NF, dan 3NF) yang biasanya dilaksanakan
• Jadual dalam 1NF apabila semua atribut kunci telah ditakrifkan dan semua atribut
lain bergantung kepada kunci primer
• Jadual dalam 2NF apabila ia berada dalam 1NF dan tiada kebergantungan separa
• Jadual dalam 3NF apabila ia berada dalam 2NF dan tiada kebergantungan transitif
• Sekian, terima kasih.
AKTIVITI BERKUMPULAN

• Jadual 1 menunjukkan maklumat penempahan makmal dan bilik mesyuarat di sebuah


sekolah
i. Laksanakan penormalan ke atas jadual tersebut sehingga 3NF dan ilustrasikan
dengan rajah kebergantungan bagi setiap jadual
ii. Lukiskan ERD bagi skema hubungan yang dihasilkan melalui penormalan
iii. Hasilkan jadual-jadual dalam 3NF berdasarkan skema hubungan yang dihasilkan
melalui penormalan
iv. Apakah penambahbaikan yang boleh dibuat ke atas jadual-jadual yang dihasilkan?

You might also like