System Technology Database 1
4
Normalisasi 1 Functional Dependency Dahlia Widhyaestoeti, S.Kom
[email protected] 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 231-31-5368 131-24-3650 434-26-3751 612-67-4134
Attishoo Smiley Smethurst Guldu Madayan
48 22 35 35 35
10 10 7 7 10
8 8 5 5 8
40 30 30 32 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 Rs W 8 5
10 7
Hourly_Emps2
S 123-22-3666 231-31-5368 131-24-3650 434-26-3751 612-67-4134
N Attishoo Smiley Smethurst Guldu Madayan
L 48 22 35 35 35
R 8 8 5 5 8
H 40 30 30 32 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:
Notasi: Utk penyederhaan penulisan, skema relasi tsb akan dinotasikan dengan menggabungkan singkatan dari attribut-attributnya: SNLRWH
Hourly_Emps (ssn, name, lot, rating, hrly_wages, hrs_worked)
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:
S
N
L
R
W H
123-22-3666 231-31-5368 131-24-3650 434-26-3751 612-67-4134
Attishoo Smiley Smethurst Guldu Madayan
48 22 35 35 35
8 8 5 5 8
10 10 7 7 10
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 !
40 30 30 32 40
Hourly_Emps2 S 123-22-3666 231-31-5368 131-24-3650 434-26-3751 612-67-4134
N Attishoo Smiley Smethurst Guldu Madayan
Wages R
W
8 5
10 7
L 48 22 35 35 35
R 8 8 5 5 8
H 40 30 30 32 40
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
Contoh-contoh Functional Dependencies
KARYAWAN NIP
NAMA
BAGIAN
GAJI
KURSUS
SELESAI
100 100 200 200 300 400
AGUS AGUS BUDI BUDI BAGONG MAMOX
KEUANGAN KEUANGAN SDM SDM KEBERSIHAN MARKETING
1,000 1,000 1,200 1,200 500 1,500
SPSS AUDIT KOMPUTER AUDIT
10-10-2005 10-10-2005 20-10-2000 10-10-2005
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