SlideShare a Scribd company logo
1 of 69
NORMALIZATION
http://spada.teknokrat.ac.id
Dekomposisi
• Dekomposisi : memecah relasi/tabel menjadi relasi/tabel yang
lebih kecil untuk mendapatkan skema yang tidak mengandung
anomali dan redundansi.
• Kumpulan atribut yang nilainya :
– Setiap atribut harus berharga tunggal.
– Semua harga pada suatu atribut harus mempunyai tipe
yang sama
– Setiap atribut harus mempunyai nama yang unik
– Urutan atribut tidak penting
– Tidak ada dua baris (tuple) dalam relasi yang isinya identik
– Urutan baris (tuple) tidak penting
Relasi (review)
Proses Rancangan Database (review)
• Mengumpulkan kebutuhan user/business
• Mengembangkan E-R Model berdasarkan kebutuhan
user/business
• Konversikan E-R Model ke himpunan relasi (tabel)
• Normalisasikan relasi untuk menghilangkan anomali
• Implementasikan ke database dengan membuat tabel untuk
setiap relasi yang sudah ternormalisasi
Normalisasi database (1)
• Normalisasi adalah proses pembentukan struktur database
sehingga sebagian besar ambiguity bisa dihilangkan.
• 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 database (2)
• Mengapa dilakukan normalisasi ?
– Optimalisasi struktur tabel
– Meningkatkan kecepatan
– Menghilangkan pemasukan data yang sama
– Mengurangi redundansi
– Lebih efisien dalam penggunaan media penyimpanan
– Menghindari anomali (insertion anomalies, deletion
anomalies, update anomalies).
– Integritas data yang ditingkatkan
Normalisasi database (3)
• Sebuah tabel dikatakan baik (efisien) atau normal jika
memenuhi 3 kriteria sbb:
1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin
aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan /
didekomposisi menjadi tabel-tabel baru, tabel baru bisa menghasilkan tabel
semula dengan sama persis.
2. Terpeliharanya ketergantungan fungsional pada saat perubahan data
(Dependency Preservation).
3. Tidak melanggar Boyce-Code Normal Form (BCNF)
• Jika kriteria ketiga tidak dapat terpenuhi, maka paling tidak
tabel tersebut tidak melanggar Bentuk Normal tahap ketiga
(3rd Normal Form / 3NF).
Dependency / Ketergantungan
• Dependency merupakan konsep yang mendasari normalisasi.
Dependensi menjelaskan hubungan antar atribut, atau secara
lebih khusus menjelaskan nilai suatu atribut yang menentukan
nilai atribut lainnya.
• Ada beberapa jenis Dependency / Ketergantungan:
1. Ketergantungan Fungsional / Functionally Dependency (FD)
2. Ketergantungan Fungsional Penuh / Full Functionally
Dependency (FFD)
3. Ketergantungan Transitif / Transitive Dependency (TDF)
4. Ketergantungan Total /Total Dependency (TD)
1. Ketergantungan Fungsional
• Ketergantungan Fungsional menggambarkan hubungan
atribut dalam sebuah relasi.
• Suatu atribut dikatakan Ketergantungan Fungsional pada
yang lain, jika menggunakan harga atribut tersebut untuk
menentukan harga atribut yang lain.
• Simbol yang digunakan adalah  (dibaca secara fungsional
menentukan )
Lanjut..
• Notasi: X  Y
X dan Y adalah atribut dari sebuah tabel. Berarti X secara fungsional
menentukan Y atau Y tergantung pada X, jika dan hanya jika ada dua baris
data dengan nilai X yang sama, maka nilai Y juga sama
• Notasi: X  Y
Adalah kebalikan dari notasi sebelumnya.
• Relasi Pembeli
No_Pembeli Nama_Pembeli
P01 Imam_x
P02 Yazix
P03 Hana
Ketergantungan fungsional dari relasi Pembeli adalah :
No_Pem → Nama_Pembeli
Contoh 1
 Bagian sebelah kiri panah disebut penentu (determinan) dan sebelah
kanan panah disebut yang tergantung (dependen).
 Tanda { } biasa digunakan kalau ada lebih dari satu atribut, baik pada
penentu maupun yang tergantung.
Contoh 2
Functional Dependency:
• NRP  Nama
• {Mata_Kuliah, NRP}  Nilai
Non Functional Dependency:
• Mata_Kuliah  NRP
• NRP  Nilai
Kode_Jual Kota Kode_Brg Jumlah
P1 Yogya B1 10
P1 Yogya B2 5
P2 Solo B1 7
P2 Solo B2 6
P2 Solo B3 6
P3 Klaten B3 7
P3 Klaten B4 6
Contoh 3
Pesan_Jual
• Pada contoh ini, Kode_Jual secara fungsional menentukan Kota, sebab
terlihat bahwa untuk Kode_Jual yang sama, Kota-nya juga sama.
• Dengan demikian:
Kode_Jual  Kota
contoh lain:
{Kode_Jual,Kode_Brg} Jumlah
{Kode_Jual,Kode_Brg} Kota
{Kode_Jual,Kode_Brg} {Jumlah, Kota}
2. Ketergantungan Fungsional Penuh
• Suatu atribut Y mempunyai ketergantungan fungsional penuh
terhadap atribut X, jika
– Y mempunyai ketergantungan funsional terhadap X
– Y tidak memiliki ketergantungan terhadap bagian dari X
– Notasi : X  Y
Contoh
contoh , terdapat relasi pelanggan:
Pelanggan ( KODE_PELANGGAN, NAMA, KOTA, NOMOR_FAX )
Pada relasi ini:
1.{KODE_PELANGGAN, KOTA} NOMOR_FAX
2.KODE_PELANGGAN NOMOR_FAX
KET:
Pada (1) Nomor_Fax bergantung pada {KODE_PELANGGAN, KOTA}
dan bergantung pada KODE_PELANGGAN (pada 2) yang tidak lain
adalah bagian dari {KODE_PELANGGAN, KOTA}, maka Nomor_Fax
hanya mempunyai dependensi fungsional sepenuhnya terhadap
KODE_PELANGGAN
Contoh : Pembeli → Kota
{Pembeli, Barang} → Kota
Kota mempunyai depedensi fungsional terhadap
Pembeli atau {Pembeli, Barang} tapi kota
mempunyai depedensi fungsional sepenuhnya
terhadap pembeli bukan barang.
contoh
Kebergantungan fungsional berikut:
(1) IDPegawai -> tglLahir
maka benar juga menyatakan:
(2) IDPegawai, namaPegawai -> tglLahir
Pada (2) sebenarnya namaPegawai tidak diperlukan untuk memperoleh
tglLahir. IDPegawai sudah mencukupi untuk memperoleh nilai tglLahir.
Jadi:
(1) merupakan kebergantungan fungsional penuh
(2) bukan kebergantungan fungsional penuh
3. Ketergantungan Transitif
– Atribut Z mempunyai dependensi transitif terhadap X bila
apabila Y tergantung pada X dan Z tergantung pada Y
• X → Y → Z
Definisi :
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 )
Contoh :
Contoh
Ketergantungan transitif :
No-pem  Kode-kota
Kode-kota  Kota , maka
No-pem  Kota
NIP Nama Gol_gaji Gaji_pokok
0001 Ian III A 600000
0002 Saputra III B 650000
0003 Rohim III A 600000
0004 Fani III B 650000
• Gol_gaji fungsional dependency pada NIP dan Gaji_pokok Fungsional
Dependency pada Gol_gaji.
• NIP sebagai X, Gol_gaji sebagai Y, dan Gaji_pokok sebagai Z
• Jadi nilai-nilai rinci data pada atribut Gaji_pokok (Z) bergantung
transitif terhadap NIP
• X  Y  Z
NIP  Gol_gaji Gaji_pokok
Lanjut..
4. Ketergantungan Total
• Suatu atribut Y mempunyai ketergantungan total pada atribut
X jika:
– Y memiliki ketergantungan fungsi terhadap X
– X memiliki ketergantungan fungsi terhadap Y
– Notasi : X  Y
Contoh :
PEGAWAI (NO-INDUK,NAMA,TMP-LAHIR,TG-LAHIR, ALAMAT)
Dengan demikian notasi dapat ditulis:
NO-INDUK  NAMA
Lanjut..
BENTUK NORMAL PERTAMA (First 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.
• Data dibentuk dalam satu record demi record dan nilai field
adalah atomic value.
• Tidak ada set atribut yang berulang / bernilai ganda)
• Suatu relasi berada dalam bentuk normal pertama jika relasi
tidak mengandung atribut yang bernilai ganda
• Contoh :
Atribut bernilai
ganda
Lanjut..
 Pemecahannya
