Skip to main content

5. Normalisasi Database.html

Daftar Isi

Pendahuluan

Apa itu Normalisasi

Dependensi Fungsional

Tujuan Normalisasi

Key (Kunci)

Tahapan Normalisasi Database

1. Bentuk UNF (Unnormalized Form):

2. First Normal Form (1NF):

3. Second Normal Form (2NF):

4. Third Normal Form (3NF):

1. Fourth Normal Form (4NF)

2. Fifth Normal Form (5NF)

Quiz

Referensi

 

Normalisasi Database

Pendahuluan

Hai Stupenss kita bertemu Kembali, kali ini kita akan membahas topik normalisasi database nah, Normalisasi database adalah konsep penting dalam desain dan manajemen basis data. Hal ini berkaitan dengan mengatur struktur basis data untuk meminimalkan redundansi, meningkatkan integritas data, dan memastikan efisiensi operasional. Stupenss dapat belajar tentang normalisasi database untuk mengembangkan pemahaman yang kuat tentang cara merancang dan mengelola basis data yang efisien dan andal.

 

Normalisasi database melibatkan pemecahan entitas dan atribut menjadi tabel yang lebih kecil dan lebih terorganisir. Tujuan utamanya adalah menghilangkan anomali data, seperti ketidaksesuaian, inkonsistensi, dan ketidaksempurnaan data. Dalam proses normalisasi, kita menggunakan sejumlah bentuk normal, yang dikenal sebagai bentuk normal (normal forms) hingga bentuk normal ketiga (third normal form) atau lebih tinggi, untuk memastikan bahwa basis data memenuhi standar normalisasi yang ditentukan.

Apa itu Normalisasi

Teknik atau pendekatan yang digunakan dalam mengembangkan desain logika database relasional melibatkan pengorganisasian kumpulan data dengan tingkat ketergantungan fungsional dan keterkaitan yang tinggi, sehingga menghasilkan struktur tabel yang ternormalisasi. Tidak semua database dapat di normalisasi hanya tipe relational database bisa di normalisasi. banyak vendor DBMS (database management system) diantaranya Oracle, MySql, Sql Server, PostgreSQL dan masih banyak lagi.

Dependensi Fungsional

Dependensi fungsional adalah konsep penting dalam desain dan analisis basis data yang menggambarkan hubungan antara atribut-atribut dalam sebuah tabel. Secara khusus, dependensi fungsional mengindikasikan bagaimana nilai dari satu atau lebih atribut bergantung pada nilai dari atribut-atribut lain dalam tabel.

Gambar 1. Aturan Dependensi Fungsional

Dependensi fungsional penting dalam desain basis data karena membantu dalam memodelkan struktur tabel yang benar, mengidentifikasi kunci utama, dan menghindari masalah data yang tidak konsisten. Dalam normalisasi, dependensi fungsional digunakan untuk memisahkan atribut yang saling tergantung ke dalam tabel terpisah, sehingga menghasilkan struktur yang lebih efisien dan normal.

Terdapat beberapa jenis jenis dari dependensi fungsional diantaranya adalah:

  1. Dependensi Fungsional Penuh (Full Functional Dependency): Terjadi ketika suatu atribut bergantung secara fungsional pada seluruh kunci primer (primary Key), tidak ada atribut lain yang dapat mempengaruhinya secara langsung.

Contoh:

Gambar 2. Contoh Tabel Pegawai

Jika kita memiliki tabel "Pegawai" dengan atribut "NIP" (Nomor Induk Pegawai) dan "Nama", dan NIP adalah kunci primer, maka Nama bergantung secara fungsional pada NIP.

  1. Dependensi Fungsional Parsial (Partial Functional Dependency): Terjadi ketika suatu atribut bergantung secara fungsional pada sebagian atribut Key primer, bukan pada keseluruhan Key primer.

Contoh:

Gambar 3. Tabel Pesanan

Jika kita memiliki tabel "Pesanan" dengan atribut "ID_Pelanggan", "ID_Barang", dan "Jumlah", dan ID_Pelanggan adalah Key primer, maka Jumlah bergantung secara fungsional pada ID_Pelanggan, bukan pada kombinasi ID_Pelanggan dan ID_Barang.

  1. Dependensi Fungsional Transitif (Transitive Functional Dependency): Terjadi ketika suatu atribut bergantung secara fungsional pada atribut non-Key melalui ketergantungan fungsional dengan atribut Key lainnya.

Contoh:

Gambar 4. Tabel Mahasiswa

Jika kita memiliki tabel "Mahasiswa" dengan atribut "NIM" (Nomor Induk Mahasiswa), "Jurusan", dan "Nama_Dosen", dan NIM adalah Key primer, maka Nama_Dosen bergantung secara transitif pada Jurusan melalui NIM.

 

Tujuan Normalisasi

Stupenss setelah tau apa itu normalisasi yuk kita cari tau kegunaan dari normalisasi dan kenapa penting melakukan normalisasi database. Tujuan utama dari normalisasi database adalah untuk mencapai desain basis data yang optimal dengan meminimalkan redundansi data dan meningkatkan integritas data. Berikut adalah beberapa tujuan spesifik dari normalisasi database:

  1. Menghilangkan redundansi data

