Anda di halaman 1dari 12

Modul PHPMYSQL paling mudah

Fasa 2 : Rekabentuk penyelesaian

Carta Alir Peserta


Modul PHPMYSQL paling mudah

Carta alir Hakim


Modul PHPMYSQL paling mudah

ERD modul paling mudah di alam semesta (3 entiti)

ERD modul paling mudah di muka bumi (5 entiti)


Modul PHPMYSQL paling mudah

Antaramuka borang pendaftaran peserta

Borang antaramuka laporan


Modul PHPMYSQL paling mudah

Antaramuka Menu Utama Hakim


Modul PHPMYSQL paling mudah

Penormalan modul paling mudah di alam semesta (3 entiti)

PESERTA

0NF
Masalah
• Jadual tidak atomik
• Tiada kunci primer
• Menyebabkan anomali dan kelewahan data

Penyelesaian
• Menukarkan jadual kepada bentuk 1NF

Skema Hubungan 0NF


PESERTA ( nama_peserta, nokp_peserta, kod_sekolah, nama_sekolah, nokp_hakim, nama_hakim, mata)

1NF (Pernomalan peringkat 1NF)


Objektif / Matlamat :penukaran 0NF kepada 1NF (apa yang perlu dilakukan)/ proses pernomalan
• Memastikan lajur jadual atomic
• Menentukan / menetapkan / mencari atribut kunci

Penerangan :
Berdasarkan data yang ada pada jadual, didapati bahawa nokp_peserta sudah cukup untuk
membezakan setiap rekod yang ada. nokp_peserta telah memenuhi semua ciri-ciri atribut kunci yang
baik iaitu unik, stabil, minimal dan tidak null. Maka nokp_peserta sahaja sudah cukup dalam
membezakan setiap rekod yang ada.
X perlu
Rumusan : atribut nokp peserta – adalah atribut (tunggal) dijadikan kunci perimer.

PESERTA

Skema Hubungan 1NF


PESERTA ( nama_peserta, nokp_peserta <KP>, kod_sekolah, nama_sekolah, nokp_hakim, nama_hakim,
mata)

Isu yang timbul di 1NF


• Berkemungkinan terdapat kebergantungan fungsi separa atau kebergantungan fungsi transitif
• Terdapat anomali

Jadi / Oleh itu, jadual perlu ditukarkan kepada bentuk 2NF.


/
Modul PHPMYSQL paling mudah

2NF

PESERTA

Syarat Penukaran 1NF kepada 2NF/ Syarat untuk melakukan proses pernomlan 2NF
• Jadual telah berada pada 1NF

Objektif penukaran 1NF kepada 2NF


• Menghapuskan/ menghilangkan kebergantungan fungsi separa

Peneranagan :Bagaimana menghapuskan kebergantungan fungsi separa.


Kebergantungan fungsi separa bermaksud atribut bukan kunci hanya bergantung kepada salah satu
atribut kunci. Pada jadual 1NF, didapati hanya mempunyai 1 kunci sahaja. Semua atribut bukan kunci
akan bergantung kepada atribut kunci nokp_peserta. Maka kebergantungan fungsi separa tidak wujud
di dalam jadual. Apabila jadual di 2NF tidak mempunyai kebergantungan fungsi separa, bentuk
penormalan 2NF adalah sama dengan 1NF (disebabkan jadual tidak dapat dipecahkan)

Skema Hubungan 2NF


PESERTA ( nama_peserta, nokp_peserta <KP>, kod_sekolah, nama_sekolah, nokp_hakim,
nama_hakim, mata)

3NF

Syarat Penukaran 2NF kepada 3NF


• Jadual telah berada pada 2NF (Tiada Kebergantungan Fungsi Separa)

Objektif penukaran 2NF kepada 3NF (apa yang perlu dilakukan)


• Menghapuskan kebergantungan fungsi Transitif

