You are on page 1of 24

Normalization

1. Apa itu Normalization


2. Apakah tujuan Normalization
3. Apakah proses Normalization
4. Apa itu Error
5. Penerangan tentang error
6. Normal From dan penerangannya
7. Contoh permasalahan dan penyelesaian
• Langkah Pertama
• Langkah Kedua
• Langkah Ketiga
8. Keseluruhan Hasil proses Normalization
9. Bentuk Diagram
Normalization
• Normalization ialah satu proses
pertukaran data yang Complex kepada se
berapa mudah, bagi mendapatkan data
yang stabil dan teratur.
• Dalam erti kata lain proses attribute
kepada entities.
Tujuan Normalization
• Ianya bertujuan untuk mengurangkan data yang
bergantung pada diri sendiri
• Membantu mengeluarkan error dari segi
pengawalan pertindihan atau dikenali sebagai
anomalies
• Contoh seperti terdapat pertindihan data.
• Normalization tidak mengeluarkan data yang
bertindih tetapi mencadangkan pengawalan
pertindihan
• Ianya memerlukan relation di antara table di
dalam database.
Proses Normalization
• Proses di dalam normalization ialah tindakbalas kepada
Normal Form .
• Terdapat 5 peringkat Normalization iaitu: -
1. First Normal From
2. Second Normal Form
3. Third Normal Form
4. Four Normal Form
5. Five Normal Form
• Dan hanya 3 peringkat Normal form yang di berikan
keutamaan
Sambungan….
• Secara structure ….
 Second Normal Form (2NF) lebih baik daripada
First Normal Form (1NF).
 Third Normal Form (3NF) lebih baik daripada
Second Normal Form( 3NF)
 Begitulah proses seterusnya.
 Kebanyakkan yang di lihat atau yang digunakan
ianya tidak melepasti 3NF ini.
 Walaubagaimanapun harus juga di ambil tahu
tentang pengunaan proses 4NF dan 5NF
3 Jenis Anomalies
• Seperti yang telah di terangkan error
atau anomalies terdapat apabila
mengunakan relation.
• Ianya terdiri daripada 3 jenis anomalies
iaitu :
1. Insert anomalies
2. Delete anomalies
3. Malification anomalies
Contoh Table
StudId Stud Course Course_ Teacher_ Teacher_ 1. Insertion anomalies
Name Id title name room
• Dengan merujuk table di atas,
111 Marina BU100 Bus Org Wang A1
jika penguna ingin meletakkan
kursus baru di dalam table
111 Marina BU200 Econs Aziz A2 terbabit, ianya hanya boleh
dilakukan apabila pelatih
111 Marina IS300 Database Nik A3
mendaftar kursus tersebut. Ini
jelas menunjukkan ianya
sangat terhad . Database
222 Anthon IS300 Info_Sys Allen A4 sepatutnya boleh dimasukkan
y
kursus dengan mudah tanpa
222 Anthon IS300 Database Nik A3
ada masalah. Dan tidak perlu
y menunggu pelatih terbabit
mendaftar terlebih dahulu
Sambungan …..
StudId Stud Course Course_ Teacher_ Teacher_ 2.Deletion anomalies
Name Id title name room • Jika programmer hendak
111 Marina BU100 Bus Org Wang A1 menghapuskan (Delete) sesuatu
daripada table ianya akan
menyebabkan rekod akan hilang
111 Marina BU200 Econs Aziz A2 termasuk juga semua rekod yang
berkaitan dengannya. Contohnya
seperti StudId 222 di hapuskan
111 Marina IS300 Database Nik A3 rekod kursusnya, ini bermakna
rekod kursus yang berkaitannya
yang berada pada row lain juga
222 Anthon IS300 Info_Sys Allen A4 akan terhapus. Ini jelas
y menunjukkan perkara yang tidak
sepatutnya berlaku.
222 Anthon IS300 Database Nik A3
y
3. Malification anomalies
• Contoh yang jelas ialah jika
pelatih yang ID nya 222 tukar
nombor telefon ini akan
menyebabkan penguna harus
menukar sesetengah row di
dalam table. Jelas, keputusan ini
tidak bagus dan membuatkan
banyak masa terbuang.
Normal Form
• Secara ringkasnya NF ialah :-
 Relation di dalam 1NF jika tidak terdapatnya ulangan
