Sabtu, 06 Juni 2020

Pengertian Normalisasi Dan Bentuk-Bentuk Normalisasi

Normalisasi Basis Data

Pengertian Normalisasi
 Normalisasi adalah proses pembentukan
struktur basis data sehingga sebagian besar
ambiguity bisa dihilangkan.
 Tahap Normalisasi dimulai dari tahap paling
ringan (1NF) hingga paling ketat (5NF)
 Biasanya hanya sampai pada tingkat 3NF atau
BCNF karena sudah cukup memadai untuk
menghasilkan tabel-tabel yang berkualitas baik.

Bentuk-Bentuk Normalisasi
1. Bentuk Normal Tahap Pertama (1st Normal
Form / 1NF)

-  Bentuk normal 1NF terpenuhi jika sebuah
tabel tidak memiliki atribut bernilai banyak
(multivalued attribute), atribut composite
atau kombinasinya dalam domain data
yang sama.

-  Setiap atribut dalam tabel tersebut harus
bernilai atomic (tidak dapat dibagi-bagi
lagi)

Contoh:



2. Bentuk Normal Tahap Kedua (2nd Normal
Form / 2NF)


  •  Bentuk normal 2NF terpenuhi dalam sebuah

tabel jika telah memenuhi bentuk 1NF, dan
semua atribut selain primary key, secara utuh
memiliki Functional Dependency pada primary
key


  •  Sebuah tabel tidak memenuhi 2NF, jika ada

atribut yang ketergantungannya (Functional
Dependency) hanya bersifat parsial saja (hanya
tergantung pada sebagian dari primary key)


  • Jika terdapat atribut yang tidak memiliki

ketergantungan terhadap primary key, maka
atribut tersebut harus dipindah atau dihilangkan

Contoh:



  •  Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang

dianggap sebagai primary key sedangkan:
{Mhs_nrp, mk_kode}  mhs_nama
{Mhs_nrp, mk_kode}  mhs_alamat
{Mhs_nrp, mk_kode}  mk_nama
{Mhs_nrp, mk_kode}  mk_sks
{Mhs_nrp, mk_kode}  nihuruf
 Tabel di atas perlu didekomposisi menjadi beberapa tabel
yang memenuhi syarat 2NF

3. Bentuk Normal Tahap (3rd Normal Form /
3NF)


  •  Bentuk normal 3NF terpenuhi jika telah

memenuhi bentuk 2NF, dan jika tidak ada
atribut non primary key yang memiliki
ketergantungan terhadap atribut non primary
key yang lainnya.

  •  Untuk setiap Functional Dependency dengan

notasi X , A, maka:
• X harus menjadi superkey pada tabel tsb.
• Atau A merupakan bagian dari primary key pada tabel
tsb.

Contoh:

  •  karena masih terdapat atribut non primary key (yakni alm_kota dan

alm_Provinsi) yang memiliki ketergantungan terhadap atribut non
primary key yang lain (yakni alm_kodepos):
alm_kodepos
{alm_Provinsi, alm_kota}

  •  Sehingga tabel tersebut perlu didekomposisi menjadi:

Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi, alm_kota)

4. Boyce-Code Normal Form (BCNF)


  •  Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk

setiap functional dependency terhadap setiap atribut
atau gabungan atribut dalam bentuk: X  Y maka X
adalah super key

  •  tabel tersebut harus di-dekomposisi berdasarkan

functional dependency yang ada, sehingga X menjadi
super key dari tabel-tabel hasil dekomposisi

  •  Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi

setiap 3NF belum tentu termasuk BCNF .
Perbedaannya, untuk functional dependency X  A,
BCNF tidak membolehkan A sebagai bagian dari primary
key.

5. Bentuk Normal Tahap (4th Normal Form /
4NF)


  •  Bentuk normal 4NF terpenuhi dalam

sebuah tabel jika telah memenuhi bentuk
BCNF, dan tabel tersebut tidak boleh
memiliki lebih dari sebuah multivalued
atribute

  •  Untuk setiap multivalued dependencies

(MVD) juga harus merupakan functional
dependencies

Contoh:
Misal, tabel berikut tidak memenuhi 4NF:

Setiap employee dapat bekerja di lebih dari project dan dapat
memiliki lebih dari satu skill. Untuk kasus seperti ini tabel
tersebut harus di-dekomposisi menjadi:
(Employee, Project)
(Employee, Skill)

6. Bentuk Normal Tahap (5th Normal Form /
5NF)


  •  Bentuk normal 5NF terpenuhi jika tidak dapat

memiliki sebuah lossless decomposition menjadi
tabel-tabel yg lebih kecil.

  •  Jika 4 bentuk normal sebelumnya dibentuk

berdasarkan functional dependency, 5NF
dibentuk berdasarkan konsep join dependence.
Yakni apabila sebuah tabel telah di-dekomposisi
menjadi tabel-tabel lebih kecil, harus bisa
digabungkan lagi (join) untuk membentuk tabel
semula.
Share:

0 komentar:

Posting Komentar

Cari Blog Ini

Pengikut

Unordered List

Diberdayakan oleh Blogger.

Text Widget

Ordered List

Recent Posts

Unordered List

Pages

Theme Support