normalisasi tabel

24
Normalisasi Tabel “1NF, 2NF, 3NF dan BCNF” Posted by Rachman Marangga on 9 Januari 2012 Posted in: Database . Tagged: anomali . Tinggalkan sebuah Komentar Rate This Pengertian normalisasi: Normalisasi adalah Teknik atau pendekatan yang digunakan dalam membangun disain database relasional melalui himpunan data dengan tingkat ketergantungan fungsional dan keterkaitan yang tinggi sehingga menghasilkan struktur tabel yang normal. Tujuan normalisasi: Minimalisasi redundansi (pengulangan data) Memudahkan identifikasi entitas Mencegah terjadinya anomali Beberapa bentuk normal: 1. 1NF, 2NF, 3NF, BCNF 1NF Suatu relasi dikatakan bentuk normal pertama, jika dan hanya jika setiapatribut bernilai tunggal untuk setiap baris. Tiap field hanya satu pengertian, bukanmerupakan kumpulan kata yang mempunyai arti mendua, hanya satu arti saja dan juga bukanlah pecahan kata – kata sehingga artinya lain. Tidak ada set atribut yangberulang-ulang atau atribut bernilai ganda. 2NF Memenuhi bentuk 1 NF (normal pertama), Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama /primary key

Upload: muhamad-ramlan

Post on 23-Jul-2015

127 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Normalisasi Tabel

Normalisasi Tabel “1NF, 2NF, 3NF dan BCNF”

Posted by Rachman Marangga on 9 Januari 2012 Posted in: Database. Tagged: anomali. Tinggalkan sebuah Komentar       Rate This

Pengertian normalisasi:

Normalisasi adalah Teknik atau pendekatan yang digunakan dalam membangun disain database relasional melalui himpunan data dengan tingkat ketergantungan fungsional dan keterkaitan yang tinggi sehingga menghasilkan struktur tabel yang normal.

Tujuan normalisasi:

 Minimalisasi redundansi (pengulangan data)  Memudahkan identifikasi entitas  Mencegah terjadinya anomali

Beberapa bentuk normal:

1. 1NF, 2NF, 3NF, BCNF

1NF Suatu relasi dikatakan bentuk normal pertama, jika dan hanya jika setiapatribut bernilai tunggal untuk setiap baris. Tiap field hanya satu pengertian, bukanmerupakan kumpulan kata yang mempunyai arti mendua, hanya satu arti saja dan juga bukanlah pecahan kata – kata sehingga artinya lain. Tidak ada set atribut yangberulang-ulang atau atribut bernilai ganda.

2NF Memenuhi bentuk 1 NF (normal pertama), Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama /primary key

3NF Memenuhi bentuk 2 NF (normal kedua),  Atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci utama / primarykey.

BCNF Memenuhi bentuk 3 NF (normal ketiga), Semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik) serta Setiap atribut harus bergantung fungsi pada atribut superkey.

2. 4NF, 5NF

Page 2: Normalisasi Tabel

Contoh:

1. First Normal Form (1NF)

o Suatu relasi disebut memenuhi bentuk normal pertama (1NF) jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki tunggal dan tidak ada pengulangan grup atribut dalam baris.

o Bentuk 1NF tidak boleh mengandung grup atribut yang berulang.o Tujuan membentuk 1NF :

Semantik tabel menjadi lebih eksplisit (say anything once). Semua operator aljabar relasional dapat diaplikasikan pada tabel.

 

Kasus yang Di Buat:

v  Pekerjaan

v  Sales

v  Mahasiswa

 

5. Berikut adalah contoh data-data yang belum ternormalisasi:

NIP Nama Jabatan Keahlian Lama001 Man Analisis Acces 6 tahun      Oracle 3 tahun002 Rizal Analisis MySQL 2 tahun      Oracle 4 tahun003 Hanif Programer C 4 tahun      VB 5 tahun      Java 8 tahun

 

Pada tabel di atas, contoh data belum ternormalisasi sehinggadapat diubah ke dalam bentuk 1NF dengan cara membuat setiap barisberisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satunilai.

 

NIP Nama Jabatan Keahlian Lama

Page 3: Normalisasi Tabel

001 Man Analisis Acces 6 tahun001 Man Analisis Oracle 3 tahun002 Rizal Analisis MySQL 2 tahun002 Rizal Analisis Oracle 4 tahun003 Hanif Programer C 4 tahun003 Hanif Programer VB 5 tahun003 Hanif Programer Java 8 tahun

 