• Buang atribut berganda
• Caranya: Atur setiap kolom berisi satu nilai.
- Bila isi suatu kolom untuk suatu baris berisi n nilai, maka
pecahlah baris menjadi n baris Sekarang atribut
berniali tunggal
Lanjut..
Lanjut..
Lanjut..
Lanjut..
BENTUK NORMAL KEDUA (Second Normal Form - 2NF)
• Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk
1NF.
• Normalisasi 2NF: setiap atribut bukan kunci bergantung penuh pada kunci
primer (primary key). Sehingga tidak ada atribut bukan kunci yang bergantung
pada sebagian (parsial) kunci primer (primary key)
• Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key,
maka atribut tersebut harus dipindah atau dihilangkan.
SYARAT 2NF
• Memenuhi kriteria tabel 1NF
• Di dalam tabel tersebut tidak ada redudansi / pengulangan data dan Null
Value
• Field-field yang bukan PK (primary key) adalah Fully Functional
Dependency (bergantung penuh) pada PK.
• Perhatikan tabel di bawah ini. Atribut mana yang bisa menjadi primary
key, dan bagaimana ketergantungan fungsional semua atribut?
Contoh
lanjut
• Jika No dan Kursus dijadikan composite primary key,
maka nama tidak tergantung fungsional penuh
terhadap PK, perlu dipisahkan dari tabel.
contoh
PEMASOK-2PEMASOK-1
Contoh
INF
BENTUK NORMAL KETIGA (Third Normal Form - 3NF)
• Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF.
• Jika tidak ada atribut non primary key yang memiliki
ketergantungan terhadap atribut non primary key yang lainnya
(ketergantungan transitif).
Contoh (1)
• Tabel mahasis berikut ini memenuhi syarat 2NF, tetapi tidak
memenuhi 3NF
• Karena masih terdapat atribut non primary key (yakni Kota dan
Provinsi) yang memiliki ketergantungan terhadap atribut non
primary key yang lain (yakni KodePos) :
KodePos  {Kota, Provinsi}
Contoh (2)
• Sehingga tabel tersebut perlu didekomposisi menjadi :
– Mahasiswa (NIM, NamaMhs, Jalan, KodePos)
– KodePos (KodePos, Provinsi, Kota)
Mahasiswa
NIM NAMAMHS JALAN KODEPOS
KODEPOS PROVINSI KOTA
KodePos
Boyce-Codd 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 . Perbedaannya, untuk functional
dependency X  A, BCNF tidak membolehkan A sebagai bagian
dari primary key.
BentukNormal TahapKeempat(4th
Normal Form /4NF)
• 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.
BentukNormal TahapKeempat(5th
Normal Form /5NF)
• Bentuk normal 5NF terpenuhi jika tidak dapat memiliki
sebuah loss less 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 di-dekomposisi
menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi
(join) untuk membentuk tabel semula
Unnormalisasi
• Langkah pertama dalam melakukan normalisasi data adalah
dengan membentuk contoh data tersebut diatas dengan
membentuk unnormalisasi data.
Normal Pertama (1 NF)
• Bentuklah menjadi bentuk normal pertama dengan memisah-
misahkan data pada atribut atribut yang tepat dan bernilai
atomik, juga seluruh record / baris harus lengkap adanya.
• Bentuk relasi adalah flat file. Dengan normal pertama kita
dapat membuat satu tabel yang terdiri dari 11 Atribut yaitu
(No_Faktur, Kode_Supp, Nama_Supp, Kode_Brg, Nama_Brg,
Tanggal, Jatuh_Tempo, Qty, Harga, Jumlah, Total ).
Pada normal pertama tersebut masih terjadi banyak kelemahan, terutama pada proses ANOMALI
insert, update dan delete berikut ini:
a). Inserting / Penyisipan
Kita tidak dapat memasukkan kode dan nama supplier saja tanpa adanya transaksi pembelian,
sehingga supplier baru bisa dimasukkan kalau ada transaksi pembelian.
b). Deleting / Penghapusan
Bila satu record / baris di atas dihapus, misal nomor faktur 779, maka berakibat pada penghapusan
data supplier S02 (Waras Sejati) padahal data tersebut masih diperlukan.
c). Updating / Pengubahan
Kode dan nama supplier terlihat ditulis berkali-kali, bila nama supplier berubah, maka di setiap baris
yang ada harus dirubah, bila tidak menjadi tidak konsisten.
Atribut jumlah seharusnya tidak perlu, karena setiap harga dikali kuantitas akan menghasilkan
jumlah, sehingga hasilnya akan menjadi lebih konsisten.
Normal Pertama (1 NF)
A02
Normal Kedua (2 NF)
• Bentuk normal kedua dengan melakukan dekomposisi relasi
diatas menjadi beberapa relasi dan mencari kunci primer dari
tiap-tiap relasi tersebut dan atribut kunci haruslah unik.
• Melihat permasalahan faktur di atas, maka dapat diambil
beberapa kunci kandidat : ( No_Faktur, Kode_Supp, dan
Kode_Brg ).
• Kunci kandidat tersebut nantinya bisa menjadi kunci primer
pada relasi hasil dekomposisi.
Normal Kedua (2 NF)
Kode_Supp Nama_Supp
S02 Waras Sejati
G01 Medika jaya
G01 Medika Jaya
Kode_Brg Nama_Brg Harga
R01 Mixagripi 5000
A01 Sanaflux 5000
A02 Bodrexno 6000
No_Faktur Kode_Brg Kode_Supp Tanggal Jatuh Tempo Qty
779 R01 S02 02/02/2001 09/03/2001 10
998 A01 G01 07/02/2001 09/03/2001 10
998 A02 G01 07/02/2001 09/03/2001 10
Relasi Supplier Relasi Barang
Relasi Faktur
Normal Kedua (2 NF)
Pada bentuk normal kedua tersebut masih terjadi permasalahan
yaitu pada relasi Faktur, yaitu :
1. Atribut Qty pada relasi Faktur, tidak tergantung pada kunci
utama, atribut tersebut bergantung fungsi pada Kode Brg
dan no_faktur, hal ini dinamakan ketergatungan transitif
dan haruslah dipilah menjadi dua relasi.
2. Masih terdapat pengulangan, yaitu setiap kali satu faktur
yang terdiri dari 3 macam barang maka 3 kali juga dituliskan
no_faktur, tanggal, dan jatuh_tempo. Hal ini harus
dipisahkan bila terjadi penggandaan tulisan berulang-ulang.
4. Bentuk Normal Ketiga (3 NF)
• Bentuk normal ketiga mempunyai syarat, setiap relasi tidak
mempunyai atribut yang bergantung transitif, harus
bergantung penuh pada kunci utama dan harus memenuhi
bentuk normal kedua (2 NF).
• Untuk memenuhi bentuk normal ketiga (3 NF), maka pada
relasi faktur harus didekomposisi (dipecah) lagi menjadi dua
relasi yaitu relasi faktur dan relasi transaksi barang, sehingga
hasilnya adalah sebagai berikut ini:
Kode_Supp Nama_Supp
S02 Waras Sejati
G01 Medika jaya
Kode_Brg Nama_Brg Harga
R01 Mixagripi 5000
A01 Sanaflux 5000
A02 Bodrexno 6000
Relasi Supplier Relasi Barang
No_Faktur Tanggal Jatuh Tempo Kode_Supp
779 02/02/2001 09/03/2001 S02
998 07/02/2001 09/03/2001 G01
Relasi Faktur
No_Faktur Kode_Brg Qty
779 R01 10
998 A01 10
998 A02 10
Relasi Transaksi
unnormal
1 NF
Tabel 1
Tips And Trik
• Gambarkan ketergantungan Fungsionalnya
2 NF
• {No-pem,Kode-Kota } kota
• No-pem  Kota
• No-Pem, No-bar  Jumlah
Sudah memenuhi 1 NF tetapi belum memenuhi 2 NF karena atribut
Bukan kunci belum sepenuhnya tergantung pada primary key
2 NF
• No-pem, No-bar  Jumlah
• No-pem  Kode-Kota
• No-pem  Kota
• Kode-Kota  Kota
Tabel 1 Tabel 2
Tabel1 didekomposisi menjadi dua tabel yaitu tabel2 dan tabel3,sehingga
atribut non primary key bergantung penuh pada primary key dan terpenuhi
2NF
3 NF
• No-pem  Kode-Kota
• Kode-Kota  Kota
Tabel 3
Ada ketergantungan transitif di tabel3, maka perlu di pisah menjadi tabel lebih
kecil
Ketergantungan
transitif
3 NF
• No-pem  Kode-kota • Kode-ota  Kota
Tabel4
No Nama Alamat No
Buku1
Judul
Buku1
Pengarang
1
No Buku2 Judul
Buku2
Pengarang2 No
Buku3
Judul
Buku3
Pengara
ng3
Jml Pjm Tgl Pinjam
A001 Rahayu Kemuning
117
B001 Msword Ahmad 1 26/1/2000
A002 Iwan Kamboja 29 B001 Msword Ahmad B002 Foxpro Pramono B005 Acces Anton 3 1/2/2000
A003 Tuti Nangka 20 B002 Foxpro Pramono 1 7/2/2000
A004 Riyanto Kenanga 21 B001 Msword Ahmad B005 Acces Anton 2 11/2/2000
A005 Kiki Merdeka 10 B002 Foxpro Pramono B006 Ws Pramono 2 11/2/2000
Atribut Bernilai Ganda /
Berulang
• Merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti suatu
format tertentu, dapat saja data tidak lengkap atau terduplikasi.
• Data dikumpulkan apa adanya tanpa format tertentu. Data dapat tidak lengkap atau
terduplikasi
• Tabel Perpustakaan ini masih bersifat universal
Perpustakaan
Contoh 1. Bentuk Tidak Normal ( Unnormalized Form)
• Setiap data dibentuk dalam flat file( file datar / rata )
• Data dibentuk dalam satu record demi record dan nilai field adalah atomic value
• Tidak ada set atribut yang berulang2 / bernilai ganda )
Perpustakaan
•Bentuk Normal Kesatu ( 1 NF / First Normal Form )
No Nama Alamat No Buku Judul Buku Pengarang Jml Pinjam Tgl Pinjam
A001 Rahayu Kemuning 117 B001 Msword Ahmad 1 26/1/2000
A002 Iwan Kamboja 29 B001 Msword Ahmad 3 1/2/2000
A002 Iwan Kamboja 29 B002 Foxpro Pramono 3 1/2/2000
A002 Iwan Kamboja 29 B005 Acces Anton 3 1/2/2000
A003 Tuti Nangka 20 B002 Foxpro Pramono 1 7/2/2000
A004 Riyanto Kenanga 21 B001 Msword Ahmad 2 11/2/2000
A004 Riyanto Kenanga 21 B005 Acces Anton 2 11/2/2000
A005 Kiki Merdeka 10 B002 Foxpro Pramono 2 11/2/2000
A005 Kiki Merdeka 10 B006 WS Pramono 2 11/2/2000
Data Duplikat belum ada field kunci
yang unik
Perpustakaan
No anggota
Nama
Alamat
NoBuku
JudulBuku
Pengarang
JumlahPinjam
TglPinjam
• Telah Menenuhi kriteria Bentuk Normal 1 NF
• Atribut Bukan Kunci Haruslah Bergantung Secara Fungsi Pada Primary Key
• Primary Key Harus Sudah Ditentukan Dan Bersifat Unik, Serta Dapat Mewakili Atribut
Lain Yang Menjadi Anggotanya
Data Duplikat
belum ada field
kunci yang unik
•Bentuk Kedua ( 2 NF / Second Normal Form )
Noanggota Nama Alamat
A001 Rahayu Kemuning 117
A002 Iwan Kamboja 29
A003 Tuti Nangka 20
A004 Riyanto Kenanga 21
A005 Kiki Merdeka 10
No anggota Nobuku Jumlahpinjam tglpinjam
A001 B001 1 26/1/2000
A002 B001 3 1/2/2000
A002 B002 3 1/2/2000
A002 B002 3 1/2/2000
A003 B002 1 7/2/2000
A004 B001 2 11/2/2000
A004 B005 2 11/2/2000
A005 B002 2 11/2/2000
A005 B006 2 11/2/2000
Nobuku Judulbuku Pengarang
B001 Msword Ahmad
B002 Foxpro Pramono
B005 Acces Anton
B006 Ws pramono
Anggota
Pinjam
Buku
• Telah Memenuhi kriteria Bentuk 2 NF
• Semau Atribut Bukan Primer Tidak Mempunyai Hubungan / Ketergantungan Transitif
• Atribut bukan kunci harus bergantung hanya pada primary key
Bentuk Normal Kedua ( 3 NF / Third Normal Form )
Noanggota Nama Alamat
A001 Rahayu Kemuning 117
A002 Iwan Kamboja 29
A003 Tuti Nangka 20
A004 Riyanto Kenanga 21
A005 Kiki Merdeka 10
Anggota
Pinjam
Noanggota Nobuku
A001 B001
A002 B001
A002 B002
A002 B005
A003 B002
A004 B001
A004 B005
A005 B002
A005 B006
Noanggota Jumlahpinjam Tglpinjam
A001 1 26/1/2000
A002 3 1/2/2000
A003 1 7/2/2000
A004 2 11/2/2000
A005 2 11/2/2000
Peminjaman
Nobuku Judulbuku Pengarang
B001 Msword Ahmad
B002 Foxpro Pramono
B005 Acces Anton
B006 Ws Pramono
Buku

