NORMALISASI DATA IYAN GUSTIANA UNIKOM NORMALISASI Normalisasi merupakan

  • Slides: 40
Download presentation
NORMALISASI DATA IYAN GUSTIANA - UNIKOM

NORMALISASI DATA IYAN GUSTIANA - UNIKOM

NORMALISASI Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut

NORMALISASI Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi). Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

TUJUAN NORMALISASI Untuk menghilang kerangkapan data Untuk mengurangi kompleksitas Untuk mempermudah pemodifikasian data

TUJUAN NORMALISASI Untuk menghilang kerangkapan data Untuk mengurangi kompleksitas Untuk mempermudah pemodifikasian data

PROSES NORMALISASI Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa

PROSES NORMALISASI Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat. Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.

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

TAHAPAN NORMALISASI Tahap Normalisasi dimulai dari tahap paling ringan (1 NF) hingga paling ketat (5 NF) Biasanya hanya sampai pada tingkat 3 NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel -tabel yang berkualitas baik. Urutan: 1 NF, 2 NF, 3 NF, BCNF, 4 NF, 5 NF

BENTUK-BENTUK NORMAL 1. Bentuk Normal Tahap Pertama (1 st Normal Form / 1 NF)

BENTUK-BENTUK NORMAL 1. Bentuk Normal Tahap Pertama (1 st Normal Form / 1 NF) 2. Bentuk Normal Tahap Kedua (2 nd Normal Form / 2 NF) 3. Bentuk Normal Tahap (3 rd Normal Form / 3 NF) 4. Boyce-Code Normal Form (BCNF) 5. Bentuk Normal Tahap (4 th Normal Form / 4 NF) 6. Bentuk Normal Tahap (5 th Normal Form / 5 NF)

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

NORMALISASI Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb: 1. 2. 3. 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-Codd Normal Form (BCNF) (-akan dijelaskan kemudian-)

NORMALISASI Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak

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

TABEL UNIVERSAL Tabel Universal (Universal / Star Table) sebuah tabel yang merangkum semua kelompok

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

TABEL UNIVERSAL No-Mhs Nm-Mhs Jurusan Kd-MK Nama-MK Kd-Dosen Nm_Dosen Nilai 2683 Welli MI MI

TABEL UNIVERSAL No-Mhs Nm-Mhs Jurusan Kd-MK Nama-MK Kd-Dosen Nm_Dosen Nilai 2683 Welli MI MI 350 MI 465 Manajemen Basis Data Analisis Prc. Sistem B 104 B 317 Ati Dita A B 5432 Bakri AK MI 350 AK 201 DP 300 Manajemen Basis Data Akuntansi Keuangan Dasar Pemasaran B 104 D 310 B 212 Ati Lia Lola C B A

NORMAL 1 (1 ST NORMAL FORM) Aturan : üTidak adanya atribut multi-value, atribut komposit

NORMAL 1 (1 ST NORMAL FORM) Aturan : üTidak adanya atribut multi-value, atribut komposit atau kombinasinya. üMendefinisikan atribut kunci. üSetiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)

TABEL BELUM NORMAL NIP Nama Jabatan Keahlian Lama 001 Man Analisis Acces 6 tahun

TABEL BELUM NORMAL NIP Nama Jabatan Keahlian Lama 001 Man Analisis Acces 6 tahun Oracle 3 tahun 002 Rizal Analisis My. SQL 2 tahun Oracle 4 tahun 003 Hanif Programer C 4 tahun VB 5 tahun Java 8 tahun Pada tabel di atas, contoh data belum ternormalisasi sehingga dapat diubah ke dalam bentuk 1 NF dengan cara membuat setiap baris berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu nilai

NORMAL KE 1 (1 NF) NIP 001 002 003 003 Nama Man Rizal Hanif

NORMAL KE 1 (1 NF) NIP 001 002 003 003 Nama Man Rizal Hanif Jabatan Analisis Programer Keahlian Acces Oracle My. SQL Oracle C VB Java Lama 6 tahun 3 tahun 2 tahun 4 tahun 5 tahun 8 tahun

CONTOH 2 TABEL BELUM NORMAL Id_Sales Nama_Sales Telepon S 001 Ria 3513214, 3541245 S

CONTOH 2 TABEL BELUM NORMAL Id_Sales Nama_Sales Telepon S 001 Ria 3513214, 3541245 S 002 Anti 6548143, 5825143, 7563249 S 003 Ani 085337732666 S 004 Maya 6836592 S 005 Wulan 6823928, 081234321454

NORMAL KE 1 (1 NF) Id_Sales S 001 S 002 S 003 S 004

NORMAL KE 1 (1 NF) Id_Sales S 001 S 002 S 003 S 004 S 005 Nama_Sales Ria Anti Ani Maya Wulan Telepon 3513214 3541245 6548143 5825143 7563249 085337732666 6836592 6823928 081234321454

FUNCTIONAL DEPENDENCY Notasi: A B A dan B adalah atribut dari sebuah tabel. Berarti

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 Ø Notasi: A B atau A x B Adalah kebalikan dari notasi sebelumnya.

