Rabu, 22 Februari 2023

Normalisasi


PENGERTIAN NORMALISASI

Normalisasi adalah suatu proses dalam desain database untuk mengorganisir tabel dan kolom dalam sebuah database dengan tujuan menghilangkan atau meminimalkan duplikasi data, menghindari ketidak konsistenan, dan meningkatkan efisiensi database.

Normalisasi umumnya dilakukan dalam beberapa tahap atau level normalisasi yang berbeda, mulai dari level 1NF (First Normal Form) hingga level 5NF (Fifth Normal Form). Setiap level normalisasi memiliki kriteria atau aturan sendiri, dan semakin tinggi level normalisasi, semakin sedikit duplikasi data yang ada dan semakin kompleks struktur tabel.

Proses normalisasi umumnya melibatkan pemisahan tabel besar menjadi tabel yang lebih kecil dan lebih terkait erat satu sama lain, memastikan bahwa setiap tabel memiliki satu kunci utama dan menentukan hubungan antara tabel-tabel tersebut. Normalisasi adalah proses yang penting dalam desain database karena dapat meningkatkan efisiensi, konsistensi, dan kemudahan dalam mengambil dan memanipulasi data dalam sebuah database.

JENIS - JENIS NORMALISASI

1. First Normal Form (1NF)
First Normal Form (1NF) adalah aturan dasar dalam normalisasi database, yang mensyaratkan bahwa setiap kolom tabel harus memiliki nilai atomik, yaitu hanya menyimpan satu nilai pada setiap sel. Jika suatu kolom menyimpan beberapa nilai atau sebuah grup nilai, maka tabel harus dibagi menjadi beberapa tabel yang lebih kecil.

2. Second Normal Form (2NF)
Second Normal Form (2NF) adalah tahap kedua dalam normalisasi database. Untuk mencapai 2NF, tabel harus memenuhi dua kriteria: pertama, tabel harus sudah berada pada 1NF, dan kedua, setiap kolom tabel harus bergantung pada seluruh kunci utama (primary key) tabel. Jika ada kolom yang bergantung hanya pada sebagian kunci utama, maka tabel tersebut harus dibagi menjadi beberapa tabel yang lebih kecil.

3. Third Normal Form (3NF)
Third Normal Form (3NF) adalah tahap ketiga dalam normalisasi database. Untuk mencapai 3NF, tabel harus sudah berada pada 2NF, dan setiap kolom tabel harus bergantung pada kunci utama atau kunci non-transitif lainnya. Dengan kata lain, tidak boleh ada kolom yang bergantung pada kolom-kolom lain di dalam tabel yang bukan merupakan kunci utama atau kunci non-transitif.

4. Boyce-Codd Normal Form (BCNF)
Boyce-Codd Normal Form (BCNF) adalah tahap normalisasi yang lebih ketat dibandingkan 3NF. BCNF mensyaratkan bahwa setiap fungsi fungsional dalam tabel harus memiliki kunci utama sebagai determinan, yaitu kunci utama harus memenuhi semua kebutuhan data di dalam tabel. Jika tidak, tabel harus dibagi menjadi beberapa tabel yang lebih kecil.

5. Fourth Normal Form (4NF)
Fourth Normal Form (4NF) adalah tahap normalisasi yang lebih ketat lagi, yang mensyaratkan bahwa tidak ada lebih dari satu cara untuk merepresentasikan fakta-fakta data dalam tabel. Tabel harus dipisahkan menjadi beberapa tabel jika terdapat beberapa dependensi multivalued atau join dependency.

Setiap tahap normalisasi memiliki keuntungan dan kekurangan sendiri-sendiri. Semakin tinggi tahap normalisasi yang dicapai, semakin banyak tabel yang harus dibuat, sehingga dapat membuat query SQL menjadi lebih kompleks. Oleh karena itu, perlu mempertimbangkan dengan matang dalam merancang normalisasi database agar sesuai dengan kebutuhan dan tujuan dari database tersebut.

CONTOH PENGGUNAAN NORMALISASI

Tabel 1 : Pelanggan

Tabel 2 : Pesanan 


Tabel 3 : Barang_pesanan

Tabel 1 berisi data pelanggan, sedangkan tabel 2 berisi data pesanan. Setiap pesanan dihubungkan dengan pelanggan melalui kolom Id_Pelanggan. Tabel 3 berisi data barang pada setiap pesanan, dihubungkan dengan pesanan melalui kolom Id_Pesanan. Dengan menggunakan tiga tabel ini, kita dapat membagi informasi tentang pelanggan, pesanan, dan barang menjadi tiga entitas yang berbeda, sehingga mempermudah pengolahan data dan mengurangi redudansi data.

Tidak ada komentar:

Posting Komentar

Restful Api

PENGERTIAN RESTful API (Representational State Transfer) adalah suatu arsitektur untuk membuat API (Application Programming Interface) yang ...