More Related Content

What's hot

Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06KuliahKita
 
Ppt modul 2 operator
Ppt modul 2 operatorPpt modul 2 operator
Ppt modul 2 operatorahmadmuzaqqi
 
Algoritma Function
Algoritma FunctionAlgoritma Function
Algoritma Functionbrigidaarie
 
Denormalisasi data1-basisdata
Denormalisasi data1-basisdataDenormalisasi data1-basisdata
Denormalisasi data1-basisdataAyu_lestari
 
Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar RelasionalRatzman III
 
Shortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma DijkstraShortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma DijkstraOnggo Wiryawan
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis DataMr. Nugraha
 
Transformasi Fourier Waktu Kontinyu
Transformasi Fourier Waktu KontinyuTransformasi Fourier Waktu Kontinyu
Transformasi Fourier Waktu Kontinyuyusufbf
 
Interpolasi linear ppt
Interpolasi linear pptInterpolasi linear ppt
Interpolasi linear pptnirmala29
 
Basis Data : Pemodelan Erd
Basis Data : Pemodelan ErdBasis Data : Pemodelan Erd
Basis Data : Pemodelan Erdamalianuryamin
 
02. prak.-pemrograman-berorientasi-objek
02. prak.-pemrograman-berorientasi-objek02. prak.-pemrograman-berorientasi-objek
02. prak.-pemrograman-berorientasi-objekJamil Jamil
 