FUNCTIONAL DEPENDENCY Contoh tabel nilai

FUNCTIONAL DEPENDENCY Contoh tabel nilai

FUNCTIONAL DEPENDENCY Functional Dependency dari tabel nilai Ø Nrp nama. Mhs Karena untuk setiap

FUNCTIONAL DEPENDENCY Functional Dependency dari tabel nilai Ø Nrp nama. Mhs Karena untuk setiap nilai nrp yang sama, maka nilai nama. Mhs juga sama. {Namakul, nrp} Ni. Huruf Karena attribut Nihuruf tergantung pada Namakul dan nrp secara bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama, maka Ni. Huruf juga sama, karena Namakul dan nrp merupakan key (bersifat unik). Ø Nama. Kul nrp Ø Nrp Ni. Huruf Ø

CONTOH FD 1 Andaikan ada tabel: NILAI (NIM, Nm-mk, Semester, Nilai) Atribut kunci: NIM,

CONTOH FD 1 Andaikan ada tabel: NILAI (NIM, Nm-mk, Semester, Nilai) Atribut kunci: NIM, Nm-mk, Semester Maka Functional Dependency: NIM, Nm-mk, Semester -> Nilai

NORMALISASI KEDUA (2 ND NORMAL FORM) Aturan : üSudah memenuhi dalam bentuk normal kesatu

NORMALISASI KEDUA (2 ND NORMAL FORM) Aturan : üSudah memenuhi dalam bentuk normal kesatu (1 NF) üSemua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci üJika ada ketergantungan parsial maka atribut tersebut harus dipisah pada tabel yang lain üPerlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi

CONTOH 2 (COMPOSITE) Jadwal. Kuliah Kodekul Nama. Kul Dosen Kelas Jadwal Dimana nilai pada

CONTOH 2 (COMPOSITE) Jadwal. Kuliah Kodekul Nama. Kul 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 Jadwal. Hari dan Jadwal. Jam sbb: Ø Jadwal. Kuliah Kodekul Nama. Kul Dosen Kelas Jadwal. Hari Jadwal. Jam

RUMUS SATU 2 NF Diketahui tabel R=(A, C, D, E) ; A, B kunci

RUMUS SATU 2 NF Diketahui tabel R=(A, C, D, E) ; A, B kunci utama (primary key) dengan FD : A & C, D, E maka tabel R memenuhi 2 NF sebab : A & C, D, E berarti : A & C, A & D, A & E Jadi semua atribut bukan kunci utama tergantung penuh pada (A).

RUMUS DUA 2 NF Diketahui tabel R=(A, B, C, D, E) ; A, B

RUMUS DUA 2 NF Diketahui tabel R=(A, B, C, D, E) ; A, B kunci utama (primary key) dengan FD : A, B & C, D, E maka tabel R memenuhi 2 NF sebab : A, B & C, D, E berarti : A, B & C, A, B & D dan A, B & E Jadi semua atribut bukan kunci utama tergantung penuh pada (A, B).

RUMUS TIGA 2 NF Bagaimana bila R = (A, B, C, D, E) tetapi

RUMUS TIGA 2 NF Bagaimana bila R = (A, B, C, D, E) tetapi dengan FD : (A, B) & (C, D) dan B & E. Apakah memenuhhi 2 NF ? Jelas bahwa R bukan 2 NF karena ada atribut E yang bergantung hanya pada atribut B saja dan bukan terhadap (A, B). Dari FD : (A, B) & (C, D) juga mencerminkan bahwa hanya C dan D saja yang bergantung secara fungsional terhadap (A, B), tidak untuk E. Jadi bukan 2 NF. Untuk mengubah menjadi 2 NF, lakukan dekomposisi menjadi : R 1 = (A, B, C, D) dan R 2 = (B, E). Tampak R 1 dan R 2 memenuhi 2 NF.

CONTOH SOAL NIP Nama Jabatan Keahlian Lama 001 Man Analisis Acces 6 tahun Oracle

CONTOH SOAL NIP Nama Jabatan Keahlian Lama 001 Man Analisis Acces 6 tahun Oracle 3 tahun 002 Rizal Analisis My. SQL 2 tahun Oracle 4 tahun 003 Hanif Programer C 4 tahun VB 5 tahun Java 8 tahun

NORMAL 1 (1 NF) NIP 001 Nama Man Jabatan Analisis Keahlian Acces Lama 6

NORMAL 1 (1 NF) NIP 001 Nama Man Jabatan Analisis Keahlian Acces Lama 6 tahun 001 Man Analisis Oracle 3 tahun 002 Rizal Analisis My. SQL 2 tahun 002 Rizal Analisis Oracle 4 tahun 003 Hanif Programer C 4 tahun 003 Hanif Programer VB 5 tahun 003 Hanif Programer Java 8 tahun

NORMAL 2 (2 NF) NIP Nama Jabatan 001 Man Analisis 002 Rizal Analisis 003

