normalisasi data
DESCRIPTION
Normalisasi Data pada Struktur DatabaseTRANSCRIPT
Normalisasi
Adalah proses yang berkaitan dengan model data relational untuk mengorganisasikan himpunan data dengan ketergantungan dan keterkaitan yang tinggi atau erat.
Hasil dari proses normalisasi adalah himpunan-himpunan data (table-table) dalam bentuk normal (normal form).
Kegunaan normalisasi : a. Meminimasi pengulangan informasi. b. Memudahkan indentifikasi entiti / obyek.
Normalisasi menghindari anomali, yaitu kejanggalan yang dapat terjadi (inkonsistensi) bila dilakukan:
Penambahan baris (atau record) Modifikasi isi atribut Menghapus baris
Contoh: Daftar Produk
Nama Produk Warna Harga Nama Pemesan
BMW318i Merah 100.000.000 Amir
BMW318i Kuning 100.000.000 Badu
BMW318i Hijau 100.000.000 Ali
BMW3201 Merah 120.000.000 Hasan
Untuk memasukkan model baru, maka record harus diciptakan dengan Nama Pemesan yang masih kosong.
Daftar Produk Nama Produk Warna Harga Nama Pemesan
BMW318i Merah 100.000.000 Amir
BMW318i Kuning 100.000.000 Badu
BMW318i Hijau 100.000.000 Ali
BMW3201 Merah 120.000.000 Hasan
BMW323i Kuning 300.000.000
Jika baris dengan nama pemesan Hasan dihapus, maka otomatis informasi tentang BMW320i juga ikut terhapus.
Contoh anomali pada modifikasi:
Daftar Karyawan Nama Jabatan Divisi Nama Manajer
Gunawan staff Pemasaran Juwita
Mustafa staff Akunting Reynold
Nur Afni sekretaris Umum Bahruddin
Budiman staff Pemasaran Juwita
Rudy staff Pemsaran Juwita
Anomali terjadi bila Manajer diganti, misalnya “Juwita” diganti dengan “Yanto”. Maka semua baris yang berisi “Juwita” harus diganti dengan “Yanto”.
Untuk menghindari anomali, umumnya dilakukan dekomposisi dari kumpulan atribut, dipecah hingga menjadi beberapa tabel baru.
Contoh sebuah relasi:
atribut
A1 A2 A3 A4
Baris
Struktur SEBUAH RELASI Properti: sebuah relasi terdiri atas sebuah tabel 2-dimensi dengan kolom (atribut) dan baris (record).
KOLOM
Disebut juga atribut, merepresentasikan Field pada Tabel Setiap kolom mempunyai nama yang unique (tunggal) Kolom berisi nilai yang homogen, artinya mempunyai tipe yang sama Setiap kolom mempunyai Domain, yaitu nilai yang konsisten (nilai yang berlaku untuk Field tersebut)
Kolom tidak perlu tersusun BARIS (row)
Disebut juga record, merepresentasikan tupel (tuple) pada Tabel Dalam tabel tidak boleh terdapat baris yang sama isinya Baris-baris tidak perlu tersusun
Dependensi (ketergantungan) Dependensi menjelaskan hubungan antara atribut, atau khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya.
Dependensi menjadi acuan bagi pendekomposisian data ke dalam bentuk yang paling efisien.
Dependensi Fungsional Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X jika dan hanya jika nilai X berhubungan dengan sebuah nilai Y.
Pada sebuah relasi R(X,Y) atribut Y tergantung secara fungsional atas atribut X,
bila setiap nilai yang berlaku pada Y dapat ditentukan oleh X. (simbol adalah X Y)
Notasi : X Y
(dibaca “X secara fungsional menentukan Y” atau dibaca “ X panah Y”)
Cth:
PESANAN_JUAL(PEMBELI, KOTA, BARANG, JUMLAH) PEMBELI KOTA BARANG JUMLAH
P1 Yogya B1 10
P1 Yogya B2 5
P2 Solo B1 7
P2 Solo B2 6
P3 Klaten B3 7
P3 Klaten B4 6
PEMBELI secara fungsional menentukan KOTA, sebab terlihat bahwa untuk PEMBELI
yang sama, KOTA-nya juga sama. Dengan demikian:
PEMBELI KOTA
- Bagian di sebelah kiri panah disebut penentu (determinan). Bagian di kanan
panah disebut yang tergantung (dependen)
KETERGANTUNGAN FUNGSIONAL PENUH Sebuah relasi R(A,B,X) , dimana X tergantung fungsional pada A B.
A B X
X dinyatakan tergantung fungsional penuh (fully functional dependent) bila,
Tidak terjadi A X atau B X
Melainkan hanya: A B X
X dinyatakan tergantung fungsional penuh (fully functional dependent) pada sekelompok atribut Y, bila X tergantung fungsional pada seluruh atribut Y dan bukan subset dari Y.
Beberapa bentuk normal, yaitu : a. Bentuk Normal I (First Normal Form / 1-NF). b. Bentuk Normal II (Second Normal Form / 2-NF). c. Bentuk Normal III (Third Normal Form / 3-NF). d. Bentuk Normal IV (Fourth Normal Form / 4-NF).
a. Bentuk Normal I (First Normal Form / 1-NF).
Suatu relasi memenuhi 1-NF jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dalam satu baris atau record.
Cara: - Buat Un-Normalized Form (bentuk tidak normal) dengan
mengidentifikasi seluruh item data. - Tentukan primary key dari relasi tersebut. - Tentukan grup berulang (item data atau atribut yang memiliki nilai lebih
dari satu dalam suatu baris data/record). - Tentukan key dari grup berulang. - Coret derived atribut (atribut yang nilainya dapat diabaikan, karena
dihasilkan dari atribut lain) - Pisahkan grup berulang menjadi suatu relasi baru dengan membawa
key atribut dari relasi awal.
b. Bentuk Normal II (Second Normal Form / 2-NF).
Suatu relasi memenuhi 2-NF jika dan hanya jika : a. Memenuhi 1-NF. b. Setiap atribut yang bukan kunci utama tergantung secara fungsional
terhadap semua atribut kunci dan bukan hanya sebagian atribut.
Cara: - Perhatikan relasi yang memiliki key atribut lebih dari 1. - Pisahkan atribut-atribut yang tergantung hanya pada sebagian / salah
satu key bersama dengan key pengidentifikasi atribut tersebut menjadi suatu relasi baru.
c. Bentuk Normal III (Third Normal Form / 3-NF).
Suatu relasi memenuhi bentuk III (3-NF) jika dan hanya jika : a. Relasi tersebut memenuhi 2-NF. b. Setiap atribut bukan kunci tidak tergantung secara fungsional kepada atribut bukan kunci yang lain dalam relasi tersebut.
Cara: - Pisahkan atribut-atribut yang tergantung pada atribut yang bukan key
bersama dengan atribut bukan key tersebut menjadi suatu relasi baru.
Normal Form Inti dari normalisasi adalah eliminasi anomali pada saat insert, delete atau
update record.
1NF (First Normal Form) Sebuah tabel berada dalam 1 NF jika tabel tersebut merupakan suatu relasi atau tabel tersebut hanya memiliki nilai tunggal dalam satu baris atau record.
Un-nomal Form
NoInduk
Nama
Kursus
KdKursus Tgl
KdKursus Tgl
KdKursus Tgl
8003 Amir UNIX 02/03/19
98 NT 01/02/19
98 DB2 04/02/19
98
8005 Hasan NT
01/02/1998 UNIX
02/03/1998
8007 Badu NT 01/02/19
98
1NF
NoInduk Nama KdKursus Tgl
8003 Amir UNIX 02/03/1998
8003 Amir NT 01/02/1998
8003 Amir DB2 04/02/1998
8005 Hasan NT 01/02/1998
8005 Hasan UNIX 02/03/1998
8007 Badu NT 01/02/1998
2NF (Second Normal Form) Suatu relasi memenuhi 2 NF jika: a. Memenuhi 1-NF.
b. Setiap atribut yang bukan kunci utama tergantung secara fungsional terhadap
semua atribut kunci dan bukan hanya sebagian atribut.
Pada relasi 1 NF diatas: NoInduk Nama
KdKursus Tgl
NoInduk, KdKursus Nama
Primary Key dalam relasi 1NF di atas adalah NoInduk dan KdKursus
Masih terdapat ketergantungan sebagian (partial dependency), karena Nama
tidak sepenuhnya tergantung pada atribut kunci (primary key). Selain itu Tgl
juga hanya tergantung pada sebagian atribut kunci, yaitu hanya tergantung pada KdKursus saja. Sehingga tabel harus didekomposisi.
Cara melakukan dekomposisi:
- Pisahkan atribut-atribut yang tergantung hanya pada sebagian / salah satu
key bersama dengan key pengidentifikasi atribut tersebut menjadi suatu
relasi baru.
NoInduk Nama KdKursus Tgl
8003 Amir UNIX 02/03/1998
8005 Hasan NT 01/02/1998
8007 Badu DB2 04/02/1998
NoInduk KdKursus
8003 UNIX
8003 NT
8003 DB2
8005 NT
8005 UNIX
8007 NT
3NF (Third Normal Form) Sebuah relasi berada dalam 3NF, jika relasi adalah 1NF dan 2NF dan tidak ada
atribut bukan kunci yang tergantung fungsional kepada atribut bukan kunci yang lainnya (dengan kata lain tidak boleh ada ketergantungan transitif).
NoMhs NmMhs NoFak NmFak 1234 Abas F1 Biologi
1456 Samson F2 Teknik
1316 Rida F8 Sastra
1367 Anton F8 Sastra
1245 Mira F1 Biologi
Primary key relasi diatas adalah NoMhs. NoMhs NmMhs
NoMhs NoFak
NoMhs NmFak NoFak NmFak
Relasi diatas sudah memenuhi 1NF dan 2NF, tetapi tidak 3NF, karena masih
terdapat atribut bukan kunci yang tergantung pada atribut bukan kunci lainnya
dalam relasi tersebut. (NoFak NmFak). Sehingga perlu dilakukan dekomposisi tabel.
Cara melakukan dekomposisi tabel:
- Pisahkan atribut-atribut yang tergantung pada atribut yang bukan key
bersama dengan atribut bukan key tersebut menjadi suatu relasi baru.
NoMhs NmMhs NoFak NoFak NmFak
1234 Abas F1 F1 Biologi
1456 Samson F2 F2 Teknik 1316 Rida F8 F8 Sastra
1367 Anton F8
1245 Mira F1
LATIHAN !!
NIP Nama Jabatan Keahlian Lama(Thn)
107 Ilham Analis Senior Cobol 6
Oracle 1
109 Rian Analis Yunior Cobol 2 Visual Basic 2
112 Fika Pemrogram Cobol 1
Visual Basic 2 Delphi 2
NIK Nama Alamat Jabatan Gaji KdCab AlmCabang NoTelp
SL21 John White
Jl. Nanas 23
Manager 30000 B5 Jl. Zeta 6 0171-886-1212
SG37 Aan Beach
Jl Sawo 185
Analist 12000 B3 Jl. Beta 3 0141-339-2178
SG14 David Ford
Jl. Kecap 10
Deputy 18000 B3 Jl. Beta 3 0141-339-2179
SA9 Mary Howe
Jl. Salak 96
Assistant 9000 B7 Jl. Alpha 12 01223-67111
SG5 Susan Brand Jl. Melon 6
Manager 30000 B5 Jl. Zeta 6 0171-886-1212
SL41 Julie Lee Jl. Jeruk 87 Assistant 9000 B5 Jl. Zeta 6 0171-886-
1212
SG78 Diana Prim
Jl. Jambu 18
Analist 12000 B7 Jl. Alpha 12 01223-67111
NoPelg Nama
No Propert
y Alm
Property TgSewa TgSelesai Biay
a
No Pemili
k
Nm Pemili
k
CR76 Budi PG4 Jl. Aai 7
01/07/1993
31/08/1995 350 CO40 Ewin
PG16 Jl. Huzai 12
01/09/1995
01/09/1996 450 CO93 Durki
CR56 Sirajudin PG4 Jl. Aai 7
01/09/1992
10/06/1993 350 CO40 Ewin
PG36 Jl. Azhar 49
10/10/1993
01/12/1994 375 CO93 Durki
PG16 Jl. Huzai 12
01/01/1995
10/08/1995 450 CO93 Durki