Anda di halaman 1dari 14

Contoh

Penerapan Normalisasi
Oleh: Fauzan Ishlakhuddin
Pengertian
• Cara pendekatan dalam membangun desain logika basis data
relational yang tidak secara langsung berkaitan dengan model data
tetapi dengan menerapkan sejumlah aturan dan kriteria standar
untuk menghasilkan struktur yang normal.

• Prosen pengelompokan data elemen menjadi tabel-tabel yang


menunjukkan entity dan relasinya.
Tujuan
• Menghilangkan dan mengurangi redudansi data.
• Memastikan dependensi data (data berada pada tabel yang tepat)
• Mencegah terjadinya anomali

Hal tersebut dilakukan untuk menghindari:


1. Insert Anomali
Situasi dimana tidak memungkinkan untuk memasukkan beberapa jenis data secara langsung di
database.
2. Update Anomali
Situasi dimana nilai yang diubah mengakibatkan ketidakkonsistenan database, artinya data yang
diubah tidak sesuai dengan yang diinginkan.
3. Delete Anomali
Penghapusan data tidak sesuai yang diharapkan, artinya data yang seharusnya tidak terhapus malah
terhapus.
Database yang bisa Dinormalisasi
Tidak semua database bisa dinormalisasi, hanya tipe “relational
database“ yang bisa dinormalisasi.
Banyak vendor DBMS (Database Management System) diantaranya
Oracle, MySQL, SQL Server, PostgreSQL, dll.
Cara Normalisasi
• 1NF (1st Normal Form)
Suatu tabel dikatakan 1NF jika dan hanya jika setiap atribut dari data tersebut hanya memiliki nilai tunggal
dalam satu baris.
• 2NF (2nd Normal Form)
Syarat 2NF adalah tidak diperkenankan adanya partial ”functional dependency” kepada primary key dalam
sebuah tabel.
• 3NF (3rd Normal Form)
Pada 3NF tidak diperkenankan adanya partial “transitive dependency“ dalam sebuah tabel.
• BCNF (Boyce-Code Normal Form)
Suatu relasi disebut memenuhi BCNF jika untuk setiap FD nontrivial: B, C → A atribut “B, C” = “X” adalah
superkey.
• 4NF (4th Normal Form)
Telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute
• 5NF (5th Normal Form)
Tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil.
Tabel Universal (Belum Normal)
1st Normal Form
2nd Normal Form
3rd Normal Form
Boyce-Code Normal Form
Students Books
sid name age bid title year

53666 Jones 18 B001 MySQL 2002

53668 Smith 18 B002 Algorithm 2003

53669 Melissa 17 B003 Visual Foxpro 6.0 2003

53670 Hilden 19 B004 Visual basic 6.0 2005

Students=(sid, name, age) Books=(bid, title, year)


FD : sid → name, age FD : bid → title, year
• BCNF, sebab sid superkey • BCNF, sebab bid superkey
Pinjam
idpinjam sid bid date Pinjam=(idpinjam, sid, bid, date)
P-01 53666 B002 10/11/2005
FD : idpinjam → bid, date
• Bukan BCNF, sebab idpinjam bukan superkey
P-02 53668 B001 10/11/2005
idpinjam → sid
P-03 53668 B004 11/12/2005
P-04 53670 B002 14/11/2005
Boyce-Code Normal Form Lanjut…
Pinjam
idpinjam sid bid date
P-01 53666 B002 10/11/2005
P-02 53668 B001 10/11/2005
P-03 53668 B004 11/12/2005
P-04 53670 B002 14/11/2005

Didekomposisi menjadi :
Pinjam1 Pinjam2
idpinjam sid idpinjam bid date
P-01 53666 P-01 B002 10/11/2005
P-02 53668 P-02 B001 10/11/2005
P-03 53668 P-03 B004 11/12/2005
P-04 53670 P-04 B002 14/11/2005

FD trivial idpinjam → bid, date


→ BCNF idpinjam superkey
→ BCNF
Boyce-Code Normal Form

NIM Modul Dosen NIM Dosen Dosen Modul


P11.2004.0129 VB.Net Ajib P11.2004.0129 Ajib Ajib VB.Net
P11.2004.0130 Prolog Aris P11.2004.0130 Aris Aris Prolog
P11.2004.0129 VB Net Ajib P11.2004.0129 Ajib Jono Prolog
P11.2004.0201 VB Net Budi P11.2004.0201 Budi Budi VB.Net
P11.2004.0250 Prolog Jono P11.2004.0250 Jono
P11.2004.0260 VB.Net Budi P11.2004.0260 Budi
Tambahan Tentang Key
Ada 3 macam key:
• Super Key
Merupakan satu atau lebih atribut (kumpulan atribut) yang dapat membedakan
satiap baris data dalam sebuah relasi secara unik.
• Candidate Key
Merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data
dalam sebuah relasi secara unik.
• Primary Key
• Merupakan salah satu dari candidate key yang terpilih
• Pemilihan primary key dari sejumlah candidate key umumnya didasari oleh:
• Key tersebut lebih sering (lebih natural) untuk dijadikan sebagai acuan
• Key tersebut lebih ringkas
• Jaminan keunikan key tersebut lebih baik
Contoh…
Mahasiswa = (NIM, NAMA_MHS, ALAMAT_MHS, TGL_LAHIR)
• Superkey
• (NIM, NAMA_MHS, ALAMAT_MHS, TGL_LAHIR)
• (NIM, NAMA_MHS, ALAMAT_MHS)
• (NIM, NAMA_MHS)
• (NAMA_MHS)
• (NIM)
• Candidate Key
• (NAMA_MHS)
• (NIM)
• Primary Key
• (NIM)

Anda mungkin juga menyukai