Penerangan.Bagaimana menghapuskan kebergantungan fungsi transitif


Kebergantungan fungsi transitif bermaksud atribut bukan kunci bergantung kepada atribut bukan kunci
yang lain. Didapati di dalam jadual, terdapat kebergantungan fungsi transitif dimana atribut
nama_sekolah bergantung kepada atribut kod_sekolah dan atribut nama_hakim bergantung kepada
atribut nokp_hakim. Untuk menghapuskan kebergantungan fungsi transitif, pemecahan jadual perlu
dilakukan.
Modul PHPMYSQL paling mudah

Semasa proses pemecahan jadual, kod sekolah dan nama sekolah di masukkan ke dalam jadual baru
iaitu jadual sekolah. Kod_sekolah dijadikan kunci primer dalam jadual sekolah dan menjadi kunci asing
di dalam jadual peserta. Begitu juga dengan nokp_hakim dan nama hakim dimasukkan dalam jadual
baru iaitu hakim. nokp_hakim dijadikan kunci primer di jadual hakim dan kunci asing di jadual peserta.

Skema Hubungan 3NF


PESERTA ( nama_peserta, nokp_peserta <KP>, kod_sekolah <KA>, nokp_hakim<KA>, mata)
SEKOLAH (kod_sekolah<KP>, nama_sekolah)
HAKIM (nokp_hakim<KP>, nama_hakim)
Modul PHPMYSQL paling mudah

Penormalan modul paling mudah di muka bumi (5 entiti)

0NF
Masalah
• Tiada kunci primer
• Jadual tidak atomik
• Menyebabkan anomali dan kelewahan data

Penyelesaian
• Menukarkan jadual kepada bentuk 1NF

Skema Hubungan 0NF


PENYERTAAN ( nama_peserta, nokp_peserta, kod_sekolah, nama_sekolah, kod_kategori,
nama_kriteria,
nokp_hakim, nama_hakim, mata)

1NF
Objektif/ matlamat penukaran 0NF kepada 1NF (apa yang perlu dilakukan)
• Memastikan lajur jadual atomic
• Menentukan atribut kunci

Bagaimana menentukan atribut kunci?


Dalam menentukan atribut kunci, apa yang perlu dilakukan adalah mencari 1 atau gabungan beberapa
atribut yang boleh digunakan untuk membezakan setiap rekod. Pada bahagian data tidak berulang
nokp_peserta boleh membezakan setiap rekod. Manakala di kumpulan berulang, didapati kod_kategori
boleh membezakan rekod pada kumpulan tersebut. maka gabungan kunci yang diperolehi ialah
nokp_peserta dan kod_kategori.

Pengujian kepada atribut kunci yang dipilih.

X perlu

Setiap padanan data diantara dua


atribut kunci yang dipilih tidak
sama. Maka atribut kunci
nokp_peserta dan kod_kategori
Rumusan : Oleh itu,
kunci primer yg didapati
adalah kunci primer
komposit terduri
daripada gabungan
atribut i yang diperolehi
niaitu okp_peserta dan
kod_kategori.
Modul PHPMYSQL paling mudah

Skema hubungan di 1NF


PENYERTAAN (nama_peserta, nokp_peserta<KP>, kod_sekolah, nama_sekolah, kod_kategori<KP>,
kategori_markah, nokp_hakim, nama_hakim, mata)

Isu yang timbul di 1NF


• Berkemungkinan terdapat kebergantungan fungsi separa atau kebergantungan fungsi transitif
• Terdapat anomali

Jadi / Oleh itu, jadual perlu ditukarkan kepada bentuk 2NF.

