Sistem Basis Data Dependency Teknik Normalisasi.

Slides:



Advertisements
Presentasi serupa
Normalisasi 1.
Advertisements

NORMALISASI DATA Basis Data.
TEKNIK PERANCANGAN BASIS DATA
Normalisasi.
Normalisasi Basis Data
Created by : Nurfajria Muchlis, S.Kom. UML merupakan metode pengembangan perangkat lunak (atau sistem informasi) dengan grafis yang mudah dipahami. UML.
Materi 7.
Normalisasi Basis Data I.
Normalisasi Basis Data
Normalisasi Much Aziz Muslim, S.Kom., M.Kom
Dependency (Ketergantungan)
NORMALISASI.
NORMALISASI.
Pengantar Basis Data Sumber :
NORMALISASI.
Normalisasi Basis Data
SISTEM BASIS DATA STMIK – AUB SURAKARTA
Normalisasi Mardhiya Hayaty, ST.
Definisi, Ketergantungan, Langkah-Langkah
Mentari Puji Lestari TI 2B D3
Sistem Basis Data Redudancy Anomali.
Pertemuan 11 Depedency.
Normalisasi (bagian III)
Sistem Basis Data Renni Angreni, M.Kom.
Desain Database Disusun Oleh : Dr. Lily Wulandari
UNIVERSUTAS NEGERI MAKASSAR
NORMALISASI BASIS DATA
Normalisasi Basis Data
Rizka Hadiwiyanti, S.Kom, M.Kom
Analisa & Perancangan Sistem Informasi
FUNCTIONAL DEPENDENCY (NORMALISASI)
Basis Data dan SBP Disusun Oleh : Lily Wulandari.
NORMALISASI.

NORMALISASI.
NORMALISASI.
Normalisasi Database.
Transformasi Himpunan Dan Normalisasi
NORMALISASI DATA Basis Data.
Normalisasi Basis Data
NORMALISASI KUSRINI.
Normalisasi Tabel Database.
NORMALISASI.
BASIS DATA 11 NORMALISASI Bentuk 1NF s/d 3NF 1.
Basis Data 1 Rudi Hartono, S.E, M.Kom.
PERTEMUAN 2 NORMALISASI
DESAIN DATABASE DAN NORMALISASI
Perancangan Database Bagian II
Matakuliah : Sistem Basisdata Versi Materi
Pertemuan Minggu Ke-10 NORMALISASI.
Normalisasi.
PERTEMUAN KE-12 NORMALISASI (II).
Perancangan Database Bagian II
Normalisasi.
PERTEMUAN KE-11 NORMALISASI DATA (I).
NORMALISASI KUSRINI, M.KOM.
Normalisasi Basis Data
Normalisasi Database.
Normalisasi.
NORMALISASI DATA Gede Aditra Pradnyana, S.Kom., M.Kom.
DESAIN DATABASE DAN NORMALISASI
Normalisasi Basis Data
NORMALISASI SBD SESI 6.
NORMALISASI.
Oleh : Oman Somantri, S.Kom
Normalisasi.
Normalisasi Didi Supriyadi, S.T., M.Kom Pertemuan ke-7
NORMALISASI SBD1 SESI 8.
ENTOT SUHARTONO, SKOM, MKOM
NORMALISASI DATABASE Achmad fitro, M.Kom.
Transcript presentasi:

Sistem Basis Data Dependency Teknik Normalisasi

Tujuan dari Normalisasi Definisi Normalisasi Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible. Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut. Tujuan dari Normalisasi Untuk menghilangkan kerangkapan data Untuk mengurangi kompleksitas Untuk mempermudah pemodifikasian data 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. 2 2

Dependency Fungsional Fungsional penuh Transitif Total

 Ketergantungan Fungsional Suatu atribut Y mempunyai ketergantungan fungsi terhadap atribut X, jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y. Definisi diatas dituangkan dalam bentuk notasi X  Y Dibaca : X secara fungsional menentukan Y

Ketergantungan Fungsional Penuh Suatu atribut Y mempunyai ketergantungan fungsional penuh terhadap atribut X, jika Y mempunyai dependensi fungsional terhadap X Y tidak memiliki dependensi terhadap bagian dari X Notasi : X  Y

Ketergantungan transitif Atribut Z mempunyai dependensi transitif terhadap X bila: Y memiliki dependensi fungsional terhadap X Z memiliki dependensi fungsional terhadap Y X  Y  Z

 Dependensi Total Suatu atribut Y mempunyai ketergantungan total pada atribut X jika: Y memiliki ketergantungan fungsi terhadap X X memiliki ketergantungan fungsi terhadap Y Notasi : X  Y

