24
Normalisasi Basis Normalisasi Basis Data Data

Normalisasi Basis Data

Embed Size (px)

DESCRIPTION

Normalisasi Basis Data. Normalisasi. Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan. Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF) - PowerPoint PPT Presentation

Citation preview

Normalisasi Basis DataNormalisasi Basis Data

NormalisasiNormalisasi

Normalisasi Normalisasi adalah proses pembentukan adalah proses pembentukan struktur basis data sehingga sebagian besar struktur basis data sehingga sebagian besar ambiguity ambiguity bisa dihilangkan. bisa dihilangkan.

Tahap Normalisasi dimulai dari tahap paling Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF) ringan (1NF) hingga paling ketat (5NF)

Biasanya hanya sampai pada tingkat 3NF atau Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik. menghasilkan tabel-tabel yang berkualitas baik.

NormalisasiNormalisasi

Sebuah tabel dikatakan baik (efisien) atau normal jika Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:memenuhi 3 kriteria sbb:

1.1. Jika ada dekomposisi (penguraian) tabel, maka Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (dekomposisinya harus dijamin aman (Lossless-Join Lossless-Join DecompositionDecomposition). Artinya, setelah tabel tersebut diuraikan / ). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama tersebut bisa menghasilkan tabel semula dengan sama persis.persis.

2.2. Terpeliharanya ketergantungan fungsional pada saat Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).perubahan data (Dependency Preservation).

3.3. Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan dijelaskan kemudian-)dijelaskan kemudian-)

NormalisasiNormalisasi

Jika kriteria ketiga (BCNF) tidak dapat Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).ketiga (3rd Normal Form / 3NF).

Tabel UniversalTabel Universal

Tabel Universal (Tabel Universal (Universal / Star TableUniversal / Star Table) ) sebuah tabel yang merangkum semua sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, kelompok data yang saling berhubungan, bukan merupakan tabel yang baik. bukan merupakan tabel yang baik.

Misalnya:

Tabel UniversalTabel Universal

Functional DependencyFunctional Dependency

Notasi: A Notasi: A B B A dan B adalah atribut dari sebuah tabel. Berarti A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional A menentukan B atau B secara fungsional A menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 tergantung pada A, jika dan hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai baris data dengan nilai A yang sama, maka nilai B juga sama B juga sama

Notasi: A Notasi: A B B atau A xatau A x B B

Adalah kebalikan dari notasi sebelumnya.Adalah kebalikan dari notasi sebelumnya.

Functional DependencyFunctional Dependency

Contoh tabel nilaiContoh tabel nilai

Functional DependencyFunctional Dependency

Functional Dependency dari tabel nilaiFunctional Dependency dari tabel nilai Nrp Nrp namaMhs namaMhs

Karena untuk setiap nilai nrp yang sama, maka nilai namaMhs Karena untuk setiap nilai nrp yang sama, maka nilai namaMhs juga sama.juga sama.

{Namakul, nrp} {Namakul, nrp} NiHuruf NiHuruf

Karena attribut Nihuruf tergantung pada Namakul dan nrp secara Karena attribut Nihuruf tergantung pada Namakul dan nrp secara bersama-sama. Dalam arti lain untuk Namakul dan nrp yang bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama, maka NiHuruf juga sama, karena Namakul dan nrp sama, maka NiHuruf juga sama, karena Namakul dan nrp merupakan key (bersifat unik).merupakan key (bersifat unik).

NamaKul NamaKul nrp nrp Nrp Nrp NiHuruf NiHuruf

Bentuk-bentuk NormalBentuk-bentuk Normal

1.1. Bentuk Normal Tahap Pertama (1st Normal Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)Form / 1NF)

2.2. Bentuk Normal Tahap Kedua (2nd Normal Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)Form / 2NF)

3.3. Bentuk Normal Tahap (3rd Normal Form / Bentuk Normal Tahap (3rd Normal Form / 3NF)3NF)

4.4. Boyce-Code Normal Form (BCNF)Boyce-Code Normal Form (BCNF)5.5. Bentuk Normal Tahap (4th Normal Form / 4NF)Bentuk Normal Tahap (4th Normal Form / 4NF)6.6. Bentuk Normal Tahap (5th Normal Form / 5NF)Bentuk Normal Tahap (5th Normal Form / 5NF)