Relasi Pekerjaan tersebut merupakan bentuk 1 NF, karena tidak ada atribut yang bernilai ganda, dan tiap atribut satu pengertian yang bernilai tunggal.

 

6. Berikut adalah contoh data-data yang belum ternormalisasi:

Id_Sales Nama_Sales TeleponS001 Ria 3513214, 3541245S002 Anti 6548143, 5825143, 7563249S003 Ani 085337732666S004 Maya 6836592S005 Wulan 6823928, 081234321454

 

Pada data tabel di atas, contoh data belum ternormalisasi sehinggadapat diubah ke dalam bentuk 1NF dengan cara membuat setiap barisberisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satunilai.

Id_Sales Nama_Sales TeleponS001 Ria 3513214S001 Ria 3541245S002 Anti 6548143S002 Anti 5825143S002 Anti 7563249S003 Ani 085337732666S004 Maya 6836592S005 Wulan 6823928S005 Wulan 081234321454

Page 4: Normalisasi Tabel

Relasi Sales tersebut merupakan bentuk 1 NF, karena tidak ada atribut yang bernilai ganda, dan tiap atribut satu pengertian yang bernilai tunggal.

 

7. Berikut adalah contoh data-data yang belum ternormalisasi:

NIM Nama Kode_Matkul201010241 Siti 001, 004, 008201010242 Beti 002, 005201010243 Eli 005, 008201010244 Rosi 003, 006201010245 Eci 001, 007, 009

 

Pada data tabel di atas, contoh data belum ternormalisasi sehinggadapat diubah ke dalam bentuk 1NF dengan cara membuat setiap barisberisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satunilai.

NIM Nama Kode_Matkul201010241 Siti 001201010241 Siti 004201010241 Siti 008201010242 Beti 002201010242 Beti 005201010243 Eli 005201010243 Eli 008201010244 Rosi 003201010244 Rosi 006201010245 Eci 001201010245 Eci 007201010245 Eci 009

 

Relasi Mahasiswa tersebut merupakan bentuk 1 NF, karena tidak ada atribut yang bernilai ganda, dan tiap atribut satu pengertian yang bernilai tunggal.

8. 2NF

o Memenuhi bentuk 1 NF (normal pertama).

Page 5: Normalisasi Tabel

o Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama atau primary key.

Contoh:

Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)

dengan FD : A,B & C,D,E maka tabel R memenuhi 2NF sebab :

A,B & C,D,E berarti :

A,B & C,

A,B & D dan

A,B & E

Jadi semua atribut bukan kunci utama tergantung penuh pada (A,B).

Bagaimana bila R = (A,B,C,D,E) tetapi dengan FD :

(A,B) & (C,D) dan B & E. Apakah memenuhhi 2NF ?

Jelas bahwa R bukan 2NF karena ada atribut E yang bergantung

hanya pada atribut B saja dan bukan terhadap (A,B).

Dari FD : (A,B) à (C,D) juga mencerminkan bahwa hanya C dan D saja yang bergantung secara fungsional terhadap (A,B), tidak untuk E.

Jadi bukan 2NF.

Untuk mengubah menjadi 2NF, lakukan dekomposisi menjadi :

R1 = (A,B,C,D) dan R2 = (B,E). Tampak R1 dan R2 memenuhi 2NF.

 

11. Untuk membentuk normal, kedua tiap tabel atau file haruslah ditentukan kunci-kunci atributnya. Kunci atribut harus unik dan dapat mewakili atribut lain yang menjadi anggotanya. Pada contoh tabel Pekerjaan yang memenuhi normal pertama (1 NF) , terlihat bahwa NIP merupakan Primery Key (PK).

NIP           Nama dan Jabatan: Artinya atribut Nama dan Jabatan bergantung pada NIP.

Page 6: Normalisasi Tabel

Tetapi NIP            Keahlian dan Lama: Artinya bahwa atribut Lama tidak tergantungpada NIP.

 

Belum Normal

NIP Nama Jabatan Keahlian Lama001 Man Analisis Acces 6 tahun      Oracle 3 tahun002 Rizal Analisis MySQL 2 tahun      Oracle 4 tahun003 Hanif Programer C 4 tahun      VB 5 tahun      Java 8 tahun

 

Normal 1NF

