Normalisasi

advertisement
02/12/2010
Normalisasi
• Normalisasi adalah proses pembentukan struktur
basis data sehingga sebagian besar ambiguity bisa
dihilangkan.
• Digunakan untuk memastikan bahwa database yang
dibuat berkualitas baik
• 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.
Normalisasi
(Pert. 8)
Oleh :
Umi Laili Yuhana, S.Kom, M.Sc.
Sarwosri, S.Kom, M.T.
Dr. Ir. Siti Rochimah
BASIS DATA TEKNIK INFORMATIKA - ITS GASAL
2010/2011
1
Normalisasi
2.
3.
Jika kriteria ketiga (BCNF) tidak dapat
terpenuhi, maka paling tidak tabel tersebut
tidak melanggar Bentuk Normal tahap ketiga
(3rd Normal Form / 3NF).
Jika ada dekomposisi (penguraian) tabel, maka
dekomposisinya harus dijamin aman (Lossless-Join
Decomposition). Artinya, setelah tabel tersebut diuraikan /
didekomposisi menjadi tabel-tabel 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-)
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
2
Normalisasi
Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi
3 kriteria sbb:
1.
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
3
Tabel Universal
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
4
Tabel Universal
Tabel Universal (Universal / Star Table) 
sebuah tabel yang merangkum semua kelompok
data yang saling berhubungan, bukan
merupakan tabel yang baik.
Misalnya:
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
5
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
6
1
02/12/2010
Functional Dependency
Functional Dependency
• Notasi: A  B
• A dan B adalah atribut dari sebuah tabel. Berarti
secara fungsional A menentukan B atau B tergantung
pada A, jika dan hanya jika ada 2 baris data dengan
nilai A yang sama, maka nilai B juga sama

Contoh tabel nilai
Notasi: A  B
atau A x B
Adalah kebalikan dari notasi sebelumnya.
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
7
Functional Dependency
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)
Functional Dependency dari tabel nilai




Nrp  namaMhs
Karena untuk setiap nilai nrp yang sama, maka nilai namaMhs
juga sama.
{Namakul, nrp}  NiHuruf
Karena attribut Nihuruf tergantung pada Namakul dan nrp secara
bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama,
maka NiHuruf juga sama, karena Namakul dan nrp merupakan key
(bersifat unik).
NRP  NamaKul
Nrp  NiHuruf
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
8
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
9
Contoh 1 (multi value atribut*)
Bentuk Normal Tahap Pertama (1st
Normal Form / 1NF)
• Bentuk normal 1NF terpenuhi jika sebuah
tabel tidak memiliki atribut bernilai banyak
(multivalued attribute), atribut composite
atau kombinasinya dalam domain data yang
sama.
• Setiap atribut dalam tabel tersebut harus
bernilai atomic (tidak dapat dibagi-bagi lagi)
10
Misal data mahasiswa sbb:
NRP
Nama
Hobi
12020001
Heri Susanto
Sepakbola, Membaca Komik, Berenang
12020013
Siti Zulaiha
Memasak, membuat program komputer
12020018
Heri Susanto
Membuat program Komputer
12020015
Dini Susanti
Menjahit, Membuat Roti
NRP
Atau:
Nama
Hobi1
12020001
Heri
Susanto
Sepakbola
12020013
Siti Zulaiha Memasak
12020018
Heri
Susanto
Membuat Program
Komputer
12020015
Dini
Susanti
Menjahit
Hobi2
Membaca Komik
Hobi3
Berenang
Membuat Program
Komputer
Membuat Roti
Tabel-tabel di atas tidak memenuhi syarat 1NF
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
11
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
12
*Multi value atribut adalah atribut yang memiliki lebih dari satu nilai
2
02/12/2010
Contoh 2 (composite)
Tabel yang memenuhi 1NF
JadwalKuliah
NRP
Nama
Hobi
12020001
Heri Susanto
Sepakbola
12020001
Heri Susanto
Membaca Komik
12020001
Heri Susanto
Berenang
12020013
Siti Zulaiha
Memasak
12020013
Siti Zulaiha
Membuat program Komputer
12020018
Heri Susanto
Membuat Program Komputer
12020015
Dini Susanti
Menjahit
12020015
Dini Susanti
Membuat Roti
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
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
NamaKul
Bentuk Normal Tahap Kedua (2nd Normal
Form)
JadwalHari
JadwalJam
14
Contoh
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
Mhs_nrp

mhs_nama
mhs_alamat
15
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} 

BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
Kelas
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
13
• Bentuk normal 2NF terpenuhi dalam sebuah tabel
jika telah memenuhi bentuk 1NF, dan semua atribut
selain primary key, secara utuh memiliki Functional
Dependency pada primary key
• Sebuah tabel tidak memenuhi 2NF, jika ada atribut
yang ketergantungannya (Functional Dependency)
hanya bersifat parsial saja (hanya tergantung pada
sebagian dari primary key)
• Jika terdapat atribut yang tidak memiliki
ketergantungan terhadap primary key, maka atribut
tersebut harus dipindah atau dihilangkan
Dosen
mhs_nama
mhs_alamat
mk_nama
mk_sks
nihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel
yang memenuhi syarat
2NF
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
16
Bentuk Normal Tahap Ketiga (3rd Normal
Form /3NF)
Contoh
Functional dependencynya sbb:
{Mhs_nrp, mk_kode}  nihuruf
Mhs_nrp
 {mhs_nama, mhs_alamat}
