Materi kali saya menerangkan tentang Dependency dan
Normalisasi.
Ketergantungan kunci atau Functional Dependent merupakan
keterkaitan antara atribut dalam suatu relasi.Dinotasikan dengan anak panah (->),
dalam implikasinya dituliskan A->B. tanda
-> bermakna:
Isi Attribut A menentukan isi attribute B
atau
Attribut B functionally dependent A.
Kondisi tersebut akan terjadi jika dan hanya jika ada 2
baris data dengan nilai A yang sama, maka nilai B juga sama
Contoh:
NIM->Nama_Mhs
Kita lihat tabel IPK mahasiswa untu lebih jelasnya, kita
melihat bahwa disitu ada nama mahasiswa yang sama yaitu Noor Hidayah tetapi
memiliki NIM yang berbeda, maka terbukti bahwa Nama_Mhs bergantung pada NIM
NIM
|
Nama_Mhs
|
Jurusan
|
IPK
|
1000020
|
Nita Anjelina
|
PTIK
|
3.4
|
1000021
|
Akbar Tanjung
|
PTIK
|
3.45
|
1000022
|
Noor Hidayah
|
PTIK
|
3.6
|
1000023
|
Noor Hidayah
|
PTIK
|
3.33
|
Macam-macam Functional
Dependency
1. Full functional dependency
Merupakan ketergantungan penuh atas suatu attribute, Misal attribute
B bergantung penuh pada attribute A tetapi B tidak bergantung pada bagian attribute
lain. Contoh :
NIM
|
Nama_MHS
|
IPK
|
Id_RuangWaktu
|
Dosen
|
1000020
|
Nita Anjelina
|
3.4
|
102-E2
|
Dharu Wihartasih
|
1000021
|
Akbar Tanjung
|
3.45
|
104-E2
|
Dharu Wihartasih
|
1000022
|
Noor Hidayah
|
3.6
|
106-E2
|
Dharu Wihartasih
|
1000023
|
Noor Hidayah
|
3.33
|
102-E8
|
Rio Saputra
|
Jika pada awalnya
{NIM,Nama_MHS}->Id_RuangWaktu maka itu tidak bisa disebut dengan Full Dependency,
karena NIM merupakan primary key maka Nama_MHS dihilangkan, NIM-> Id_RuangWaktu
baru bisa disebut Full Dependency
2. Partially Dependency
Pada intinya adalah
ketergantungan beberapa attribute pada satu attribute tetapi ketika salah satu attribute
yang bergantung dihapus masih terdapat ketergantungan.
Contoh : NIM,
Nama_MHS->id_RuangWaktu
Jika misal Nama_MHS dihilangkan
ketergantungan masih ada
3. Transitive Dependency
Merupakan tipe functional
dependency yaitu kondisi dimana A,B,C
adalah atribut sebuah relasi dimana A->B dan B->C. Maka C
dikatakan sebagai transitive dependency terhadap A melalui B.
Contoh :
Nip
|
Nama
|
Jabatan
|
Gaji
|
kdCabang
|
almCabang
|
12092-01
|
Dharu Wihartasih
|
Kepala Cabang
|
4.500.000
|
01
|
Kudus
|
12067-02
|
Nia Stefani Irawan
|
Bendahara
|
3.000.000
|
02
|
Semarang
|
12067-02
|
Rio Saputra
|
Sekertaris
|
2.450.000
|
02
|
Semarang
|
12049-03
|
Derick Indrayan
|
Pegawai
|
1.750.000
|
03
|
Jepara
|
Nip->{Nama, Jabatan, Gaji,
KdCabang, almCabang}KdCabang->almCabang
Normalisasi
Merupakan suatu proses untuk
mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomaly, dan
mengacu pada cara data item dikelompokkan ke dalam struktur record. Bertujuan untuk
menghilangkan ambiguity saat proses pembentukan struktur basis data.
Langkah-langkah normalisasi
1. Bentuk First Normal Form (1NF)
Suatu keadaan yang membuat setiap
perpotongan baris dan kolom dalam relasi hanya baris berisi satu nilai.
Ciri-ciri dari 1NF:
-tidak ada attribute yang bernilai
banyak
-tidak ada attribut bernilai
ganda
-tidak ada attribut komposit
Contoh :
NIM
|
Nama
|
Jurusan
|
JamRuang
|
120031
|
Sally
|
PTIK
|
102-E2,106-E8
|
120032
|
Desy
|
PTIK
|
104-E6,109-E2
|
120033
|
Andri
|
Teknik Elektro
|
104-E6
|
120034
|
Tyo
|
Teknik Elektro
|
106-E8
|
Bentuk First Normal Form (1NF)
NIM
|
Nama
|
Jurusan
|
JamRuang
|
120031
|
Sally
|
PTIK
|
102-E2
|
120031
|
Sally
|
PTIK
|
106-E8
|
120032
|
Desy
|
PTIK
|
104-E6
|
120032
|
Desy
|
PTIK
|
109-E2
|
120033
|
Andri
|
Teknik Elektro
|
104-E6
|
120034
|
Tyo
|
Teknik Elektro
|
104-E6
|
2. Bentuk normal ke dua (2NF)
Bentuk normal 2NF terpenuhi dalam
sebuah table jika telah memenuhi bentuk 1NF dan semua attribut selain primary
key, secara utuh memilki funcrional dependency pada primary key. Kunci field
haruslah unik dan dapat mewakili attribut lain yang menjadi anggotanya. Missal :
Dari contoh relasi mahasiswa pada 1NF terlihat bahwa primary key adalah NIM.
Nama dan Jurusan bergantung fungsi NIM, tetapi JamRuang bukanlah fungsi dan
siswa. Maka file mahasiswa dipecah menjadi 2:
Relasi Mahasiswa
NIM
|
Nama
|
Jurusan
|
120031
|
Sally
|
PTIK
|
120032
|
Desy
|
PTIK
|
120033
|
Andri
|
Teknik Elektro
|
120034
|
Tyo
|
Teknik Elektro
|
Relasi Jam dan Ruang Kuliah
NIM
|
JamRuang
|
120031
|
102-E2
|
120031
|
106-E8
|
120032
|
104-E6
|
120032
|
109-E2
|
120033
|
104-E6
|
120034
|
104-E6
|
3. Bentuk Normal Ketiga (3NF)
Bentuk normal 3NF terpenuhi jika telah
memenuhi bentuk 2NF dan tidak ada attribut non primary yang memiliki
ketergantungan terhadap attribut non primary key yang lainnya (ketergantungan
transitif). Contoh diatas sebenarnya sudah sesuai dengan bentuk normal ketiga. Namun
kita coba pahami lebih dalam lagi dengan contoh yang lain:
NIM
|
Nama
|
Jalan
|
Kota
|
Provinsi
|
KodePos
|
980001
|
Ali Akbar
|
Jl Ahmad Yani
|
Pontianak
|
Kal-Bar
|
38482
|
…
|
…
|
…
|
…
|
…
|
…
|
tabel di atas sudah sesuai dengan
bentuk yang kedua tapi belum memenuhi syarat bentuk normal kedua
NIM->{Nama,Jalan,Kota,Provinsi,KodePos}KodePos->{Kota,Provinsi}
Diubah untuk menghilangkan transitif, maka akan menjadi
Tabel Mahasiswa
NIM
|
Nama
|
Jalan
|
KodePos
|
980001
|
Ali Akbar
|
Jl Ahmad Yani
|
38482
|
…
|
…
|
…
|
…
|
Tabel Kode Pos
KodePos
|
Kota
|
Provinsi
|
38482
|
Pontianak
|
Kal-Bar
|
…
|
…
|
…
|
4. Bentuk-Codd Normal Form (BCNF)
Relasi harus dalam bentuk normal
kesatu dan setiap attribut harus bergantung fungsi pada attribut superkey.
5. Bentuk Normal ke empat (4NF)
Jika dan hanya jika relasi
tersebut termasuk BCNF dan semua ketergantungan multivalue adalah juga
ketergantungan fungsional.
6. Bentuk Normal ke lima (5NF)
Menghilangkan ketergantungan join
yang buka merupakan kunci kandidat
Tidak ada komentar:
Posting Komentar