NIP Nama Jabatan Keahlian Lama001 Man Analisis Acces 6 tahun001 Man Analisis Oracle 3 tahun002 Rizal Analisis MySQL 2 tahun002 Rizal Analisis Oracle 4 tahun003 Hanif Programer C 4 tahun003 Hanif Programer VB 5 tahun003 Hanif Programer Java 8 tahun

 

Normal 2NF

NIP Nama Jabatan001 Man Analisis002 Rizal Analisis003 Hanif Programer

 

NIP Keahlian Lama001 Acces 6 tahun001 Oracle 3 tahun

Page 7: Normalisasi Tabel

002 MySQL 2 tahun002 Oracle 4 tahun003 C 4 tahun003 VB 5 tahun003 Java 8 tahun

 

12. Untuk membentuk normal, kedua tiap tabel atau file haruslah ditentukan kunci-kunci atributnya. Kunci atribut harus unik dan dapat mewakili atribut lain yang menjadi anggotanya. Pada contoh tabel Pekerjaan yang memenuhi normal pertama (1 NF) , terlihat bahwa Id_Sales merupakan Primery Key (PK).

Id_Sales    Nama_Sales: Artinya atribut Nama_Sales bergantung pada Id_Sales.

Tetapi Id_Sales     Telepon: Artinya bahwa atribut Telepon tidak tergantung pada Id_Sales.

 

Belum Normal

Id_Sales Nama_Sales TeleponS001 Ria 3513214, 3541245S002 Anti 6548143, 5825143, 7563249S003 Ani 085337732666S004 Maya 6836592S005 Wulan 6823928, 081234321454

 

Normal 1NF

Id_Sales Nama_Sales TeleponS001 Ria 3513214S001 Ria 3541245S002 Anti 6548143S002 Anti 5825143S002 Anti 7563249S003 Ani 085337732666S004 Maya 6836592S005 Wulan 6823928S005 Wulan 081234321454

Page 8: Normalisasi Tabel

 

Normal 2NF

Id_Sales Nama_SalesS001 RiaS002 AntiS003 AniS004 MayaS005 Wulan

 

Id_Sales TeleponS001 3513214S001 3541245S002 6548143S002 5825143S002 7563249S003 085337732666S004 6836592S005 6823928S005 081234321454

 

13. Untuk membentuk normal, kedua tiap tabel atau file haruslah ditentukan kunci-kunci atributnya. Kunci atribut harus unik dan dapat mewakili atribut lain yang menjadi anggotanya. Pada contoh tabel Pekerjaan yang memenuhi normal pertama (1 NF) , terlihat bahwa NIM  merupakan Primery Key (PK).

NIM          Nama: Artinya atribut Nama bergantung pada NIM.

MatkulTetapi NIM            Kode_Matkul: Artinya bahwa atribut Kode_m tidak tergantung pada NIM.

 

Belum Normal

NIM Nama Kode_Matkul201010241 Siti 001, 004, 008201010242 Beti 002, 005201010243 Eli 005, 008

Page 9: Normalisasi Tabel

201010244 Rosi 003, 006201010245 Eci 001, 007, 009

 

Normal 1NF

NIM Nama Kode_Matkul201010241 Siti 001201010241 Siti 004201010241 Siti 008201010242 Beti 002201010242 Beti 005201010243 Eli 005201010243 Eli 008201010244 Rosi 003201010244 Rosi 006201010245 Eci 001201010245 Eci 007201010245 Eci 009

 

Normal 2NF

NIM Nama201010241 Siti201010242 Beti201010243 Eli201010244 Rosi201010245 Eci

 

NIM Kode_Matkul201010241 001201010241 004201010241 008201010242 002201010242 005201010243 005201010243 008201010244 003

Page 10: Normalisasi Tabel

201010244 006201010245 001201010245 007201010245 009

 

14. 3NF

Suatu relasi disebut memenuhi bentuk normal ketiga (3NF) jika dan hanya jika :

o Memenuhi 2NFo Setiap atribut yang bukan kunci tidak tergantung secara fungsional terhadap

atribut bukan kunci yang lain dalam relasi tsb (tidak terdapat ketergantungan transitif pada atribut bukan kunci).

o Jika dan hanya jika setiap FD nontrivial : X & A, dimana X dan A atribut (atau kompositnya), memenuhi salah satu kondisi :

1. X adalah superkey2. A merupakan anggota candidate key (A disebut prime attribute)

 

Jika suatu relasi sudah memenuhi 2NF tapi tidak memenuhi 3 NF, maka untuk normalisasi ke bentuk 3NF, tabel 2NF didekomposisi menjadi beberapa tabel hingga masing-masing memenuhi 3NF.

 