Integral Tak Wajar ( Kalkulus 2 )
Integral Tak Wajar ( Kalkulus 2 )Integral Tak Wajar ( Kalkulus 2 )
Integral Tak Wajar ( Kalkulus 2 )Kelinci Coklat
 

What's hot (20)

Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06
 
Contoh knn
Contoh knnContoh knn
Contoh knn
 
Optimasi query
Optimasi queryOptimasi query
Optimasi query
 
Ppt modul 2 operator
Ppt modul 2 operatorPpt modul 2 operator
Ppt modul 2 operator
 
mapping er diagram
mapping er diagrammapping er diagram
mapping er diagram
 
Pertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau TumpukanPertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau Tumpukan
 
Algoritma Function
Algoritma FunctionAlgoritma Function
Algoritma Function
 
Denormalisasi data1-basisdata
Denormalisasi data1-basisdataDenormalisasi data1-basisdata
Denormalisasi data1-basisdata
 
Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar Relasional
 
Erd dan contoh kasus
Erd dan contoh kasusErd dan contoh kasus
Erd dan contoh kasus
 
Shortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma DijkstraShortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma Dijkstra
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis Data
 
12 metode greedy
12 metode greedy12 metode greedy
12 metode greedy
 
Transformasi Fourier Waktu Kontinyu
Transformasi Fourier Waktu KontinyuTransformasi Fourier Waktu Kontinyu
Transformasi Fourier Waktu Kontinyu
 
Interpolasi linear ppt
Interpolasi linear pptInterpolasi linear ppt
Interpolasi linear ppt
 
Big M Methode
Big M MethodeBig M Methode
Big M Methode
 
Sorting ppt
Sorting ppt Sorting ppt
Sorting ppt
 
Basis Data : Pemodelan Erd
Basis Data : Pemodelan ErdBasis Data : Pemodelan Erd
Basis Data : Pemodelan Erd
 
02. prak.-pemrograman-berorientasi-objek
02. prak.-pemrograman-berorientasi-objek02. prak.-pemrograman-berorientasi-objek
02. prak.-pemrograman-berorientasi-objek
 
Integral Tak Wajar ( Kalkulus 2 )
Integral Tak Wajar ( Kalkulus 2 )Integral Tak Wajar ( Kalkulus 2 )
Integral Tak Wajar ( Kalkulus 2 )
 

Similar to OPTIMALKAN DATABASE

Desain_Database__Normalisasi.pptx
Desain_Database__Normalisasi.pptxDesain_Database__Normalisasi.pptx
Desain_Database__Normalisasi.pptxEdySubowo2
 
Pertemuan%203.pdf
Pertemuan%203.pdfPertemuan%203.pdf
Pertemuan%203.pdfVyaGlow
 
Normalisasi Data - Sistem Basis Data 1
Normalisasi Data - Sistem Basis Data 1Normalisasi Data - Sistem Basis Data 1
Normalisasi Data - Sistem Basis Data 1Aditya Gunawan
 
Materi_Perancangan_Basis_Data.pdf
Materi_Perancangan_Basis_Data.pdfMateri_Perancangan_Basis_Data.pdf
Materi_Perancangan_Basis_Data.pdfkochengg
 
PPT Sistem Basis Data [TM3].pdf
PPT Sistem Basis Data [TM3].pdfPPT Sistem Basis Data [TM3].pdf
PPT Sistem Basis Data [TM3].pdfBayuRandu
 
6 Materi Kuliah Normalisasi Tabel Database
6 Materi Kuliah Normalisasi Tabel Database6 Materi Kuliah Normalisasi Tabel Database
6 Materi Kuliah Normalisasi Tabel DatabaseSimon Patabang
 
Bab 8 - NORMALISASI DATA yang berkaitan dengan data yang ada
Bab 8 - NORMALISASI DATA yang berkaitan dengan data yang adaBab 8 - NORMALISASI DATA yang berkaitan dengan data yang ada
Bab 8 - NORMALISASI DATA yang berkaitan dengan data yang adachepahon
 
Kd4 Ketergantungan Fungsional
Kd4 Ketergantungan FungsionalKd4 Ketergantungan Fungsional
Kd4 Ketergantungan FungsionalDesty Yani
 
Pert 5 (normalisasi)
Pert 5 (normalisasi)Pert 5 (normalisasi)
Pert 5 (normalisasi)ptmardika
 
Rsi 9 normalisasi dan buble
Rsi 9 normalisasi dan bubleRsi 9 normalisasi dan buble
Rsi 9 normalisasi dan bubledonasiilmu
 
Normalisasi data - Basis Data
Normalisasi data - Basis DataNormalisasi data - Basis Data
Normalisasi data - Basis DataAyu_lestari
 
3.-Modul-3-Model-Data-Relasional.pdf
3.-Modul-3-Model-Data-Relasional.pdf3.-Modul-3-Model-Data-Relasional.pdf
3.-Modul-3-Model-Data-Relasional.pdfLamataSingi1
 
02 pertemuan 3_4_5_6 SISTEM BASIS DATA EER.pdf
02 pertemuan 3_4_5_6 SISTEM BASIS DATA EER.pdf02 pertemuan 3_4_5_6 SISTEM BASIS DATA EER.pdf
02 pertemuan 3_4_5_6 SISTEM BASIS DATA EER.pdf201410049
 

