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


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.

  1. 4NF, 5NF

    Contoh:

    1. First Normal Form (1NF)
    • 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.
    • Bentuk 1NF tidak boleh mengandung grup atribut yang berulang.
    • 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

     

    1. Berikut adalah contoh data-data yang belum ternormalisasi:
    NIP Nama Jabatan Keahlian Lama
    001 Man Analisis Acces 6 tahun
          Oracle 3 tahun
    002 Rizal Analisis MySQL 2 tahun
          Oracle 4 tahun
    003 Hanif Programer C 4 tahun
          VB 5 tahun
          Java 8 tahun

     

    Pada tabel di atas, contoh data belum ternormalisasi sehingga
    dapat diubah ke dalam bentuk 1NF dengan cara membuat setiap baris
    berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu
    nilai.

     

    NIP Nama Jabatan Keahlian Lama
    001 Man Analisis Acces 6 tahun
    001 Man Analisis Oracle 3 tahun
    002 Rizal Analisis MySQL 2 tahun
    002 Rizal Analisis Oracle 4 tahun
    003 Hanif Programer C 4 tahun
    003 Hanif Programer VB 5 tahun
    003 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.

     

    1. Berikut adalah contoh data-data yang belum ternormalisasi:
    Id_Sales Nama_Sales Telepon
    S001 Ria 3513214, 3541245
    S002 Anti 6548143, 5825143, 7563249
    S003 Ani 085337732666
    S004 Maya 6836592
    S005 Wulan 6823928, 081234321454

     

    Pada data tabel di atas, contoh data belum ternormalisasi sehingga
    dapat diubah ke dalam bentuk 1NF dengan cara membuat setiap baris
    berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu
    nilai.

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

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

     

    1. Berikut adalah contoh data-data yang belum ternormalisasi:
    NIM Nama Kode_Matkul
    201010241 Siti 001, 004, 008
    201010242 Beti 002, 005
    201010243 Eli 005, 008
    201010244 Rosi 003, 006
    201010245 Eci 001, 007, 009

     

    Pada data tabel di atas, contoh data belum ternormalisasi sehingga
    dapat diubah ke dalam bentuk 1NF dengan cara membuat setiap baris
    berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu
    nilai.

    NIM Nama Kode_Matkul
    201010241 Siti 001
    201010241 Siti 004
    201010241 Siti 008
    201010242 Beti 002
    201010242 Beti 005
    201010243 Eli 005
    201010243 Eli 008
    201010244 Rosi 003
    201010244 Rosi 006
    201010245 Eci 001
    201010245 Eci 007
    201010245 Eci 009

     

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

    1. 2NF
    • Memenuhi bentuk 1 NF (normal pertama).
    • 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.

     

    1. 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.

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

     

    Belum Normal

    NIP Nama Jabatan Keahlian Lama
    001 Man Analisis Acces 6 tahun
          Oracle 3 tahun
    002 Rizal Analisis MySQL 2 tahun
          Oracle 4 tahun
    003 Hanif Programer C 4 tahun
          VB 5 tahun
          Java 8 tahun

     

    Normal 1NF

    NIP Nama Jabatan Keahlian Lama
    001 Man Analisis Acces 6 tahun
    001 Man Analisis Oracle 3 tahun
    002 Rizal Analisis MySQL 2 tahun
    002 Rizal Analisis Oracle 4 tahun
    003 Hanif Programer C 4 tahun
    003 Hanif Programer VB 5 tahun
    003 Hanif Programer Java 8 tahun

     

    Normal 2NF

    NIP Nama Jabatan
    001 Man Analisis
    002 Rizal Analisis
    003 Hanif Programer

     

    NIP Keahlian Lama
    001 Acces 6 tahun
    001 Oracle 3 tahun
    002 MySQL 2 tahun
    002 Oracle 4 tahun
    003 C 4 tahun
    003 VB 5 tahun
    003 Java 8 tahun

     

    1. 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 Telepon
    S001 Ria 3513214, 3541245
    S002 Anti 6548143, 5825143, 7563249
    S003 Ani 085337732666
    S004 Maya 6836592
    S005 Wulan 6823928, 081234321454

     

    Normal 1NF

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

     

    Normal 2NF

    Id_Sales Nama_Sales
    S001 Ria
    S002 Anti
    S003 Ani
    S004 Maya
    S005 Wulan

     

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

     

    1. 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_Matkul
    201010241 Siti 001, 004, 008
    201010242 Beti 002, 005
    201010243 Eli 005, 008
    201010244 Rosi 003, 006
    201010245 Eci 001, 007, 009

     

    Normal 1NF

    NIM Nama Kode_Matkul
    201010241 Siti 001
    201010241 Siti 004
    201010241 Siti 008
    201010242 Beti 002
    201010242 Beti 005
    201010243 Eli 005
    201010243 Eli 008
    201010244 Rosi 003
    201010244 Rosi 006
    201010245 Eci 001
    201010245 Eci 007
    201010245 Eci 009

     

    Normal 2NF

    NIM Nama
    201010241 Siti
    201010242 Beti
    201010243 Eli
    201010244 Rosi
    201010245 Eci

     

    NIM Kode_Matkul
    201010241 001
    201010241 004
    201010241 008
    201010242 002
    201010242 005
    201010243 005
    201010243 008
    201010244 003
    201010244 006
    201010245 001
    201010245 007
    201010245 009

     

    1. 3NF

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

    • Memenuhi 2NF
    • 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).
    • Jika dan hanya jika setiap FD nontrivial : X & A, dimana X dan A atribut (atau kompositnya), memenuhi salah satu kondisi :
    1. X adalah superkey
    2. 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)

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.

  1. Tabel Pekerjaan

