Normalisasi dan Contoh Kasus Normalisasi Database



Apa Itu Normalisasi?

Normalisasi Database Beserta Contoh Normalisasi

Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi. 
Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik. Dapat dilakukan melalui proses insert, update, delete dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas dalam relasi tersebut. 


Kapan di Perlukan Normalisasi?

Normalisasi di perlukan untuk database berskala besar. 


Tujuan Normalisasi

  1. Untuk menghilangkan kerangkapan data (redudansi).
  2. Untuk mengurangi kompleksitas (kerumitan).
  3. untuk mempermudah pemodifikasian data dan menghilangkan anomali data. 

Keunggulan dari Normalisasi Database 
d
  1. Memecah table (sangat) kompleks menjadi beberapa tabel. sederhana. Seperti Tabel Master (Data cenderung tetap), Tabel Transaksi (dinamik, berhubungan dengan tabel master). 
  2. Mudah diatur, dipleihara dan mempermudah proses pelaporan data. 
  3. Tabel (terutama Tabel Master) bisa digunakan berulang kali. 
  4. Ketika terjadi perubahan atas tabel master, maka tabel transaksi otomatis juga berubah menyesuaikan tabel master. 
Kerugian dari Normalisasi 

  1. Meningkatkan jumlah dari penggabungan antar tabel (JOIN).
  2. Menyebabkan query yang cukup rumit. 

Cara Melakukan Normalisasi 

  1. Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu kebeberapa tingkat. 
  2. Apabila tabel yang diuji belum memenuhi persyaratan tertentu maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optional. 

Tahapan atau Bentuk-bentuk Normalisasi 

Bentuk normal adalah keadaan relasi yang dihasilkan dengan menerapkan aturan sederhana berkaitan dengan konsep kebergantungan fungsional pada relasi yang bersangkutan. 

Tahap-tahap normalisasi tersebut adalah:
(1) Bentuk Normal ke Satu (1NF)
    Syarat:
  • Tidak ada set aribut yang berulang atau bernilai ganda, setiap atribut yang dimiliknya bersifat atomic (bernilai tunggal) untuk setiap baris. 
  • Telah ditentukannya primary key untuk tabel atau relasi. 
  • Tiap atribut hanya memiliki satu pengertian. 
  • Tiap atribut yang dapat memiliki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah. 
(2) Bentuk Normal ke Dua (2NF)
    Syarat:
  • Bentuk data telah memenuhi kriteria bentork normal ke satu. 
  • Atribut bukan kunci (non - key atribut) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key. 
  • Kunci primer hanya mengandung satu atribut. 
(3) Bentuk Normal ke Tiga (3NF)
    Syarat:
  • Bentuk data telah memenuhi kriteria ke dua.
  • Tidak boleh terdapat ketergantungan transitif terhadap kunci utama atau primary key. 
(4) Boyce-Codd Normal Form (BCNF)
    Syarat:
  • Semua anomali (kesalahan data) yang tersisa dari hasil penyempurnaan kebergantungan fungsional telah dihilangkan. 
(5) Bentuk Normal ke Empat (4NF)
    Syarat:
  • Bila dan hanya bila telah berada dalam bentuk BCNF dan tidak ada multivalued dependency nontrivial. 
  • Multivalued Dependency Nontrivial (MVD) dipakai dalam 4NF.
  • Dependency ini dipakai untuk menyatakan hubungan satu (one to many).
(5) Bentuk Normal ke Lima (5NF)
    Syarat:
  • Semua anomali (kesalahan data) yang tertinggal telah dihilangkan. 

Dari beberapa tahap normalisasi diatas, Bentuk Normal Pertama (1NF) sampai Normal ke Tiga (3NF), merupakan bentuk normal yang umum dipakai. Umumnya bila ketiga bentuk normal tersebut telah dipenuhi, maka persoalan anomali tidak akan muncul. 


Contoh Kasus Normalisasi 

Kasus 1 :  

Entitas Mahasiswa Belum Ternormalisasi:


Tabel 1 : Entitas Mahasiswa


NIM
NAMA
Sem
MaKul
NIDN
Nama Dosen
201001
Andika Saputra
1
Algoritma
1078523
Riyanti Anjani
Struktur Data
1078523
Riyanti Anjani
201002
Biyanti Anggie
3
Struktur Data
1078523
Riyanti Anjani
Orkom
1078523
Riyanti Anjani
Metnum
1075047
Susan Savitri
201003
Naura Putri
5
Web
1075047
Susan Savitri
Jarkom
1077021
Erwin Masadi
Metnum
1075047
Susan Savitri