Similar to OPTIMALKAN DATABASE (20)

Desain_Database__Normalisasi.pptx
Desain_Database__Normalisasi.pptxDesain_Database__Normalisasi.pptx
Desain_Database__Normalisasi.pptx
 
Pertemuan%203.pdf
Pertemuan%203.pdfPertemuan%203.pdf
Pertemuan%203.pdf
 
Modul Normalisasi
Modul NormalisasiModul Normalisasi
Modul Normalisasi
 
Normalisasi Data - Sistem Basis Data 1
Normalisasi Data - Sistem Basis Data 1Normalisasi Data - Sistem Basis Data 1
Normalisasi Data - Sistem Basis Data 1
 
Materi_Perancangan_Basis_Data.pdf
Materi_Perancangan_Basis_Data.pdfMateri_Perancangan_Basis_Data.pdf
Materi_Perancangan_Basis_Data.pdf
 
PPT Sistem Basis Data [TM3].pdf
PPT Sistem Basis Data [TM3].pdfPPT Sistem Basis Data [TM3].pdf
PPT Sistem Basis Data [TM3].pdf
 
6 Materi Kuliah Normalisasi Tabel Database
6 Materi Kuliah Normalisasi Tabel Database6 Materi Kuliah Normalisasi Tabel Database
6 Materi Kuliah Normalisasi Tabel Database
 
W2 Normalisasi.pptx
W2 Normalisasi.pptxW2 Normalisasi.pptx
W2 Normalisasi.pptx
 
Bab 8 - NORMALISASI DATA yang berkaitan dengan data yang ada
Bab 8 - NORMALISASI DATA yang berkaitan dengan data yang adaBab 8 - NORMALISASI DATA yang berkaitan dengan data yang ada
Bab 8 - NORMALISASI DATA yang berkaitan dengan data yang ada
 
Kd4 Ketergantungan Fungsional
Kd4 Ketergantungan FungsionalKd4 Ketergantungan Fungsional
Kd4 Ketergantungan Fungsional
 
NORMALISASI
NORMALISASINORMALISASI
NORMALISASI
 
Pert 5 (normalisasi)
Pert 5 (normalisasi)Pert 5 (normalisasi)
Pert 5 (normalisasi)
 
Rsi 13
Rsi 13Rsi 13
Rsi 13
 
Rsi 9 normalisasi dan buble
Rsi 9 normalisasi dan bubleRsi 9 normalisasi dan buble
Rsi 9 normalisasi dan buble
 
Rsi 13
Rsi 13Rsi 13
Rsi 13
 
Normalisasi data - Basis Data
Normalisasi data - Basis DataNormalisasi data - Basis Data
Normalisasi data - Basis Data
 
3.-Modul-3-Model-Data-Relasional.pdf
3.-Modul-3-Model-Data-Relasional.pdf3.-Modul-3-Model-Data-Relasional.pdf
3.-Modul-3-Model-Data-Relasional.pdf
 
02 pertemuan 3_4_5_6 SISTEM BASIS DATA EER.pdf
02 pertemuan 3_4_5_6 SISTEM BASIS DATA EER.pdf02 pertemuan 3_4_5_6 SISTEM BASIS DATA EER.pdf
02 pertemuan 3_4_5_6 SISTEM BASIS DATA EER.pdf
 
pert 2.pptx
pert 2.pptxpert 2.pptx
pert 2.pptx
 
Kuliah 6 7
Kuliah 6 7Kuliah 6 7
Kuliah 6 7
 

More from Erliyan Redy Susanto (9)

perancangan sistem
perancangan sistemperancangan sistem
perancangan sistem
 
SELECT
SELECTSELECT
SELECT
 
Database Modelling
Database ModellingDatabase Modelling
Database Modelling
 
Komponen sistem database
Komponen sistem databaseKomponen sistem database
Komponen sistem database
 
Database
DatabaseDatabase
Database
 
Sistem Informasi di Dalam Perusahaan
Sistem Informasi di Dalam PerusahaanSistem Informasi di Dalam Perusahaan
Sistem Informasi di Dalam Perusahaan
 
Mengelola perusahaan digiital
Mengelola perusahaan digiitalMengelola perusahaan digiital
Mengelola perusahaan digiital
 
Dokumen Persyaratan Perangkat Lunak
Dokumen Persyaratan Perangkat LunakDokumen Persyaratan Perangkat Lunak
Dokumen Persyaratan Perangkat Lunak
 
Sms gateway bu endang
Sms gateway bu endangSms gateway bu endang
Sms gateway bu endang
 

