Normalisasi
Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan. Proses normalisasi merupakan proses pengelompokan data elemen menjadi tabel yang menunjukkan entity dan relasinya (Kristanto, H., 1994). Normalisasi data merupakan suatu proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali, dan mengacu pada cara data item dikelompokkan ke dalam struktur record.
The goal of a relational database design is to generate a set of relation scheme that allow us to store informastion easily. One approach is to design scheme that are in an appropriate normal form (silberschatz, H., 1991) Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai didalam suatu organisasi.
Tujuan Normalisasi
Untuk menghilangkan kerangkapan data Untuk mengurangi kompleksitas Untuk mempermudah pemodifikasian data
Proses Normalisasi
Data diuraikan dalam bentuk tabel, selanjutnya dianalisisberdasarkan persyaratan tertentu ke beberapa tingkat. Apabila tabel yang diuji belum memenuhi persyaratan tertentu,maka tabel tersebut perlu dipecah menjadi beberapa tabel yanglebih sederhana sampai memenuhi bentuk yang optimal.
2. 3.
Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabeltabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation). Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan dijelaskan kemudian-)
Tahapan Normalisasi
Bentuk Tidak Normal Menghilangkan perulangan group Bentuk Normal Pertama (1NF) Menghilangkan ketergantungan sebagian Bentuk Normal Kedua (2NF) Menghilangkan ketergantungan transitif Bentuk Normal Ketiga (3NF) Menghilangkan anomali-anomali hasil dari ketergantungan fungsional Bentuk Normal Boyce-Codd (BCNF)
Menghilangkan Ketergantungan Multivalue
Ketergantungan Fungsional
Definisi Atribut Y pada relasi R dikatakan tergantung fungsional padaatribut X (R.X ---> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R. R= Relasi / Tabel Y,X = Atribut didalam Tabel R.
Contoh Ketergantungan
Tabel PEMASOK-BARANG
No_Pem P01 P02 P03 Nama_Pem Imam_x Yazix Hana
Ketergantungan fungsional : No-pem --> Na-pem No-bar, No-pem --> Jumlah (Tergantung penuh thd keynya)
Ketergantungan Transitif
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 )
X Z
XYZ
Jaringan Komputer
Pengantar Basis Data Matematika I Sistem Pakar
Merapi
Gedung Utara
Senin, 08.00-09.50
Selasa, 08.00-09.50 Rabu, 10.00-11.50 Kamis, 08.00-09.50
Kecerdasan Buatan
Merapi
Gedung Utara
Selasa, 10.00-11.50
A-001
A-002 B-001 B-002
Andi
Kurnia Jati Fika Dewi Gani Wirawan
Farkan
Dian Joned Farkan
Jateng
Jabar Jatim Jateng
C-001
Cici Kusuma
Joned
Jatim
Id_Pelanggan
Nama
Salesman
Area
No_Pesan
No_Urut
Kode_Item
Nama_Item
Jumlah
A-002
B-001 B-002 C-001
Kurnia Jati
Fika Dewi Gani Wirawan Cici Kusuma
Dian
Joned Farkan Joned
Jabar
Jatim Jateng Jatim
Anomali penyisipan: Seorang salesman baru yang bertugas di Jateng tidak dapat dimasukkan dalam tabel sampai salesman tersebut mendapatkan seorang pelanggan Anomali penghapusan: Jika pelanggan A-002 dihapus, informasi bahwa Dian menangani daerah Jabar ikut hilang Anomali peremajaan: Jika katakanlah Farkan mendapat penugasan baru untuk menangani daerah Kalimantan, maka sejumlah baris harus diremajakan agar data tetap konsisten
Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF) Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).
Tabel Universal
Tabel Universal (Universal / Star Table) sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang baik.
Misalnya:
Tabel Universal
Bentuk-bentuk Normal
1. Bentuk Normal Tahap Pertama (1st Normal Form / 1NF) 2. Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF) 3. Bentuk Normal Tahap (3rd Normal Form / 3NF) 4. Boyce-Code Normal Form (BCNF) 5. Bentuk Normal Tahap (4th Normal Form / 4NF) 6. Bentuk Normal Tahap (5th Normal Form / 5NF)
Contoh 1
Misal data mahasiswa sbb:
Atau:
Contoh 1
Didekomposisi menjadi:
Tabel Mahasiswa
Tabel Hobi
Contoh 2 (composite)
JadwalKuliah
Kodekul NamaKul Dosen Kelas Jadwal
Dimana nilai pada atribut jadwal berisi gabungan antara Hari dan Jam. Jika asumsi hari dan jam memegang peranan penting dalam sistem basis data, maka atribut Jadwal perlu dipisah sehingga menjadi JadwalHari dan JadwalJam sbb:
JadwalKuliah
Kodekul NamaKul Dosen Kelas JadwalHari JadwalJam
Contoh
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
Mhs_nrp mhs_nama mhs_alamat mk_kode mk_nama mk_sks nihuruf
Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan:
{Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} mhs_nama mhs_alamat mk_nama mk_sks nihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
Contoh
Functional dependencynya sbb:
{Mhs_nrp, mk_kode} nihuruf (fd1) Mhs_nrp {mhs_nama, mhs_alamat} (fd2) Mk_kode {mk_nama, mk_sks} (fd3)
(mhs_nrp, mk_kode, nihuruf) Tabel Nilai (Mhs_nrp, mhs_nama, mhs_alamat) Tabel Mahasiswa (mk_kode, mk_nama, mk_sks) Tabel MataKuliah
Contoh
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Mahasiswa
Nrp
Nama
Alm_Jalan Alm_Kota
Alm_Provinsi Alm_Kodepos
karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos):
Contoh
Misal, tabel berikut tidak memenuhi 4NF:
Setiap employee dapat bekerja di lebih dari project dan dapat memiliki lebih dari satu skill. Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi:
No
Class
Time
Day
Teacher
Start
Room
Remark
B.1I
17.00-18.30
Tuesday Thursday
Ms. Avi Ms. Oki Ms. Beta Ms. Susi Ms. Galuh
A202
Run
B.5I
15.30-17.00
Tuesday Friday
A302
Run
B.1J
17.00-18.30
Monday
A301
Run
Thursday
4 B.2J 17.00-18.30 Tuesday Thursday 5 B.3J 15.30-17.00 Tuesday Thursday 6 B.2F 15.30-17.00 Monday Thursday 7 B.1I 18.30-20.00 Wednesday Friday
Ms. Avi
Mr. Aris Ms. Beta Mr. Aris Ms. Oki Ms. Galuh Mr. Hery Ms. Ria Ms. Galuh A203 Pending A203 Run A103 Run A102 Run