02/12/2010 Normalisasi • Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan. • Digunakan untuk memastikan bahwa database yang dibuat berkualitas baik • Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF) • Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Normalisasi (Pert. 8) Oleh : Umi Laili Yuhana, S.Kom, M.Sc. Sarwosri, S.Kom, M.T. Dr. Ir. Siti Rochimah BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 1 Normalisasi 2. 3. Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF). 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-) BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 2 Normalisasi Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb: 1. BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 3 Tabel Universal BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 4 Tabel Universal Tabel Universal (Universal / Star Table) sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang baik. Misalnya: BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 5 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 6 1 02/12/2010 Functional Dependency Functional Dependency • 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 Contoh tabel nilai Notasi: A B atau A x B Adalah kebalikan dari notasi sebelumnya. BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 7 Functional Dependency Bentuk-bentuk Normal 1. Bentuk Normal Tahap Pertama (1st Normal Form / 1NF) 2. Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF) 3. Bentuk Normal Tahap (3rd Normal Form / 3NF) 4. Boyce-Code Normal Form (BCNF) 5. Bentuk Normal Tahap (4th Normal Form / 4NF) 6. Bentuk Normal Tahap (5th Normal Form / 5NF) Functional Dependency dari tabel nilai Nrp namaMhs Karena untuk setiap nilai nrp yang sama, maka nilai namaMhs juga sama. {Namakul, nrp} NiHuruf Karena attribut Nihuruf tergantung pada Namakul dan nrp secara bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama, maka NiHuruf juga sama, karena Namakul dan nrp merupakan key (bersifat unik). NRP NamaKul Nrp NiHuruf BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 8 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 9 Contoh 1 (multi value atribut*) Bentuk Normal Tahap Pertama (1st Normal Form / 1NF) • Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalam domain data yang sama. • Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi) 10 Misal data mahasiswa sbb: NRP Nama Hobi 12020001 Heri Susanto Sepakbola, Membaca Komik, Berenang 12020013 Siti Zulaiha Memasak, membuat program komputer 12020018 Heri Susanto Membuat program Komputer 12020015 Dini Susanti Menjahit, Membuat Roti NRP Atau: Nama Hobi1 12020001 Heri Susanto Sepakbola 12020013 Siti Zulaiha Memasak 12020018 Heri Susanto Membuat Program Komputer 12020015 Dini Susanti Menjahit Hobi2 Membaca Komik Hobi3 Berenang Membuat Program Komputer Membuat Roti Tabel-tabel di atas tidak memenuhi syarat 1NF BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 11 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 12 *Multi value atribut adalah atribut yang memiliki lebih dari satu nilai 2 02/12/2010 Contoh 2 (composite) Tabel yang memenuhi 1NF JadwalKuliah NRP Nama Hobi 12020001 Heri Susanto Sepakbola 12020001 Heri Susanto Membaca Komik 12020001 Heri Susanto Berenang 12020013 Siti Zulaiha Memasak 12020013 Siti Zulaiha Membuat program Komputer 12020018 Heri Susanto Membuat Program Komputer 12020015 Dini Susanti Menjahit 12020015 Dini Susanti Membuat Roti Kodekul NamaKul Dosen Kelas Jadwal Dimana nilai pada atribut jadwal berisi gabungan antara Hari dan Jam. Jika asumsi hari dan jam memegang peranan penting dalam sistem basis data, maka atribut Jadwal perlu dipisah sehingga menjadi JadwalHari dan JadwalJam sbb: JadwalKuliah Kodekul BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 NamaKul Bentuk Normal Tahap Kedua (2nd Normal Form) JadwalHari JadwalJam 14 Contoh Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF: Mhs_nrp mhs_nama mhs_alamat 15 mk_kode mk_nama mk_sks nihuruf Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan: {Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 Kelas BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 13 • Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary key • Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key) • Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan Dosen mhs_nama mhs_alamat mk_nama mk_sks nihuruf Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 16 Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF) Contoh Functional dependencynya sbb: {Mhs_nrp, mk_kode} nihuruf Mhs_nrp {mhs_nama, mhs_alamat} Mk_kode {mk_nama, mk_sks} fd1 fd2 fd3 • Bentuk normal 3NF terpenuhi (fd1) (fd2) (fd3) – jika telah memenuhi bentuk 2NF, dan – jika tidak ada atribut yang bukan kunci memiliki ketergantungan transitif (tidak secara langsung) pada primary key. (mhs_nrp, mk_kode, nihuruf) Tabel Nilai (Mhs_nrp, mhs_nama, mhs_alamat) Tabel Mahasiswa (mk_kode, mk_nama, mk_sks) Tabel MataKuliah BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 17 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 18 3 02/12/2010 Contoh Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF: No Pesanan No Urut Kode item Nama item 5001 001 P1 Pensil 5001 002 5002 001 5003 001 P2 P1 P2 Buku Tulis Tabel Pesanan No Pesanan No Urut Kode item Primary Key: No Pesanan + No Urut 5001 001 P1 5001 002 P2 5002 001 P1 5003 001 P2 Pensil Buku Tulis {No Pesanan, No Urut} Kode Item {No Pesanan, No Urut} Nama item Kode Item Nama item (Nama item tergantung pada kode item, Kode item bukan primary key dari tabel ini) Nama item bergantung pada No pesanan dan no urut secara tidak langsung, karena ia bergantung pada kode item Tabel berikut telah memenuhi 3NF Tabel Barang Kode item Nama item Primary Key: Kode item P1 Pensil P2 Buku Tulis Dengan kata lain ada atribut bukan primary key yang bergantung pada atribut yang bukan primary key Solusi: nama dihilangkan dari tabel diINFORMATIKA atas dan BASIS DATA TEKNIK - ITS dibuat 2010/2011 tabel sendiri bersamaan denganGASAL kode item 19 Solusi: nama dihilangkan dari tabel diINFORMATIKA atas dan BASIS DATA TEKNIK - ITS dibuat 2010/2011 tabel sendiri bersamaan denganGASAL kode item 20 Contoh BCNF 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 maka X adalah super key • 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 . BCNF merupakan perbaikan bagi 3NF yang anomali. Siswa Kursus Tutor Anwar Bahasa Perancis Pierre Anwar Bahasa Inggris Richard Budi Bahasa Perancis Pierre Cecep Bahasa Inggris Suzanne • Tabel tersebut tidak melanggar 3NF • Seorang siswa dapat mengambil sejumlah kursus • Tutor hanya mengajar pada sebuah kursus, satu kursus bisa diajar oleh banyak tutor • Kunci kandidat: 21 Tutor Anwar Pierre Anwar Richard Budi Pierre Cecep Suzanne Tutor Kursus Pierre Bahasa Perancis Richard Bahasa Inggris Pierre Bahasa Perancis Suzanne Bahasa Inggris Solusi: dekomposisi tabel BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 22 Bentuk Normal Tahap Keempat (4th Normal Form /4NF) Memenuhi BCNF Siswa Solusi: dekomposisi tabel TUTOR KURSUS Hubungan ketergantungan Jika baris Cecep dihapus, Informasi suzanne sebagai tutor bahasa inggris akan hilang – Siswa + Kursus – Kursus + Tutor BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 SISWA • 4NF terpenuhi jika – telah memenuhi bentuk BCNF, – Tidak mengandung dua atribut atau lebih yang bernilai banyak 23 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 24 4 02/12/2010 Bentuk Normal Tahap Keempat (5th Normal Form /5NF) Contoh Misal, tabel berikut tidak memenuhi 4NF: Nama Pegawai Proyek Skill Jim 11, 6 Komunikasi, pemrogram mahir, negosiasi Mary 5, 11 Analisis, Desain Setiap pegawai dapat bekerja di lebih dari satu proyek dan dapat memiliki lebih dari satu skill. Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi: (Nama Pegawai, Proyek) (Nama Pegawai, Skill) BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 25 • Suatu tabel dikatakan tidak memenuhi 5NF jika ia atributnya saling bergantung dengan atribut lain • Bentuk normal 5NF terpenuhi jika data yang ada padanya tidak dapat didekomposisi lagi menjadi tabel yang 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 tabeltabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 26 Contoh Dealer Distributor Kendaraan PT Sumber Jaya Nissan Truk Nissan PT Sumber Jaya Toyota Toyota Kijang PT Sumber Jaya Toyota Truk Dyna PT Asterindo Nissan Sedan Nissan Tidak memenuhi 5NF Latihan Normalisasi •Pecah menjadi 3 tabel: •Deal_dist(Dealer, Distributor) •Dist_kend(Distributor,Kendaraan) •Deal_kend(Dealer, kendaraan) •Jika digabung menjadi satu akan kembali menjadi tabel diatas memenuhi 5NF BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 27 Soal Latihan (1) Pembahasan(1) NoOrder TglOrder Item1 Item2 Item3 Total TR001 10/01/20 06 P1 P2 P3 500.000 TR002 15/02/20 06 P3 P5 18/03/20 06 P1 TR003 P2 Bentuk Normal Pertama 300.000 200.000 Bagaimana bentuk normalisasinya? BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 28 29 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 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 30 5 02/12/2010 Soal Latihan(2) Pembahasan(2) • Tabel soal latihan 2 sudah memenuhi normalisasi pertama dan kedua tetapi melanggar normaslisasi tahap 3 • Bentuk normalisasi kedua dari tabel tersebut adalah Relasi: Proyek Relasi: Pegawai KodeProyek NamaPegawai Bagian P001 Adi EDP P002 Bima HRD P002 Adi EDP KodeProyek NamaPegawai NamaPegawai Bagian P003 Bima HRD P001 Adi Adi EDP P003 Candra Produksi P002 Bima Bima HRD P002 Adi Candra Produksi P003 Bima P003 Candra • Apakah sudah memenuhi bentuk normal ? • Bagaimana bentuk normalisasi tabel tersebut? BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 31 Soal Latihan(3) 32 Pembahasan (3) NRP Nama MataKuliah NIP Dosen 5103100101 Ali Basis Data 320001123 Ir.X 5103100102 Sita Basis Data 320001123 Ir.X 5103100102 Sita RPL 320011133 5103100103 Adi AI 320021010 • Tabel soal latihan 3 sudah memenuhi normalisasi pertama • Bentuk normalisasi kedua dari tabel tersebut adalah Relasi: Mahasiswa2 Relasi: Mahasiswa1 NRP Nama NRP Mata Kuliah Ir.Y 5103100101 Ali 5103100101 Basis data Ir.Z 5103100102 Sita 5103100102 Basis data 5103100103 Adi 5103100102 RPL 5103100103 AI • Apakah sudah memenuhi bentuk normalisasi? • Bagaimana bentuk normalisasi tabel tersebut? • Primary key: NRP+MataKuliah Relasi: Mahasiswa3 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 33 Pembahasan (3) Mata Kuliah NIP Dosen Basis Data 320001123 Ir. X RPL 320001133 Ir. Y AI 320021010 Ir. Z BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 34 Referensi • Relasi Mahasiswa1 dan mahasiswa2 telah memenuhi normalisasi tahap 2 • Relasi mahasiswa3 melanggar normalisasi tahap 3 yaitu Nama dosen bergantung pada NIP Relasi: Mata Kuliah Relasi: Mahasiswa3 Mata Kuliah NIP Mata Kuliah NIP Dosen Basis Data 320001123 Basis Data 320001123 Ir. X RPL 320001133 RPL 320001133 Ir. Y AI 320021010 AI 320021010 Ir. Z 1. Konsep & Tuntunan Praktis Basis Data, Abdul Kadir, penerbit Andi Yogyakarta 2. Rebecca M. Riordan. 2005. Designing Effective Database System. Addison Wesley Proffesional Chapter 2. Relasi: Dosen NIP Dosen 320001123 Ir. X 320011133 Ir. Y 320021010 Ir. Z BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 35 BASIS DATA TEKNIK INFORMATIKA - ITS GASAL 2010/2011 36 6