OPTIMALKAN DATABASE

  • 2. Dekomposisi • Dekomposisi : memecah relasi/tabel menjadi relasi/tabel yang lebih kecil untuk mendapatkan skema yang tidak mengandung anomali dan redundansi.
  • 3. • Kumpulan atribut yang nilainya : – Setiap atribut harus berharga tunggal. – Semua harga pada suatu atribut harus mempunyai tipe yang sama – Setiap atribut harus mempunyai nama yang unik – Urutan atribut tidak penting – Tidak ada dua baris (tuple) dalam relasi yang isinya identik – Urutan baris (tuple) tidak penting Relasi (review)
  • 4. Proses Rancangan Database (review) • Mengumpulkan kebutuhan user/business • Mengembangkan E-R Model berdasarkan kebutuhan user/business • Konversikan E-R Model ke himpunan relasi (tabel) • Normalisasikan relasi untuk menghilangkan anomali • Implementasikan ke database dengan membuat tabel untuk setiap relasi yang sudah ternormalisasi
  • 5. Normalisasi database (1) • Normalisasi adalah proses pembentukan struktur database sehingga sebagian besar ambiguity bisa dihilangkan. • 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.
  • 6. Normalisasi database (2) • Mengapa dilakukan normalisasi ? – Optimalisasi struktur tabel – Meningkatkan kecepatan – Menghilangkan pemasukan data yang sama – Mengurangi redundansi – Lebih efisien dalam penggunaan media penyimpanan – Menghindari anomali (insertion anomalies, deletion anomalies, update anomalies). – Integritas data yang ditingkatkan
  • 7. Normalisasi database (3) • Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb: 1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel baru bisa menghasilkan tabel semula dengan sama persis. 2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation). 3. Tidak melanggar Boyce-Code Normal Form (BCNF) • Jika kriteria ketiga tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).
  • 8. Dependency / Ketergantungan • Dependency merupakan konsep yang mendasari normalisasi. Dependensi menjelaskan hubungan antar atribut, atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya. • Ada beberapa jenis Dependency / Ketergantungan: 1. Ketergantungan Fungsional / Functionally Dependency (FD) 2. Ketergantungan Fungsional Penuh / Full Functionally Dependency (FFD) 3. Ketergantungan Transitif / Transitive Dependency (TDF) 4. Ketergantungan Total /Total Dependency (TD)
  • 9. 1. Ketergantungan Fungsional • Ketergantungan Fungsional menggambarkan hubungan atribut dalam sebuah relasi. • Suatu atribut dikatakan Ketergantungan Fungsional pada yang lain, jika menggunakan harga atribut tersebut untuk menentukan harga atribut yang lain. • Simbol yang digunakan adalah  (dibaca secara fungsional menentukan )
  • 10. Lanjut.. • Notasi: X  Y X dan Y adalah atribut dari sebuah tabel. Berarti X secara fungsional menentukan Y atau Y tergantung pada X, jika dan hanya jika ada dua baris data dengan nilai X yang sama, maka nilai Y juga sama • Notasi: X  Y Adalah kebalikan dari notasi sebelumnya.
  • 11. • Relasi Pembeli No_Pembeli Nama_Pembeli P01 Imam_x P02 Yazix P03 Hana Ketergantungan fungsional dari relasi Pembeli adalah : No_Pem → Nama_Pembeli Contoh 1  Bagian sebelah kiri panah disebut penentu (determinan) dan sebelah kanan panah disebut yang tergantung (dependen).  Tanda { } biasa digunakan kalau ada lebih dari satu atribut, baik pada penentu maupun yang tergantung.
  • 12. Contoh 2 Functional Dependency: • NRP  Nama • {Mata_Kuliah, NRP}  Nilai Non Functional Dependency: • Mata_Kuliah  NRP • NRP  Nilai
  • 13. Kode_Jual Kota Kode_Brg Jumlah P1 Yogya B1 10 P1 Yogya B2 5 P2 Solo B1 7 P2 Solo B2 6 P2 Solo B3 6 P3 Klaten B3 7 P3 Klaten B4 6 Contoh 3 Pesan_Jual • Pada contoh ini, Kode_Jual secara fungsional menentukan Kota, sebab terlihat bahwa untuk Kode_Jual yang sama, Kota-nya juga sama. • Dengan demikian: Kode_Jual  Kota contoh lain: {Kode_Jual,Kode_Brg} Jumlah {Kode_Jual,Kode_Brg} Kota {Kode_Jual,Kode_Brg} {Jumlah, Kota}
  • 14. 2. Ketergantungan Fungsional Penuh • Suatu atribut Y mempunyai ketergantungan fungsional penuh terhadap atribut X, jika – Y mempunyai ketergantungan funsional terhadap X – Y tidak memiliki ketergantungan terhadap bagian dari X – Notasi : X  Y
  • 15. Contoh contoh , terdapat relasi pelanggan: Pelanggan ( KODE_PELANGGAN, NAMA, KOTA, NOMOR_FAX ) Pada relasi ini: 1.{KODE_PELANGGAN, KOTA} NOMOR_FAX 2.KODE_PELANGGAN NOMOR_FAX KET: Pada (1) Nomor_Fax bergantung pada {KODE_PELANGGAN, KOTA} dan bergantung pada KODE_PELANGGAN (pada 2) yang tidak lain adalah bagian dari {KODE_PELANGGAN, KOTA}, maka Nomor_Fax hanya mempunyai dependensi fungsional sepenuhnya terhadap KODE_PELANGGAN
  • 16. Contoh : Pembeli → Kota {Pembeli, Barang} → Kota Kota mempunyai depedensi fungsional terhadap Pembeli atau {Pembeli, Barang} tapi kota mempunyai depedensi fungsional sepenuhnya terhadap pembeli bukan barang.
  • 17. contoh Kebergantungan fungsional berikut: (1) IDPegawai -> tglLahir maka benar juga menyatakan: (2) IDPegawai, namaPegawai -> tglLahir Pada (2) sebenarnya namaPegawai tidak diperlukan untuk memperoleh tglLahir. IDPegawai sudah mencukupi untuk memperoleh nilai tglLahir. Jadi: (1) merupakan kebergantungan fungsional penuh (2) bukan kebergantungan fungsional penuh
  • 18. 3. Ketergantungan Transitif – Atribut Z mempunyai dependensi transitif terhadap X bila apabila Y tergantung pada X dan Z tergantung pada Y • X → Y → Z
  • 19. Definisi : 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 ) Contoh : Contoh Ketergantungan transitif : No-pem  Kode-kota Kode-kota  Kota , maka No-pem  Kota
  • 20. NIP Nama Gol_gaji Gaji_pokok 0001 Ian III A 600000 0002 Saputra III B 650000 0003 Rohim III A 600000 0004 Fani III B 650000 • Gol_gaji fungsional dependency pada NIP dan Gaji_pokok Fungsional Dependency pada Gol_gaji. • NIP sebagai X, Gol_gaji sebagai Y, dan Gaji_pokok sebagai Z • Jadi nilai-nilai rinci data pada atribut Gaji_pokok (Z) bergantung transitif terhadap NIP • X  Y  Z NIP  Gol_gaji Gaji_pokok Lanjut..
  • 21.
  • 22.
  • 23.
  • 24. 4. Ketergantungan Total • Suatu atribut Y mempunyai ketergantungan total pada atribut X jika: – Y memiliki ketergantungan fungsi terhadap X – X memiliki ketergantungan fungsi terhadap Y – Notasi : X  Y
  • 25. Contoh : PEGAWAI (NO-INDUK,NAMA,TMP-LAHIR,TG-LAHIR, ALAMAT) Dengan demikian notasi dapat ditulis: NO-INDUK  NAMA Lanjut..
  • 26. BENTUK NORMAL PERTAMA (First 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. • Data dibentuk dalam satu record demi record dan nilai field adalah atomic value. • Tidak ada set atribut yang berulang / bernilai ganda)
  • 27. • Suatu relasi berada dalam bentuk normal pertama jika relasi tidak mengandung atribut yang bernilai ganda • Contoh : Atribut bernilai ganda Lanjut..
  • 28.  Pemecahannya • Buang atribut berganda • Caranya: Atur setiap kolom berisi satu nilai. - Bila isi suatu kolom untuk suatu baris berisi n nilai, maka pecahlah baris menjadi n baris Sekarang atribut berniali tunggal Lanjut..
  • 32. BENTUK NORMAL KEDUA (Second Normal Form - 2NF) • Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF. • Normalisasi 2NF: setiap atribut bukan kunci bergantung penuh pada kunci primer (primary key). Sehingga tidak ada atribut bukan kunci yang bergantung pada sebagian (parsial) kunci primer (primary key) • Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan.
  • 33. SYARAT 2NF • Memenuhi kriteria tabel 1NF • Di dalam tabel tersebut tidak ada redudansi / pengulangan data dan Null Value • Field-field yang bukan PK (primary key) adalah Fully Functional Dependency (bergantung penuh) pada PK.
  • 34. • Perhatikan tabel di bawah ini. Atribut mana yang bisa menjadi primary key, dan bagaimana ketergantungan fungsional semua atribut? Contoh
  • 35. lanjut • Jika No dan Kursus dijadikan composite primary key, maka nama tidak tergantung fungsional penuh terhadap PK, perlu dipisahkan dari tabel.
  • 39. BENTUK NORMAL KETIGA (Third Normal Form - 3NF) • Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF. • Jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya (ketergantungan transitif).
  • 40. Contoh (1) • Tabel mahasis berikut ini memenuhi syarat 2NF, tetapi tidak memenuhi 3NF • Karena masih terdapat atribut non primary key (yakni Kota dan Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni KodePos) : KodePos  {Kota, Provinsi}
  • 41. Contoh (2) • Sehingga tabel tersebut perlu didekomposisi menjadi : – Mahasiswa (NIM, NamaMhs, Jalan, KodePos) – KodePos (KodePos, Provinsi, Kota)
  • 42. Mahasiswa NIM NAMAMHS JALAN KODEPOS KODEPOS PROVINSI KOTA KodePos
  • 43. Boyce-Codd 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 . Perbedaannya, untuk functional dependency X  A, BCNF tidak membolehkan A sebagai bagian dari primary key.
  • 44. BentukNormal TahapKeempat(4th Normal Form /4NF) • 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.
  • 45.
  • 46. BentukNormal TahapKeempat(5th Normal Form /5NF) • Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah loss less 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 di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula
  • 47.
  • 48. Unnormalisasi • Langkah pertama dalam melakukan normalisasi data adalah dengan membentuk contoh data tersebut diatas dengan membentuk unnormalisasi data.
  • 49. Normal Pertama (1 NF) • Bentuklah menjadi bentuk normal pertama dengan memisah- misahkan data pada atribut atribut yang tepat dan bernilai atomik, juga seluruh record / baris harus lengkap adanya. • Bentuk relasi adalah flat file. Dengan normal pertama kita dapat membuat satu tabel yang terdiri dari 11 Atribut yaitu (No_Faktur, Kode_Supp, Nama_Supp, Kode_Brg, Nama_Brg, Tanggal, Jatuh_Tempo, Qty, Harga, Jumlah, Total ).
  • 50. Pada normal pertama tersebut masih terjadi banyak kelemahan, terutama pada proses ANOMALI insert, update dan delete berikut ini: a). Inserting / Penyisipan Kita tidak dapat memasukkan kode dan nama supplier saja tanpa adanya transaksi pembelian, sehingga supplier baru bisa dimasukkan kalau ada transaksi pembelian. b). Deleting / Penghapusan Bila satu record / baris di atas dihapus, misal nomor faktur 779, maka berakibat pada penghapusan data supplier S02 (Waras Sejati) padahal data tersebut masih diperlukan. c). Updating / Pengubahan Kode dan nama supplier terlihat ditulis berkali-kali, bila nama supplier berubah, maka di setiap baris yang ada harus dirubah, bila tidak menjadi tidak konsisten. Atribut jumlah seharusnya tidak perlu, karena setiap harga dikali kuantitas akan menghasilkan jumlah, sehingga hasilnya akan menjadi lebih konsisten. Normal Pertama (1 NF) A02
  • 51. Normal Kedua (2 NF) • Bentuk normal kedua dengan melakukan dekomposisi relasi diatas menjadi beberapa relasi dan mencari kunci primer dari tiap-tiap relasi tersebut dan atribut kunci haruslah unik. • Melihat permasalahan faktur di atas, maka dapat diambil beberapa kunci kandidat : ( No_Faktur, Kode_Supp, dan Kode_Brg ). • Kunci kandidat tersebut nantinya bisa menjadi kunci primer pada relasi hasil dekomposisi.
  • 52. Normal Kedua (2 NF) Kode_Supp Nama_Supp S02 Waras Sejati G01 Medika jaya G01 Medika Jaya Kode_Brg Nama_Brg Harga R01 Mixagripi 5000 A01 Sanaflux 5000 A02 Bodrexno 6000 No_Faktur Kode_Brg Kode_Supp Tanggal Jatuh Tempo Qty 779 R01 S02 02/02/2001 09/03/2001 10 998 A01 G01 07/02/2001 09/03/2001 10 998 A02 G01 07/02/2001 09/03/2001 10 Relasi Supplier Relasi Barang Relasi Faktur
  • 53. Normal Kedua (2 NF) Pada bentuk normal kedua tersebut masih terjadi permasalahan yaitu pada relasi Faktur, yaitu : 1. Atribut Qty pada relasi Faktur, tidak tergantung pada kunci utama, atribut tersebut bergantung fungsi pada Kode Brg dan no_faktur, hal ini dinamakan ketergatungan transitif dan haruslah dipilah menjadi dua relasi. 2. Masih terdapat pengulangan, yaitu setiap kali satu faktur yang terdiri dari 3 macam barang maka 3 kali juga dituliskan no_faktur, tanggal, dan jatuh_tempo. Hal ini harus dipisahkan bila terjadi penggandaan tulisan berulang-ulang.
  • 54. 4. Bentuk Normal Ketiga (3 NF) • Bentuk normal ketiga mempunyai syarat, setiap relasi tidak mempunyai atribut yang bergantung transitif, harus bergantung penuh pada kunci utama dan harus memenuhi bentuk normal kedua (2 NF). • Untuk memenuhi bentuk normal ketiga (3 NF), maka pada relasi faktur harus didekomposisi (dipecah) lagi menjadi dua relasi yaitu relasi faktur dan relasi transaksi barang, sehingga hasilnya adalah sebagai berikut ini:
  • 55. Kode_Supp Nama_Supp S02 Waras Sejati G01 Medika jaya Kode_Brg Nama_Brg Harga R01 Mixagripi 5000 A01 Sanaflux 5000 A02 Bodrexno 6000 Relasi Supplier Relasi Barang No_Faktur Tanggal Jatuh Tempo Kode_Supp 779 02/02/2001 09/03/2001 S02 998 07/02/2001 09/03/2001 G01 Relasi Faktur No_Faktur Kode_Brg Qty 779 R01 10 998 A01 10 998 A02 10 Relasi Transaksi
  • 58. Tips And Trik • Gambarkan ketergantungan Fungsionalnya
  • 59. 2 NF • {No-pem,Kode-Kota } kota • No-pem  Kota • No-Pem, No-bar  Jumlah Sudah memenuhi 1 NF tetapi belum memenuhi 2 NF karena atribut Bukan kunci belum sepenuhnya tergantung pada primary key
  • 60. 2 NF • No-pem, No-bar  Jumlah • No-pem  Kode-Kota • No-pem  Kota • Kode-Kota  Kota Tabel 1 Tabel 2 Tabel1 didekomposisi menjadi dua tabel yaitu tabel2 dan tabel3,sehingga atribut non primary key bergantung penuh pada primary key dan terpenuhi 2NF
  • 61. 3 NF • No-pem  Kode-Kota • Kode-Kota  Kota Tabel 3 Ada ketergantungan transitif di tabel3, maka perlu di pisah menjadi tabel lebih kecil Ketergantungan transitif
  • 62. 3 NF • No-pem  Kode-kota • Kode-ota  Kota Tabel4
  • 63.
  • 64.
  • 65.
  • 66. No Nama Alamat No Buku1 Judul Buku1 Pengarang 1 No Buku2 Judul Buku2 Pengarang2 No Buku3 Judul Buku3 Pengara ng3 Jml Pjm Tgl Pinjam A001 Rahayu Kemuning 117 B001 Msword Ahmad 1 26/1/2000 A002 Iwan Kamboja 29 B001 Msword Ahmad B002 Foxpro Pramono B005 Acces Anton 3 1/2/2000 A003 Tuti Nangka 20 B002 Foxpro Pramono 1 7/2/2000 A004 Riyanto Kenanga 21 B001 Msword Ahmad B005 Acces Anton 2 11/2/2000 A005 Kiki Merdeka 10 B002 Foxpro Pramono B006 Ws Pramono 2 11/2/2000 Atribut Bernilai Ganda / Berulang • Merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi. • Data dikumpulkan apa adanya tanpa format tertentu. Data dapat tidak lengkap atau terduplikasi • Tabel Perpustakaan ini masih bersifat universal Perpustakaan Contoh 1. Bentuk Tidak Normal ( Unnormalized Form)
  • 67. • Setiap data dibentuk dalam flat file( file datar / rata ) • Data dibentuk dalam satu record demi record dan nilai field adalah atomic value • Tidak ada set atribut yang berulang2 / bernilai ganda ) Perpustakaan •Bentuk Normal Kesatu ( 1 NF / First Normal Form ) No Nama Alamat No Buku Judul Buku Pengarang Jml Pinjam Tgl Pinjam A001 Rahayu Kemuning 117 B001 Msword Ahmad 1 26/1/2000 A002 Iwan Kamboja 29 B001 Msword Ahmad 3 1/2/2000 A002 Iwan Kamboja 29 B002 Foxpro Pramono 3 1/2/2000 A002 Iwan Kamboja 29 B005 Acces Anton 3 1/2/2000 A003 Tuti Nangka 20 B002 Foxpro Pramono 1 7/2/2000 A004 Riyanto Kenanga 21 B001 Msword Ahmad 2 11/2/2000 A004 Riyanto Kenanga 21 B005 Acces Anton 2 11/2/2000 A005 Kiki Merdeka 10 B002 Foxpro Pramono 2 11/2/2000 A005 Kiki Merdeka 10 B006 WS Pramono 2 11/2/2000 Data Duplikat belum ada field kunci yang unik Perpustakaan No anggota Nama Alamat NoBuku JudulBuku Pengarang JumlahPinjam TglPinjam
  • 68. • Telah Menenuhi kriteria Bentuk Normal 1 NF • Atribut Bukan Kunci Haruslah Bergantung Secara Fungsi Pada Primary Key • Primary Key Harus Sudah Ditentukan Dan Bersifat Unik, Serta Dapat Mewakili Atribut Lain Yang Menjadi Anggotanya Data Duplikat belum ada field kunci yang unik •Bentuk Kedua ( 2 NF / Second Normal Form ) Noanggota Nama Alamat A001 Rahayu Kemuning 117 A002 Iwan Kamboja 29 A003 Tuti Nangka 20 A004 Riyanto Kenanga 21 A005 Kiki Merdeka 10 No anggota Nobuku Jumlahpinjam tglpinjam A001 B001 1 26/1/2000 A002 B001 3 1/2/2000 A002 B002 3 1/2/2000 A002 B002 3 1/2/2000 A003 B002 1 7/2/2000 A004 B001 2 11/2/2000 A004 B005 2 11/2/2000 A005 B002 2 11/2/2000 A005 B006 2 11/2/2000 Nobuku Judulbuku Pengarang B001 Msword Ahmad B002 Foxpro Pramono B005 Acces Anton B006 Ws pramono Anggota Pinjam Buku
  • 69. • Telah Memenuhi kriteria Bentuk 2 NF • Semau Atribut Bukan Primer Tidak Mempunyai Hubungan / Ketergantungan Transitif • Atribut bukan kunci harus bergantung hanya pada primary key Bentuk Normal Kedua ( 3 NF / Third Normal Form ) Noanggota Nama Alamat A001 Rahayu Kemuning 117 A002 Iwan Kamboja 29 A003 Tuti Nangka 20 A004 Riyanto Kenanga 21 A005 Kiki Merdeka 10 Anggota Pinjam Noanggota Nobuku A001 B001 A002 B001 A002 B002 A002 B005 A003 B002 A004 B001 A004 B005 A005 B002 A005 B006 Noanggota Jumlahpinjam Tglpinjam A001 1 26/1/2000 A002 3 1/2/2000 A003 1 7/2/2000 A004 2 11/2/2000 A005 2 11/2/2000 Peminjaman Nobuku Judulbuku Pengarang B001 Msword Ahmad B002 Foxpro Pramono B005 Acces Anton B006 Ws Pramono Buku