Tahapan Normalisasi Bentuk Tidak Normal Menghilangkan perulangan group Bentuk Normal Pertama (1NF) Menghilangkan ketergantungan sebagian Bentuk Normal Kedua (2NF) Menghilangkan ketergantungan transitif Bentuk Normal Ketiga (3NF) Menghilangkan anomali-anomali hasil dari ketergantungan fungsional Bentuk Normal Boyce-Codd (BCNF) Menghilangkan Ketergantungan Multivalue Bentuk Normal Keempat (4NF) Menghilangkan anomali-anomali yang tersisa Bentuk Normal Kelima

Ketergantungan Fungsional Definisi Atribut Y pada relasi R dikatakan tergantung fungsional padaatribut X (R.X ---> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R. R= Relasi / Tabel Y,X = Atribut didalam Tabel R.

Contoh Ketergantungan Tabel PEMASOK-BARANG Ketergantungan fungsional dari tabel PEMASOK-BARANG adalah : No_Pem ---> Nama_Pem No_Pem Nama_Pem P01 Imam_x P02 Yazix P03 Hana

FUNCTIONAL DEPENDENCY (FD) Contoh: Functional Dependency: NRP  Nama Mata_Kuliah, NRP  Nilai Non Functional Dependency: Mata_Kuliah  NRP NRP  Nilai

Ketergantungan Fungsional Penuh Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika Y tidak tergantung pada subset dari X ( bila X adalah key gabungan). Suatu atribut Y mempunyai dependensi sepenuhnya terhadap atribut X jika Y mempunyai dependensi terhadap X Y tidak mempunyai dependensi terhadap bagian dari X

KIRIM-BARANG( No_pem, Na_pem, No_bar, Jumlah) Ketergantungan fungsional : No-pem --> Na-pem No-bar, No-pem --> Jumlah (Tergantung penuh thd keynya) No_pem Na_pem No_bar Jumlah P01 Bahana B01 1000 B02 1400 B03 2000 P02 Sinar Mulia P03 Harapan

Ketergantungan Transitif Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X , jika atribut Y tergantung pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y pada relasi R. (X  Y, Y  Z , maka X Z )

Pengertian Dependensi Transitif Suatu atribut Z mempunyai dependensi transitif terhadap X jika: Y memiliki dependensi terhadap X dan Z memiliki dependensi terhadap Y X → Z X→Y→Z

Contoh Dependensi Transitif Kuliah Ruang Tempat Waktu Jaringan Komputer Merapi Gedung Utara Senin, 08.00-09.50 Pengantar Basis Data Merbabu Selasa, 08.00-09.50 Matematika I Rama Gedung Selatan Rabu, 10.00-11.50 Sistem Pakar Sinta Kamis, 08.00-09.50 Kecerdasan Buatan Selasa, 10.00-11.50 Kuliah → { Ruang, Waktu } Ruang → Tempat Kuliah → Ruang → Tempat

Contoh Lain Dependensi Transitif Id_Pelanggan Nama Salesman Area A-001 Andi Farkan Jateng A-002 Kurnia Jati Dian Jabar B-001 Fika Dewi Joned Jatim B-002 Gani Wirawan C-001 Cici Kusuma Id_Pelanggan Nama Salesman Area

Contoh Lain Dependensi Transitif No_Pesan No_Urut Kode_Item Nama_Item Jumlah 06008 1 P1 Pensil 5 2 P2 Buku Tulis 10 3 P3 Penggaris 6 4 P4 Penghapus 06009 P5 Pulpen P6 Spidol 06010 No_Pesan No_Urut Kode_Item Nama_Item Jumlah

Problem pada Dependensi Transitif Id_Pelanggan Nama Salesman Area A-001 Andi Farkan Jateng A-002 Kurnia Jati Dian Jabar B-001 Fika Dewi Joned Jatim B-002 Gani Wirawan C-001 Cici Kusuma Anomali penyisipan: Seorang salesman baru yang bertugas di Jateng tidak dapat dimasukkan dalam tabel sampai salesman tersebut mendapatkan seorang pelanggan Anomali penghapusan: Jika pelanggan A-002 dihapus, informasi bahwa Dian menangani daerah Jabar ikut hilang Anomali peremajaan: Jika katakanlah Farkan mendapat penugasan baru untuk menangani daerah Kalimantan, maka sejumlah baris harus diremajakan agar data tetap konsisten

Normalisasi dengan Ketergantungan Fungsional Dalam perspektif Normalisasi, sebuah basis data dapat dikatakan baik, jika setiap tabel yang menjadi unsur pembentuk basis data tersebut juga telah berada dalam keadaan baik atau normal. Sebuah tabel dapat dikategorikan baik (efisien) atau normal, jika telah memenuhi 3 kriteria berikut: Jika ada dekomposisi (penguraian) tabel, maka dekomposisi-nya dijamin aman (Lossless-Join Decomposotion). Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation). Tidak melanggar Boyce-Code Normal Form (BCNF). Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar bentuk normal tahap ketiga (3nd Normal Form/3NF). Kriteria tersebut merupakan kriteria minimal untuk mendapatkan predikat efisien/normal bagi sebuah tabel.

