Normalisasi dan Contoh Kasus Normalisasi Database
Apa Itu 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.
Normalisasi di perlukan untuk database berskala besar.
Tujuan Normalisasi
- Untuk menghilangkan kerangkapan data (redudansi).
- Untuk mengurangi kompleksitas (kerumitan).
- untuk mempermudah pemodifikasian data dan menghilangkan anomali data.
Keunggulan dari Normalisasi Database
d
- Memecah table (sangat) kompleks menjadi beberapa tabel. sederhana. Seperti Tabel Master (Data cenderung tetap), Tabel Transaksi (dinamik, berhubungan dengan tabel master).
- Mudah diatur, dipleihara dan mempermudah proses pelaporan data.
- Tabel (terutama Tabel Master) bisa digunakan berulang kali.
- Ketika terjadi perubahan atas tabel master, maka tabel transaksi otomatis juga berubah menyesuaikan tabel master.
Kerugian dari Normalisasi
- Meningkatkan jumlah dari penggabungan antar tabel (JOIN).
- Menyebabkan query yang cukup rumit.
Cara Melakukan Normalisasi
- Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu kebeberapa tingkat.
- 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:
Hasil 1: Entitas Mahasiswa 1NF
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.
Belum ada Komentar untuk "Normalisasi dan Contoh Kasus Normalisasi Database"
Posting Komentar