Tujuan membentuk 3NF :

ü  Semantik tabel 3NF menjadi lebih eksplisit (fully FD hanya pada primary key).

ü  Menghindari update anomali yang masih mungkin terjadi pada 2NF.

 

Jika suatu relasi memenuhi 2NF dan hanya memiliki tepat satu atribut yang bukan kunci utama maka relasi tersebut memenuhi 3NF

 

Contoh :

Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)

Page 11: Normalisasi Tabel

dengan FD : A,B & C,D,E dan C & D,E maka R bukan 3NF sebab :

Atribut D dan E (bukan kunci utama) bergantung secara fungsional

pada C (yang juga bukan kunci utama).

Melalui FD :

Diketahui A,B & C,D,E. Karena sifat refleksif maka A,B & A,B. Sehingga A,B & A,B,C,D,E (A,B) : Superkey.

Diketahui C & D,E. Karena sifat refleksif maka C & C. Sehingga C & C,D,E. Karena C> A,B,C,D,E maka C bukan superkey.

Tidak memenuhi definisi 3NF. Jadi R bukan 3NF. Agar R memenuhi 3NF maka didekomposisi menjadi :

R1=(A,B,C) dan R2=(C,D,E) sehingga R1 dan R2 memenuhi 3NF.

3. Tabel Pekerjaan

Belum Normal:

NIP Nama Jabatan Keahlian Lama001 Man Analisis Acces 6 tahun      Oracle 3 tahun002 Rizal Analisis MySQL 2 tahun      Oracle 4 tahun003 Hanif Programer C 4 tahun      VB 5 tahun      Java 8 tahun

 

Normal 2NF

NIP Nama Jabatan001 Man Analisis002 Rizal Analisis003 Hanif Programer

 

NIP Keahlian Lama

Page 12: Normalisasi Tabel

001 Acces 6 tahun001 Oracle 3 tahun002 MySQL 2 tahun002 Oracle 4 tahun003 C 4 tahun003 VB 5 tahun003 Java 8 tahun

 

Normal 3NF

NIP Nama Jabatan001 Man Analisis001 Man Analisis002 Rizal Analisis002 Rizal Analisis003 Hanif Programer003 Hanif Programer003 Hanif Programer

 

Jabatan LamaAnalisis 6 tahunAnalisis 3 tahunAnalisis 2 tahunAnalisis 4 tahunProgramer 4 tahunProgramer 5 tahunProgramer 8 tahun

 

NIP Jabatan Keahlian001 Analisis Acces001 Analisis Oracle002 Analisis MySQL002 Analisis Oracle003 Programer C003 Programer VB003 Programer Java

Page 13: Normalisasi Tabel

 

4. Tabel Sales

Belum Normal

Id_Sales Nama_Sales TeleponS001 Ria 3513214, 3541245S002 Anti 6548143, 5825143, 7563249S003 Ani 085337732666S004 Maya 6836592S005 Wulan 6823928, 081234321454

 

Normal 2NF

Id_Sales Nama_SalesS001 RiaS002 AntiS003 AniS004 MayaS005 Wulan

 

Id_Sales TeleponS001 3513214S001 3541245S002 6548143S002 5825143S002 7563249S003 085337732666S004 6836592S005 6823928S005 081234321454

 

Normal 3NF

Id_Sales Nama_SalesS001 Ria

Page 14: Normalisasi Tabel

S002 AntiS003 AniS004 Maya

 

Nama_Sales Telepon  S001 3513214  S001 3541245  S002 6548143  S002 5825143  S002 7563249  S003 085337732666  S004 6836592  S005 6823928  S005 081234321454  Id_Sales Nama_Sales TeleponS001 Ria 3513214S001 Ria 3541245S002 Anti 6548143S002 Anti 5825143S002 Anti 7563249S003 Ani 085337732666S004 Maya 6836592S005 Wulan 6823928S005 Wulan 081234321454

 

5. Tabel Mahasiswa

Belum Normal

NIM Nama Kode_Matkul201010241 Siti 001, 004, 008201010242 Beti 002, 005201010243 Eli 005, 008201010244 Rosi 003, 006201010245 Eci 001, 007, 009

 

Normal 2NF

Page 15: Normalisasi Tabel

NIM Nama201010241 Siti201010242 Beti201010243 Eli201010244 Rosi201010245 Eci

 

