normalization le4

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

Upload: abezukey

Post on 16-Jun-2015

881 views

Category:

Documents


0 download

DESCRIPTION

Sql server defininisi

TRANSCRIPT

Page 1: Normalization Le4

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

Page 2: Normalization Le4

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.

Page 3: Normalization Le4

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.

Page 4: Normalization Le4

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

Page 5: Normalization Le4

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

Page 6: Normalization Le4

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

Page 7: Normalization Le4

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

Page 8: Normalization Le4

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.

Page 9: Normalization Le4

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”

Page 10: Normalization Le4

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

Page 11: Normalization Le4

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

Page 12: Normalization Le4

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

Page 13: Normalization Le4

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 :-

Page 14: Normalization Le4

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.

Page 15: Normalization Le4

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.

Page 16: Normalization Le4

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

Page 17: Normalization Le4

3 Relation di dalam 2NF

Student(StudId, Tel, Major) Courseteacher ( courseId, CourseTitle,

TeacherName, TeacherRoom) Registration( StudId, CourseId, Grade)

Page 18: Normalization Le4

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.

Page 19: Normalization Le4

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

Page 20: Normalization Le4

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

Page 21: Normalization Le4

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 .

Page 22: Normalization Le4

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)

Page 23: Normalization Le4

Bentuk Diagram

GradeSubjek

StudId

Student

Course

Registration

Teacher

TeacherName

CourseTitleCourseId

Major

Tel

Studname

CourseId

StudentId

TeacherRoom

TeacherName

Page 24: Normalization Le4

Sambungan

Dibawa untuk menjalankan latihan

AMALI