Pertemuan ke 10 Normalisasi Lanjutan
Diberikan skema relasi R=(A,B,C,D,E,F,G,H,I,J,K) dengan ketergantungan Diberikan skema relasi R=(A,B,C,D,E,F,G,H,I,J,K) dengan ketergantungan fungsional : A B,C,D ; C D ; E F ; A,E G,H,I,J,K ; I J,K Apakah R memenuhi 3NF ? Jika tidak, rancanglah skema relasi R sedemikian sehingga memenuhi bentuk 3NF. Jawab: R tidak memenuhi 3NF karena masih ada ketergantungan parsial dan transitif
R=(A,B,C,D,E,F,G,H,I,J,K) A B,C,D ; C D A B,C A D (eliminate) C D E F R1=(A,B,C) R2=(C,D) R3=(E,F) A,E G,H,I,J,K; I J,K A,E G,H,I A,E J,K (eliminate) I J,K R4=(A,E,G,H,I) R5=(I,J,K)
R1=(A,B,C) R2=(C,D) R3=(E,F) R4=(A,E,G,H,I) R5=(I,J,K)
Bentuk Normal Tahap Keempat (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
MVD (Multi-valued dependency) MVD menyatakan dependensi antara dua atribut dalam sebuah relasi dengan sifat untuk setiap nilai A terdapat sejumlah nilai B. Jadi sebuah nilai A berpasangan dengan sejumlah nilai B. Contoh: Ahmad Contoh di atas menyatakan bahwa seseorang bisa memiliki kemampuan berbahasa asing lebih dari satu. Hubungan tersebut berada dalam sebuah relasi. Dependensi seperti itu diganbarkan sebagai berikut: Nama Bahasa_Asing Bahasa Inggris Bahasa Perancis Bahasa Arab
MVD (Multi-valued dependency) contd…… Ada kalanya sebuah relasi memiliki dua dependensi bernilai banyak. Contoh: MDB Matakuliah Dosen Buku_Wajib Basis Data Amri Yahya Database Systems Modern Database Management Rini Subono Teknologi Informasi Sunaryo Hadi Information Technology Management Pengantar Teknologi Informasi Karyo Junaedi Berdasarkan data aslinya, tampak bahwa satu nilai dalam Matakuliah (misalnya Basis Data) berpasangan dengan lebih satu nama dosen (misalnya Amri Yahya dan Rini Subono) dan satu nilai dalam Matakuliah (Misalnya Basis Data) berpasangan dengan lebih dari satu buku wajib untuk matakuliah tersebut (Misalnya Database Management System dan Modern Database Management.
Relasi MDB memiliki dua buah dependensi bernilai banyak, yaitu: Matakuliah Dosen Matakuliah Buku_Wajib Yang perlu diperhatikan adalah bahwa baik dosen maupun Buku_Wajib bersifat independen atau tidak saling berketergantungan. Keadaan seperti ini biasa dinyatakan sebagai berikut: Matakuliah Dosen|Buku_Wajib Suatu relasi yang mengandung dependensi bernilai banyak dapat dikonversi agar memenuhi bentuk normal keempat dengan menggunakan teorema Fagin (Date, 1995), yang berbunyi: “Bila R(A,B,C) merupakan suatu relasi, dengan A,B, dan C adalah atribut-atributnya, maka R dapat dipecah menjadi (A,B) dan (A,C) jika R memenuhi MVD A B|C.”
Berdasarkan teorema tersebut, relasi MDB dapat dipecah menjadi: MATAKULIAH_DOSEN (Matakuliah, Dosen) MATAKULIAH_BUKU (Matakuliah, Buku_Wajib) MATAKULIAH_DOSEN MATAKULIAH_BUKU Matakuliah Dosen Basis Data Amri Yahya Rini Subono Teknologi Informasi Sunaryo Hadi Karyo Junaedi Matakuliah Buku Wajib Basis Data Database Systems Modern Database Management Teknologi Informasi Information Technology Management Pengantar Teknologi Informasi
Bentuk Normal Tahap Kelima (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
R1 (Nomor_Mahasiswa, Nama) R2 (Nomor_Mahasiswa, Jenis_Kelamin) Tanggal_Lahir 11896 Abdul Wahab Pria 20/05/1990 11897 Gunarso 07/08/1991 11898 Siti Badriah Wanita 11/04/1991 11899 Gunawan 05/08/1990 Relasi tersebut dapat dipecah menjadi dua atau tiga relasi, yang apabila dikonstruksi akan membentuk kembali data semua. Relasinya bisa berupa seperti berikut: R1 (Nomor_Mahasiswa, Nama) R2 (Nomor_Mahasiswa, Jenis_Kelamin) R3 (Nomor_Mahasiswa, Tanggal_Lahir) Perhatikan bahwa kunci primer hasil dekomposisi R1, R2 dan R3 sama dengan kunci primer MAHASISWA. Hal ini menyatakan bahwa relasi MAHASISWA sebenarnya telah memenuhi bentuk normal kelima
Bagaimana agar relasi tersebut memenuhi bentuk normal kelima 5NF? Contoh 5NF: Sebuah Relasi (table) menggambarkan bahwa suatu dealer ditunjuk oleh distributor untuk menjual jenis kendaraan tertentu. Tampak bahwa tidak semua kendaraan produk milik distributor bisa dijual oleh sebuah dealer. DDK Dealer Distributor Kendaraan Sumber Jaya Nissan Truk Nissan Sedan Nissan Toyota Tiara Makmur Relasi DDK tersebut memenuhi bentuk normal keempat karena tidak terdapat dua dependensi bernilai banyak yang bersifat independen. Namun bisa dilihat bahwa relasi tersebut masih memiliki redundansi data. Contoh: pasangan Truk Nissan dan distributor Nissan muncul beberapa kali, padahal semestinya fakta tersebut Bagaimana agar relasi tersebut memenuhi bentuk normal kelima 5NF?
Baris-baris yang terdapat pada relasi DDK sebenarnya bisa direkonstruksi dari relasi-relasi yang lebih kecil sebagai berikut: DEAL_DISTRIB (Dealer, Distributor) DISTRIB_KEND (Distributor, Kendaraan) DEAL_KEND (Dealer, Kendaraan)
Depedensi (Ketergantungan) Depedensi merupakan konsep yang mendasari normalisasi yang menjelaskan hubungan antar atribut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya. Macam – macam depedensi : Depedensi fungsional Depedensi fungsional sepenuhnya Depedensi total Depedensi transitif
Depedensi fungsional “X secara fungsional menentukan Y” atau secara istilah : penentu (determinan) → yang tergantung (dependen) Depedensi fungsional sepenuhnya Suatu atribut Y mempunyai dependensi fungsional sepenuhnya terhadap atribut X, jika: – Y mempunyai dependensi fungsional terhadap X, dan – Y tidak memiliki dependensi terhadap bagian dari X. Depedensi total Suatu atribut Y mempunyai dependensi total terhadap atribut X jika: – Y memiliki dependensi fungsional terhadap X, dan – X mempunyai dependensi fungsional terhadap Y.
Depedensi transitif Atribut Z mempunyai dependensi transitif terhadap X jika : – Y memiliki dependensi fungsional terhadap X. – Z memiliki dependensi fungsional terhadap Y. atau dapat dituliskan : X → Y → Z
Studi Kasus Normalisasi Data Untuk mendapatkan hasil yang paling normal, maka proses normalisasi dimulai dari normal pertama. Field-field tabel di atas yang merupakan group berulang : NoPegawai, NamaPegawai, Golongan, BesarGaji.
Normalisasi pertama Solusinya hilangkan duplikasi dengan mencari ketergantungan parsial. menjadikan field-field menjadi tergantung pada satu atau beberapa field. Karena yang dapat dijadikan kunci adalah NoProyek dan NoPegawai, maka langkah kemudian dicari field-field mana yang tergantung pada NoProyek dan mana yang tergantung pada NoPegawai. NP001 BRR NP001 BRR NP002 PEMDA 900.000 NP002 PEMDA
Normalisasi Kedua Field-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya NoProyek menjelaskan NamaProyek dan NoPegawai menjelaskan NamaPegawai, Golongan dan BesarGaji.
Normalisasi Kedua TABEL PROYEK TABEL PEGAWAI 900.000
Untuk membuat hubungan antara dua tabel, dibuat suatu tabel yang berisi key-key dari tabel yang lain. TABEL PROYEKPEGAWAI
Normalisasi Ketiga Pada tabel diatas masih terdapat masalah, bahwa BesarGaji tergantung kepada Golongan-nya. Padahal disini Golongan bukan merupakan field kunci. Artinya kita harus memisahkan field non-kunci Golongan dan BesarGaji yang tadinya tergantung secara parsial kepada field kunci NoPegawai, untuk menghilangkan ketergantungan transitif.
TABEL PROYEKPEGAWAI TABEL PROYEK TABEL PEGAWAI TABEL GOLONGAN
Studi Kasus Normalisasi No-Mhs Nm-Mhs Jurusan Kd-MK Nama-MK Kd-Dosen Nm_Dosen Nilai 2683 Welli MI MI350 Manajemen Basis Data B104 Ati A MI465 Analisis Prc. Sistem B317 Dita B 5432 Bakri AK MI350 Manajemen Basis Data B104 Ati C AKN201 Akuntansi Keuangan D310 Lia B MKT300 Dasar Pemasaran B212 Lola A
1NF No-Mhs Nm-Mhs Jurusan Kd-MK Nama-MK Kd-Dosen Nm_Dosen Nilai 2683 Welli MI MI350 Manajemen Basis Data B104 Ati A 2683 Welli MI MI465 Analisis Prc. Sistem B317 Dita B 5432 Bakri AK MI350 Manajemen Basis Data B104 Ati C 5432 Bakri AK AKN201 Akuntansi Keuangan D310 Lia B 5432 Bakri AK MKT300 Dasar Pemasaran B212 Lola A
2NF Tabel Mahasiswa Tabel Kuliah Tabel Nilai No-Mhs Nama-Mhs Jurusan 2683 Welli MI 5432 Bakri AK Tabel Mahasiswa Kode-MK Nama-MK Kode-Dosen Nama-Dosen MI350 Manajemen Basis Data B104 Ati MI465 Analisis Prc. Sistem B317 Dita AKN201 Akuntansi Keuangan D310 Lia MKT300 Dasar Pemasaran B212 Lola Tabel Kuliah No-Mhs Kode MK Nilai 2683 MI350 A 2683 MI465 B 5432 MI350 C 5432 AKN201 B 5432 MKT300 A Tabel Nilai
3NF Tabel Mata Kuliah Tabel Dosen Kode-MK Nama-MK Kode-Dosen MI350 Manajemen Basis Data B104 MI465 Analisis Prc. Sistem B317 AKN201 Akuntansi Keuangan D310 MKT300 Dasar Pemasaran B212 Tabel Mata Kuliah Kode-Dosen Nama-Dosen B104 Ati B317 Dita D310 Lia B212 Lola Tabel Dosen
Latihan Normalisasi
Soal Latihan (1) NoOrder TglOrder Item1 Item2 Item3 Total TR001 10/01/2006 P1 P2 P3 500.000 TR002 15/02/2006 P5 300.000 TR003 18/03/2006 200.000 Bagaimana bentuk normalisasinya?
Pembahasan(1) Bentuk Normal Pertama NoOrder TglOrder Item Total TR001 10/01/2006 P1 500.000 P2 P3 TR002 15/02/2006 300.000 P5 TR003 18/03/2006 200.000
Pembahasan(1) Bentuk Normal Kedua Relasi: Order1 Relasi: Order2 NoOrder Item TR001 P1 P2 P3 TR002 P5 TR003 NoOrder TglOrder Total TR001 10/01/2006 500.000 TR002 15/02/2006 300.000 TR003 18/03/2006 200.000
Soal Latihan(2) KodeProyek NamaPegawai Bagian P001 Adi EDP P002 Bima HRD P003 Candra Produksi Apakah sudah memenuhi bentuk normal pertama Bagaimana bentuk normalisasi tabel tersebut?
Pembahasan(2) Tabel soal latihan 2 sudah memenuhi normalisasi pertama Bentuk normalisasi kedua dari tabel tersebut adalah Relasi: Proyek1 Relasi: Proyek2 KodeProyek NamaPegawai P001 Adi P002 Bima P003 Candra KodeProyek Bagian P001 EDP P002 HRD P003 Produksi
Pembahasan(2) Bentuk normalisasi ketiga dari tabel tersebut adalah Relasi: Proyek1 Relasi: Proyek2 KodeProyek NamaProyek KodePegawai P001 XXX N001 P002 YYY N002 P003 ZZZ N003 KodePegawai NamaPegawai KodeBagian N001 Adi B01 N002 Bima B02 N003 Candra B03 Relasi: Proyek3 KodeBagian NamaBagian B01 EDP B02 HRD B03 Produksi
Soal Latihan(3) NRP Nama MataKuliah NIP Dosen 5103100101 Ali Basis Data 320001123 Ir.X 5103100102 Sita RPL 320011133 Ir.Y 5103100103 Adi AI 320021010 Ir.Z Apakah sudah memenuhi bentuk normal pertama Bagaimana bentuk normalisasi tabel tersebut?
Pembahasan (3) Tabel soal latihan 3 sudah memenuhi normalisasi pertama Bentuk normalisasi kedua dari tabel tersebut adalah Relasi: Mahasiswa2 Relasi: Mahasiswa1 NRP Nama 5103100101 Ali 5103100102 Sita 5103100103 Adi NRP MataKuliah 5103100101 Basis data RPL 5103100102 AI Relasi: Mahasiswa3 NRP NIP Dosen 5103100101 320001123 Ir. X 5103100102 Ir. Y 320011133 5103100103 320021010 Ir. Z
Pembahasan (3) Bentuk normalisasi ketiga dari tabel tersebut adalah Relasi: Mahasiswa2 Relasi: Mahasiswa1 NRP Nama KodeMatkul 5103100101 Ali MT01 5103100102 Sita MT02 5103100103 Adi MT03 KodeMatkul MataKuliah MT01 Basis data MT02 RPL Mt03 AI NIP Dosen 320001123 Ir. X 320011133 Ir. Y 320021010 Ir. Z Relasi: Mahasiswa3
Tugas Basis Data Pilih salah satu soal berikut ini. Apakah Sudah dalam kondisi 1NF ?, jika belum lakukan normalisasi tingkat pertama! Apakah Sudah dalam kondisi 2NF ?, jika belum lakukan normalisasi tingkat ke dua! Apakah Sudah dalam kondisi 3NF ?, jika belum lakukan normalisasi tingkat ke tiga!
Dari Tabel di atas lakukan proses normalisasi Jika dokumen di atas di bentuk tabel!
Apakah Sudah dalam kondisi 1NF Apakah Sudah dalam kondisi 1NF ?, jika belum lakukan normalisasi tingkat pertama! Apakah Sudah dalam kondisi 2NF ?, jika belum lakukan normalisasi tingkat ke dua! Apakah Sudah dalam kondisi 3NF ?, jika belum lakukan normalisasi tingkat ke tiga!