Bentuk Normal tahap Pertama (1nd Normal Form/1NF) Akan tetapi, dapat juga menerapkan kriteria-kriteria lain yang juga tercakup dalam kerangka normalisasi, walaupun bukan merupakan kriteria-kriteria utama, yang terdiri dari: Bentuk Normal tahap Pertama (1nd Normal Form/1NF) Bentuk Normal tahap Kedua (2nd Normal Form/2NF) Bentuk Normal tahap Ketiga (3nd Normal Form/3NF) Bentuk Normal tahap Keempat (4nd Normal Form/4NF) Bentuk Normal tahap Kelima (5nd Normal Form/5NF) Dekomposisi sendiri merupakan langkah yang paling sering ditempuh dalam proses Normalisasi, jika sebuah tabel tidak memenuhi Bentuk Normal tertentu. Sebuah tabel yang merangkum semua kelompok data yang saling berhubungan biasa disebut sebagai tabel Universal (universal/star table). Tabel Universal (Universal / Star Table) sebuah tabel yang merangkum semua kelompok data yang saling berhubungan dan bukan merupakan tabel yang baik. 21 21

Berikut contoh sebuah tabel universal yang merupakan rangkuman data mahasiswa, kuliah, dosen, nilai dan jadwal 22 22

Nim, kode_kul  indeks_nilai Dari table universal tersebut, dengan memperhatikan kesamaan dan ketidak samaan data diantara baris-baris data juga dengan memahami hubungan alamiah antar data, kita dapat membentuk KF sebagai berikut: Nim  nama_mhs Nim  alamat_mhs Nim  tgl_lahir Kode_kul  nama_kul Kode_kul  sks Kode_kul  semester Kode_kul  waktu Kode_kul  tempat Kode_kul nama_dos Nama_dos  alamat_dos Nim, kode_kul  indeks_nilai Jika kita memusatkan diri pada table universal tersebut, paling tidak ada 3 kelemahan mendasar yang dapat kita lihat, yaitu: Pengulangan informasi Yang terjadi pada atribut nama_mhs, alamat_mhs dan tgl_lahir yang dinyatakan berulang-ulang sesuai dengan data atribut nim, begitu juga dengan atribut nama_kul, tempat, waktu dan seterusnya. 23 23

Potensi inkonsistensi data pada operasi pengubahan Yang terjadi jika ada perubahan pada data nama_mhs, dimana perubahan ini harus dijalarkan keseluruh baris data pada table tersebut untuk nim yang sama. Jika perubahan ini tidak dilakukan, maka KF yang telah ditetapkan akan tergangu, karena kelak akan ada 2 row atau lebih dengan nim yang sama, tapi nama_mhs nya berbeda. Tersembunyinya informasi tertentu Tabel universal dibangun atas dasar keterkaitan antar item-item data. Karena itu table semacam ini tidak akan mampu menampilkan informasi tentang item-item data yang kebetulan belum memiliki keterkaitan dengan item data yang lain. Kelemahan-kelemahan tersebut mengiring kita untuk melakukan dekomposisi, yakni melakukan pemilihan table tersebut menjadi beberapa table dengan mempertimbangkan ketergantungan fungsional yang telah kita dapatkan, dekomposisi dilakukan agar setiap table yang kita gunakan hanya memiliki 1 (satu) KF saja , lebih tepatnya KF minimum 24 24

