Upload
abezukey
View
881
Download
0
Embed Size (px)
DESCRIPTION
Sql server defininisi
Citation preview
Normalization
1. Apa itu Normalization 2. Apakah tujuan Normalization3. 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 Ketiga8. 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 Form4. 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
NameCourseId
Course_title
Teacher_name
Teacher_room
111 Marina BU100 Bus Org Wang A1
111 Marina BU200 Econs Aziz A2
111 Marina IS300 Database Nik A3
222 Anthony
IS300 Info_Sys Allen A4
222 Anthony
IS300 Database Nik A3
1. Insertion anomalies
• Dengan merujuk table di atas, jika penguna ingin meletakkan kursus baru di dalam table terbabit, ianya hanya boleh dilakukan apabila pelatih mendaftar kursus tersebut. Ini jelas menunjukkan ianya sangat terhad . Database sepatutnya boleh dimasukkan kursus dengan mudah tanpa ada masalah. Dan tidak perlu menunggu pelatih terbabit mendaftar terlebih dahulu
Sambungan ….. StudId Stud
NameCourseId
Course_title
Teacher_name
Teacher_room
111 Marina BU100 Bus Org Wang A1
111 Marina BU200 Econs Aziz A2
111 Marina IS300 Database Nik A3
222 Anthony
IS300 Info_Sys Allen A4
222 Anthony
IS300 Database Nik A3
2.Deletion anomalies• Jika programmer hendak
menghapuskan (Delete) sesuatu daripada table ianya akan menyebabkan rekod akan hilang termasuk juga semua rekod yang berkaitan dengannya. Contohnya seperti StudId 222 di hapuskan rekod kursusnya, ini bermakna rekod kursus yang berkaitannya yang berada pada row lain juga akan terhapus. Ini jelas menunjukkan perkara yang tidak sepatutnya berlaku.
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
Third Normal Form
Table with repating group
First Normal Form
Second Normal Form
Fifth Normal Form
Fourth Normal Form
Beyce-Codd Normal Form
Remove repeating groups
Remove partial dependencies
Remove transitive dependencies
Remove anomalies resulting from functional dependencies
Remove multi-valued dependencies
Remove remaining anomalies
Sambungan …• Mengeluarkan keberulangan kumpulan.
Memperkenalkan nilai single apada setiap silangan row dan column bagi setiap table. Keputusan table di dalam First normal form (1NF). Table di dalam 1NF apabila semua key attributes ditemui apabila semua peringatan attributes bergantung kepada primary key. Table di dalam keadaan 1NF walaubagaimanapun masih boleh menjadi perlindung pada sebahagian kandungan.
• mengeluarkan sebahagian fungsi pergantungan (functional dependencies). Keputusan di dalam Second Normal Form (2NF). Table di dalam 2NF apabila ianya berada dalam 1NF dan sebahagian kandungannya tiada perlindungan. Ini bermakna 1NF secara automatik di dalam 2NF jika ianya primary key, ianya bergantung kepada ” single attributes” .
• Mengeluarkan ”transitive dependencies” ( perlindungan sementara). Keputusan di dalam Third Normal Form (3NF). Table di dalam 3NF jika di dalamnya terdapat 3NF dan kandungannya tiada perlindungan sementara.
Third Normal Form
Table with repating group
First Normal Form
Second Normal Form
Fifth Normal Form
Fourth Normal Form
Beyce-Codd Normal Form
Remove repeating groups
Remove partial dependencies
Remove transitive dependencies
Remove anomalies resulting from functional dependencies
Remove multi-valued dependencies
Remove remaining anomalies
Sambung...• Mengeluarkan keputusan
peringatan anomalies (error) daripada ”functional dependencies” (fungsi pergantungan). Keputusan ini di dalam Beyce-Codd Normal Form (BCNF). BCNF ialah satu kes istimewa pada 3NF di mana semuanya akan bertukar kepada candidate key. Jika table hanya mempunyai satu candidate key, table 3NF secara automatik di dalam BCNF.
• Mengeluarkan “multi-value dependencies”. Keputusan ini dikenali sebagai (4NF) Fourth Normal Form.
• Mengeluarkan peringatan anomalies. Keputusan ini ialah Fifth Normal Form (5NF).
Third Normal Form
Table with repating group
First Normal Form
Second Normal Form
Fifth Normal Form
Fourth Normal Form
Beyce-Codd Normal Form
Remove repeating groups
Remove partial dependencies
Remove transitive dependencies
Remove anomalies resulting from functional dependencies
Remove multi-valued dependencies
Remove remaining anomalies
Permasalahan StudId StudName Tel Major CourseId Course title Teacher
NameTeacher
NameGrade
111 Marina 1234 BU BU100BU200IS300
Bus OrgEconsDatabase
Wong AzizShoba
A1A2B3
BAC
222 Anthony 2345 IS IS200IS300
Info SysDatabase
AllenShoba
B4B3
BA
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 Name
Teacher Name
Grade
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 lain bergantung kepada StudId dan CourseId.
• Gambaran menunjukkan masih terdapat 6 attributes yang bergantung fungsi pada Primary key
• Kecuali Grade yang bergantung fungsi hanya pada StudId dan CourseId.
• Ini bermakna StudId dan CourseId diambil sebagai pengenalan bagi Grade.
• Selagi sebahagian pergantungan itu wujud, kedua relation tersebut tidak berada di dalam 2NF.
• Oleh itu langkah seterusnya harus dilakukan bagi membuatng sebahagian pergantungan dengan mewujudkan tiga (3) relation yang baru
Grade
CourseId
TeacherRoom
Teachername
CourseTitle
StudId
Major
Tel
StudName
3 Relation di dalam 2NF
Student(StudId, Tel, Major) Courseteacher ( courseId, CourseTitle,
TeacherName, TeacherRoom) Registration( StudId, CourseId, Grade)
Terjemahan TableStudId Studname Tel Major
111 Marina 1234 BU
222 Anthony 2345 IS
CourseId CourseTitle TeacherName TeacherRoom
BU100 Bus_Org Wong A1
Bu200 Econs Aziz A2
IS300 Database Shoba B3
IS200 Info_sys Allen B4
IS300 Database Shoba B3
StudId CourseId Grade
111 BU100 B
111 BU200 A
111 IS300 C
222 IS200 B
222 IS300 A
Student
CourseTeacher Registration
Table menunjukkan langkah 2NF, menunjukkan setiap attribute tidak sepenuhnya
bergantung kepada key bagi tujuan relation.
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 TeacherName =
TeacherRoom TeacherRoom bergantung
kepada TeacherName ianya merupakan Non_key attribute. Bagi membuang “transient dependent” ( ketidaktetapan pergantungan). Relation CourseTeacher masih belum lagi di dalam 3NF
Oleh itu Bagi membuang ketidaktetapan pergantungan yang terdapat pada 2NF , di asingkan kepada dua relation iaitu “Course” dan “Teacher” seperti berikut
CourseId CourseTitle TeacherName TeacherRoom
BU100 Bus_Org Wong A1
Bu200 Econs Aziz A2
IS300 Database Shoba B3
IS200 Info_sys Allen B4
IS300 Database Shoba B3
CourseTeacher
Penyelesaian CourseId CourseTitle TeacherName
BU100 Bus Org Wong
BU200 Econs Aziz
IS300 Database Shoba
IS200 Info_sys Allen
IS300 Database Shoba
TeacherName TeacherRoom
Wong A1
Aziz A2
Shoba B3
Allen B4
Shoba B3
Course
Teacher
•Bagi relation course , attributenya ialah “CourseId” dan ianya merupakan key, CourseTitle dan Teacher.
• Bagi relation Teacher mempunyai attributes seperti TeacherName dan TeacherRoom dan TeacherName merupakan key bagi relation Teacher
•TeacherName merupakan “Foreign Key” di dalam relation Course.
•Foreign Key ialah satu sifat ( attribute) yang kelihatan tetapi bukan kunci sifat (non-key attribute) dalam satu relation tetapi ianya sebagai Primary key di dalam relation lain .
Keseluruhan hasil proses Normalization
StudId Studname Tel Major
111 Marina 1234 BU
222 Anthony 2345 IS
StudId CourseId Grade
111 BU100 B
111 BU200 A
111 IS300 C
222 IS200 B
222 IS300 A
CourseId CourseTitle TeacherName
BU100 Bus Org Wong
BU200 Econs Aziz
IS300 Database Shoba
IS200 Info_sys Allen
IS300 Database Shoba
TeacherName TeacherRoom
Wong A1
Aziz A2
Shoba B3
Allen B4
Shoba B3
Student(StudId,StudName,Tel,Major) Registration(StudId,CourseId,Grade)
Course(CourseId,CourseName,TeacherName) Teacher(TeacherName,TeacherRoom)
Bentuk Diagram
GradeSubjek
StudId
Student
Course
Registration
Teacher
TeacherName
CourseTitleCourseId
Major
Tel
Studname
CourseId
StudentId
TeacherRoom
TeacherName
Sambungan
Dibawa untuk menjalankan latihan
AMALI