System Technology Database 1 4 Normalisasi 1 Functional Dependency Dahlia Widhyaestoeti, S.Kom dahlia.widhyaestoeti@gmail.com dahlia74march.wordpress.com
Normalisasi Definisi Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi. 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.
Tahapan Normalisasi
Pengantar Penyempurnaan Skema: Persoalan yang Ditimbulkan oleh Redundansi Redundansi ruang penyimpanan: beberapa data disimpan secara berulang Update anomaly: Jika satu copy data terulang tsb diubah, inkonsistensi data dpt terjadi kecuali kalau semua copy dari data tsb diubah dengan cara yang sama Insertion anomaly: Mungkin dpt terjadi kesulitan utk menyisipkan data tertentu kecuali kalau beberapa data tidak terkait lainnya juga ikut disisipkan Deletion anomaly: Mungkin dpt terjadi kesulitan utk menghapus data tertentu tanpa harus kehilangan beberapa data tidak terkait lainnya
Persoalan yang Ditimbulkan oleh Redundansi: Contoh SSN Name Lot Rating Wages Hours 123-22-3666 Attishoo 48 8 10 40 231-31-5368 Smiley 22 8 10 30 131-24-3650 Smethurst 35 5 7 30 434-26-3751 Guldu 35 5 7 32 612-67-4134 Madayan 35 8 10 40 Asumsi: nilai attribut wages ditentukan oleh nilai rating (utk satu nilai rating yang diberikan, hanya diperbolehkan terdapat satu nilai wages Redundansi ruang penyimpanan: nilai rating 8 yang berkorespondensi dg wages 10 diulang tiga kali Update anomaly: Nilai wages (yg terkait dengan nilai rating) dlm baris pertama dpt diubah tanpa membuat perubahan yg sama pada baris kedua dan kelima Insertion anomaly: Kesulitan utk menyisipkan pasangan nilai rating & wages baru, kecuali harus dikaitkan dengan penyisipan employee baru Deletion anomaly: Jika semua baris yang terkait dg nilai rating tertentu dihapus (misalnya baris utk employee Smethurst dan Guldu dihapus), maka kita akan kehilangan informasi ketergantungan antara nilai rating dan nilai wages yang diasosiasikan dengan nilai rating tsb (yaitu rating = 5 dan wages = 7)
Pengantar Penyempurnaan Skema: Dekomposisi Skema Relasi Proses Dekomposisi sebuah skema relasi R berupa penggantian skema relasi menjadi dua (atau lebih) skema-skema baru yang masing-masing berisikan subset dari attribut-attribut relasi R dan kesemuanya memuat semua attribut yang ada dalam relasi R. Proses dekomposisi dilakukan dengan menggunakan konsep ketergantungan fungsional (functional dependencies) Contoh: skema relasi Hourly_Employees dpt didekomposisi menjadi: Hourly_Emps2 (ssn, name, lot, rating, hours) Wages (rating, wages) Wage R s W 8 10 5 7 Hourly_Emps2 S N L R H 123-22-3666 Attishoo 48 8 40 231-31-5368 Smiley 22 8 30 131-24-3650 Smethurst 35 5 30 434-26-3751 Guldu 35 5 32 612-67-4134 Madayan 35 8 40
Functional Dependency (Ketergantungan Fungsional) Merupakan konsep inti yang terkait dengan normalisasi. Misal A dan B adalah atribut dari suatu relasi R B dikatakan fucntional dependency pada A. Notasi : A B Jika setiap nilai A dihubungkan dengan tepat satu kali nilai B. Dalam hal ini, A dan B masing-masing dapat terdiri atas satu atau lebih atribut. A B B adalah Functional Dependency pada A A adalah Determinant untuk B
Contoh: Constraints pada Entity Set Perhatikan relasi Hourly_Emps berikut: Hourly_Emps (ssn, name, lot, rating, hrly_wages, hrs_worked) Notasi: Utk penyederhaan penulisan, skema relasi tsb akan dinotasikan dengan menggabungkan singkatan dari attribut-attributnya: SNLRWH Notasi ini menyatakan satu set attributes {S,N,L,R,W,H}. Dalam beberapa kasus, nama sebuah relasi akan digunakan untuk mengacu ke semua attribut dari relasi tersebut. (contoh, Hourly_Emps untuk SNLRWH) Beberapa FD yang berlaku pada Hourly_Emps: ssn adalah sebuah key: S SNLRWH rating menentukan hrly_wages: R W
Contoh: Beberapa persoalan akibat R W : Update anomaly: Dapatkah W diubah hanya pada tuple pertama dari SNLRWH? Insertion anomaly: Bgm jika diinginkan utk menyisipkan seorang employee tetapi hourly wage utk rating yang bersangkutan tidak diketahui? Deletion anomaly: Jika semua employee dengan rating 5 dihapus, maka informasi mengenai hourly wage utk rating 5 juga akan ikut terhapus! S N L R W H 123-22-3666 Attishoo 48 8 10 40 231-31-5368 Smiley 22 8 10 30 131-24-3650 Smethurst 35 5 7 30 434-26-3751 Guldu 35 5 7 32 612-67-4134 Madayan 35 8 10 40 Hourly_Emps2 S N L R H 123-22-3666 Attishoo 48 8 40 231-31-5368 Smiley 22 8 30 131-24-3650 Smethurst 35 5 30 434-26-3751 Guldu 35 5 32 612-67-4134 Madayan 35 8 40 Wages R W 8 10 5 7
Functional Dependency (Ketergantungan Fungsional) Definisi : Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X ---> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R. Misal, terdapat skema database Pemasok-barang : Pemasok (No-pem, Na-pem) Tabel PEMASOK-BARANG Ketergantungan fungsional dari tabel PEMASOK-BARANG adalah : No-pem ---> Na-pem
Full Functional Dependency (Ketergantungan Fungsional Penuh) Definisi : 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) Contoh : KIRIM-BARANG( No-pem, Na-pem, No-bar, Jumlah) Ketergantungan fungsional : No-pem --> Na-pem No-bar, No-pem --> Jumlah (Tergantung penuh thd keynya)
Transitive Dependency (Ketergantungan Transitif) Definisi : 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 ) Contoh : Ketergantungan transitif : No-pem Kode-kota Kode-kota Kota, maka No-pem Kota
Contoh-contoh Functional Dependencies Fungctional Dependency : FD1 : NRP Nama (Nama bergatung pada NRP) FD2 : Mata_Kuliah, NRP Nilai (Nilai bergantung pada Mata_Kuliah dan NRP) Bukan Functional Dependency : Mata_Kuliah NRP NRP Nilai
KARYAWAN Contoh-contoh Functional Dependencies NIP NAMA BAGIAN GAJI KURSUS SELESAI 100 AGUS KEUANGAN 1,000 SPSS 10-10-2005 100 AGUS KEUANGAN 1,000 AUDIT 10-10-2005 200 BUDI SDM 1,200 KOMPUTER 20-10-2000 200 BUDI SDM 1,200 AUDIT 10-10-2005 300 BAGONG KEBERSIHAN 500 400 MAMOX MARKETING 1,500 MARKETING 01-01-2005 Apa primary key-nya? Composite: NIP, KURSUS Fungctional Dependency?
Contoh-contoh Functional Dependencies Anomali pada karyawan Insertion tidak dapat memasukkan data karyawan baru yang tidak mengambil kursus Deletion jika pegawai 400 dihapus, kita akan kehilangan informasi tentang keberadaan kelas Marketing Modification menaikan gaji pegawai 100 mengharuskan kita untuk meng-update beberapa records Mengapa beberapa anomali ini muncul? Karena kita telah menyatukan 2 tema (entity) dalam satu relasi. Hal ini menyebabkan adanya duplikasi, dan ketergantungan antar entitas