Hasil 1: Entitas Mahasiswa 1NF


Tabel 2 : Entitas Mahasiswa 1NF (Telah Ternormalisasi Bentuk Pertama)

NIM
NAMA
Sem
MaKul
NIDN
Nama Dosen
201001
Andika Saputra
1
Algoritma
1078523
Riyanti Anjani
201001
Andika Saputra
1
Struktur Data
1078523
Riyanti Anjani
201002
Biyanti Anggie
3
Struktur Data
1078523
Riyanti Anjani
201002
Biyanti Anggie
3
Orkom
1078523
Riyanti Anjani
201002
Biyanti Anggie
3
Metnum
1075047
Susan Savitri
201003
Naura Putri
5
Web
1075047
Susan Savitri
201003
Naura Putri
5
Jarkom
1077021
Erwin Masadi
201003
Naura Putri
5
Metnum
1075047
Susan Savitri


Kasus 2

Entitas Dosen Belum Ternormalisasi

Tabel 3 : Entitas Dosen


NIDN
NAMA DOSEN
MaKul_1
MaKul_2
MaKul_3
1078523
Riyanti Anjani
Algoritma
Struktur Data
Orkom
1075047
Susan Savitri
Metnum
Web
-
1077021
Erwin Masadi
Jarkom
-
-


Hasil 2: Entitas Dosen 1NF

Tabel 4 : Entitas Dosen 1NF (Telah Ternormalisasi  Bentuk Pertama)


NIDN
NAMA DOSEN
MaKul
1078523
Riyanti Anjani
Algoritma
1078523
Riyanti Anjani
Struktur Data
1078523
Riyanti Anjani
Orkom
1075023
Susan Savitri
Metnum
1075023
Susan Savitri
Web
1077021
Erwin Masadi
Jarkom



Kasus 3

Entitas Mahasiswa 1NF,  Tidak Memenuhi 2NF

Tabel 2 : Entitas Mahasiswa 1NF 


NIM
NAMA
Sem
MaKul
NIDN
Nama Dosen
201001
Andika Saputra
1
Algoritma
1078523
Riyanti Anjani
201001
Andika Saputra
1
Struktur Data
1078523
Riyanti Anjani
201002
Biyanti Anggie
3
Struktur Data
1078523
Riyanti Anjani
201002
Biyanti Anggie
3
Orkom
1078523
Riyanti Anjani
201002
Biyanti Anggie
3
Metnum
1075047
Susan Savitri
201003
Naura Putri
5
Web
1075047
Susan Savitri
201003
Naura Putri
5
Jarkom
1077021
Erwin Masadi
201003
Naura Putri
5
Metnum
1075047
Susan Savitri


Proses menuju 2NF untuk Relasi Mahasiswa

Primary Key (PK) : NIM
•Atribut yang bergantung dengan PK :
–Nama
–Semester
•Atribut yang tidak bergantung dengan PK:
–Makul
–NIDN
–NamaDosen

Untuk memenuhi 2NF, atribut yang tidak bergantung dengan primary key dipecah menjadi entitas baru, sehingga entitas mahasiswa dipecah menjadi 2 entitas, yaitu
–Entitas Mahasiswa  2NF(Nim, Nama, Semester)

Entitas Ambil_MK (Makul, Nidn, NamaDosen)

HASIL 3A : Entitas Mahasiswa 2NF 

NIM
       NAMA
      Sem
201001
Andika Saputra
1
201001
Andika Saputra
1
201002
Biyanti Anggie
3
201002
Biyanti Anggie
3
201002
Biyanti Anggie
3
201003
Naura Putri
5
201003
Naura Putri
5
201003
Naura Putri
5

Terjadi kerangkapan data yang tidak diperlukan (redudansi), untuk itu,data yang sama bisa dihilangkan



Tabel 5 : Entitas Mahasiswa 2NF (Telah Ternormalisasi Bentuk ke 2)

NIM
NAMA
Sem
2010001
Andika Saputra
1
2010002
Biyanti Anggie
3
2010003
Naura Putri
5


HASIL 3B: Entitas Ambil_MK 2NF 

Tabel 6: Entitas  Ambil_MK 2NF (Telah Ternormalisasi Bentuk ke 2)


NIM
MaKul
NIDN
Nama Dosen
201001
Algoritma
1078523
Riyanti Anjani
201001
Struktur Data
1078523
Riyanti Anjani
201002
Struktur Data
1078523
Riyanti Anjani
201002
Orkom
1078523
Riyanti Anjani
201002
Metnum
1075047
Susan Savitri
201003
Web
1075047
Susan Savitri
201003
Jarkom
1077021
Erwin Masadi
201003
Metnum
1075047
Susan Savitri

