Kemudian dalam posting tulisan tentang: “Konsep Ketergantungan Fungsional, Normalisasi, dan Identifikasi Primary Key dalam Perancangan Sistem Database”, kita sudah mempelajari suatu konsep penting yang digunakan untuk melakukan normalisasi, yaitu konsep ketergantungan fungsional yang terdiri dari ketergantungan penuh, ketergantungan parsial atau sebagian, dan ketergantungan transitif. Proses normalisasi pertama-tama dilakukan dengan mengidentifikasi adanya ketergantungan-ketergantungan tersebut dalam relasi-relasi dan kemudian menghilangkannya. Cara melakukan normalisasi, mengidentifikasi berbagai macam ketergantungan, dan menghilangkan ketergantungan pada relasi-relasi bisa dipelajari ulang dalam postingan tulisan di atas atau di link ini. Posting tulisan ini akan memberi contoh step-by-step dengan ilustrasi yang lebih aktual bagaimana melakukan normalisasi mulai dari UNF (atau Unnormalized Form) – 1NF – 2NF – dan 3NF.
Dari form tradisional ke tabel/relasi UNF
Kadang-kadang kita membuat relasi mulai dari 1NF tetapi terkadang juga dari UNF. Contoh disini akan kita mulai dari UNF saja supaya terlihat lebih lengkap. Perhatikan gambar form tradisional berikut:
Gambar tabel di atas tersebut adalah dalam bentuk unnormalized table, atau tabel/relasi yang belum dilakukan normalisasi. Dalam contoh tersebut, nama relasi/tabel adalah 'ClientRental'. Dan klien dengan clientNo CR76 yang bernama John Kay, sudah pernah bertransaksi dua kali dari hasil observasi form tersebut. Sehingga klien dengan clientNo CR76 yang bernama John Kay memiliki bagian yang berulang (perhatikam atribut-atribut porpertyNo, pAddress, rentStart, rentFinish, rent, ownerNo, oName) untuk klien yang sama. Sehingga data tentang clientNo dan cName terlihat kosong atau tidak dituliskan pada transaksi yang kedua, karena akan berisi data yang sama (berulang). Demikian juga untuk klien dengan clientNo CR56 yang bernama Aline Stewart. Jadi tabel tersebut disebut dalam kondisi UNF (atau unnormalized form) apabila tabel tersebut berisi satu atau lebih bagian yang berulang. Tabel semacam itu biasanya dihasilkan dari proses mengonversi form tradisional menjadi suatu tabel dalam bentuk kolom dan baris. Dari UNF ke 1NF
Untuk mengonversi tabel dari UNF ke 1NF (normal bentuk pertama), yang perlu kita lakukan adalah: 1) menunjuk satu atau beberapa atribut untuk dijadikan sebagai ‘key’ dalam tabel UNF tersebut, 2) kemudian mengidentifikasi bagian yang berulang dalam tabel UNF tersebut, 3) dan setelah mengidentifikasi bagian yang berulang, kita perlu menghilangkan bagian yang berulang tersebut.
Contoh dari cara yang pertama adalah seperti dalam gambar berikut:
Dari 1NF ke 2NF
Jadi setelah mengalami pemecahan/pemisahan, ketiga relasi di atas tersebut sudah dalam keadaan 2NF (bentuk normal kedua), karena tidak ada ketergantungan parsial antar atribut dalam suatu tabel/relasi. Apabila dalam tabel/relasi yang kita analisa tidak terdapat ketergantungan parsial (partial dependency) sejak awal, berarti tabel/relasi tersebut sudah berada pada keadaan 2NF.
Dari 2NF ke 3NF
Untuk mengonversi dari 2NF dari ke 3NF (bentuk normal ketiga), caranya adalah sama dengan langkah di atas (dari 1NF ke 2NF). Hanya saja yang harus kita identifikasi adalah ada atau tidaknya ketergantungan transitif (transitive dependency) antar atribut dalam suatu relasi. Kita akan analisa dan identifikasi dari ketiga tabel/relasi yang sudah berada dalam 2NF di atas, yaitu tabel/relasi ‘Client’, ‘Rental’, dan ‘PropertyOwner’. Hasil proses identifikasi adalah seperti gambar di bawah berikut:
Dari hasil identifikasi di atas, ternyata kita temukan adanya ketergantungan transitif (transitive dependency), yaitu pada fd4 (perhatikan pada tabel PropertyOwner). Jadi untuk mengonversi ke keadaan 3NF, kita harus menghilangkan ketergantungan transitif (transitive dependency) tersebut. Cara menghilangkan ketergantungan transitif sama seperti langkah sebelumnya, yaitu atribut-atribut yang berada dalam ketergantungan transitif (transitive dependency) dipindahkan ke tabel/relasi yang baru beserta ‘copy’ dari atribut yang menjadi ‘determinant’ pada tabel/relasi aslinya.
Hasil dari pemecahan/pemindahan atribut yang menjadi ketergantungan transitif tersebut adalah seperti berikut di bawah ini:
0 Response to "Contoh proses normalisasi relasi dari UNF – 1NF – 2NF – dan 3NF"
Post a Comment