Belum Normal:

NIP Nama Jabatan Keahlian Lama
001 Man Analisis Acces 6 tahun
      Oracle 3 tahun
002 Rizal Analisis MySQL 2 tahun
      Oracle 4 tahun
003 Hanif Programer C 4 tahun
      VB 5 tahun
      Java 8 tahun

 

Normal 2NF

NIP Nama Jabatan
001 Man Analisis
002 Rizal Analisis
003 Hanif Programer

 

NIP Keahlian Lama
001 Acces 6 tahun
001 Oracle 3 tahun
002 MySQL 2 tahun
002 Oracle 4 tahun
003 C 4 tahun
003 VB 5 tahun
003 Java 8 tahun

 

Normal 3NF

NIP Nama Jabatan
001 Man Analisis
001 Man Analisis
002 Rizal Analisis
002 Rizal Analisis
003 Hanif Programer
003 Hanif Programer
003 Hanif Programer

 

Jabatan Lama
Analisis 6 tahun
Analisis 3 tahun
Analisis 2 tahun
Analisis 4 tahun
Programer 4 tahun
Programer 5 tahun
Programer 8 tahun

 

NIP Jabatan Keahlian
001 Analisis Acces
001 Analisis Oracle
002 Analisis MySQL
002 Analisis Oracle
003 Programer C
003 Programer VB
003 Programer Java

 

  1. Tabel Sales

Belum Normal

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

 

Normal 2NF

Id_Sales Nama_Sales
S001 Ria
S002 Anti
S003 Ani
S004 Maya
S005 Wulan

 

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

 

Normal 3NF

Id_Sales Nama_Sales
S001 Ria
S002 Anti
S003 Ani
S004 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 Telepon
S001 Ria 3513214
S001 Ria 3541245
S002 Anti 6548143
S002 Anti 5825143
S002 Anti 7563249
S003 Ani 085337732666
S004 Maya 6836592
S005 Wulan 6823928
S005 Wulan 081234321454

 

  1. Tabel Mahasiswa

Belum Normal

NIM Nama Kode_Matkul
201010241 Siti 001, 004, 008
201010242 Beti 002, 005
201010243 Eli 005, 008
201010244 Rosi 003, 006
201010245 Eci 001, 007, 009

 

Normal 2NF

NIM Nama
201010241 Siti
201010242 Beti
201010243 Eli
201010244 Rosi
201010245 Eci

 

NIM Kode_Matkul
201010241 001
201010241 004
201010241 008
201010242 002
201010242 005
201010243 005
201010243 008
201010244 003
201010244 006
201010245 001
201010245 007
201010245 009

 