NIM Kode_Matkul201010241 001201010241 004201010241 008201010242 002201010242 005201010243 005201010243 008201010244 003201010244 006201010245 001201010245 007201010245 009

 

3NF

NIM Nama201010241 Siti201010242 Beti201010243 Eli201010244 Rosi201010245 Eci

 

Nama Kode_MatkulSiti 001Siti 004Siti 008Beti 002Beti 005

Page 16: Normalisasi Tabel

Eli 005Eli 008Rosi 003Rosi 006Eci 001Eci 007Eci 009

 

NIM Nama Kode_Matkul201010241 Siti 001201010241 Siti 004201010241 Siti 008201010242 Beti 002201010242 Beti 005201010243 Eli 005201010243 Eli 008201010244 Rosi 003201010244 Rosi 006201010245 Eci 001201010245 Eci 007201010245 Eci 009

 

 

6. BCNF

o Suatu relasi disebut memenuhi BCNF jika dan hanya jika setiap determinan yang ada pada relasi tersebut adalah candidate key.

o Definisi yang lain : Suatu relasi disebut memenuhi BCNF jika untuk setiap FD nontrivial : X à A atribut X adalah superkey.

o Untuk normalisasi ke bentuk BCNF, maka tabel 3NF didekomposisi menjadi beberapa tabel yang masing-masing memenuhi BCNF.

o Tujuan membentuk BCNF : multiple candidate key menjadi lebih eksplisit (FD hanya pada candidate key). Menghindari update anomali yang masih mungkin terjadi pada 3NF.

 

Dari definisi 3NF dan BCNF, maka apabila suatu relasi memenuhi BCNF pasti memenuhi 3NF, tetapi belum tentu sebaliknya.

Page 17: Normalisasi Tabel

 

Contoh :

Diketahui tabel R=(A,B,C) dengan FD : A & B dan B & C maka R bukan BCNF, sebab :

v  A Superkey ?

AàB (diketahui)

AàB dan B & C maka A & C (transitif)

AàA (refleksif)

Sehingga A & (A,B,C) atau A & R. Jadi A superkey.

v  B Superkey ?

B & C (diketahui)

B & B     (refleksif)

Tapi BA. Sehingga B & A,B,C atau B bukan superkey. Agar R memenuhi BCNF maka didekomposisi menjadi :

R1=(A,B) ; FD : A & B dan

R2=(B,C) ; FD : B & C. Sehingga R1 dan R2 masing-masing memenuhi BCNF.  Sebab A dan B dua-duanya sekarang menjadi superkey.

4. Tabel Pekerjaan

Belum Normal

NIP Nama Jabatan Keahlian Lama001 Man Analisis Acces 6 tahun      Oracle 3 tahun002 Rizal Analisis MySQL 2 tahun      Oracle 4 tahun003 Hanif Programer C 4 tahun      VB 5 tahun

Normal BCNF

NIP Nama Jabatan Keahlian

Page 18: Normalisasi Tabel

001 Man Analisis  002 Rizal Analisis  003 Hanif Programer  

 

Nama LamaMan 6 tahunMan 3 tahunRizal 2 tahunRizal 4 tahunHanif 4 tahunHanif 5 tahunHanif 8 tahun

 

5. Tabel Sales

Belum Normal

Id_Sales Nama_Sales TeleponS001 Ria 3513214, 3541245S002 Anti 6548143, 5825143, 7563249S003 Ani 085337732666S004 Maya 6836592S005 Wulan 6823928, 081234321454

 

Normal BCNF

Id_Sales Nama_SalesS001 RiaS002 AntiS003 AniS004 MayaS005 Wulan

 

Nama_Sales TeleponS001 3513214

Page 19: Normalisasi Tabel

S001 3541245S002 6548143S002 5825143S002 7563249S003 085337732666S004 6836592S005 6823928S005 081234321454

 

6. Table Mahasiswa

Belum Normal

NIM Nama Kode_Matkul201010241 Siti 001, 004, 008201010242 Beti 002, 005201010243 Eli 005, 008201010244 Rosi 003, 006201010245 Eci 001, 007, 009

 

 

 

Normal BCNF

NIM Nama201010241 Siti201010242 Beti201010243 Eli201010244 Rosi201010245 Eci

 

Nama Kode_MatkulSiti 001Siti 004Siti 008

Page 20: Normalisasi Tabel

Beti 002Beti 005Eli 005Eli 008Rosi 003Rosi 006Eci 001Eci 007Eci 009