Normalisasi

686 views

Published on

Normalisasi

Published in: Engineering
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
686
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
37
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Normalisasi

  1. 1. NORMALISASI Sherly Christina, S.Kom., M.Kom
  2. 2. Pendahuluan  Perancangan basis data diperlukan agar: a. Basis data kompak dan efisien dalam penggunaan ruang penyimpanan b. Akses Cepat dan mudah dimanipulasi  Caranya: 1. Normalisasi terhadap struktur tabel-tabel 2. Membuat model Entity-Relationship
  3. 3. Definisi Normalisasi 1. Proses memperbaiki / membangun dengan model data relasional. 2. Proses pengelompokan data ke dalam bentuk tabel atau relasi untuk menyatakan entitas dan hubungan mereka sehingga terbentuk database yang mudah untuk dimodifikasi.
  4. 4. Definisi Normalisasi 3. Proses untuk mengidentifikasi kelompok atribut “tabel” yang memiliki ketergantungan yang sangat tinggi antara satu atribut dengan atribut lainnya. 4. Proses pengelompokan atribut-atribut dari suatu relasi sehingga membentuk WELL STRUCTURED RELATION.
  5. 5. Istilah-Istilah  Atribut Tabel  Key  Domain  Ketergantungan Fungsional
  6. 6. Atribut Tabel  Identik dengan istilah kolom data.  Contoh atribut pada Basis Data Akademik:  Tabel Mahasiswa : nim, nama_mhs, alamat_mhs, tgl_lahir  Tabel Dosen: nama_dos, alamat_dos  Tabel Kuliah: nama_kul, nama_kul, sks, semester  Tabel Nilai: nama_kul, nim, nama_mhs, indeks_nilai  Tabel Jadual: nama_kul, tempat, waktu, nama_dos
  7. 7. Atribut Tabel  Penamaannya unik, berdasarkan fungsinya pada setiap tabel.  Pengelompokkan atribut:  Key & Atribut Deskritif  Atribut Sederhana & Atribut Komposit  Atribut Bernilai tunggal & Atribut bernilai banyak  Atribut Harus Bernilai/Mandatory & Null  Atribut Turunan
  8. 8. Key & Atribut Deskriptif  Key : satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik.  3 macam key:  Superkey  Candidate Key  Key Primer (Primary Key)
  9. 9. Key & Atribut Deskriptif  Superkey: satu atau lebih atribut (kumpulan atribut) yang dapat membedakan setiap baris data dalam sebuah tabel secara unik.  Mungkin terdapat lebih dari 1 kumpulan atribut yang dapat menjadi superkey.
  10. 10. Key & Atribut Deskriptif  Contoh Superkey tabel mahasiswa:  (nim, nama_mhs, alamat_mhs, tgl_lahir)  (nim, nama_mhs, alamat_mhs)  (nim,nama_mhs)  (nama_mhs) jika bisa dijamin tidak ada nama mahasiswa yang mirip  (nim)
  11. 11. Key & Atribut Deskriptif  Candidate-Key : kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik.  Pada satu tabel mungkin ada lebih dari 1 candidate key.  Contoh candidate key tabel mahasiswa:  (nim)  (nama_mhs) jika dijamin tidak ada nilai yang sama utk kolom nama_mhs
  12. 12. Key & Atribut Deskriptif  Salah satu candidate-key dapat menjadi key primer (primary key).  Dengan syarat: Key tersebut sering dijadikan acuan Key tersebut ringkas Jaminan keunikan lebih baik  Primary key dari tabel Mahasiswa: (nim)
  13. 13. Key & Atribut Deskriptif  Atribut Deskriptif: atribut-atribut yang tidak menjadi anggota primary key  Atribut deskriptif tabel mahasiswa: nama_mhs, alamat_mhs, tgl_lahir
  14. 14. Domain  Domain: menekankan pada batas-batas nilai yang diperbolehkan bagi suatu atribut dengan mempertimbangkan kenyataan yang ada  Contoh: pada tabel kuliah: Atribut sks tipe datanya integer sks = 0; sks=-1; sks=100 invalid
  15. 15. KETERGANTUNGAN FUNGSIONAL (FUNCTIONAL DEPENDENCY)  Menggambarkan relationship/hubungan antara atribut-atribut dengan relasi.  Sebagai contoh: Jika A dan B adalah atribut- atribut dari relasi R. B dikatakan functionally dependent (bergantung fungsional) terhadap A.
  16. 16. Contoh (FUNCTIONAL DEPENDENCY)  Tabel Nilai
  17. 17. Functional Dependency dari tabel nilai  Nrp namaMhs Karena untuk setiap nilai nrp yang sama, nilai namaMhs juga sama.  {Namakul, nrp} NiHuruf Karena atribut 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
  18. 18. Kriteria Normalisasi  Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria berikut: 1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). setelah tabel tersebut didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut tetap dapat menghasilkan tabel semula dengan sama persis.
  19. 19. Kriteria Normalisasi 2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation). 3. Tidak melanggar Boyce-Code Normal Form (BCNF)
  20. 20. Kriteria Normalisasi  Jika kriteria BCNF tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form/3NF).
  21. 21. 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)
  22. 22. Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)  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)
  23. 23. Contoh untuk 1NF  Tabel mahasiswa berikut.  Atau  Tidak memenuhi syarat 1NF
  24. 24. Contoh untuk 1NF  Di-dekomposisi menjadi  Tabel Mahasiswa  Tabel Hobi
  25. 25. Contoh 2 (composite) 1NF  JadwalKuliah  Bila nilai data 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:
  26. 26. Bentuk Normal Tahap Kedua (2nd Normal Form)  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)
  27. 27. Bentuk Normal Tahap Kedua (2nd Normal Form)  Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan
  28. 28. Contoh 2NF  Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:  Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan:  {Mhs_nrp, mk_kode} mhs_nama  {Mhs_nrp, mk_kode} mhs_alamat  {Mhs_nrp, mk_kode} mk_nama  {Mhs_nrp, mk_kode} mk_sks  {Mhs_nrp, mk_kode} nihuruf  Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
  29. 29. Contoh 2NF  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 Nilai  fd2 (Mhs_nrp, mhs_nama, mhs_alamat) Tabel Mahasiswa  Fd3 (mk_kode, mk_nama, mk_sks) Tabel MataKuliah
  30. 30. 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.
  31. 31. Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF)  Untuk setiap Functional Dependency dengan notasi X A, maka:  X harus menjadi superkey pada tabel tersebut.  Atau A merupakan bagian dari primary key pada tabel tersebut.
  32. 32. Contoh untuk 3NF  Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:  Mahasiswa  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)
  33. 33. Boyce-Code Normal Form (BCNF)  BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X Y maka X adalah superkey  Tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi superkey dari tabel-tabel hasil dekomposisi
  34. 34. Boyce-Code Normal Form (BCNF)  Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X A, BCNF tidak membolehkan A sebagai bagian dari primary key.
  35. 35. 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
  36. 36. Contoh untuk 4NF  Misal, tabel berikut tidak memenuhi 4NF:  Setiap employee dapat bekerja dilebih dari project dan dapat memiliki lebih dari satu skill.Untuk kasus seperti ini tabel tersebut harus di- dekomposisi menjadi:  (Employee, Project)(Employee, Skill)
  37. 37. Bentuk Normal Tahap Keempat (5th Normal Form /5NF)  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
  38. 38. Terima Kasih

×