X perlu :
2NF terang
Syarat Penukaran 1NF kepada 2NF secara
• Jadual telah berada pada 1NF (telah mempunyai kunci dan telah atomik ringkas
Objektif penukaran 1NF kepada 2NF (apa yang perlu dilakukan) (refer ms
• Menghapuskan kebergantungan fungsi separa (Pecah jadual). Kebergantungan fungsi separa 40 Mod
bermaksud atribut bukan kunci hanya bergantung kepada salah satu atribut kunci pada jadual PD)

Daripada rajah di atas, didapati bahawa nama peserta, kod_sekolah dan nama_sekolah mempunyai
kebergantungan fungsi separa dimana ianya hanya bergantung kepada kunci nokp_peserta. Manakala
kategori_markah hanya bergantung kepada kunci kod_kategori. Bagi atribut bukan kunci nokp_hakim,
nama_hakim dan mata akan bergantung kepada kedua-dua kunci iaitu nokp_peserta dan kod_kategori.

Kebergantungan fungsi separa


nokp_peserta -> nama_peserta, kod_sekolah dan nama_sekolah
kod_kategori -> kategori_markah

Untuk menghapuskan kebergantungan fungsi separa ini, pemecahan jadual perlu dilakukan.

Skema Hubungan 2NF (OUTPUT)

PENYERTAAN ( nokp peserta<KP><KA>, kod_kategori<KP><KA>, nokp_hakim, nama_hakim, mata )


PESERTA (nama peserta , nokp peserta<KP>, kod_sekolah, nama_sekolah)
KATEGORI (kod_kategori<KP>, kategori_markah)
Modul PHPMYSQL paling mudah

Isu tg timbul :
terdapat lagi isu yang timbul iaitu kebergantungan fungsi transitif pada jadual penyertaan dan
jadual peserta. Oleh yang demikian, proses penormalan perlu diteruskan sehingga 3NF

3NF
Penerangan :
Syarat Penukaran 2NF kepada 3NF
• Jadual telah berada pada 2NF (Tiada Kebergantungan Fungsi Separa)
Objektif penukaran 2NF kepada 3NF (apa yang perlu dilakukan)
• Menghapuskan kebergantungan fungsi Transitif (Pecah jadual). Kebergantungan fungsi transitif
bermaksud atribut bukan kunci bergantung kepada atribut bukan kunci didalam sesebuah
jadual.

Terdapat kebergantungan fungsi transitif pada jadual penyertaan dan peserta.


Pada jadual penyertaan, atribut bukan kunci nama_hakim bergantung kepada atribut bukan kunci
nokp_hakim. Manakala pada jadual peserta didapati atribut bukan kunci nama_sekolah bergantung
kepada atribut bukan kunci kod_sekolah. Jadi pemecahan jadual perlu dilakukan bagi menghapuskan
kebergantungan fungsi transitif ini.

PENYERTAAN

PESERTA

X perlu
Modul PHPMYSQL paling mudah

Menghapuskan kebergantungan fungsi transitif

Bagi menghapus kebergantungan fungsi transitif di jadual penyertaan, nokp_hakim dan nama hakim
akan di masukkan kedalam jadual baru hakim. nokp_hakim dijadikan sebagai kunci primer di dalam
jadual hakim. manakala di jadual penyertaan pula, nokp_hakim akan dijadikan sebagai kunci asing.

Bagi menghapuskan kebergantungan fungsi transitif di jadual penyertaan, kod sekolah dan nama
sekolah akan di keluarkan kedalam jadual baru. Kod_sekoalh akan menjadi kunci primer pada jadual
sekolah dan akan menjadi kunci asing di dalam jadual peserta.

SKEMA HUBUNGAN 3NF

PENYERTAAN ( nokp peserta<KP><KA>, kod_kategori<KP><KA>, nokp_hakim<KA>, mata )


KATEGORI ( kod_kategori<KP>, kategori_markah)
HAKIM (nokp_hakim<KP>, nama_hakim )
PESERTA ( nama peserta, nokp peserta<KP>, kod_sekolah<KA> )
SEKOLAH (kod_sekolah<KP> , nama_sekolah )

Anda mungkin juga menyukai