Bentuk Normal Tahap Pertama Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)(1st Normal Form / 1NF)

Bentuk normal 1NF terpenuhi jika sebuah Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak tabel tidak memiliki atribut bernilai banyak ((multivalued attributemultivalued attribute), atribut composite ), atribut composite atau kombinasinya dalam domain data atau kombinasinya dalam domain data yang sama. yang sama.

Setiap atribut dalam tabel tersebut harus Setiap atribut dalam tabel tersebut harus bernilai bernilai atomicatomic (tidak dapat dibagi-bagi (tidak dapat dibagi-bagi lagi) lagi)

Contoh 1Contoh 1

Misal data mahasiswa sbb:Misal data mahasiswa sbb:

Atau:Atau:

Tabel-tabel di atas tidak memenuhi syarat 1NFTabel-tabel di atas tidak memenuhi syarat 1NF

Contoh 1Contoh 1

Didekomposisi menjadi:Didekomposisi menjadi: Tabel MahasiswaTabel Mahasiswa

Tabel HobiTabel Hobi

Contoh 2 (composite)Contoh 2 (composite)

JadwalKuliahJadwalKuliah

KodekulKodekul NamaKulNamaKul DosenDosen KelasKelas JadwalJadwal

Dimana nilai pada atribut jadwal berisi gabungan antara Dimana nilai pada atribut jadwal berisi gabungan antara Hari dan Jam.Hari dan Jam.

Jika asumsi hari dan jam memegang peranan penting Jika asumsi hari dan jam memegang peranan penting dalam sistem basis data, maka atribut Jadwal perlu dalam sistem basis data, maka atribut Jadwal perlu dipisah sehingga menjadi JadwalHari dan JadwalJam dipisah sehingga menjadi JadwalHari dan JadwalJam sbb:sbb:

JadwalKuliahJadwalKuliah

KodekulKodekul NamaKulNamaKul DosenDosen KelasKelas JadwalHariJadwalHari JadwalJamJadwalJam

Bentuk Normal Tahap Kedua Bentuk Normal Tahap Kedua (2nd Normal Form)(2nd Normal Form)

Bentuk normal 2NF terpenuhi dalam sebuah Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary memiliki Functional Dependency pada primary keykey

Sebuah tabel tidak memenuhi 2NF, jika ada Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key) tergantung pada sebagian dari primary key)

Jika terdapat atribut yang tidak memiliki Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan atribut tersebut harus dipindah atau dihilangkan

ContohContoh

Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:

Mhs_nrpMhs_nrp mhs_namamhs_nama mhs_alamatmhs_alamat mk_kodemk_kode mk_namamk_nama mk_sksmk_sks nihurufnihuruf

Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan:dianggap sebagai primary key sedangkan:{Mhs_nrp, mk_kode}{Mhs_nrp, mk_kode} mhs_namamhs_nama

{Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} mhs_alamatmhs_alamat

{Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} mk_namamk_nama

{Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} mk_sksmk_sks

{Mhs_nrp, mk_kode}{Mhs_nrp, mk_kode} nihurufnihuruf

Tabel di atas perlu didekomposisi menjadi beberapa tabel Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF yang memenuhi syarat 2NF

ContohContoh

Functional dependencynya sbb:Functional dependencynya sbb:{Mhs_nrp, mk_kode} nihuruf (fd1)

Mhs_nrp {mhs_nama, mhs_alamat} (fd2)

Mk_kode {mk_nama, mk_sks} (fd3)

fd1 (mhs_nrp, mk_kode, nihuruf) Tabel Nilaifd2 (Mhs_nrp, mhs_nama, mhs_alamat) Tabel Mahasiswafd3 (mk_kode, mk_nama, mk_sks) Tabel MataKuliah

Bentuk Normal Tahap Ketiga (3rd Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF) Normal Form /3NF)