Catatan : Agar tidak terputus relasi antara entitas mahasiswa dan entitas Ambil_MK, maka perlu ditambahkan atribut penghubungnya, yaitu NIM.


Ketergantungan Transitif

Ketergantungan Transitif tidak memiliki ketergantungan secara langsung terhadap primary key.
Nim
Kd_Jur
Jurusan
Kd_MK
Nilai
20100001
13
TIF
MK001
85
20100002
11
TPS
MK002
80
20100003
11
TPS
MK002
90

Ketergantungan transitif :
Nim  à  Kd_Jur   (kd_jurusan bergantung pada Nim)
Kd_Jur  à  Jurusan    (jurusan bergantung pada kd_jurusan) ,   MAKA
Nim à Jurusan    (Jurusan bergantung transitif dengan Nim)




Kasus 4: Entitas Ambil_MK 2NF, Tidak Memenuhi 3NF

Tabel 6: Entitas  Ambil_MK 2NF

NIM
MaKul
NIDN
Nama Dosen
201001
Algoritma
1078523
Riyanti Anjani
201001
Struktur Data
1078523
Riyanti Anjani
201002
Struktur Data
1078523
Riyanti Anjani
201002
Orkom
1078523
Riyanti Anjani
201002
Metnum
1075047
Susan Savitri
201003
Web
1075047
Susan Savitri
201003
Jarkom
1077021
Erwin Masadi
201003
Metnum
1075047
Susan Savitri

Proses menuju 3NF untuk Entitas Ambil_MK 2NF
•Primary Key (PK) : NIDN
•Atribut yang bergantung dengan PK :
–Nama Dosen
•Atribut yang bergantung transitif dengan PK:
–NIM
–Makul
Untuk memenuhi 2NF, Entitas Ambil_MK 2NF dipecah menjadi 2 Entitas, yaitu
–Entitas Dosen 3NF (NIDN, Nama Dosen)
–Entitas Ambil_MK 3NF (Nim, Makul)

HASIL 4A: Entitas Dosen 3NF

Tabel 7: Entitas  Dosen 3NF (Telah Ternormalisasi Bentuk ke 3)
NIDN
Nama Dosen
1078523
Riyanti Anjani
1078523
Riyanti Anjani
1078523
Riyanti Anjani
1078523
Riyanti Anjani
1075047
Susan Savitri
1075047
Susan Savitri
1077021
Erwin Masadi
1075047
Susan Savitri


Menjadi:


NIDN
Nama Dosen
1078523
Riyanti Anjani
1075047
Susan Savitri
1077021
Erwin Masadi


Keterangan : Data yang sama pada tabel sebelah kiri di buang, sehingga akan menghasilkan tabel sebelah kanan


HASIL 4B : Entitas Ambil_MK memenuhi 3NF 

NIM
Makul
201001
Algoritma
201001
Struktur Data
201002
Struktur Data
201002
Orkom
201002
Metnum
201003
Web
201003
Jarkom
201003
Metnum


Menjadi :

Tabel 8: Entitas  Ambil_MK 3NF (Telah Ternormalisasi Bentuk ke 3)

NIM
Makul
NIDN
201001
Algoritma
1078523
201001
Struktur Data
1078523
201002
Struktur Data
1078523
201002
Orkom
1078523
201002
Metnum
1075047
201003
Web
1075047
201003
Jarkom
1077021
201003
Metnum
1075047

Catatan : Agar tidak terputus relasi antara entitas dosen 3NF dan entitas Ambil_MK 3NF, maka perlu ditambahkan atribut penghubungnya, yaitu NIDN


Tambahan

Tabel 8: Entitas  Makul 3NF (Telah Ternormalisasi Bentuk ke 3)

Kd-MK
MaKul
A
Algoritma
B
Struktur Data
B
Struktur Data
C
Orkom
D
Metnum
E
Web
F
Jarkom
D
Metnum


Menjadi: 


Kd-MK
MaKul
A
Algoritma
B
Struktur Data
C
Orkom
D
Metnum
E
Web
F
Jarkom


Keterangan : Data yang sama pada tabel sebelah kiri di buang, sehingga akan menghasilkan tabel sebelah kanan





Demikianlah, Pembahasan mengenai Normalisasi Database beserta Contoh Kasus dan penyelesaian Normalisasi. Semoga Bermanfaat. 



Previous
Next Post »

3 komentar

Click here for komentar

Silahkan berkomentar secara bijak dan sesuai dengan topik pembahasan. Terimakasih. ConversionConversion EmoticonEmoticon

Thanks for your comment