Mk_kode
 {mk_nama, mk_sks}
fd1
fd2
fd3
• Bentuk normal 3NF terpenuhi
(fd1)
(fd2)
(fd3)
– jika telah memenuhi bentuk 2NF, dan
– jika tidak ada atribut yang bukan kunci memiliki
ketergantungan transitif (tidak secara langsung) pada
primary key.
(mhs_nrp, mk_kode, nihuruf)
 Tabel Nilai
(Mhs_nrp, mhs_nama, mhs_alamat)  Tabel Mahasiswa
(mk_kode, mk_nama, mk_sks)
 Tabel MataKuliah
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
17
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
18
3
02/12/2010
Contoh
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
No Pesanan
No Urut
Kode item
Nama item
5001
001
P1
Pensil
5001
002
5002
001
5003
001
P2
P1
P2
Buku Tulis
Tabel Pesanan
No Pesanan
No Urut
Kode item
Primary Key:
No Pesanan + No Urut
5001
001
P1
5001
002
P2
5002
001
P1
5003
001
P2
Pensil
Buku Tulis
{No Pesanan, No Urut}  Kode Item
{No Pesanan, No Urut}  Nama item
Kode Item  Nama item (Nama item tergantung pada kode item,
Kode item bukan primary key dari tabel ini)
Nama item bergantung pada No
pesanan dan no urut secara tidak
langsung, karena ia bergantung
pada kode item
Tabel berikut telah memenuhi 3NF
Tabel Barang
Kode item
Nama item
Primary Key: Kode item
P1
Pensil
P2
Buku Tulis
Dengan kata lain ada atribut bukan
primary key yang bergantung pada
atribut yang bukan primary key
Solusi: nama dihilangkan dari
tabel
diINFORMATIKA
atas dan
BASIS DATA
TEKNIK
- ITS dibuat
2010/2011
tabel sendiri bersamaan denganGASAL
kode
item
19
Solusi: nama dihilangkan dari
tabel
diINFORMATIKA
atas dan
BASIS DATA
TEKNIK
- ITS dibuat
2010/2011
tabel sendiri bersamaan denganGASAL
kode
item
20
Contoh BCNF
Boyce-Code Normal Form (BCNF)
• Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap
functional dependency terhadap setiap atribut atau gabungan
atribut dalam bentuk:
X  Y maka X adalah super key
• tabel tersebut harus di-dekomposisi berdasarkan functional
dependency yang ada, sehingga X menjadi super key dari
tabel-tabel hasil dekomposisi
• Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap
3NF belum tentu termasuk BCNF . BCNF merupakan perbaikan
bagi 3NF yang anomali.
Siswa
Kursus
Tutor
Anwar
Bahasa Perancis
Pierre
Anwar
Bahasa Inggris
Richard
Budi
Bahasa Perancis
Pierre
Cecep
Bahasa Inggris
Suzanne
• Tabel tersebut tidak melanggar 3NF
• Seorang siswa dapat mengambil sejumlah
kursus
• Tutor hanya mengajar pada sebuah
kursus, satu kursus bisa diajar oleh banyak
tutor
• Kunci kandidat:
21
Tutor
Anwar
Pierre
Anwar
Richard
Budi
Pierre
Cecep
Suzanne
Tutor
Kursus
Pierre
Bahasa Perancis
Richard
Bahasa Inggris
Pierre
Bahasa Perancis
Suzanne
Bahasa Inggris
Solusi: dekomposisi tabel
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
22
Bentuk Normal Tahap Keempat (4th
Normal Form /4NF)
Memenuhi BCNF
Siswa
Solusi: dekomposisi tabel
TUTOR
KURSUS
Hubungan ketergantungan
Jika baris Cecep dihapus,
Informasi suzanne sebagai
tutor bahasa inggris akan hilang
– Siswa + Kursus
– Kursus + Tutor
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
SISWA
• 4NF terpenuhi jika
– telah memenuhi bentuk BCNF,
– Tidak mengandung dua atribut atau lebih yang
bernilai banyak
23
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
24
4
02/12/2010
Bentuk Normal Tahap Keempat (5th
Normal Form /5NF)
Contoh
Misal, tabel berikut tidak memenuhi 4NF:
Nama Pegawai
Proyek
Skill
Jim
11, 6
Komunikasi,
pemrogram mahir,
negosiasi
Mary
5, 11
Analisis, Desain
Setiap pegawai dapat bekerja di lebih dari satu proyek dan
dapat memiliki lebih dari satu skill. Untuk kasus seperti ini
tabel tersebut harus di-dekomposisi menjadi:
(Nama Pegawai, Proyek)
(Nama Pegawai, Skill)
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
25
• Suatu tabel dikatakan tidak memenuhi 5NF jika ia
atributnya saling bergantung dengan atribut lain
• Bentuk normal 5NF terpenuhi jika data yang ada
padanya tidak dapat didekomposisi lagi menjadi
tabel yang lebih kecil
• Jika 4 bentuk normal sebelumnya dibentuk
berdasarkan functional dependency, 5NF dibentuk
berdasarkan konsep join dependence. Yakni apabila
sebuah tabel telah di-dekomposisi menjadi tabeltabel lebih kecil, harus bisa digabungkan lagi (join)
untuk membentuk
tabel semula
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
26
Contoh
Dealer
Distributor
Kendaraan
PT Sumber Jaya
Nissan
Truk Nissan
PT Sumber Jaya
Toyota
Toyota Kijang
PT Sumber Jaya
Toyota
Truk Dyna
PT Asterindo
Nissan
Sedan Nissan
Tidak memenuhi 5NF
Latihan Normalisasi
•Pecah menjadi 3 tabel:
•Deal_dist(Dealer, Distributor)
•Dist_kend(Distributor,Kendaraan)
•Deal_kend(Dealer, kendaraan)
•Jika digabung menjadi satu akan
kembali menjadi tabel diatas
memenuhi 5NF
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
27
Soal Latihan (1)
Pembahasan(1)
NoOrder TglOrder
Item1
Item2
Item3
Total
TR001
10/01/20
06
P1
P2
P3
500.000
TR002
15/02/20
06
P3
P5
18/03/20
06
P1
TR003
P2
Bentuk Normal Pertama
300.000
200.000
Bagaimana bentuk normalisasinya?
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
28
29
NoOrder
TglOrder
Item
Total
TR001
10/01/2006
P1
500.000
TR001
10/01/2006
P2
500.000
TR001
10/01/2006
P3
500.000
TR002
15/02/2006
P3
300.000
TR002
15/02/2006
P5
300.000
TR003
18/03/2006
P1
200.000
TR003
18/03/2006
P2
200.000
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
30
5
02/12/2010
Soal Latihan(2)
Pembahasan(2)
• Tabel soal latihan 2 sudah memenuhi normalisasi pertama
dan kedua tetapi melanggar normaslisasi tahap 3
• Bentuk normalisasi kedua dari tabel tersebut adalah
Relasi: Proyek
Relasi: Pegawai
KodeProyek
NamaPegawai
Bagian
P001
Adi
EDP
P002
Bima
HRD
P002
Adi
EDP
KodeProyek
NamaPegawai
NamaPegawai
Bagian
P003
Bima
HRD
P001
Adi
Adi
EDP
P003
Candra
Produksi
P002
Bima
Bima
HRD
P002
Adi
Candra
Produksi
P003
Bima
P003
Candra
• Apakah sudah memenuhi bentuk normal ?
• Bagaimana bentuk normalisasi tabel tersebut?
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
31
Soal Latihan(3)
32
Pembahasan (3)
NRP
Nama
MataKuliah
NIP
Dosen
5103100101
Ali
Basis Data
320001123
Ir.X
5103100102
Sita
Basis Data
320001123
Ir.X
5103100102
Sita
RPL
320011133
5103100103
Adi
AI
320021010
• Tabel soal latihan 3 sudah memenuhi normalisasi pertama
• Bentuk normalisasi kedua dari tabel tersebut adalah
Relasi: Mahasiswa2
Relasi: Mahasiswa1
NRP
Nama
NRP
Mata Kuliah
Ir.Y
5103100101
Ali
5103100101
Basis data
Ir.Z
5103100102
Sita
5103100102
Basis data
5103100103
Adi
5103100102
RPL
5103100103
AI
• Apakah sudah memenuhi bentuk normalisasi?
• Bagaimana bentuk normalisasi tabel tersebut?
• Primary key: NRP+MataKuliah
Relasi: Mahasiswa3
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
33
Pembahasan (3)
Mata Kuliah
NIP
Dosen
Basis Data
320001123
Ir. X
RPL
320001133
Ir. Y
AI
320021010
Ir. Z
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
34
Referensi
• Relasi Mahasiswa1 dan mahasiswa2 telah memenuhi normalisasi
tahap 2
• Relasi mahasiswa3 melanggar normalisasi tahap 3 yaitu Nama
dosen bergantung pada NIP
Relasi: Mata Kuliah
Relasi: Mahasiswa3
Mata Kuliah
NIP
Mata Kuliah
NIP
Dosen
Basis Data
320001123
Basis Data
320001123
Ir. X
RPL
320001133
RPL
320001133
Ir. Y
AI
320021010
AI
320021010
Ir. Z
1. Konsep & Tuntunan Praktis Basis Data, Abdul
Kadir, penerbit Andi Yogyakarta
2. Rebecca M. Riordan. 2005. Designing
Effective Database System. Addison Wesley
Proffesional Chapter 2.
Relasi: Dosen
NIP
Dosen
320001123
Ir. X
320011133
Ir. Y
320021010
Ir. Z
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
35
BASIS DATA TEKNIK INFORMATIKA - ITS
GASAL 2010/2011
36
6
Download