Bentuk normal 3NF terpenuhi jika telah Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika memenuhi bentuk 2NF, dan jika tidak adatidak ada atribut atribut non primary key non primary key yang memiliki yang memiliki ketergantungan terhadap atribut ketergantungan terhadap atribut non primary non primary key key yang lainnya. yang lainnya.

Untuk setiap Functional Dependency dengan Untuk setiap Functional Dependency dengan notasi X notasi X A, maka: A, maka:

• X harus menjadi superkey pada tabel tsb.X harus menjadi superkey pada tabel tsb.• Atau A merupakan bagian dari primary key pada tabel Atau A merupakan bagian dari primary key pada tabel tsb.tsb.

ContohContoh

Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:

Mahasiswa

NrpNrp NamaNama Alm_JalanAlm_Jalan Alm_KotaAlm_Kota Alm_ProvinsiAlm_Provinsi Alm_KodeposAlm_Kodepos

karena masih terdapat atribut karena masih terdapat atribut non primary key non primary key (yakni (yakni alm_kota alm_kota dan dan alm_Provinsialm_Provinsi) yang memiliki ketergantungan terhadap atribut ) yang memiliki ketergantungan terhadap atribut non primary key non primary key yang lain (yakni yang lain (yakni alm_kodeposalm_kodepos):):

alm_kodepos {alm_Provinsi, alm_kota}

Sehingga tabel tersebut perlu didekomposisi menjadi:Sehingga tabel tersebut perlu didekomposisi menjadi:Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)

Kodepos (alm_kodepos, alm_provinsi, alm_kota)

Boyce-Code Normal Form Boyce-Code Normal Form (BCNF)(BCNF)

Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap setiap functional dependencyfunctional dependency terhadap setiap atribut terhadap setiap atribut atau gabungan atribut dalam bentuk:atau gabungan atribut dalam bentuk: X X Y maka Y maka X X adalah adalah super keysuper key

tabel tersebut harus di-dekomposisi berdasarkan tabel tersebut harus di-dekomposisi berdasarkan functional dependency functional dependency yang ada, sehingga X menjadi yang ada, sehingga X menjadi super key super key dari tabel-tabel hasil dekomposisi dari tabel-tabel hasil dekomposisi

Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X Perbedaannya, untuk functional dependency X A, A, BCNF tidak membolehkan A sebagai bagian dari primary BCNF tidak membolehkan A sebagai bagian dari primary key.key.

Bentuk Normal Tahap Keempat Bentuk Normal Tahap Keempat (4th Normal Form /4NF)(4th Normal Form /4NF)

Bentuk normal 4NF terpenuhi dalam Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah memiliki lebih dari sebuah multivalued multivalued atributeatribute

Untuk setiap Untuk setiap multivalued dependencies multivalued dependencies (MVD) juga harus merupakan (MVD) juga harus merupakan functional functional dependenciesdependencies

ContohContoh

Misal, tabel berikut tidak memenuhi 4NF:Misal, tabel berikut tidak memenuhi 4NF:

Setiap employee dapat bekerja di lebih dari project dan dapat Setiap employee dapat bekerja di lebih dari project dan dapat memiliki lebih dari satu skill. Untuk kasus seperti ini tabel memiliki lebih dari satu skill. Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi:tersebut harus di-dekomposisi menjadi:

(Employee, Project)(Employee, Skill)

Bentuk Normal Tahap Keempat Bentuk Normal Tahap Keempat (5th Normal Form /5NF)(5th Normal Form /5NF)

Bentuk normal 5NF terpenuhi jika tidak dapat Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah memiliki sebuah lossless decomposition lossless decomposition menjadi menjadi tabel-tabel yg lebih kecil.tabel-tabel yg lebih kecil.

Jika 4 bentuk normal sebelumnya dibentuk Jika 4 bentuk normal sebelumnya dibentuk berdasarkan berdasarkan functional dependencyfunctional dependency, 5NF , 5NF dibentuk berdasarkan konsep dibentuk berdasarkan konsep join dependencejoin dependence. . Yakni apabila sebuah tabel telah di-dekomposisi Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel digabungkan lagi (join) untuk membentuk tabel semula semula

SelesaiSelesai

Terima kasihTerima kasih