kumpulan
 Relation di dalam 2NF jika di dalam 1NF dan setiap ”nonkey”
attribute berfungsi bergantung sepenuhnya pada primary key
(attributes). Ini bermakna tiada ”nonkey” attributes yang
berfungsi bergantung hanya kepada bahagian primary key.
 Relation di dalam 3NF jika di dalam 2NF dan jika tiada
ketetapan pelindungan yang wujud.
 Relation di dalam BCNF jika setiap penentu ialah candidate
key
 Relation di dalam 4NF jika di dalamnya BCNF dan
kandungannya tiada nilai perlindungan
 Relation di dalam 5NF jika di dalam 4FN dan tidak terdapatnya
”join dependency”
Bentuk Peringkat Normalization
Table with
repating group
Remove repeating
groups
First Normal
Form
Remove partial
dependencies
Second Normal
Form
Remove transitive
dependencies
Third Normal
Form
Remove anomalies resulting
from functional dependencies
Beyce-Codd
Normal Form
Remove multi-valued
dependencies
Fourth Normal
Form
Remove remaining anomalies

Fifth Normal
Form
Sambungan …
Table with
repating group
• Mengeluarkan keberulangan kumpulan.
Remove
repeating groups
Memperkenalkan nilai single apada setiap
silangan row dan column bagi setiap table.
First Normal
Form
Keputusan table di dalam First normal
form (1NF). Table di dalam 1NF apabila
Remove partial
dependencies semua key attributes ditemui apabila
Second
semua peringatan attributes bergantung
Normal Form kepada primary key. Table di dalam
Remove transitive keadaan 1NF walaubagaimanapun masih
dependencies
boleh menjadi perlindung pada
Third Normal sebahagian kandungan.
Form
• mengeluarkan sebahagian fungsi
Remove anomalies
resulting from functional
pergantungan (functional dependencies).
Beyce-Codd
dependencies Keputusan di dalam Second Normal Form
Normal Form (2NF). Table di dalam 2NF apabila ianya
Remove multi-valued
berada dalam 1NF dan sebahagian
dependencies kandungannya tiada perlindungan. Ini
Fourth Normal bermakna 1NF secara automatik di dalam
Form
2NF jika ianya primary key, ianya
Remove remaining
anomalies
bergantung kepada ” single attributes” .
• Mengeluarkan ”transitive dependencies”
Fifth Normal
Form ( perlindungan sementara). Keputusan di
dalam Third Normal Form (3NF). Table di
dalam 3NF jika di dalamnya terdapat 3NF
dan kandungannya tiada perlindungan
sementara.
Sambung... Table with
repating group
• Mengeluarkan keputusan Remove
peringatan anomalies (error) repeating groups

daripada ”functional First Normal

dependencies” (fungsi Form

pergantungan). Keputusan ini Remove partial


dependencies
di dalam Beyce-Codd Normal
Form (BCNF). BCNF ialah
Second
Normal Form

satu kes istimewa pada 3NF Remove transitive

di mana semuanya akan dependencies

bertukar kepada candidate Third Normal


Form
key. Jika table hanya
mempunyai satu candidate Remove anomalies
resulting from functional

key, table 3NF secara Beyce-Codd


dependencies

automatik di dalam BCNF. Normal Form

• Mengeluarkan “multi-value Remove multi-valued


dependencies

dependencies”. Keputusan ini Fourth Normal


dikenali sebagai (4NF) Fourth Form

Normal Form. Remove remaining


anomalies

• Mengeluarkan peringatan Fifth Normal


anomalies. Keputusan ini Form

ialah Fifth Normal Form


(5NF).
Permasalahan
StudId StudName Tel Major CourseId Course title Teacher Teacher Grade
Name Name
111 Marina 1234 BU BU100 Bus Org Wong A1 B
BU200 Econs Aziz A2 A
IS300 Database Shoba B3 C

222 Anthony 2345 IS IS200 Info Sys Allen B4 B


IS300 Database Shoba B3 A