Lossless Join Decomposition Dekomposisi merupakan upaya untuk mendapatkan table yang baik, tapi bila tidak berhati-hati upaya ini justru dapat menghasilkan kesalahan. Dekomposisi yang benar terjadi jika table-tabel hasil dekomposisi kita gabungkan kembali dapat menghasilkan table awal sebelum didekomposisi. Dekomposisi yang benar semacam ini disebut Lossless-Join Decomposition atau Lossless Decomposition (dapat di Indonesia-kan dengan istilah Dekomposisi Aman). Berikut sebuah contoh yang menghasilkan dekomposisi yang tidak aman (Lossy-Join Decomposition). Misalnya ada sebuah table ABC, yang didefinisikan dengan 2 buah table KF yaitu AB dan BC. Kedua KF tersebut diperoleh dari pengamatan terhadap data yang kurang memadai atau karena asumsi yang kurang tepat. A B C A1 100 C1 A2 200 C2 A3 300 C3 A4 C4 Memang dengan isi seperti itu, pernyatan KF yang kedua BC tidak sepenuhnya tepat, karena pada row 2 dan row 4, dengan nilai untuk atribut B yang sama, nilai untuk atribut C nya berbeda. 25 25

A B C A1 100 C1 A2 200 C2 A3 300 C3 A4 C4

Tapi yang ingin kita tekankan disini adalah adanya 2 buah KF itu, mendorong kita untuk medekomposisi table ABC menjadi 2 buah table, yaitu table AB dan Tabel BC sbb: Tabel AB A B A1 100 A2 200 A3 300 A4 Hasil gabungan table AB dan BC A B C A1 100 C1 A2 200 C2 C4 A3 300 C3 A4 Tabel BC B C 100 C1 200 C2 300 C3 C4 Jika table AB dan table BC digabungkan, hasilnya tidak menghasilkan table awal, sebelum dekomposisi, ini yang disebut dengan Lossy Join Decomposition 27 27

Tapi bila table awal (table ABC) seperti berikut 200 C2 A B C A1 100 C1 A2 200 C2 A3 300 C3 A4 Jika table ABC seperti diatas maka kedua KF dapat dibenarkan, jika dilakukan dekomposisi maka akan menghasilkan table sebagai berikut: A B A1 100 A2 200 A3 300 A4 Kesimpulaan “Karena itulah, KF pada suatu table harus kita tetapkan berdasarkan pengamatan yang teliti dan asumsi yang dapat dipertanggung jawabkan, agar kelak hasil dekomposisinya dapat dibenarkan” B C 100 C1 200 C2 300 C3 28 28

Dependency Preservation Dependency preservation (dapat di Indonesia-kan sebagai Pemeliharaan Ketergantungan) merupakan kriteria yang harus dicapai untuk mendapatkan tabel dan basis data yang baik. Ketika melakukan perubahan data, maka harus dapat dijamin agar perubahan tersebut tidak menghasilkan inkonsistensi data yang mengakibatkan KF yang sudah benar menjadi tidak terpenuhi tetapi dalam upaya untuk memelihara KF yang ada untuk tetap terpenuhi tersebut, prosesnya harus dapat dilakukan dengan efisien. Jika ditinjau pada table universal yang telah digambarkan sebelumnya, sudah jelas sangat rapuh didalam memenuhi kriteria dependency preservation. Kalaupun ingin dipaksakan (agar KF yang ada tetap dapat terjaga pada saat ada perubahan yang terjadi), maka upaya pemeliharaan KF tersebut akan berlangsung tidak efisien Katakanlah ada perubahan data Alamat untuk mahasiswa dengan nim=980001, maka perubahan ini harus juga dijalarkan/dilakukan pada atribut alamat_mhs disemua row yang nilai atribut nim_nya berharga 980001 29 29

Nama_kul, Nim, Nama_mhs, Indeks_nilai Dengan 2 KF yaitu Contoh Katakanlah table Mahasiswa dan table Nilai hasil dekomposisi menghasilkan atribut sebagai berikut: Tabel Nilai Nama_kul, Nim, Nama_mhs, Indeks_nilai Dengan 2 KF yaitu Nama_kul, Nim  Indeks_nilai Nim  Nama_mhs Tabel Mahasiswa Nim, Nama_mhs, Alamat_mhs, Tgl_lahir Jika pada table mahasiswa terjadi perubahan data pada atribut alamat_mhs atau pada atribut tgl_lahir, maka perubahan ini tidak perlu dilakukan/dijalarkan pada table nilai, karena pada table ini atribut-atribut tersebut tidak dilibatkan. Tapi jika perubahan terjadi pada atribut nama_mhs pada table mahasiswa, maka perubahan tersebut harus juga dilakukan/dijalarkan ke table nilai, Karena atribut tersebut dilibatkan pada table nilai 30 30

