Normalisasi 1NF, 2NF, 3NF dan BCNF

Posted on June 11, 2010. Filed under: PBD ( Semester 2) |

Normalisasi : Teknik/pendekatan yang digunakan dalam membangun disain lojik database relasional melalui organisasi himpunan data dengan tingkat ketergantungan fungsional dan keterkaitan yang tinggi sedemikian sehingga menghasilkan struktur tabel yang normal.
Tujuan :

  •   Minimalisasi redundansi (pengulangan data)
  •   Memudahkan identifikasi entitas
  •   Mencegah terjadinya anomali
Beberapa bentuk normal (normal forms, NF) :

  •   1NF, 2NF, 3NF, BCNF
            based on keys and functional dependencies

  •    4NF, 5NF
            based on keys and multi-valued dependencies)

First Normal Form (1NF)

  •    Suatu relasi disebut memenuhi bentuk normal pertama (1NF)
            jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki
            nilai 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.
Contoh 1
Dinormalkan
Contoh 2


Dinormalkan
d Normal Form (2NF)
Suatu relasi disebut memenuhi bentuk normal kedua (2NF)
jika dan hanya jika :
1. memenuhi 1NF
2. setiap atribut yang bukan kunci utama tergantung secara fungsional terhadap semua atribut kunci dan bukan hanya sebagian atribut kunci (fully functionally dependent).

-Untuk normalisasi ke bentuk 2NF, maka tabel 1NF didekomposisi
-menjadi beberapa tabel yang masing-masing memenuhi 2NF.
-Bila terdapat ketergantungan parsial maka : eliminate.
Tujuan membentuk 2NF :
1. semantik tabel 2NF menjadi lebih eksplisit (fully FD)
2. mengurangi update anomali yang masih mungkin terjadi pada 1NF

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.




Third Normal Form (3NF)

Suatu relasi disebut memenuhi bentuk normal ketiga (3NF) jika dan hanya jika :
1. memenuhi 2NF
2. 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).

Another Definition :

  •     Suatu relasi disebut memenuhi bentuk normal ketiga (3NF)
            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 :
1. semantik tabel 3NF menjadi lebih eksplisit (fully FD hanya pada primary key).
2. menghindari update anomali yang masih mungkin terjadi pada 2NF.
Note :
Jika suatu relasi memenuhi 2NF dan hanya memiliki tepat satu atribut yang bukan kunci utama maka relasi tsb 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.




Boyce Codd Normal Form (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 :
            :: semantik 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 :

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

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

Contoh :
Diketahui tabel R=(A,B,C)
dengan FD : AB & C dan C & B. Apakah :

  • 3NF ?
  • BCNF ?

  • R memenuhi 3NF karena :
            ABàC ; maka AB & ABC, atau A & R. Jadi AB superkey dari R
            CàB   ; maka AC & AB, atau AC & ABC  dan AC & R.
            Jadi AC juga superkey (sekaligus juga candidate key) dari R
            Karena AB superkey dan C subset candidate key maka
            R memenuhi 3NF

  • R bukan BCNF karena :
            AB superkey tetapi C bukan superkey.

Comparison of BCNF And 3NF

oIt is always possible to decompose a relation into relations in 3NF and
n

  • the decomposition is lossless
  • the dependencies are preserved
oIt is always possible to decompose a relation into relations in BCNF and
n

  • the decomposition is lossless
  • it may not be possible to preserve dependencies.

oContoh kasus redundansi pada 3NF
Jadwal = (Nim,Modul,Dosen)
FD = {Dosen > Modul}
Relasi ini memenuhi 3NF, karena tidak ada ketergantungan transitif.
Tetapi tidak memenuhi BCNF karena dari Dosen à Modul maka Dosen
bukan candidate key.
Alternatif yang dilakukan adalah dekomposisi tabel menjadi :


Design Goals

oGoal for a relational database design is:
n

  • BCNF.
  • Lossless join.
  • Dependency preservation.
oIf we cannot achieve this, we accept one of
n

  • Lack of dependency preservation
  • Redundancy due to use of 3NF


Make a Comment

Leave a comment

  • Blog Stats

    • 79,679 hits
  • Top Rated

Liked it here?
Why not try sites on the blogroll...