Table di atas menunjukkan berlakunya perulangan iaitu data kursus telah diulang
bagi setiap pelatih. Keputusannya terdapat beberapa nilai pada beberapa bahagian di
antara sesetengah row dan column. Contohnya nilai yang terdapat pada “CourseId
( BU100,BU200 dan IS300) bagi marina. Bagi normalize table di atas anda
boleh mengunakan peringkat seperti berikut :-
Langkah pertama
(Remove Repeating Group)
StudId StudName Tel Major CourseId Course title Teacher Teacher Grade
Name Name

111 Marina 1234 BU BU100 Bus Org Wong A1 B

111 Marina 1234 BU BU200 Econs Aziz A2 A

111 Marina 1234 BU IS300 Database Shoba B3 C

222 Anthony 2345 IS IS200 Info Sys Allen B4 B

222 Anthony 2345 IS IS300 Database Shoba B3 A

Ianya boleh diselesaikan dengan mudah, iaitu dengan menjadikan table di dalam (1FN)
seperti yang di lihat di atas iaitu dengan melakukan pengasingan , daripada table
di atas relation menunjukkan Bagaimana ianya dimasukkan, dimansuhkan dan diubah
anomalies nya. Ini bermakna reka bentuk relation yang asal tidak bagus dan ianya
memerlukan pengunaan normalization.
Langkah ke dua
( Remove Partial Function Dependencies)
• Bagi mengunakan langkah 2 ini kajian yang perlu dilakukan ialah
melihat pada “functional dependencies” bagi kedua relation dan pilih
primary key bagi mewujudkan relation.
• Berikut merupakan salah satu cara pergantungan
 StudId = StudName, Tel, Major
 CourseId = CourseTitle, Teachername, TeacherRoom
 StudId,CourseId = Grade
 TeacherName = TeacherRoom
• Jika di lihat bagi kes di atas boleh dilihat pergantungan bagi
StudName,Tel dan Major ialah pada StudId. Begitu juga dengan
CourseTitle, TeacherName dan TeacherRoom pada CourseId.
Begitu juga bagi yang selebihnya.
• Bagi Grade pergantungannya adalah StudId dan CourseId, disinilah
berlakunya “candidate key” di dalam relation.
• Key terdapat di dalam relation di atas ialah StudId dan CourseId.
Seperti yang di linekan, dan ianya dikenali sebagai “composite
primary key” iaitu primary key yang lebih daripada satu attribute.
Gambaran bagi penjelasan
• Gambarajah di bawah menunjukkan
Grade bergantung kepada StudId dan
CourseId.
• Begitu juga dengan 6 attributes yang
StudNam
e
lain bergantung kepada StudId dan
CourseId.
StudId Tel
• Gambaran menunjukkan masih
terdapat 6 attributes yang bergantung
Major fungsi pada Primary key
Grade • Kecuali Grade yang bergantung fungsi
hanya pada StudId dan CourseId.
CourseTitle • Ini bermakna StudId dan CourseId
diambil sebagai pengenalan bagi
CourseI Teache
Grade.
d rname • Selagi sebahagian pergantungan itu
wujud, kedua relation tersebut tidak
TeacherRoom
berada di dalam 2NF.
• Oleh itu langkah seterusnya harus
dilakukan bagi membuatng
sebahagian pergantungan dengan
mewujudkan tiga (3) relation yang baru
3 Relation di dalam 2NF
 Student(StudId, Tel, Major)
 Courseteacher ( courseId, CourseTitle,
TeacherName, TeacherRoom)
 Registration( StudId, CourseId, Grade)
Terjemahan Table
Table menunjukkan langkah StudId Studname Tel Major
2NF, menunjukkan setiap
111 Marina 1234 BU
attribute tidak sepenuhnya
bergantung kepada key bagi 222 Anthony 2345 IS
tujuan relation.
Student

CourseId CourseTitle TeacherName TeacherRoom StudId CourseId Grade

111 BU100 B
BU100 Bus_Org Wong A1
111 BU200 A
Bu200 Econs Aziz A2
111 IS300 C
IS300 Database Shoba B3
222 IS200 B
IS200 Info_sys Allen B4

