Ø Normalisasi adalah proses untuk menciptakan suatu table (relasi) dalam
basis data dengan tujuan untuk mengurangi kemubaziran.
Ø Masalah-masalah yang
timbul dalam pembuatan table yang disebut dengan anomali. Anomali adalah proses pada basis data yang mempunyai efek samping yang
tidak diharapkan. Misal : ketidakkonsistenan data, suatu data hilang pada saat
dihapus, dll.
Ø Anomali ada 3 jenis yaitu
:
a.
Anomali peremajaan
Anomali ini
terjadi bila ada perubahan pada sejumlah data yang mubazir, tetapi tidak
seluruhnya diubah. Contoh : Tabel Pesanan
Pemasok
|
Kota
|
Barang
|
Jumlah
|
Kartika
|
Jakarta
|
Mouse
|
5
|
Citra
|
Bandung
|
Monitor
|
2
|
Yudi
|
Medan
|
CPU
|
2
|
Citra
|
Bandung
|
Printer
|
1
|
Seandainya Citra dengan kota Bandung pindah ke Bogor maka pengubahan data hanya dilakukan pada data pertama menjadi : Tabel Pesanan
Pemasok
|
Kota
|
Barang
|
Jumlah
|
Kartika
|
Jakarta
|
Mouse
|
5
|
Citra
|
Bogor
|
Monitor
|
2
|
Yudi
|
Medan
|
CPU
|
2
|
Citra
|
Bandung
|
Printer
|
1
|
Di sini terlihat bahwa data tentang pemasok Citra tidak sama yang menyebabkan ketidakkonsistenan data.
b.
Anomali Penyisipan
Anomali ini
terjadi pada saat penambahan data ternyata ada elemen yang kosong dan elemen
tsb justru menjadi key. Contoh : Tabel Kursus
NoSiswa
|
Kursus
|
Biaya
|
10
|
Bhs.Inggris
|
60000
|
10
|
Bhs.Perancis
|
80000
|
10
|
Bhs.Jepang
|
70000
|
15
|
Bhs.Inggris
|
60000
|
20
|
Bhs.Jepang
|
70000
|
Misalnya akan dibuka kursus baru yaitu Bhs.Jerman dengan biaya 75000 akan tetapi belum ada seorangpun yang ikut kursus ini, shg data menjadi : Tabel Kursus
NoSiswa
|
Kursus
|
Biaya
|
10
|
Bhs.Inggris
|
60000
|
10
|
Bhs.Perancis
|
80000
|
10
|
Bhs.Jepang
|
70000
|
15
|
Bhs.Inggris
|
60000
|
20
|
Bhs.Jepang
|
70000
|
Bhs.Jerman
|
75000
|
c. Anomali penghapusan
Anomali ini
terjadi apabila dalam satu baris/ tuple ada data yang akan dihapus sehingga
akibatnya terdapat data lain yang hilang. Contoh pada table kursus data NoSiswa
20 akan dihapus karena sudah tidak ikut kursus lagi sehingga akibatnya data
kursus bhs jepang dan biaya 70000 akan ikut terhapus.
Tahapan
Normalisasi
Bentuk Tidak Normal
Menghilangkan
perulangan group
Bentuk Normal Pertama (1NF)
Menghilangkan
ketergantungan sebagian(dependensi parsial)
Bentuk Normal Kedua (2NF)
Menghilangkan
ketergantungan transitif (dependensi transitif)
Bentuk
Normal Ketiga (3NF)
Menghilangkan
anomali-anomali hasil dari
ketergantungan
fungsional (menghilangkan ketergantungan yg penentunya bukan kunci kandidat)
Bentuk Normal Boyce-Codd (BCNF)
Menghilangkan
Ketergantungan Multivalue
Bentuk Normal Keempat (4NF)
Menghilangkan
anomali-anomali yang tersisa (mengatasi dependensi gabungan)
Bentuk
Normal Kelima
Ø Dependensi (Ketergantungan)
Konsep dasar
pada tahap normalisasi yang menjelaskan hubungan atribut atau secara lebih
khusus menjelaskan nilai suatu atribut yang menentukan atribut lainnya.
Ø Macam-macam dependensi,
yaitu :
a.
Dependensi fungsional
Definisi : Suatu atribut Y mempunyai dependensi
fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan
dengan sebuah nilai Y.
Notasi :
X Y (X
secara fungsional menentukan Y)
Contoh : Tabel Pesanan
Pembeli
|
Kota
|
Barang
|
Jumlah
|
P1
|
Yogya
|
B1
|
10
|
P1
|
Yogya
|
B2
|
5
|
P2
|
Jakarta
|
B1
|
4
|
P2
|
Jakarta
|
B2
|
7
|
P3
|
Solo
|
B3
|
6
|
P3
|
Solo
|
B4
|
6
|
Pembeli secara fungsional menentukan kota, sebab setiap pembeli yang sama mempunyai kota yang sama, dengan demikian : Pembeli Kota
contoh lain
:
{Pembeli, Barang} Jumlah
Keterangan:
v Bagian yang terletak
disebelah kiri tanda panah biasa disebut DETERMINAN / PENENTU dan bagian yang
terletak di sebelah kanan panah disebut DEPENDENSI / YANG TERGANTUNG.
v Tanda {} biasanya
digunakan untuk menentukan lebih dari satu atribut sebagai penentu atau sebagai
yang tergantung.
b.
Dependensi fungsional sepenuhnya
Definisi :
Suatu atribut Y mempunyai dependensi fungsional penuh terhadap X jika
v Y mempunyai dependensi
fungsional terhadap X dan/atau
v Y tidak memiliki dependensi
terhadap bagian dari X
Contoh :
{Pembeli, Barang} Jumlah
v Intinya :
Jumlah
mempunyai dependensi fungsional terhadap gabungan Pembeli dan Barang, bukan
pada bagian dari {pembeli,Barang}, sehingga jumlah memiliki dependensi
fungsional sepenuhnya terhadap {Pembeli, Barang}
c.
Dependensi Total
Definisi :
Suatu atribut Y mempunyai dependensi total terhadap atribut X jika
v Y memiliki dependensi
fungsional terhadap X dan
v X memiliki dependensi
fungsional terhadap Y
v
Notasi :
X Y
v Contoh : Tabel Pemasok
KodePemasok
|
NamaPemasok
|
Kota
|
K1
|
Kartika
|
Jakarta
|
C1
|
Citra
|
Bandung
|
C2
|
Candra
|
Jakarta
|
v
Pada kasus
ini KodePemasok NamaPemasok, karena setiap kode
tidak mempunyai nama yang sama.
d.
Dependensi Transitif
Definisi :
Atribut Z mempunyai dependensi transitif terhadap X bila :
v Y memiliki dependensi
fungsional terhadap X
v Z memiliki dependensi
fungsional terhadap Y
X
à Y à Z
Contoh :
Kuliah
|
Ruang
|
Tempat
|
Waktu
|
Jarkom
|
Merbabu
|
Gedung Utara
|
Senin
|
Basis Data
|
Arjuna
|
Gedung Selatan
|
Selasa
|
Matematika
|
Merapi
|
Gedung Barat
|
Rabu
|
Fisika
|
Merbabu
|
Gedung Timur
|
Kamis
|
v
Relasi :
Kuliah {Ruang, Waktu} Ruang Tempat
Terlihat bahwa : Kuliah Ruang Tempat
v Dengan demikian Tempat
mempunyai dependensi transitif terhadap kuliah
Ø Diagram Dependensi Fungsional (Diagram DF)
Adalah diagram
yang digunakan untuk menggabarkan dependensi fungsional. Diagram ini
menunjukkan hubungan antara atribut yang menjadi penentu atribut lainnya,
dengan hubungan yang dinyatakan dengan tanda panah. Seperti contoh diatas dapat
digambarkan diagram DF sebagai berikut :
Kuliah
|
Ruang
|
Waktu
|
Tempat
|
Ø Dekomposisi
Pada tahap
normalisasi sering kali terjadi pemecahan table kedalam bentuk dua atau lebih
relasi. Proses pemecahaan ini disebut dengan dekomposisi. Syarat : Tidak ada
informasi yang hilang ketika suatu relasi dipecah menjadi relasi-relasi lain.
Contoh : Terdapat suatu relasi awal sebagai berikut :
Nim
|
Nama
|
Program Studi
|
95001
|
Andi
|
Ekonomi
|
95002
|
Vira
|
Teknik
|
95003
|
Andi
|
Fisika
|
Akan dibentuk
kedalam dekomposisi tak hilang menjadi :
Nim
|
Nama
|
Nim
|
Program Studi
|
|
95001
|
Andi
|
95001
|
Ekonomi
|
|
95002
|
Vira
|
95002
|
Teknik
|
|
95003
|
Andi
|
95003
|
Fisika
|
Pada relasi
awal dapat diketahui informasi sebagai berikut : 95001 adalah ANDI
program studi Ekonomi. Setelah proses dekomposisi tak hilang hasilnya
adalah sama 95001 adalah ANDI dan 95001 program studi Ekonomi.
Contoh dekomposisi hilang adalah
Nim
|
Nama
|
Nama
|
Program Studi
|
|
95001
|
Andi
|
Andi
|
Ekonomi
|
|
95002
|
Vira
|
Vira
|
Teknik
|
|
95003
|
Andi
|
Andi
|
Fisika
|
95001 bernama
ANDI, tetapi ANDI dengan program studi Ekonomi atau Fisika?
Ø Bentuk Normalisasi
1.
Bentuk normalisasi pertama (1NF)
Dikenakan pada
tabel yang sama sekali belum ternomalisasi. Tabel yang belum ternomalisasi adalah
tabel yang mempunyai atribut berulang. Contoh : terdapat suatu data sebagai
berikut :
NIP
|
Nama
|
Jabatan
|
Keahlian
|
Lama Kerja
|
107
|
Ilham
|
Analis Senior
|
Cobol
|
6
|
Oracle
|
1
|
|||
109
|
Ryan
|
Analis Junior
|
Cobol
|
2
|
C++
|
2
|
|||
120
|
Fika
|
Programmer
|
Dbase
|
3
|
Sybase
|
1
|
|||
Cobol
|
1
|
Pada contoh di
atas, keahlian mempunyai atribut yang berulang. Untuk itu akan dibentuk ke
normal 1NF. Syarat Normal 1NF adalah suatu relasi dikatakan dalam bentuk normal
pertama jika dan hanya jika setiap atribut bernilai tunggal dalam satu baris.
NIP
|
Nama
|
Jabatan
|
Keahlian
|
Lama Kerja
|
107
|
Ilham
|
Analis Senior
|
Cobol
|
6
|
107
|
Ilham
|
Analis Senior
|
Oracle
|
1
|
109
|
Ryan
|
Analis Junior
|
Cobol
|
2
|
109
|
Ryan
|
Analis Junior
|
C++
|
2
|
120
|
Fika
|
Programmer
|
Dbase
|
3
|
120
|
Fika
|
Programmer
|
Sybase
|
1
|
120
|
Fika
|
Programmer
|
Cobol
|
1
|
Tabel d i atas
sudah memenuhi bentuk normal 1NF
2.
Bentuk Normal 2NF
Bentuk ini
didefinisikan berdasarkan dependensi fungsional dengan syarat adalah :
v Berada pada bentuk normal
pertama
v Semua atribut bukan kunci
memiliki dependensi sepenuhnya terhadap kunci primer
Cara
mengkonversi bentuk normal pertama ke Bentuk normal kedua:
1.
Ubahlah setiap dependensi parsial menjadi sebuah
relasi/tabel, dengan kunci primer adalah determinannya
2.
Ubahlah dependensi yang terkait langsung dengan kunci primer
sebagai relasi tersendiri dan kunci primernya adalah kunci primer dalam relasi
semula
Contoh :
v Nama dan jabatan mempunyai dependensi fungsional
terhadap NIP
NIP à {Nama, Jabatan}
v Lama mempunyai dependensi
fungsional terhadap NIP dan keahlian
{NIP,Keahlian}
à Lama Kerja
Keahlian
|
NIP
|
Nama
|
Lama kerja
|
Jabatan
|
v Bentuk tabelnya adalah :
NNJ (NIP, Nama, Jabatan) dan NKL (NIP, Keahlian, Lama Kerja)
NIP
|
Nama
|
Jabatan
|
107
|
Ilham
|
Analis Senior
|
109
|
Ryan
|
Analis Junior
|
120
|
Fika
|
Programmer
|
NIP
|
Keahlian
|
Lama Kerja
|
107
|
Cobol
|
6
|
107
|
Oracle
|
1
|
109
|
Cobol
|
2
|
109
|
C++
|
2
|
120
|
Dbase
|
3
|
120
|
Sybase
|
1
|
120
|
Cobol
|
1
|
Latihan
Normalisasikan tabel berikut ke bentuk
normal 2NF
Tabel PEGAWAI_KLIEN
NIP
|
Nama pegawai
|
No_klien
|
Nama klien
|
P1
|
Caca
|
K1
K2
K4
|
Rini
Rina
Fatwa
|
P2
|
Eca
|
K3
K1
|
Rio
Rini
|
P3
|
Rena
|
K5
|
Berta
|
P4
|
Cinta
|
K6
K8
|
Beni
Sasa
|
3.
Syarat :
|
v Berada dalam bentuk normal
2 NF
v Setiap atribut bukan kunci
tidak memiliki dependensi transitif terhadap kunci primer
Contoh di atas
sudah memenuhi normal 3NF karena : Tidak memiliki dependensi transitif, yaitu
NIP {Nama, Jabatan}
{NIP,
Keahlian} Lama Kerja
Cara
mendekomposisi relasi yang mengandung dependensi transitif :
1.
Bentuk relasi yg memiliki dependensi fungsional yang tdk
melibatkan kunci primer dalam relasi semula. Determinannya mjd kunci primer
relasi yg dibentuk
2.
Bentuk relasi yang berisi kunci primer relasi semula.kemudian
pindahkan semua atribut bukan-kunci primer yg bergantung pada kunci primer
tetapi td bergantung pada determinan lain ke relasi tsb jadikan atribut yg
menjadi kunci primer relasi semula sbg kunci primer relasi baru. Adapun atribut
yang berasal dari determinan yg menjadi perantara dalam dependensi transitif
akan bertindak sebagai kunci asing.
Contoh :
Mata Kuliah
|
Ruang
|
Tempat
|
Hari
|
Jam mulai
|
Jarkom
|
u-1
|
Gedung Utara
|
Senin
|
08.00
|
Basis Data
|
S-1
|
Gedung Selatan
|
Selasa
|
08.00
|
Matematika
|
B-1
|
Gedung Barat
|
Rabu
|
13.00
|
Fisika
|
B-2
|
Gedung Barat
|
Kamis
|
11.00
|
Mata kuliah à {ruang, tempat, hari, jam mulai}
Ruang à tempat
·
Sehingga : Mata kuliah à ruang à tempat (memiliki
dependensi transitif)
·
Jika digambarkan diagram dependensi fungsional sbb:
Mata Kuliah
|
Ruang
|
hari
|
Tempat
|
Jam mulai
|
HASIL DEKOMPOSISI
ke bentuk normal 3NF sbb:
MATA_KULIAH(Mata
kuliah, Ruang,hari,jam mulai)
LATIHAN.
NORMALISASIKAN KE BENTUK 3NF
1.
Tabel PESANAN_ITEM
2.
TABEL BARANG_PEMASOK
Kode_barang
|
Nama barang
|
Harga jual
|
Kode pemasok
|
Nama pemasok
|
kota
|
B1
|
TV ABC 14”
|
600.000
|
P2
|
PT CITRA
|
BOGOR
|
B2
|
TV ABC 21”
|
950.000
|
P2
|
PT CITRA
|
BOGOR
|
B3
|
TV DEC 14”
|
870.000
|
P1
|
PT AMAR
|
BANDUNG
|
B4
|
TV REI 29”
|
1.750.000
|
P3
|
PT KARTIKA
|
YOGYA
|
B5
|
TV KIR 14”
|
450.000
|
P4
|
PT NINDYA
|
TANGERANG
|
4.
Bentuk Normal boyce-codd (BCNF)
Bentuk ini
dilakukan jika dan hanya jika semua penentu (determinan) adalah kunci kandidat
(atribut yang bersifat unik). BCNF merupakan perbaikan dari 3NF. Relasi yang
memenuhi BCNF pasti memenuhi 3NF tetapi tidak sebaliknya. Contoh : Tabel SKT
Siswa
|
Kursus
|
Tutor
|
Anwar
|
Bhs. Perancis
|
Pierre
|
Anwar
|
Bhs. Inggris
|
Richard
|
Budi
|
Bhs. Perancis
|
Pierre
|
Cecep
|
Bhs. Inggris
|
Suzanne
|
Tabel di atas
adalah suatu relasi yang memenuhi 3NF tetapi tidak memenuhi BCNF. Relasi diatas
didasarkan oleh fakta :
v Seorang siswa dapat
mengambil sejumlah kursus
v Setiap tutor hanya
mengajar satu kursus bahasa
v Setiap siswa dalam satu
kursus diajar oleh satu tutor
v Suatu kursus bis dipegang
oleh beberapa tutor
Pada keadaan
tersebut di atas dapat digambarkan sebagai berikut : Siswa & Kursus dan Siswa & Tutor.
{Siswa,
Kursus} àTutor
Tutorà Kursus
Kursus
|
Siswa
|
Tutor
|
Memenuhi
bentuk 3NF karena tidak ada dependensi transitif pada relasi tersebut. Tetapi
tidak memenuhi BCNF karena adanya determinan Tutor yang tidak berdiri sebagai
kunci kandidat. Realsi SKT menyebabkan anomali karena baris Cecep dihapus maka
Suzane sebagai tutor jug akan terhapus. Cara konversi dari 3NF ke BCNF adalah :
v Carilah semua penentu
v Bila terdapat penentu yang
bukan kunci kandidat, maka :
ü Pisahkan relasi tersebut
ü Buat penentu sebagai kunci
primer
ü Dekomposisi berupa : ST
(Siswa, Tutor) dan TK (Tutor, Kursus)
|
|
5.
Bentuk Normal 4NF
Ø Bentuk normal 4NF
terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tidak
mengandung lebih dari satu dependensi bernilai banyak (multivalued
dependencies) yang bersifat independen
Ø Untuk setiap multivalued
dependencies (MVD) harus merupakan functional
dependencies
Contoh:
Relasi MDB
Bentuk
unnormalized yang menunjukkan hubungan
matakuliah, dosen dan isi:
Berdasar data aslinya,
tampak bahwa satu nilai dalam matakuliah
berpasangan dengan lebih dari satu dosen dan satu nilai mata kuliah berpasangan dengan memiliki
lebih dari satu isi untuk mata kuliah tsb.
Relasi MDB mempunyai dua
buah multivalued dependencies (MVD) , yaitu:
Matakuliah->> dosen
Matakuliah->> isi
Yang perlu diperhatikan bahwa
dosen dengan isi bersifat independen atau tdk saling ketergantungan
Matakuliah ->> dosen
| isi
Teorema Fagin:
Bila R(A,B,C) merupakan
suatu relasi dengan A, B, dan C adalah atribut-atributnya maka R dapat dipecah
menjadi (A,B) dan (A,C) jika R memenuhi
MVD A
->> B|C
Sehingga Untuk kasus seperti
ini tabel di-dekomposisi menjadi:
MATAKULIAH_DOSEN (Matakuliah,
Dosen)
MATAKULIAH_ISI (Matakuliah,
isi)
6.
Bentuk Normal 5NF
·
Suatu keadaan yg membuat relasi yang telah memenuhi bentuk
normal keempat tidak dpt dekomposisi mjd relasi-relasi yang lebih kecil dengan
kunci kandidat relasi-relasi pecahanya tsb tidak sama dengan kunci kandidat
relasi
·
5NF dibentuk berdasarkan konsep join dependence. Yakni
apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil,
harus bisa digabungkan lagi (join) untuk membentuk tabel semula
·
Contoh :
RELASI DDK
Memenuhi dependensi
gabungan : Dealer Distributor, Distributor Kendaraan, Dealer Kendaraan
Agar memenuhi bentuk
normal 5NF diDekomposisi menjadi 3
relasi sbb:
DEALER_DISTRIBUTOR (dealer,
distributor)
DISTRIBUTOR_KENDARAAN(Distributor,
Kendaraan)
DEALER_KENDARAAN (Dealer,
Kendaraan)
DEALER_DISTRIBUTOR DISTRIBUTOR_KENDARAAN
DEALER_KENDARAAN
JIKA DI
JOIN (DIGABUNGKAN)
DEALER_DISTRIBUTOR
Dealer
|
Distributor
|
kendaraan
|
PT Sumber Jaya
|
Nissan
|
Truk Nissan
|
PT Sumber Jaya
|
Toyota
|
Toyota Kijang
|
PT Sumber Jaya
|
Toyota
|
Truk Dyna
|
PT Sumber Jaya
|
Nissan
|
Sedan Nissan
|
PT Asterindo
|
Nissan
|
Truk Nissan
|
PT Asterindo
|
Nissan
|
Sedan Nissan
|
Tidak ada komentar:
Posting Komentar