Pertemuan ke 10

advertisement
Normalisasi Lanjutan
Diberikan skema relasi R=(A,B,C,D,E,F,G,H,I,J,K) dengan
ketergantungan fungsional :
A  B,C,D ; C  D ; E  F ; A,E  G,H,I,J,K ; I  J,K
Apakah R memenuhi 3NF ? Jika tidak, rancanglah skema relasi R
sedemikian sehingga memenuhi bentuk 3NF.
Jawab: R tidak memenuhi 3NF
ketergantungan parsial dan transitif
karena
masih
ada
R=(A,B,C,D,E,F,G,H,I,J,K)
A  B,C,D ; C  D
A  B,C
A D (eliminate)
CD
EF
R1=(A,B,C)
R2=(C,D)
R3=(E,F)
R4=(A,E,G,H,I)
R5=(I,J,K)
A,E  G,H,I,J,K; I  J,K
A,E  G,H,I
A,E J,K (eliminate)
I  J,K
R1=(A,B,C)
R2=(C,D)
R3=(E,F)
R4=(A,E,G,H,I)
R5=(I,J,K)


Bentuk normal 4NF terpenuhi dalam sebuah tabel
jika telah memenuhi bentuk BCNF, dan tabel
tersebut tidak boleh memiliki lebih dari sebuah
multivalued atribute
Untuk setiap multivalued dependencies (MVD) juga
harus merupakan functional dependencies
MVD (Multi-valued dependency)
• MVD menyatakan dependensi antara dua atribut dalam sebuah relasi dengan
sifat untuk setiap nilai A terdapat sejumlah nilai B. Jadi sebuah nilai A
berpasangan dengan sejumlah nilai B.
Contoh:
Bahasa Inggris
Ahmad
Bahasa Perancis
Bahasa Arab
• Contoh di atas menyatakan bahwa seseorang bisa memiliki kemampuan
berbahasa asing lebih dari satu. Hubungan tersebut berada dalam sebuah
relasi. Dependensi seperti itu diganbarkan sebagai berikut:
Nama   Bahasa_Asing
MVD (Multi-valued dependency) contd……
Ada kalanya sebuah relasi memiliki dua dependensi bernilai banyak.
Contoh: MDB
Matakuliah
Dosen
Buku_Wajib
Basis Data
Amri Yahya
Database Systems
Basis Data
Amri Yahya
Modern Database Management
Basis Data
Rini Subono
Database Systems
Basis Data
Rini Subono
Modern Database Management
Teknologi Informasi
Sunaryo Hadi
Information Technology Management
Teknologi Informasi
Sunaryo Hadi
Pengantar Teknologi Informasi
Teknologi Informasi
Karyo Junaedi
Information Technology Management
Teknologi Informasi
Karyo Junaedi
Pengantar Teknologi Informasi
Berdasarkan data aslinya, tampak bahwa satu nilai dalam Matakuliah (misalnya Basis
Data) berpasangan dengan lebih satu nama dosen (misalnya Amri Yahya dan Rini
Subono) dan satu nilai dalam Matakuliah (Misalnya Basis Data) berpasangan dengan
lebih dari satu buku wajib untuk matakuliah tersebut (Misalnya Database Management
System dan Modern Database Management.
Relasi MDB memiliki dua buah dependensi bernilai banyak, yaitu:
Matakuliah  Dosen
Matakuliah  Buku_Wajib
Yang perlu diperhatikan adalah bahwa baik dosen maupun Buku_Wajib
bersifat independen atau tidak saling berketergantungan. Keadaan seperti
ini biasa dinyatakan sebagai berikut:
Matakuliah  Dosen|Buku_Wajib
Suatu relasi yang mengandung dependensi bernilai banyak dapat
dikonversi agar memenuhi bentuk normal keempat dengan menggunakan
teorema Fagin (Date, 1995), yang berbunyi:
“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.”
Berdasarkan teorema tersebut, relasi MDB dapat dipecah menjadi:
MATAKULIAH_DOSEN (Matakuliah, Dosen)
MATAKULIAH_BUKU (Matakuliah, Buku_Wajib)
MATAKULIAH_DOSEN
MATAKULIAH_BUKU
Matakuliah
Dosen
Matakuliah
Buku Wajib
Basis Data
Amri Yahya
Basis Data
Database Systems
Basis Data
Rini Subono
Basis Data
Modern Database Management
Teknologi Informasi
Sunaryo Hadi
Teknologi Informasi
Information Technology Management
Teknologi Informasi
Karyo Junaedi
Teknologi Informasi
Pengantar Teknologi Informasi

Bentuk normal 5NF terpenuhi jika tidak dapat memiliki
sebuah lossless decomposition menjadi tabel-tabel yg lebih
kecil.

Jika 4 bentuk normal sebelumnya dibentuk berdasarkan
functional dependency, 5NF dibentuk berdasarkan konsep
join dependence. Yakni apabila sebuah tabel telah didekomposisi menjadi tabel-tabel lebih kecil, harus bisa
digabungkan lagi (join) untuk membentuk tabel semula
Mahasiswa
Nomor_Mahasiswa
Nama
Jenis_Kelamin
Tanggal_Lahir
11896
Abdul Wahab
Pria
20/05/1990
11897
Gunarso
Pria
07/08/1991
11898
Siti Badriah
Wanita
11/04/1991
11899
Gunawan
Pria
05/08/1990
Relasi tersebut dapat dipecah menjadi dua atau tiga relasi, yang
apabila dikonstruksi akan membentuk kembali data semua. Relasinya
bisa berupa seperti berikut:
R1 (Nomor_Mahasiswa, Nama)
R2 (Nomor_Mahasiswa, Jenis_Kelamin)
R3 (Nomor_Mahasiswa, Tanggal_Lahir)
Perhatikan bahwa kunci primer hasil dekomposisi R1, R2 dan R3 sama dengan kunci
primer MAHASISWA. Hal ini menyatakan bahwa relasi MAHASISWA sebenarnya telah
memenuhi bentuk normal kelima
Contoh 5NF:
Sebuah Relasi (table) menggambarkan bahwa suatu dealer ditunjuk oleh distributor untuk
menjual jenis kendaraan tertentu. Tampak bahwa tidak semua kendaraan produk milik
distributor bisa dijual oleh sebuah dealer.
DDK
Dealer
Distributor
Kendaraan
Sumber Jaya
Nissan
Truk Nissan
Sumber Jaya
Nissan
Sedan Nissan
Sumber Jaya
Toyota
Truk Nissan
Sumber Jaya
Toyota
Sedan Nissan
Tiara Makmur
Nissan
Sedan Nissan
• Relasi DDK tersebut memenuhi bentuk normal keempat karena tidak terdapat dua
dependensi bernilai banyak yang bersifat independen. Namun bisa dilihat bahwa relasi
tersebut masih memiliki redundansi data.
• Contoh: pasangan Truk Nissan dan distributor Nissan muncul beberapa kali, padahal
semestinya fakta tersebut
• Bagaimana agar relasi tersebut memenuhi bentuk normal kelima 5NF?
Baris-baris yang terdapat pada relasi DDK sebenarnya bisa direkonstruksi
dari relasi-relasi yang lebih kecil sebagai berikut:
DEAL_DISTRIB (Dealer, Distributor)
DISTRIB_KEND (Distributor, Kendaraan)
DEAL_KEND (Dealer, Kendaraan)
Bentuk Tidak
Ternormalisasi
(UNF)
Menghilangkan atribut
bernilai ganda
Bentuk Normal
Pertama (1NF)
Menghilangkan
dependensi partial
Bentuk Normal
Kedua (2NF)
Menghilangkan
dependensi transitif
Bentuk Normal
Ketiga (3NF)
Bentuk Normal
Boyce-Codd
(BCNF)
Menghilangkan
ketergantungan yang
penentunya bukan kunci
kandidat
Menghilangkan lebih dari satu
dependensi bernilai ganda
Bentuk Normal
Keempat (4NF)
Mengatasi dependensi
gabungan
Bentuk Normal
Kelima (5NF)
Depedensi (Ketergantungan)
Depedensi merupakan konsep yang mendasari normalisasi yang
menjelaskan hubungan antar atribut atau secara lebih khusus menjelaskan
nilai suatu atribut yang menentukan nilai atribut lainnya.
Macam – macam depedensi :
• Depedensi fungsional
 Depedensi fungsional sepenuhnya
 Depedensi total
• Depedensi transitif
Depedensi fungsional
“X secara fungsional menentukan Y” atau secara istilah :
penentu (determinan) → yang tergantung (dependen)
Depedensi fungsional sepenuhnya
Suatu atribut Y mempunyai dependensi fungsional sepenuhnya
terhadap atribut X, jika:
– Y mempunyai dependensi fungsional terhadap X, dan
– Y tidak memiliki dependensi terhadap bagian dari X.
Depedensi total
Suatu atribut Y mempunyai dependensi total terhadap atribut X jika:
– Y memiliki dependensi fungsional terhadap X, dan
– X mempunyai dependensi fungsional terhadap Y.
Depedensi transitif
Atribut Z mempunyai dependensi transitif terhadap X jika :
– Y memiliki dependensi fungsional terhadap X.
– Z memiliki dependensi fungsional terhadap Y.
atau dapat dituliskan : X → Y → Z
Untuk mendapatkan hasil yang paling normal, maka proses normalisasi
dimulai dari normal pertama. Field-field tabel di atas yang merupakan
group berulang : NoPegawai, NamaPegawai, Golongan, BesarGaji.
Solusinya
hilangkan
duplikasi
dengan
mencari
ketergantungan parsial. menjadikan field-field menjadi
tergantung pada satu atau beberapa field. Karena yang
dapat dijadikan kunci adalah NoProyek dan NoPegawai,
maka langkah kemudian dicari field-field mana yang
tergantung pada NoProyek dan mana yang tergantung
pada NoPegawai.
NP001
BRR
NP001
BRR
NP002
NP002
PEMDA
PEMDA
900.000
 Field-field yang tergantung pada satu field haruslah
dipisah dengan tepat, misalnya NoProyek menjelaskan
NamaProyek dan NoPegawai menjelaskan NamaPegawai,
Golongan dan BesarGaji.
TABEL PROYEK
TABEL PEGAWAI
900.000
Untuk membuat hubungan antara dua tabel, dibuat suatu
tabel yang berisi key-key dari tabel yang lain.
TABEL PROYEKPEGAWAI
Pada tabel diatas masih terdapat masalah, bahwa
BesarGaji
tergantung kepada Golongan-nya. Padahal
disini Golongan bukan merupakan field kunci.
Artinya kita harus memisahkan field non-kunci Golongan
dan BesarGaji yang tadinya tergantung secara parsial
kepada field kunci NoPegawai, untuk menghilangkan
ketergantungan transitif.
TABEL PROYEK
TABEL PEGAWAI
TABEL GOLONGAN
TABEL PROYEKPEGAWAI
No-Mhs
Nm-Mhs Jurusan Kd-MK
Nama-MK
Kd-Dosen Nm_Dosen
Nilai
2683
Welli
MI
MI350
MI465
Manajemen Basis Data
Analisis Prc. Sistem
B104
B317
Ati
Dita
A
B
5432
Bakri
AK
MI350
Manajemen Basis Data
AKN201 Akuntansi Keuangan
MKT300 Dasar Pemasaran
B104
D310
B212
Ati
Lia
Lola
C
B
A
No-Mhs
Nm-Mhs Jurusan Kd-MK
Nama-MK
Kd-Dosen Nm_Dosen
Nilai
2683
2683
Welli
Welli
MI
MI
MI350
MI465
Manajemen Basis Data
Analisis Prc. Sistem
B104
B317
Ati
Dita
A
B
5432
5432
5432
Bakri
Bakri
Bakri
AK
AK
AK
MI350
Manajemen Basis Data
AKN201 Akuntansi Keuangan
MKT300 Dasar Pemasaran
B104
D310
B212
Ati
Lia
Lola
C
B
A
No-Mhs
Nama-Mhs
Jurusan
Tabel Mahasiswa
2683
5432
Kode-MK
Welli
Bakri
Nama-MK
MI350
MI465
AKN201
MKT300
Manajemen Basis Data
Analisis Prc. Sistem
Akuntansi Keuangan
Dasar Pemasaran
No-Mhs
Kode MK
2683
2683
5432
5432
5432
MI
AK
MI350
MI465
MI350
AKN201
MKT300
Kode-Dosen
B104
B317
D310
B212
Nama-Dosen
Ati
Dita
Lia
Lola
Nilai
A
B
C
B
A
Tabel Nilai
Tabel Kuliah
Kode-MK
Nama-MK
MI350
MI465
AKN201
MKT300
Manajemen Basis Data
Analisis Prc. Sistem
Akuntansi Keuangan
Dasar Pemasaran
Kode-Dosen
B104
B317
D310
B212
Kode-Dosen
B104
B317
D310
B212
Nama-Dosen
Ati
Dita
Lia
Lola
Tabel Dosen
Tabel Mata Kuliah
NoOrder
TglOrder
TR001
Item1
Item2
Item3
Total
10/01/2006 P1
P2
P3
500.000
TR002
15/02/2006 P3
P5
300.000
TR003
18/03/2006 P1
P2
200.000
Bagaimana bentuk normalisasinya?
Bentuk Normal Pertama
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
Bentuk Normal Kedua
Relasi: Order1
NoOrder
TglOrder
Relasi: Order2
Total
NoOrder
Item
TR001
P1
TR001
10/01/2006
500.000
TR001
P2
TR002
15/02/2006
300.000
TR001
P3
TR002
P3
TR002
P5
TR003
P1
TR003
P2
TR003
18/03/2006
200.000
KodeProyek
NamaPegawai
Bagian
P001
Adi
EDP
P002
Bima
HRD
P002
Adi
EDP
P003
Bima
HRD
P003
Candra
Produksi
• Apakah sudah memenuhi bentuk normal pertama
• Bagaimana bentuk normalisasi tabel tersebut?
• Tabel soal latihan 2 sudah memenuhi normalisasi pertama
• Bentuk normalisasi kedua dari tabel tersebut adalah
Relasi: Proyek1
Relasi: Proyek2
KodeProyek
NamaPegawai
KodeProyek
Bagian
P001
Adi
P001
EDP
P002
Bima
P002
HRD
P003
Candra
P003
Produksi
• Bentuk normalisasi ketiga dari tabel tersebut adalah
Relasi: Proyek1
Relasi: Proyek2
KodeProyek NamaProyek
KodePegawai
KodePegawai
NamaPegawai
KodeBagian
P001
XXX
N001
N001
Adi
B01
P002
YYY
N001
P002
YYY
N002
N002
Bima
B02
P003
ZZZ
N002
N003
Candra
B03
P003
ZZZ
N003
Relasi: Proyek3
KodeBagian
NamaBagian
B01
EDP
B02
HRD
B03
Produksi
NRP
Nama
MataKuliah
NIP
Dosen
5103100101
Ali
Basis Data
320001123
Ir.X
5103100102
Sita
Basis Data
320001123
Ir.X
5103100102
Sita
RPL
320011133
Ir.Y
5103100103
Adi
AI
320021010
Ir.Z
• Apakah sudah memenuhi bentuk normal pertama
• Bagaimana bentuk normalisasi tabel tersebut?
• Tabel soal latihan 3 sudah memenuhi normalisasi pertama
• Bentuk normalisasi kedua dari tabel tersebut adalah
Relasi: Mahasiswa2
Relasi: Mahasiswa1
NRP
Nama
NRP
MataKuliah
5103100101
Ali
5103100101
Basis data
5103100102
Sita
5103100101
Basis data
5103100103
Adi
5103100101
RPL
5103100102
AI
Relasi: Mahasiswa3
NRP
NIP
Dosen
5103100101
320001123
Ir. X
5103100102
320001123
Ir. Y
5103100102
320011133
Ir. Y
5103100103
320021010
Ir. Z
• Bentuk normalisasi ketiga dari tabel tersebut adalah
Relasi: Mahasiswa2
Relasi: Mahasiswa1
NRP
Nama
KodeMatkul
KodeMatkul
MataKuliah
5103100101
Ali
MT01
MT01
Basis data
5103100102
Sita
MT02
MT02
RPL
5103100102
Sita
MT02
Mt03
AI
5103100103
Adi
MT03
Relasi: Mahasiswa3
NIP
Dosen
320001123
Ir. X
320011133
Ir. Y
320021010
Ir. Z
Tugas Basis Data
Pilih salah satu soal berikut ini.
KWITANSI
NO KWIT TANGGAL
060001
060001
060002
060002
060055
060055
10-10-2006
10-10-2006
11-10-2006
11-10-2006
5-10-2006
5-10-2006
AJARAN
SEMES
NIS
2006/2007
2006/2007
2006/2007
2006/2007
2006/2007
2006/2007
GANJIL
GANJIL
GANJIL
GANJIL
GENAP
GENAP
0511500001
0511500001
0522500001
0522500001
0511500001
0511500001
NAMA
MAMOX
MAMOX
BAGONG
BAGONG
MAMOX
MAMOX
NO. REK
1101
1102
1101
1102
1101
1102
NAMA REK
DAFTAR ULANG
S.P.P
DAFTAR ULANG
S.P.P
DAFTAR ULANG
S.P.P
Apakah Sudah dalam kondisi 1NF ?, jika belum lakukan normalisasi tingkat pertama!
Apakah Sudah dalam kondisi 2NF ?, jika belum lakukan normalisasi tingkat ke dua!
Apakah Sudah dalam kondisi 3NF ?, jika belum lakukan normalisasi tingkat ke tiga!
JUMLAH
50.000
2.500.000
50.000
2.500.000
50.000
2.500.000
Dari Tabel di atas lakukan
proses normalisasi
Jika dokumen di atas di bentuk tabel!
PropertyNo
iDate
iTime
PG4
10-Apr-06
10.00
PG4
20-Apr-06
09.00
PG4
25-Apr-06
12.00
PG16
20-Apr-06
13.00
PG16
28-Apr-06
14.00
pAddress
6 Lawrence St,
Glasgow
6 Lawrence St,
Glasgow
6 Lawrence St,
Glasgow
5 Lawrence St,
Glasgow
5 Lawrence St,
Glasgow
Comments
StaffNo
StaffName
CarReg
Ok
SG37
Ann Beech
B 10 VE
In good order
SG14
David Ford
B 360 KT
Ok
SG14
David Ford
B 603 SS
Replace living
Room carpet
Good condition
SG14
David Ford
B 360 KT
SG37
Ann Beech
B I660 SS
FAKTUR
No
Tgl Jatuh
Tgl Faktur
Faktur
Tempo
060001 10-10-2006 15-10-2006
Nama
Alamat
Pelanggan
Mamox
Tangerang
Telp
5853753
B1
060002 11-10-2006 16-10-2006
Bagong
Jakarta
5853751
060002 11-10-2006 16-10-2006
Bagong
Jakarta
060055 25-11-2006 01-12-2006
Mamox
060055 25-11-2006 01-12-2006
Kd. Brg
Nama barang
Satuan
Qty
Harga
Jumlah
Jagung
Kg
10
2.000
20.000
B1
Jagung
Kg
20
2.200
44.000
5853751
B3
Singkong
Kg
2
1.500
3.000
Tangerang
5853753
B1
Jagung
Kg
10
2.000
20.000
Mamox
Tangerang
5853753
B2
Ubi
Kg
10
1.000
10.000
060055 25-11-2006 20-12-2006
Mamox
Tangerang
5853753
B3
Singkong
Kg
20
2.000
44.000
060100 01-12-2006 20-12-2006
Gebo
Bekasi
5853755
B4
Talas
Kg
50
3.000
150.000
Apakah Sudah dalam kondisi 1NF ?, jika belum lakukan normalisasi tingkat pertama!
Apakah Sudah dalam kondisi 2NF ?, jika belum lakukan normalisasi tingkat ke dua!
Apakah Sudah dalam kondisi 3NF ?, jika belum lakukan normalisasi tingkat ke tiga!
Download