Normalisasi 2 IK203 Sistem Basis Data Pertemuan #6 Suryo Widiantoro, ST, MMSI, M.Com(IS)
Contoh Kasus Alkisah ada perusahaan konstruktsi yang mengelola beberapa proyek bangunan. Setiap proyek memiliki nomor, nama, karyawan yang ditugaskan dll. Setiap karyawan memiliki nomor karyawan, nama, dan tugas, seperti teknisi dll. Perusahaan menagih customer berdasarkan waktu kerja. Honor waktu kerja tergantung pada tugas karyawan. Tabel lengkapnya dapat dilihat berikut ini.
Lakukan normalisasi hingga bentuk normal 3NF!
Konversi ke Bentuk Normal 1NF Langkah 1: Hilangkan repeating groups Mulai dengan membuat data dalam format tabular, dimana setiap cell memiliki nilai tunggal dan tidak ada lagi repeating group. Untuk menghilangkan repeating group, hilangkan null dengan memastikan bahwa setiap attribute pada repeating group berisi nilai.
Langkah 2: Identifikasi candidate untuk primary key PROJ_NUM bukan primary key karena tidak unique untuk semua attribute lainnya. Perlu ada kombinasi attribute untuk menjadi primary key, yaitu composite dari PROJ_NUM dan EMP_NUM.
Langkah 3: Identifikasi semua dependency Identifikasi PK pada Langkah 2 akan menghasilkan dependency berikut ini: (PROJ_NUM, EMP_NUM) PROJ_NAME, EMP_NAME, JOB_CLASS, CHG_HOUR, HOURS Lalu tentukan dependency lainnya yang ada
Ada dependency yang terjadi antara 2 attribute non PK; ini adalah tanda adanya transitive dependency: JOB_CLASS CHG_HOUR Ada juga dependency yang terjadi dari determinant pada PK; ini adalah tanda adanya partial dependency: PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME, JOB_CLASS, CHG_HOUR
Dependency yang ditemukan pada tabel dapat dibuatkan diagramnya yang disebut sebagai diagram dependency. Diagram dependency membantu memperlihatkan seluruh relationship antar attribute tabel sehingga memudahkan untuk melihat dependency yang penting.
Relational schemanya: PROJECT_ASSIGNMENT (PROJ_NUM, PROJ_NAME, EMP_NUM, EMP_NAME, JOB_CLASS, CHG_HOUR, HOURS)
Istilah bentuk normal pertama (1NF) menjelaskan format tabular yang: Seluruh attribute key telah jelas. Tidak ada repeating groups dalam tabel. Dengan kata lain, setiap perpotongan baris/kolom berisi satu dan hanya satu nilai saja, bukan kumpulan nilai. Semua attribute tergantung pada primary key.
Konversi ke Bentuk Normal 2NF Mengubah ke bentuk 2NF dilakukan hanya saat bentuk 1NF memiliki composite primary key. Bila bentuk 1NF memiliki single-attribute primary key, maka tabel secara otomatis sudah berbentuk 2NF. Langkah 1: tentukan candidate untuk primary key dan buat tabel yang baru untuk menghilangkan partial dependency PROJ_NUM EMP_NUM PROJ_NUM EMP_NUM
Langkah 2: mengatur ulang attribute dependent yang berhubungan Gunakan dependency diagram untuk menentukan attribute yang dependent pada partial dependency. Attribute yang dependent dalam partial dependency dihilangkan dari tabel asal dan tempatkan pada tabel yang baru bersama dengan determinantnya. Attribute yang tidak dependent pada partial dependency akan tetap berada di tabel asal.
Beri nama tabel yang layak untuk 3 tabel baru (PROJECT, EMPLOYEE, dan ASSIGNMENT) dan serta tuliskan relational schemanya: PROJECT (PROJ_NUM, PROJ_NAME) EMPLOYEE (EMP_NUM, EMP_NAME, JOB_CLASS, CHG_HOUR) ASSIGNMENT (PROJ_NUM, EMP_NUM, ASSIGN_HOURS) Referential integrity contraintnya: PROJ_NUM pada ASSIGNMENT harus ada dalam PROJ_NUM pada PROJECT EMP_NUM pada ASSIGNMENT harus ada dalam EMP_NUM pada EMPLOYEE
Sebuah tabel disebut dalam bentuk normal kedua (2NF) bila: • Tabel adalah sebuah 1NF. and • Tidak mengandung partial dependency; sehingga, tidak ada attribute yang dependent pada hanya sebagian dari primary key. Catatan masih ada kemungkinan tabel 2NF untuk mengandung transitive dependency
Konversi ke Bentu Normal 3NF Langkah 1: tentukan candidate untuk primary key dan buat tabel baru untuk menghilangkan transitive dependency Untuk setiap transitive dependency, tulislah sebuah copy determinantnya sebagai primary key pada tabel yang baru. Determinant adalah attribute yang nilainya menentukan nilai-nilai lain dalam sebuah baris. Tuliskan determinant dari transitive dependency sebagai primary key: JOB_CLASS
Langkah 2: Mengatur ulang attribute dependent yang berhubungan Identifikasi attribute yang dependent pada setiap determinant yang teridentifikasi di Langkah 1. Tempatkan attribute dependent dalam tabel baru dengan determinantnya dan hapus mereka dari tabel asal. EMP_NUM (EMP_NAME, JOB_CLASS)
Sebuah tabel disebut dalam bentuk normal ketiga (3NF) bila: • Tabel adalah sebuah 2NF. dan • Tidak mengandung transitive dependency.
penutup