Salah satu tujuan utama normalisasi adalah mengurangi duplikasi data yang tidak perlu. Dengan memisahkan entitas dan atribut ke dalam tabel yang lebih kecil dan lebih terorganisir, kita dapat menghindari penyimpanan ulang data yang sama berulang kali. Hal ini menghemat ruang penyimpanan dan memastikan konsistensi data.

 

  1. Meningkatkan integritas data

Normalisasi membantu memastikan bahwa data dalam basis data konsisten dan terkendali dengan baik. Dengan mengikuti aturan normalisasi, seperti ketergantungan fungsional, kita dapat menghindari anomali data, seperti ketidaksesuaian data atau inkonsistensi data dalam basis data.

 

  1. Meningkatkan efisiensi operasional

Normalisasi dapat meningkatkan efisiensi operasional dalam penggunaan basis data. Dengan struktur basis data yang terorganisir dengan baik, operasi seperti penyisipan, pembaruan, dan penghapusan data menjadi lebih efisien. Selain itu, query dan pencarian data juga dapat dieksekusi dengan lebih cepat dan efisien dalam basis data yang ternormalisasi.

 

  1. Membantu pemeliharaan dan pengembangan sistem

Basis data yang ternormalisasi lebih mudah untuk dikelola dan dipelihara. Struktur yang terorganisir dan terstandarisasi memudahkan pemahaman tentang hubungan antar tabel, sehingga memudahkan dalam pengembangan dan pemeliharaan sistem basis data. Perubahan pada struktur basis data juga menjadi lebih mudah dilakukan tanpa mempengaruhi keseluruhan sistem.

 

  1. Mencegah anomali data

Normalisasi membantu mencegah terjadinya anomali data dalam basis data. Anomali data, seperti adanya dependensi tak terkendali atau inkonsistensi data, dapat menghasilkan hasil yang tidak diharapkan saat memasukkan, memperbarui, atau menghapus data. Dengan normalisasi yang baik, kita dapat memastikan bahwa basis data bebas dari anomali data ini.

Kamu juga dapat melakukan identifikasi terhadap database yang sudah dinormalisasi dengan melihat ciri ciri berikut:

  1. Tabel mengandung sedikit redundansi.
  2. Table bebas anomaly dan konsisten.
  3. Tidak ada ketergantungan fungsional yang tidak perlu.
  4. Integritas data terjaga.

 

Key (Kunci)

Key (kunci) dalam konteks basis data merujuk pada atribut atau kombinasi atribut yang digunakan untuk mengidentifikasi dan membedakan setiap entitas (baris) dalam sebuah tabel. Key berperan penting dalam desain basis data, karena mereka membantu memastikan integritas data dan memfasilitasi operasi pengambilan data yang efisien.

Terdapat beberapa jenis Key yang umum digunakan dalam basis data relasional:

  1. Key Utama (Primary Key)

Key utama adalah atribut atau kombinasi atribut yang unik dan dapat mengidentifikasi secara unik setiap baris dalam sebuah tabel. Setiap tabel dalam basis data biasanya memiliki satu Key utama yang ditetapkan. Key utama memberikan cara untuk mengakses, menghubungkan, dan memperbarui data dengan akurat.

 

  1. Key Asing (Foreign Key)

Key asing adalah atribut atau kombinasi atribut yang menunjuk ke Key utama dari tabel lain. Key asing digunakan untuk membangun hubungan antartabel dalam basis data relasional. Mereka memungkinkan untuk menyatukan data dari beberapa tabel melalui referensi silang.

 

  1. Key Alternatif (Alternate Key)

Key alternatif adalah Key potensial lainnya yang dapat digunakan sebagai pengganti Key utama. Meskipun tidak dipilih sebagai Key utama, Key alternatif masih memiliki nilai unik yang membedakan entitas.

 

  1. Key Candidate (Candidate Key)

Key calon adalah Key potensial yang dapat digunakan sebagai Key utama. Setiap Key calon harus memenuhi dua persyaratan: harus unik dan tidak boleh mengandung nilai null.

 

  1. Key Super (Super Key)

Foreign Key adalah atribut atau kombinasi atribut dalam sebuah tabel yang menunjuk ke primary Key dari tabel lain. Foreign Key digunakan untuk membangun hubungan antartabel (relasi) dalam basis data relasional. Mereka memungkinkan untuk menyatukan data dari tabel yang terkait dan membangun integritas referensial.

Key dalam basis data memainkan peran penting dalam membangun hubungan antara tabel, menjaga integritas data, dan mengoptimalkan kinerja operasi pengambilan data. Mereka membantu mengidentifikasi dan menghubungkan entitas dalam basis data relasional, serta menyediakan struktur yang konsisten dan terorganisir.

Tahapan Normalisasi Database