3NF

NIM Nama
201010241 Siti
201010242 Beti
201010243 Eli
201010244 Rosi
201010245 Eci

 

Nama Kode_Matkul
Siti 001
Siti 004
Siti 008
Beti 002
Beti 005
Eli 005
Eli 008
Rosi 003
Rosi 006
Eci 001
Eci 007
Eci 009

 

NIM Nama Kode_Matkul
201010241 Siti 001
201010241 Siti 004
201010241 Siti 008
201010242 Beti 002
201010242 Beti 005
201010243 Eli 005
201010243 Eli 008
201010244 Rosi 003
201010244 Rosi 006
201010245 Eci 001
201010245 Eci 007
201010245 Eci 009

 

 

  1. BCNF
  • Suatu relasi disebut memenuhi BCNF jika dan hanya jika setiap determinan yang ada pada relasi tersebut adalah candidate key.
  • Definisi yang lain : Suatu relasi disebut memenuhi BCNF jika untuk setiap FD nontrivial : X à A atribut X adalah superkey.
  • Untuk normalisasi ke bentuk BCNF, maka tabel 3NF didekomposisi menjadi beberapa tabel yang masing-masing memenuhi BCNF.
  • 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.

 

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.

  1. Tabel Pekerjaan

Belum Normal

NIP Nama Jabatan Keahlian Lama
001 Man Analisis Acces 6 tahun
      Oracle 3 tahun
002 Rizal Analisis MySQL 2 tahun
      Oracle 4 tahun
003 Hanif Programer C 4 tahun
      VB 5 tahun

Normal BCNF

NIP Nama Jabatan Keahlian
001 Man Analisis  
002 Rizal Analisis  
003 Hanif Programer  

 

Nama Lama
Man 6 tahun
Man 3 tahun
Rizal 2 tahun
Rizal 4 tahun
Hanif 4 tahun
Hanif 5 tahun
Hanif 8 tahun

 

  1. Tabel Sales

Belum Normal

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

 

Normal BCNF

Id_Sales Nama_Sales
S001 Ria
S002 Anti
S003 Ani
S004 Maya
S005 Wulan

 

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

 

  1. Table Mahasiswa

Belum Normal

NIM Nama Kode_Matkul
201010241 Siti 001, 004, 008
201010242 Beti 002, 005
201010243 Eli 005, 008
201010244 Rosi 003, 006
201010245 Eci 001, 007, 009

 

 

 

Normal BCNF

NIM Nama
201010241 Siti
201010242 Beti
201010243 Eli
201010244 Rosi
201010245 Eci

 

Nama Kode_Matkul
Siti 001
Siti 004
Siti 008
Beti 002
Beti 005
Eli 005
Eli 008
Rosi 003
Rosi 006
Eci 001
Eci 007
Eci 009

Beli T-Shirt, Raglan dan Kids T-Shirt Original Ocean Seven

  1. T-Shirt, Raglan dan Kids T-Shirt Anime, Manga, Gamers dan Cartoon World (OceanSeven)
  2. T-Shirt, Raglan dan Kids T-Shirt Footbal Series (OceanSeven)
  3. T-Shirt, Raglan dan Kids T-Shirt Music Series (OceanSeven)
  4. T-Shirt, Raglan dan Kids T-Shirt OceanSeven – Custom dan Basic Tees (OceanSeven)
  5. T-Shirt, Raglan dan Kids T-Shirt OceanSeven -Kids Collections (OceanSeven)
  6. T-Shirt, Raglan dan Kids T-Shirt OceanSeven -Signature Serues (OceanSeven)
  7. T-Shirt, Raglan dan Kids T-Shirt  Social Media dan Photography (OceanSeven)
  8. T-Shirt, Raglan dan Kids T-Shirt Sport, Automotive dan Adventure (OceanSeven)
  9. T-Shirt, Raglan dan Kids T-Shirt Superheroes dan Movies (OceanSeven)

7 pemikiran pada “Normalisasi Tabel “1NF, 2NF, 3NF dan BCNF”

  1. Ping balik: NORMALISASI | Teknik Informatika

Berikan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s