Nim Nama_kul Indeks_nilai Jika penjalaran ini hanya dilakukan pada satu baris (row) pertama pada table nilai dengan nilai nim yang sama, dengan nilai nim di table mahasiswa yang nama_mhs-nya diubah tersebut, maka KF nimnama_mhs tidak terpenuhi lagi. Jika demikian perubahan tersebut harus dijalarkan kesemua baris data dengan nilai nim yang sama/sesuai, masalahnya penjalaran perubahan ini tidak efisien dan seharusnya dihindari. Solusinya agar dependency preservation terpenuhi adalah meniadakan/melepaskan atribut nama_mhs dari table nilai, sehingga table nilai menjadi Nim Nama_kul Indeks_nilai 31 31

Normalisasi Bentuk Normal ke Satu (1NF) Syarat: Tidak ada set atribut yang berulang atau bernilai ganda (atomik value). Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah (multivalue). Bentuk Normal ke Dua (2NF) Syarat: Bentuk data telah memenuhi kriteria bentuk normal ke satu. Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key. Bentuk Normal ke Dua (3NF) Syarat: Bentuk data telah memenuhi kriteria bentuk normal ke dua. Atribut bukan kunci (non-key attribute) tidak boleh memiliki ketergantungan fungsional terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja. 32 32

Contoh Normalisasi Diberikan data Nilai Mahasiswa seperti di bawah ini: 33 33

NIM  nama mahasiswa NIM  Tgl_lahir Kdmkul  kuliah Kdmkul  SKS Nilai  bobot {NIM, kdmkul}  Nilai

Bentuk Normal ke Satu (1NF) Bentuk Normal ke Dua (2NF) Belum memenuhi kriteria 2NF, Karena atribut non-key Nilai dan Bobot masih memiliki ketergantu- ngan fungsional. 35 35

Bentuk Normal ke Tiga (3NF) 36 36

Mahasiswa Matakuliah Bobot Nilai Dari normalisasi data nilai mahasiswa tersebut maka akan didapat 4 tabel yaitu: Mahasiswa, Matakuliah, Nilai dan Bobot Mahasiswa Matakuliah Bobot Nilai 37 37

Selesai

Tabel pegawai Tentukan Permasalahan pada tabel Tentukan Dependency Lakukan teknik normalisasi yang kedua

tabel Normal I (1NF) Bentuk Normal II (2NF) : (Decompose)

Nama Suplier : Gober Nustra Faktur Pembelian Barang Tanggal : 07/10/04 Dokumen dasar: PT. Ayo Bersama Jl. Senopati 12 yk Kode Suplier : G01 Nama Suplier : Gober Nustra Faktur Pembelian Barang Tanggal : 07/10/04 Nomor : 004 Kode Nama Brg Qty Harga Jml A01 AC model 1 10 1000000 10000000 A02 AC model 2 5 900000 4500000 Total Faktur 14500000 Jatuh Tempo 15/10/04

PT. Ayo Bersama Jl. Senopati 12 yk Kode Suplier : A03 Nama Suplier : Angkasa Faktur Pembelian Barang Tanggal : 09/10/04 Nomor : 006 Kode Nama Brg Qty Harga Jml B01 Kursi 5 100000 500000 A03 Meja 7 250000 3250000 Total Faktur 3750000 Jatuh Tempo 17/10/04

Bentuk tidak ternormalisasi Kd. Fak Kode Sup Nama Sup Kode Brg Nama brg Tgl J.tempo qty Hrg Jml Tot 004 G01 Gobel Nustra A01, A02 AC Model 1, AC Model 2 07/10/04 15/10/04 10,5 1000000, 900000 10000000, 4500000 14500000 006 A03 Angkasa B01, A03 Meja, Kursi 09/10/05 17/10/04 5,7 100000, 250000 500000, 3250000 3750000

Bentuk Normal 1 Kd. Fak Kode Sup Nama Sup Kode Brg Nama brg Tgl J.tempo Qty Hrg 004 G01 Gobel Nustra A01 AC Model 1 07/10/04 15/10/04 10 1000000 A02 AC Model 2 5 900000 006 A03 Angkasa B01 Meja 09/10/05 17/10/04 100000 Kursi 7 250000