Nah stupenss berikut adalah Langkah Langkah dalam melakukan normalisasi database mulai dari UNF hingga pada 3NF.

Untuk memberikan contoh langkah-langkah normalisasi dari bentuk form hingga bentuk 3NF untuk data pembelian tiket bioskop, mari kita mulai dengan bentuk awal (UNF) dan berlanjut ke tahap normalisasi yang lebih tinggi:

1.   Bentuk UNF (Unnormalized Form):

Tabel: PembelianTiket

ID_Pembelian

Nama_Pembeli

Film

Tanggal

Jumlah_Tiket

1

John

A

2022-01-01

2

2

Sarah

B

2022-01-02

3

3

John

C

2022-01-03

1

2.   First Normal Form (1NF):

        Pisahkan atribut multivalue jika ada. Dalam contoh ini, tidak ada atribut multivalue.

        Pastikan setiap atribut hanya memiliki satu nilai (atomik).

Tabel: PembelianTiket

ID_Pembelian

Nama_Pembeli

Film

Tanggal

Jumlah_Tiket

1

John

A

2022-01-01

2

2

Sarah

B

2022-01-02

3

3

John

C

2022-01-03

1

3.   Second Normal Form (2NF):

        Pastikan setiap atribut dalam tabel bergantung secara fungsional pada seluruh kunci primer.

        Identifikasi kunci primer. Dalam contoh ini, ID_Pembelian adalah kunci primer.

Tabel: PembelianTiket

ID_Pembelian

Nama_Pembeli

Film

Tanggal

1

John

A

2022-01-01

2

Sarah

B

2022-01-02

3

John

C

2022-01-03

Tabel: JumlahTiket

ID_Pembelian

Jumlah_Tiket

1

2

2

3

3

1

4.   Third Normal Form (3NF):

        Tangani ketergantungan fungsional transitif.

        Identifikasi atribut-atribut yang bergantung pada atribut non-kunci.

        Pisahkan atribut-atribut tersebut ke dalam tabel terpisah.

Tabel: PembelianTiket

ID_Pembelian

Nama_Pembeli

Film

Tanggal

1

John

A

2022-01-01

2

Sarah

B

2022-01-02

3

John

C

2022-01-03


 

Tabel: JumlahTiket

ID_Pembelian

Jumlah_Tiket

1

2

2

3

3

1

Tabel: Film

ID_Film

Nama_Film

A

Film A

B

Film B

C

Film C

Dengan normalisasi hingga tahap 3NF, data pembelian tiket nonton bioskop telah terstruktur dengan lebih baik dan mengikuti prinsip-prinsip normalisasi. Setiap atribut memiliki ketergantungan fungsional yang jelas, tidak ada redundansi data yang signifikan, dan hubungan antara tabel dijaga melalui kunci primer dan kunci asing.

Sebenarnya masih ada 2 tahap yaitu 4NF dan 5NF namun pada umumnya 3NF sudah memenuhi kriteria untuk membuat normalisasi database, namun berikut penjelasan pada tahap 4NF dan 5NF.

1.   Fourth Normal Form (4NF)

Mengatasi ketergantungan multivalue dengan memisahkan atribut multivalue ke dalam tabel terpisah dan membuat hubungan melalui kunci asing.

Poin yang harus diperhatikan:

        Memisahkan atribut multivalue menjadi tabel terpisah.

        Membuat hubungan antara tabel menggunakan kunci asing.

2.   Fifth Normal Form (5NF)

Menangani ketergantungan join yang kompleks dengan memecah tabel jika terdapat ketergantungan join yang tidak dapat dihindari.

Poin yang harus diperhatikan:

        Memecah tabel jika terdapat ketergantungan join yang kompleks.

Pada setiap tahap normalisasi, perhatikan prinsip-prinsip berikut:

1.        Mengidentifikasi ketergantungan fungsional antara atribut.

2.        Memisahkan atribut multivalue menjadi tabel terpisah.

3.        Memastikan setiap atribut tergantung secara fungsional pada kunci primer.

4.        Menggunakan kunci primer dan kunci asing untuk membangun hubungan antara tabel.

5.        Mengurangi duplikasi data.

6.        Mempertimbangkan kebutuhan dan struktur data yang tepat untuk basis data yang efisien dan terorganisir.

Penting untuk diingat bahwa proses normalisasi dapat berbeda tergantung pada struktur dan kebutuhan spesifik dari setiap basis data. Nah stupenss semoga penjelasan tentang normalisasi database dapat dimengerti ya, apabila ada kesulitan silahkan ditanyakan.


Referensi

https://medium.com/dycode/normalisasi-database-1nf-2nf-3nf-f609174e353a

https://towardsdatascience.com/a-complete-guide-to-database-normalization-in-sql-6b16544deb0

https://www.jojonomic.com/blog/normalisasi-database/

https://itbox.id/blog/normalisasi-database-adalah/

https://www.youtube.com/playlist?list=PLRyQkv9k1FZUUxUa2ECiPwkcI1Xa9fMWw

 

Last modified: Monday, 7 August 2023, 2:34 PM