1 / 36

Sistem Basis Data

Sistem Basis Data. Danny Kriestanto , S.Kom ., M.Eng. Perancangan SBD dengan Model Relasional. Normalisasi 1 Normalisasi 2 Normalisasi 3 BCNF. Normalisasi (Ramon, 2004).

zinnia
Télécharger la présentation

Sistem Basis Data

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

  2. Perancangan SBD dengan Model Relasional • Normalisasi 1 • Normalisasi 2 • Normalisasi 3 • BCNF

  3. Normalisasi (Ramon, 2004) • Merupakan proses langkah demi langkah yang dapat reversibel (dapat dibalik) yang menjadikan sebuah himpunan yang diketahui dari suatu relasi digantikan oleh kumpulan berurutan dari relasi-relasi yang memiliki suatu struktur yang lebih sederhana dan biasa. • Setiap langkah dikenal sebagai suatu bentuk normal, mendefinisikan sebuah himpunan kriteria. • Karena reversibel, maka himpunan asli dari relasi dapat dikembalikan tanpa ada informasi yang hilang.

  4. Normalisasi (Hoffer,2002) • Sebuah proses normal untuk menentukan atribut mana yang harus dikelompokkan bersama-sama di dalam sebuah relasi.

  5. Tujuan Normalisasi • Normalisasi ditujukan untuk menciptakan relasi yang berstruktur baik, dengan memenuhi kondisi (Kadir,2009): • Mengandung redundansi sesedikit mungkin • Memungkinkan baris-baris dalam relasi disisipkan, dimodifikasi, dan dihapus tanpa menimbulkan kesalahan atau ketidakkonsistenan

  6. Redundansi • Data yang disimpan berkali-kali • Nama lainnya: duplikasi data

  7. Anomali Data • Anomali data akan terjadi pada proses insertion, deletion, dan update; yakni proses INSERT, DELETE, dan UPDATE. • Namun umumnya hanya ada dua, yakni: UPDATE dan INSERT/DELETE karena yang mengalami anomali DELETE pasti juga akan mengalami anomali INSERT • Dibutuhkan analisis tupel pada tabel untuk mengetahui apakah sebuah field/kolom akan mengalami anomali/kehilangan data ataukah tidak. • Perhatikan tiap-tiap tahap normalisasi!

  8. Anomali Data • Contoh kasus: PEMASOK_BARANG

  9. Anomali Data • Anomali Penyisipan (INSERT) • Kunci ada yang bernilai null • Ada data yang perlu diisikan ulang (redundansi tinggi) • Anomali Pengubahan (UPDATE) • Apabila ada satu sel yang berubah, tupel seluruh tabel dengan data yang mirip juga harus diubah (kerancuan data). Contoh: ada perusahaan yang pindah alamat • Anomali Penghapusan (DELETE) • Saat data dihapus ada data lain yang ikut hilang

  10. Anomali Data BARANG PEMASOK

  11. Dependensi • Dependensi sering digunakan dalam normalisasi. • Ada beberapa jenis: • Dependensi fungsional • Dependensi sepenuhnya • Dependensi parsial • Dependensi total • Dependensi transitif

  12. Dependensi Fungsional • Sering kali cukup disebut dependensi saja. • Merupakan kekangan antara dua buah atribut atau dua buah himpunan atribut. • Contoh: R(A, B, …) • B memiliki dependensi fungsional terhadap A apabila nilai A memiliki hubungan satu nilai dengan B

  13. Dependensi Fungsional • Notasi: AB • Dapat dibaca sebagai: • A panah B, • A menentukan B, atau • B tergantung secara fungsional pada A Item di sebelah kiri disebut penentu/determinan, sebelah kanan disebut dependen (“yang tergantung”)

  14. Dependensi Fungsional • Contoh kasus: PEMASOK_BARANG

  15. Dependensi Fungsional Berdasarkan tabel tersebut, diperoleh: • Kode  Nama_Brg • Kode Harga • Kode  Kd_Pemasok • Kode  Nm_Pemasok • Kd_Pemasok  Nm_Pemasok Setiap Kode pasti berhubungan dengan satu Nama_Brgbegitu juga antara Kode dan Harga. Begitu seterusnya. Misalnya: T-001 hanya cocok dengan 1 barang, yaitu TV SN 14” Catatan: Bagaimana kalau dibalik? Harga tidak menentukan barangnya, (karena banyak barang mempunyai harga yang sama); tapi satu jenis barang punya satu harga. • Nama_Brg  Kode • Nm_Pemasok  Kode_Pemasok

  16. Dependensi Fungsional • Perhatikan bagian ini: • Kode  Nama_Brg • Kode Harga • Kode  Kd_Pemasok • Kode  Nm_pemasok • Kd_Pemasok Nm_Pemasok Ternyata, Kode menentukan lebih dari satu atribut. Notasinya dapat diganti sebagai berikut: • Kode  {Nama_Brg, Harga, Kd_Pemasok} • Kode  Nm_Pemasok (yang ini bagaimana?)

  17. Dependensi Fungsional • Contoh lain: DOSEN_PENDIDIKAN • Sebuah atribut bisa tergantung lebih dari satu atribut. Contoh dalam kasus ini: {No_Dosen, Strata}  Lulus_Thn

  18. Dependensi Fungsional {No_Dosen, Strata}  Lulus_Thn • No_Dosensaja tidak menentukan Lulus_Thn, karena untuk D41 saja ada 2 tahun lulus. • Tapi pasangan No_DosendanStrata hanya memiliki satu nilai tahun lulus. • Contohnya: {D42, S3}  1999

  19. Dependensi Sepenuhnya • Dikatakan memiliki dependensi sepenuhnya jika memiliki dua syarat berikut: • B mempunyai dependensi fungsional terhadap A • B tidak mempunyai dependensi terhadap bagian dari A

  20. Dependensi Sepenuhnya • Lulus_Thn tidak bergantung pada No_Dosen saja karena: • Untuk dosen D41 memiliki 2 nilai Lulus_Thn yaitu: 1987 dan 1990. • Strata S1 memiliki 3 nilai, yakni: 1987, 1988, 1994 • Dengan demikian, Lulus_Thnbergantung sepenuhnya terhadap gabungan No_Dosendan Strata, dan tidak bergantung pada bagian dari {No_Dosen, Strata}. • Oleh karena itu Lulus_Thn dikatakan memiliki dependensi sepenuhnya terhadap {No_Dosen, Strata}

  21. Dependensi Parsial • Syaratnya adalah sebagai berikut: • B adalah atribut bukan kunci primer dan A adalah kunci primer • B memiliki dependensi terhadap bagian dari A Contoh: Pada tabel DOSEN_PENDIDIKAN memiliki kunci primer {No_Dosen, Strata}. Atribut Jns_Klmnbergantung pada No_Dosen namun tidak pada Strata, dikatakan memiliki dependensi parsial.

  22. Dependensi Total • Dikatakan dependensi total jika memenuhi syarat berikut: • B memiliki dependensi fungsional terhadap A • A mempunyai dependensi fungsional terhadap B • Notasinya : A ↔ B Seperti pada contoh : • Nm_Pemasok  Kd_Pemasok • Kd_Pemasok  Nm_Pemasok • Dapat ditulis : Kode ↔ Nm_Pemasok

  23. Dependensi Transitif • Dikatakan memiliki dependensi transitif jika: • C memiliki dependensi fungsional terhadap B • B memiliki dependensi fungsional terhadap A • Notasinya : A  B  C Pada contoh di depan: • Kode  Kd_Pemasok • Kd_Pemasok  Nm_Pemasok • Kode  Nm_Pemasok Jadi ketiga dependensi ini sebenarnya dapat ditulis: • Kode  Kd_Pemasok  Nm_Pemasok

  24. Tahapan Normalisasi • 1st Normal Form • Atribut dengan nilai ganda (atau kelompok yang berulang-ulang) dihilangkan, menyisakan nilai tunggal (atau juga null) pada setiap cell. • 2nd Normal Form • Dependensi parsial dihilangkan • 3rd Normal Form • Dependensi transitif dihilangkan • Boyce/Codd Normal Form • Semua anomali yang tersisa dari dependensi fungsional dihilangkan • 4th Normal Form • Dependensi nilai ganda dihilangkan • 5th Normal Form • Anomali yang tersisa dihilangkan

  25. 1NF (First Normal Form) • Sebuah relasi sudah berada di 1NF jika tidak ada satu pun atribut dengan nilai ganda. • Jika Tabel dikonversi dari ERD, otomatis sudah tidak ada nilai ganda (lihat cara konversi data dengan nilai ganda)

  26. Data Tidak Ternormalisasi

  27. Data 1NF

  28. 2NF (Second Normal Form) • Syarat dari 2NF adalah: • Sudah berada dalam bentuk 1NF • Setiap atribut bukan kunci primer telah bergantung sepenuhnya pada kunci primer. Hilangkan Dependensi Parsial, langkahnya: • Ubahlah tiap dependensi parsial menjadi relasi, dengan kunci primer sebagai penentunya (baca lagi pengertian dependensi parsial) • Ubah dependensi yang terkait langsung dengan kunci primer sebagai relasi tersendiri dan kunci primernya adalah kunci primer dalam relasi semula.

  29. Menghilangkan Dependensi Parsial Diandaikan terdapat sebuah relasi R dengan: • R(A,B,C,D) • Kunci Primer (A,B) • AD Maka relasi R dapat digantikan dengan dua buah relasi R1 dan R2 sebagai berikut: • R1(A,D) dengan Primary Key-nya (A) • R2(A,B,C) dengan Primary Key-nya (A,B) dan Foreign Key-nya (A) Referensi R1

  30. Menghilangkan Dependensi Parsial Sehingga contoh kasus pada slide 27 dapat diubah menjadi: • PEGAWAI(No_peg, Nama_peg) • KLIEN(Id_klien, Nama_klien) • PEGAWAI_KLIEN(No_Peg, Id_Klien)

  31. Menghilangkan Dependensi Parsial PEGAWAI KLIEN

  32. Menghilangkan Dependensi Parsial PEGAWAI_KLIEN Tips: pisahkan entitas objek dengan semua atribut yang melekat padanya dan buat tabel penghubung

  33. 3NF (Third Normal Form) • Syarat dari bentuk normal ketiga adalah: • Sudah berada dalam bentuk normal kedua • Tidak ada dependensi transitif (baca lagi pengertian tentang dependensi transitif) Mudahnya, dependensi transitif di dalam sebuah relasi adalah sebuah dependensi fungsional di antara dua atau lebih atribut yang bukan kunci primer

  34. Menghilangkan Dependensi Transitif Bila terdapat sebuah relasi R • R(A, B, C) dengan kunci primer (A) • B  C Maka relasi R dapat digantikan dengan dua buah relasi R1 dan R2 sebagai berikut: • R1(B, C) dengan kunci primer (B) • R2(A, B) dengan kunci primer (A) dan kunci tamu (B) referensi R1

  35. Menghilangkan Dependensi Transitif • Jika diaplikasikan untuk tabel PEMASOK_BARANG pada slide 14, dapat dihasilkan: • PEMASOK(Kd_Pemasok, Nm_Pemasok, Kota) • BARANG(Kode, Nama_Brg, Harga, Kd_Pemasok)

  36. BCNF (Boyce-Codd Normal Form) • Suatu relasi sudah dalam BCNF bila semua dependensi/ketergantungan dalam relasi tersebut hanya terhadap kunci. • BCNF disebut juga sebagai 3,5NF dan jarang terjadi karena pada umumnya 3NF sudah cukup.

More Related