NORMAL 2 (2 NF) NIP Nama Jabatan 001 Man Analisis 002 Rizal Analisis 003 Hanif Programer NIP Keahlian Lama 001 Acces 6 tahun 001 Oracle 3 tahun 002 My. SQL 2 tahun 002 Oracle 4 tahun 003 C 4 tahun 003 VB 5 tahun 003 Java 8 tahun

CONTOH SOAL 2 KSupplier Kkota KBarang JBarang S 01 10 Jakarta B 01 100

CONTOH SOAL 2 KSupplier Kkota KBarang JBarang S 01 10 Jakarta B 01 100 B 02 150 B 03 200 S 02 20 Surabaya B 02 250 B 04 200 S 03 30 Yogyakarta B 05 150 B 06 100

CONTOH Tabel berikut memenuhi 1 NF tapi tidak termasuk 2 NF: Mhs_nrp Ø mhs_nama

CONTOH Tabel berikut memenuhi 1 NF tapi tidak termasuk 2 NF: Mhs_nrp Ø mhs_nama mhs_alamat mk_nama mk_sks nihuruf Tidak memenuhi 2 NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan: {Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} Ø mk_kode mhs_nama mhs_alamat mk_nama mk_sks nihuruf Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2 NF

CONTOH (SAMB…) Functional dependencynya sbb: {Mhs_nrp, mk_kode} nihuruf Mhs_nrp {mhs_nama, mhs_alamat} Mk_kode {mk_nama, mk_sks}

CONTOH (SAMB…) Functional dependencynya sbb: {Mhs_nrp, mk_kode} nihuruf Mhs_nrp {mhs_nama, mhs_alamat} Mk_kode {mk_nama, mk_sks} fd 1 fd 2 fd 3 (fd 1) (fd 2) (fd 3) (mhs_nrp, mk_kode, nihuruf) Tabel Nilai (Mhs_nrp, mhs_nama, mhs_alamat) Tabel Mahasiswa (mk_kode, mk_nama, mk_sks) Tabel Mata. Kuliah

NORMALISASI KETIGA (3 RD NORMAL FORM) Aturan : Sudah berada dalam bentuk normal kedua

NORMALISASI KETIGA (3 RD NORMAL FORM) Aturan : Sudah berada dalam bentuk normal kedua (2 NF) ü Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci lainnya). ü

CONTOH Tabel berikut memenuhi 2 NF, tapi tidak memenuhi 3 NF: Mahasiswa Nrp Nama

CONTOH Tabel berikut memenuhi 2 NF, tapi tidak memenuhi 3 NF: Mahasiswa Nrp Nama Alm_Jalan Alm_Kota Alm_Provinsi Alm_Kodepos Ø karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos): alm_kodepos {alm_Provinsi, alm_kota} Ø Sehingga tabel tersebut perlu didekomposisi menjadi: Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos) Kodepos (alm_kodepos, alm_provinsi, alm_kota)

Tabel-tabel yang memenuhi kriteria normalisasi ketiga, sudah siap diimplementasikan. Sebenarnya masih ada lagi bentuk

Tabel-tabel yang memenuhi kriteria normalisasi ketiga, sudah siap diimplementasikan. Sebenarnya masih ada lagi bentuk normalisasi yang lain; Normalisasi Boyce. Codd, 4 NF, 5 NF, hanya saja jarang dipakai. Pada kebanyakan kasus, normalisasi hanya sampai ketiga.

STUDI KASUS NORMALISASI DATA Untuk mendapatkan hasil yang paling normal, maka proses normalisasi dimulai

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 : No. Pegawai, Nama. Pegawai, Golongan, Besar. Gaji.

NORMALISASI PERTAMA Solusinya hilangkan duplikasi dengan mencari ketergantungan parsial. menjadikan field-field menjadi tergantung pada

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 No. Proyek dan No. Pegawai, maka langkah kemudian dicari field-field mana yang tergantung pada No. Proyek dan mana yang tergantung pada No. Pegawai. NP 001 BRR NP 002 PEMDA 900. 000

NORMALISASI KEDUA Field-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya No.

NORMALISASI KEDUA Field-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya No. Proyek menjelaskan Nama. Proyek dan No. Pegawai menjelaskan Nama. Pegawai, Golongan dan Besar. Gaji.

NORMALISASI KEDUA TABEL PROYEK TABEL PEGAWAI 900. 000

NORMALISASI KEDUA TABEL PROYEK TABEL PEGAWAI 900. 000

Untuk membuat hubungan antara dua tabel, dibuat suatu tabel yang berisi key-key dari tabel

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 Besar. Gaji tergantung kepada Golongan

NORMALISASI KETIGA Pada tabel diatas masih terdapat masalah, bahwa Besar. Gaji tergantung kepada Golongan nya. Padahal disini Golongan bukan merupakan field kunci. Artinya kita harus memisahkan field non-kunci Golongan dan Besar. Gaji yang tadinya tergantung secara parsial kepada field kunci No. Pegawai, untuk menghilangkan ketergantungan transitif.

TABEL PROYEK TABEL PEGAWAI TABEL GOLONGAN TABEL PROYEKPEGAWAI

TABEL PROYEK TABEL PEGAWAI TABEL GOLONGAN TABEL PROYEKPEGAWAI