Normalisasi Lanjutan 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 ketergantungan parsial dan transitif karena masih ada R=(A,B,C,D,E,F,G,H,I,J,K) A B,C,D ; C D A B,C A D (eliminate) CD EF R1=(A,B,C) R2=(C,D) R3=(E,F) R4=(A,E,G,H,I) R5=(I,J,K) A,E G,H,I,J,K; I J,K A,E G,H,I A,E J,K (eliminate) 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 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: Bahasa Inggris Ahmad Bahasa Perancis Bahasa Arab • 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 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 Basis Data Amri Yahya Modern Database Management Basis Data Rini Subono Database Systems Basis Data Rini Subono Modern Database Management Teknologi Informasi Sunaryo Hadi Information Technology Management Teknologi Informasi Sunaryo Hadi Pengantar Teknologi Informasi Teknologi Informasi Karyo Junaedi Information Technology Management Teknologi Informasi Karyo Junaedi Pengantar Teknologi Informasi 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 Matakuliah Buku Wajib Basis Data Amri Yahya Basis Data Database Systems Basis Data Rini Subono Basis Data Modern Database Management Teknologi Informasi Sunaryo Hadi Teknologi Informasi Information Technology Management Teknologi Informasi Karyo Junaedi Teknologi Informasi Pengantar Teknologi Informasi 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 didekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula Mahasiswa Nomor_Mahasiswa Nama Jenis_Kelamin Tanggal_Lahir 11896 Abdul Wahab Pria 20/05/1990 11897 Gunarso Pria 07/08/1991 11898 Siti Badriah Wanita 11/04/1991 11899 Gunawan Pria 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 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 Sumber Jaya Nissan Sedan Nissan Sumber Jaya Toyota Truk Nissan Sumber Jaya Toyota Sedan Nissan Tiara Makmur Nissan Sedan Nissan • 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) Bentuk Tidak Ternormalisasi (UNF) Menghilangkan atribut bernilai ganda Bentuk Normal Pertama (1NF) Menghilangkan dependensi partial Bentuk Normal Kedua (2NF) Menghilangkan dependensi transitif Bentuk Normal Ketiga (3NF) Bentuk Normal Boyce-Codd (BCNF) Menghilangkan ketergantungan yang penentunya bukan kunci kandidat Menghilangkan lebih dari satu dependensi bernilai ganda Bentuk Normal Keempat (4NF) Mengatasi dependensi gabungan Bentuk Normal Kelima (5NF) 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 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. 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 NP002 PEMDA PEMDA 900.000 Field-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya NoProyek menjelaskan NamaProyek dan NoPegawai menjelaskan NamaPegawai, Golongan dan BesarGaji. 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 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 PROYEK TABEL PEGAWAI TABEL GOLONGAN TABEL PROYEKPEGAWAI No-Mhs Nm-Mhs Jurusan Kd-MK Nama-MK Kd-Dosen Nm_Dosen Nilai 2683 Welli MI MI350 MI465 Manajemen Basis Data Analisis Prc. Sistem B104 B317 Ati Dita A B 5432 Bakri AK MI350 Manajemen Basis Data AKN201 Akuntansi Keuangan MKT300 Dasar Pemasaran B104 D310 B212 Ati Lia Lola C B A No-Mhs Nm-Mhs Jurusan Kd-MK Nama-MK Kd-Dosen Nm_Dosen Nilai 2683 2683 Welli Welli MI MI MI350 MI465 Manajemen Basis Data Analisis Prc. Sistem B104 B317 Ati Dita A B 5432 5432 5432 Bakri Bakri Bakri AK AK AK MI350 Manajemen Basis Data AKN201 Akuntansi Keuangan MKT300 Dasar Pemasaran B104 D310 B212 Ati Lia Lola C B A No-Mhs Nama-Mhs Jurusan Tabel Mahasiswa 2683 5432 Kode-MK Welli Bakri Nama-MK MI350 MI465 AKN201 MKT300 Manajemen Basis Data Analisis Prc. Sistem Akuntansi Keuangan Dasar Pemasaran No-Mhs Kode MK 2683 2683 5432 5432 5432 MI AK MI350 MI465 MI350 AKN201 MKT300 Kode-Dosen B104 B317 D310 B212 Nama-Dosen Ati Dita Lia Lola Nilai A B C B A Tabel Nilai Tabel Kuliah Kode-MK Nama-MK MI350 MI465 AKN201 MKT300 Manajemen Basis Data Analisis Prc. Sistem Akuntansi Keuangan Dasar Pemasaran Kode-Dosen B104 B317 D310 B212 Kode-Dosen B104 B317 D310 B212 Nama-Dosen Ati Dita Lia Lola Tabel Dosen Tabel Mata Kuliah NoOrder TglOrder TR001 Item1 Item2 Item3 Total 10/01/2006 P1 P2 P3 500.000 TR002 15/02/2006 P3 P5 300.000 TR003 18/03/2006 P1 P2 200.000 Bagaimana bentuk normalisasinya? Bentuk Normal Pertama NoOrder TglOrder Item Total TR001 10/01/2006 P1 500.000 TR001 10/01/2006 P2 500.000 TR001 10/01/2006 P3 500.000 TR002 15/02/2006 P3 300.000 TR002 15/02/2006 P5 300.000 TR003 18/03/2006 P1 200.000 TR003 18/03/2006 P2 200.000 Bentuk Normal Kedua Relasi: Order1 NoOrder TglOrder Relasi: Order2 Total NoOrder Item TR001 P1 TR001 10/01/2006 500.000 TR001 P2 TR002 15/02/2006 300.000 TR001 P3 TR002 P3 TR002 P5 TR003 P1 TR003 P2 TR003 18/03/2006 200.000 KodeProyek NamaPegawai Bagian P001 Adi EDP P002 Bima HRD P002 Adi EDP P003 Bima HRD P003 Candra Produksi • Apakah sudah memenuhi bentuk normal pertama • Bagaimana bentuk normalisasi tabel tersebut? • Tabel soal latihan 2 sudah memenuhi normalisasi pertama • Bentuk normalisasi kedua dari tabel tersebut adalah Relasi: Proyek1 Relasi: Proyek2 KodeProyek NamaPegawai KodeProyek Bagian P001 Adi P001 EDP P002 Bima P002 HRD P003 Candra P003 Produksi • Bentuk normalisasi ketiga dari tabel tersebut adalah Relasi: Proyek1 Relasi: Proyek2 KodeProyek NamaProyek KodePegawai KodePegawai NamaPegawai KodeBagian P001 XXX N001 N001 Adi B01 P002 YYY N001 P002 YYY N002 N002 Bima B02 P003 ZZZ N002 N003 Candra B03 P003 ZZZ N003 Relasi: Proyek3 KodeBagian NamaBagian B01 EDP B02 HRD B03 Produksi NRP Nama MataKuliah NIP Dosen 5103100101 Ali Basis Data 320001123 Ir.X 5103100102 Sita 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? • Tabel soal latihan 3 sudah memenuhi normalisasi pertama • Bentuk normalisasi kedua dari tabel tersebut adalah Relasi: Mahasiswa2 Relasi: Mahasiswa1 NRP Nama NRP MataKuliah 5103100101 Ali 5103100101 Basis data 5103100102 Sita 5103100101 Basis data 5103100103 Adi 5103100101 RPL 5103100102 AI Relasi: Mahasiswa3 NRP NIP Dosen 5103100101 320001123 Ir. X 5103100102 320001123 Ir. Y 5103100102 320011133 Ir. Y 5103100103 320021010 Ir. Z • Bentuk normalisasi ketiga dari tabel tersebut adalah Relasi: Mahasiswa2 Relasi: Mahasiswa1 NRP Nama KodeMatkul KodeMatkul MataKuliah 5103100101 Ali MT01 MT01 Basis data 5103100102 Sita MT02 MT02 RPL 5103100102 Sita MT02 Mt03 AI 5103100103 Adi MT03 Relasi: Mahasiswa3 NIP Dosen 320001123 Ir. X 320011133 Ir. Y 320021010 Ir. Z Tugas Basis Data Pilih salah satu soal berikut ini. KWITANSI NO KWIT TANGGAL 060001 060001 060002 060002 060055 060055 10-10-2006 10-10-2006 11-10-2006 11-10-2006 5-10-2006 5-10-2006 AJARAN SEMES NIS 2006/2007 2006/2007 2006/2007 2006/2007 2006/2007 2006/2007 GANJIL GANJIL GANJIL GANJIL GENAP GENAP 0511500001 0511500001 0522500001 0522500001 0511500001 0511500001 NAMA MAMOX MAMOX BAGONG BAGONG MAMOX MAMOX NO. REK 1101 1102 1101 1102 1101 1102 NAMA REK DAFTAR ULANG S.P.P DAFTAR ULANG S.P.P DAFTAR ULANG S.P.P 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! JUMLAH 50.000 2.500.000 50.000 2.500.000 50.000 2.500.000 Dari Tabel di atas lakukan proses normalisasi Jika dokumen di atas di bentuk tabel! PropertyNo iDate iTime PG4 10-Apr-06 10.00 PG4 20-Apr-06 09.00 PG4 25-Apr-06 12.00 PG16 20-Apr-06 13.00 PG16 28-Apr-06 14.00 pAddress 6 Lawrence St, Glasgow 6 Lawrence St, Glasgow 6 Lawrence St, Glasgow 5 Lawrence St, Glasgow 5 Lawrence St, Glasgow Comments StaffNo StaffName CarReg Ok SG37 Ann Beech B 10 VE In good order SG14 David Ford B 360 KT Ok SG14 David Ford B 603 SS Replace living Room carpet Good condition SG14 David Ford B 360 KT SG37 Ann Beech B I660 SS FAKTUR No Tgl Jatuh Tgl Faktur Faktur Tempo 060001 10-10-2006 15-10-2006 Nama Alamat Pelanggan Mamox Tangerang Telp 5853753 B1 060002 11-10-2006 16-10-2006 Bagong Jakarta 5853751 060002 11-10-2006 16-10-2006 Bagong Jakarta 060055 25-11-2006 01-12-2006 Mamox 060055 25-11-2006 01-12-2006 Kd. Brg Nama barang Satuan Qty Harga Jumlah Jagung Kg 10 2.000 20.000 B1 Jagung Kg 20 2.200 44.000 5853751 B3 Singkong Kg 2 1.500 3.000 Tangerang 5853753 B1 Jagung Kg 10 2.000 20.000 Mamox Tangerang 5853753 B2 Ubi Kg 10 1.000 10.000 060055 25-11-2006 20-12-2006 Mamox Tangerang 5853753 B3 Singkong Kg 20 2.000 44.000 060100 01-12-2006 20-12-2006 Gebo Bekasi 5853755 B4 Talas Kg 50 3.000 150.000 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!