1.12k likes | 2.22k Views
Normalisasi Basis Data. Proses Rancangan Database (review). Mengumpulkan kebutuhan user/business Mengembangkan E-R Model berdasarkan kebutuhan user/business Konversikan E-R Model ke himpunan relasi ( tabel ) Normalisasikan relasi untuk menghilangkan anomali
E N D
Proses Rancangan Database (review) • Mengumpulkankebutuhan user/business • Mengembangkan E-R Model berdasarkankebutuhan user/business • Konversikan E-R Model kehimpunanrelasi (tabel) • Normalisasikanrelasiuntukmenghilangkananomali • Implementasikanke database denganmembuat table untuksetiaprelasi yang sudahternormalisasi
TujuanNormalisasi • Optimalisasistruktur-strukturtabel • Meningkatkankecepatan • Menghilangkanpemasukan data yang sama • Lebihefisiendalampenggunaan media penyimpanan • Mengurangiredundansi • Menghindarianomali (insertion anomalies, deletion anomalies, update anomalies). • Integritas data yang ditingkatkan
Normalisasi • Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data, teknik pengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi) • 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 Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb: 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-)
Normalisasi Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).
Tabel Universal Tabel Universal (Universal / Star Table) sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang baik. Misalnya:
Functional Dependency / Ketergantungan Fungsional • 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. • Notasi: A B atau A x B Adalah kebalikan dari notasi sebelumnya.
Functional Dependency Contoh tabel nilai
Functional Dependency 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). • NamaKul nrp • Nrp NiHuruf
Lossless – Join Decomposition • Pada tahap normalisasi sering kali terjadi pemecahan table kedalam bentuk dua atau lebih relasi / dekomposisi. • Syarat : Tidak ada informasi yang hilang ketika suatu relasi dipecah menjadi relasi-relasi lain.
Lossless – Join Decomposition Dibentuk kedalam dekomposisi tak hilang menjadi : Contoh : Pada relasi awal dapat diketahui informasi sebagai berikut : 95001 adalah ANDI program studi Ekonomi. Setelah proses dekomposisi tak hilang hasilnya adalah sama 95001 adalah ANDI dan 95001 program studi Ekonomi.
Bukan Lossless – Join Decomposition Dibentuk kedalam dekomposisi hilang menjadi : Contoh : Pada relasi awal dapat diketahui informasi sebagai berikut : 95001 adalah ANDI program studi Ekonomi. Setelah proses dekomposisi hilang hasilnya adalah 95001 bernama ANDI, tetapi ANDI dengan program studi Ekonomi atau Fisika?
Bentuk-bentuk Normal • Bentuk Normal Tahap Pertama (1st Normal Form / 1NF) • Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF) • Bentuk Normal Tahap (3rd Normal Form / 3NF) • Boyce-Code Normal Form (BCNF) • Bentuk Normal Tahap (4th Normal Form / 4NF) • Bentuk Normal Tahap (5th Normal Form / 5NF)
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)
Contoh 1 : Misal data mahasiswa sbb: Apakah tabel di atas sudah memenuhi syarat 1NF ?
Contoh 2 (composite) JadwalKuliah • 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
Bentuk Normal Tahap Kedua (2nd Normal Form) • 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
Contoh 1 : Misal data mahasiswa sbb: Apakah tabel di atas sudah memenuhi syarat 1NF ? Apakah tabel di atas sudah memenuhi syarat 2 NF ?
2 NF Didekomposisi menjadi: • Tabel Mahasiswa • Tabel Hobi
Contoh 2 : Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF: • Tidak memenuhi 2NF, karena {Npm, mk_kode}sebagai primary key, sedangkan: {Npm, mk_kode} mhs_nama {Npm, mk_kode} mhs_alamat {Npm, mk_kode} mk_nama {Npm, mk_kode} mk_sks {Npm, mk_kode} nihuruf • Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
Contoh Functional dependencynya sbb: Npm {mhs_nama, mhs_alamat} (fd1) {Npm, mk_kode} nihuruf (fd2) Mk_kode {mk_nama, mk_sks} (fd3) fd1 (Npm, mhs_nama, mhs_alamat) Tabel Mahasiswa fd2 (Npm, mk_kode, nihuruf) Tabel Nilai fd3 (Npm, mk_nama, mk_sks) Tabel MataKuliah
Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF) • Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya. • Untuk setiap Functional Dependency dengan notasi X A, maka: • X harus menjadi superkey pada tabel tsb. • A merupakan bagian dari primary key pada tabel tsb.
Contoh Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF: Mahasiswa • karena masih terdapat atribut non primary key (yakni kota dan Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni kodepos): kodepos {Provinsi, kota} • Sehingga tabel tersebut perlu didekomposisi menjadi: Mahasiswa (Npm, nama, alm_jalan, kodepos) Wilayah (kodepos, provinsi, kota)
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 • Semua kunci utama adalah kunci kandidat yang bersifat unik
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
Contoh Misal, tabel berikut tidak memenuhi 4NF : Setiap employee dapat bekerja di lebih dari project dan dapat memiliki lebih dari satu skill. Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi : (Employee, Project) (Employee, Skill)
Bentuk Normal Tahap Keempat (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
Soal Latihan (1) Bagaimana bentuk normalisasinya?
Pembahasan(1) Bentuk Normal Pertama / 1NF
Pembahasan(1) Bentuk Normal Kedua / 2NF Tabel Transaksi Tabel Order
Soal Latihan(2) • Apakah sudah memenuhi bentuk normal pertama • Bagaimana bentuk normalisasi tabel tersebut?
Soal Latihan(3) • Apakah sudah memenuhi bentuk normal pertama • Bagaimana bentuk normalisasi tabel tersebut?
Latihan • Berikutinicontoh basis data yang belumternormalisasi : Masalah : • Tidakperluberulang-ulang kali menyimpan data alamat, namabarang, danharga. • Redundancydapatmenimbulkanmasalah, yaitu data yang tidakkonsisten (pensile)