IS300 Database Shoba B3 222 IS300 A

CourseTeacher Registration
Langkah ke tiga (3)
(Remove Transitivi Dependencies)
• Student dan Registration secara automatik telah sedia ada di dalam
3NF.
• Walaubagaimanapun CourseTeacher masih lagi di dalam 2NF.
• Ini bermakna subject masih lagi dikira sebagai anomalies dan ianya
perlu di perbaiki dengan mengunakan cara ketiga ini.
• Lihat pada table CourseTeacher , ianya menunjukkan Pengajar
Shoba mengunakan bilik B3 , jika ianya di delete masih ada lagi
satu row yang tersimpan data pengajar Shoba tapi bagaimana
dengan jika courseId IS200 yang di delete?, jika di lihat pada mana-
mana table tiada yang selamat dan ianya akan mengakibatkan
kehilangan data tetang data IS200 yang di ajar oleh pengajar Allen.
• Anomalies di dalam table CourseTeacher wujud adalah kerana
terdapat relation yang datanya berkaitan. Entities Teacher tidak
kelihatan di dalam CourseTeacher
• Fungsi pergantungan di dalam relation boleh dilihat seperti di bawah
:-
 CourseId = CourseTitle, TeacherName, TeacherRoom
 TeacherName = TeacherRoom
Lihat dengan Jelas
 CourseId = CourseTitle,
TeacherName, TeacherRoom
CourseId CourseTitle TeacherName TeacherRoom  TeacherName = TeacherRoom
 TeacherRoom bergantung
BU100 Bus_Org Wong A1
kepada TeacherName ianya
merupakan Non_key attribute.
Bu200 Econs Aziz A2 Bagi membuang “transient
dependent” ( ketidaktetapan
IS300 Database Shoba B3 pergantungan). Relation
CourseTeacher masih belum
IS200 Info_sys Allen B4
lagi di dalam 3NF
 Oleh itu Bagi membuang
IS300 Database Shoba B3
ketidaktetapan pergantungan
yang terdapat pada 2NF , di
asingkan kepada dua relation
CourseTeacher iaitu “Course” dan “Teacher”
seperti berikut
Penyelesaian
CourseId CourseTitle TeacherName
•Bagi relation course , attributenya
BU100 Bus Org Wong ialah “CourseId” dan ianya
BU200 Econs Aziz
merupakan key, CourseTitle dan
Teacher.
IS300 Database Shoba

IS200 Info_sys Allen • Bagi relation Teacher mempunyai


IS300 Database Shoba
attributes seperti TeacherName
dan TeacherRoom dan
Course TeacherName merupakan key bagi
relation Teacher
TeacherName TeacherRoom •TeacherName merupakan
“Foreign Key” di dalam relation
Wong A1 Course.
Aziz A2 •Foreign Key ialah satu sifat
Shoba B3 ( attribute) yang kelihatan tetapi
Allen B4 bukan kunci sifat (non-key attribute)
Shoba B3
dalam satu relation tetapi ianya
sebagai Primary key di dalam
Teacher relation lain .
Keseluruhan hasil proses
Normalization
Student(StudId,StudName,Tel,Major) Registration(StudId,CourseId,Grade)
StudId Studname Tel Major StudId CourseId Grade

111 Marina 1234 BU 111 BU100 B

222 Anthony 2345 IS 111 BU200 A

111 IS300 C

222 IS200 B

222 IS300 A

Course(CourseId,CourseName,TeacherName) Teacher(TeacherName,TeacherRoom)

CourseId CourseTitle TeacherName TeacherName TeacherRoom

BU100 Bus Org Wong Wong A1

BU200 Econs Aziz Aziz A2

IS300 Database Shoba Shoba B3

IS200 Info_sys Allen Allen B4

IS300 Database Shoba Shoba B3


Bentuk Diagram
CourseTitle
CourseId TeacherNam
e
Course

StudI Tel
d CourseId

Subje
Student Grade
k
StudentId

Studnam Major
e Registration

Teacher

TeacherNam TeacherRoo
e m
Sambungan
Dibawa untuk
menjalankan latihan
AMALI

You might also like