NORMALISASI DATABASE
Normalisasi
merupakan sebuah upaya untuk memperoleh sebuah database dengan struktur yang
baik dengan cara menerapkan sejumlah aturan pada setiap tabel agar ruang
penyimpanan efisien. Istilah normalisasi dapat disederhanakan menjadi memecah
relasi menjadi beberapa tabel untuk mendapat database yang optimal
Istilah
penting dalam teknik normalisasi
2. Candidate key. Kumpulan atribut minimal yang secara unik mengidentifikasi sebuah baris fungsinya sebagai calon primary key.
3. Composite key. Kunci kandidat yang berisi lebih dari satu atribut
4. Primary key. Candidate key yang dipilih untuk mengidentifikasi baris secara unik
5. Alternate key. Candidate key yang tidak dipilih sebagai primary key
6. Foreign key. Key di tabel lain yang terhubung dengan primary key pada sebuah tabel
Keterangan :
1. Atribut
kunci -> NIS
2. Candidate key -> NIS dan Nama
3. Composit key -> Nama bisa dibagi menjadi nama depan dan nama belakang. Alamat bisa dibagi menjadi jalan, kota, propinsi
4. Primary key -> NIS
5. Alternate key -> Nama
6. Foreign key -> NIS pada tabel nilai merupakan foreign key
2. Candidate key -> NIS dan Nama
3. Composit key -> Nama bisa dibagi menjadi nama depan dan nama belakang. Alamat bisa dibagi menjadi jalan, kota, propinsi
4. Primary key -> NIS
5. Alternate key -> Nama
6. Foreign key -> NIS pada tabel nilai merupakan foreign key
Sebuah tabel dikatakan baik (efisien) atau
normal jika memenuhi 3 kriteria sbb:
Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join
Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi
menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel
semula dengan sama persis.
Terpeliharanya ketergantungan
fungsional pada saat perubahan data (Dependency Preservation).
Tidak melanggar Boyce-Code Normal Form (BCNF)
(-akan dijelaskan kemudian-)
Boyce-Code Normal Form (BCNF)
Jika
kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut
tidak melanggar Bentuk Normal tahap
ketiga (3rd Normal Form / 3NF).
FUNCTIONAL DEPENDENCY (FD)
Notasi: A à B
A dan B adalah atribut dari sebuah tabel.
Berarti secara fungsional A menentukan B atau B tergantung pada A, jika dan
hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama
Notasi: A –>
B atau A x
–> B
Adalah kebalikan dari notasi
sebelumnya
Aturan
normalisasi
· Mendefinisikan atribut kunci
· Tidak adanya group berulang
· Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)
2. Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
· Sudah memenuhi dalam bentuk normal kesatu
· Sudah tidak ada ketergantungan parsial, dimana seluruh field hanya tergantung pada sebagian field kunci.
3. Bentuk Normal Tahap (3rd Normal Form
/ 3NF)
· Sudah berada dalam bentuk normal kedua
· Sudah berada dalam bentuk normal kedua
·
Tidak ada ketergantungan transitif (dimana field
bukan kunci tergantung pada field bukan kunci lainnya).
4. Boyce-Code Normal Form (BCNF)
· Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X à Y
· tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi
· Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X à A, BCNF tidak membolehkan A sebagai bagian dari primary key.
5. Bentuk Normal Tahap (4th Normal Form / 4NF)
· Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute
· Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies
6. Bentuk Normal Tahap (5th Normal Form / 5NF)
· Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil.
· Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula
· Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X à Y
· tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi
· Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X à A, BCNF tidak membolehkan A sebagai bagian dari primary key.
5. Bentuk Normal Tahap (4th Normal Form / 4NF)
· Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute
· Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies
6. Bentuk Normal Tahap (5th Normal Form / 5NF)
· Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil.
· Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula
Contoh Kasus
Perancangan Basis data pengolahan nilai Mahasiswa S1
Bentuk Unnormalized Form
Bentuk First Normal Form (1NF)
Bentuk Second Normal Form (2NF)
Tabel 1
Tabel 2
Tabel 3
Pada bentuk 1NF, masih terdapat ketidaktergantungan terhadap beberapa kolom (misal TTL tidak bergantung pada kode_matkul), sehingga tabel dipecah menjadi 3 bagian agar tabel-tabel tersebut dapat memiliki ketergantungan terhadapat kolom-kolomnya (misal NIM bergantung pada nama_mhs dan ttl).
Bentuk Third Normal Form (3NF)
Tabel 1 dan 2 sudah memenuhi criteria
bantuk 3NF, namun tidak untuk tabel 3, karena bila kita ingin merubah
value bobot dari nilai, maka kita akan melakukan perubahan pada banyak
record/baris yang lainnya. Sehingga pada bentuk 3NF, tabel 3 dapat
dipecah lagi menjadi 2 tabel agar memenuhi kriteria bentuk 3NF.
Tabel 3a
Tabel 3b
Bentuk Boyce-Codd Normal Form (BNF)
Dalam kasus ini, sebenarnya pada bentuk
3NF sudah memenuhi criteria sebagai tabel relasional yang dapat
diimplementasikan pada RDBMS, tidak harus dalam bentuk BNF. Jadi bentuk
BNF pun tidak mutlak dijadikan sebagai bentuk dalam RDBMS.
Bentuk BNF memiliki syarat harus memenuhi syarat ketergantungan fungsional dan ketergantungan transitif.
sorry sampai di sini dulu yha..!!!