Editor's Notes

  1. Anomali Anomali adalah proses pada basis data yang memberikan efek samping yang tidak diharapkan ( misalnya menyebabkan ketidakonsistenan data atau membuat suatu data menjadi hilang ketika data lain dihapus)
  2. am.bi.gu [a] bermakna lebih dr satu (sehingga kadang-kadang menimbulkan keraguan, kekaburan, ketidakjelasan, dsb); bermakna ganda; taksa Referensi: http://kamusbahasaindonesia.org/ambigu KamusBahasaIndonesia.org Ambiguity adalah, sesuatu yang memiliki makna lebih dari satu, barangkali karena memiliki suatu cerita/latar belakang historis, kategoris, kontraris, sosial, linguistik, moralistik, religius, litigius, prestisius, saintifik, heuristik, naturalistik, supernatural, ultranatural, eksistensial, biologis, deontologis, geologis, methodologis, nominalistik, deterministik, psikologis, diabolis, metaphoristik, patriotis, dialektik, ekletik, abnormal, paranormal, semi-formal atau tidak; atau barangkali campuran dari faktor2 diatas. SELECT..INNER JOIN..ON dengan nama kolom ini, MySQL akan mengeluarkan error: mysql> SELECT nama_matkul,jumlah_SKS,nama_dosen FROM mata_kuliah INNER JOIN daftar_dosen ON mata_kuliah.NIP_dosen=daftar_dosen.NIP_dosen; mysql> SELECT nama_matkul,jumlah_SKS,nama_dosen FROM mata_kuliah INNER JOIN daftar_dosen ON NIP_dosen=NIP_dosen; ERROR 1052 (23000): Column 'NIP_dosen' in on clause is ambiguous Dari pesan error yang terjadi, sebenarnya MySQL ‘bingung’ dalam memilih kolom. Query ON NIP_dosen=NIP_dosen menjadi ambigu karena kedua tabel kita memiliki nama kolom yang sama. Untuk mengatasi ambiguitas ini, MySQL mengharuskan kita secara eksplisit menyebutkan nama tabelnya. Cara penulisan ini menggunakan tanda titik sebagai pemisah: Nama_Tabel.Nama_Kolom Misalkan untuk merujuk pada kolom NIP_dosen pada tabel mata_kuliah, maka penulisannya menjadi: Mata_kuliah.NIP_dosen Sehingga query SELECT..INNER JOIN..ON yang benar menjadi: -------------------+------------+---------------+ | nama_matkul       | jumlah_SKS | nama_dosen    | +-------------------+------------+---------------+ | Database          |          4 | Susi Indriani | | Fisika Dasar      |          2 | Tia Santrini  | | Jaringan Komputer |          3 | Rubin Hadi    | | Matematika Dasar  |          4 | Sabrina Sari  | | Mikro Prosesor    |          2 | Tia Santrini  | | Sistem Operasi    |          2 | Sabrina Sari  | | Teknik Kompilasi  |          2 | Tia Santrini  | +-------------------+------------+---------------+ 7 rows in set (0.00 sec) mysql> SELECT nama_matkul,jumlah_SKS,nama_dosen FROM mata_kuliah INNER JOIN daftar_dosen ON mata_kuliah.NIP_dosen=daftar_dosen.NIP_dosen;