Anda di halaman 1dari 9

12-Apr-15

TEKNIK INFORMATIKA
KOMPETENSI
BASISDATA

1 Mendeskripsikan tujuan normalisasi

BAB IV 2 Mendemonstrasikan masalah redundansi data

NORMALISASI Menggunakan 1NF, 2NF, dan 3NF dalam


menormalisasikan rancangan basisdata relasional
33
Dosen Pengampu:
Chanifah Indah Ratnasari

Page 1 Page 2

NORMALISASI NORMALISASI
Proses sistematis untuk mendekomposisi tabel Ciri-ciri tabel ternormalisasi :
guna mengeliminasi redundansi data dan 1. Jumlah atribut bersifat minimal, sesuai dengan
anomali manipulasi data (insertion, update, kebutuhan data.
delete). 2. Atribut yang berhubungan dekat (functional
dependency) ditempatkan dalam satu tabel yang
Tahap Normalisasi dimulai dari tahap paling sama.
ringan (1NF) hingga paling ketat (5NF). 3. Redundansi (kemunculan duplikasi data yang
tidak diharapkan) bersifat minimal dengan
Biasanya hanya sampai pada tingkat 3NF atau memanfaatkan foreign key.
BCNF karena sudah cukup memadai untuk
menghasilkan tabel-tabel yang berkualitas baik. Keuntungan :
1. Memudahkan pengguna mengakses dan
mengelola data.
2. Meminimalkan ruang penyimpanan.

Page 3 Page 4

1
12-Apr-15

Redundansi Data dan Anomali


Redundansi Data dan Anomali
Update
StafCabang Update
 Redundansi pada tabel StafCabang
Detail mengenai cabang (alamat cabang) ditulis
berulang untuk setiap staf/pegawai cabang tersebut.
 Sebaliknya, data detail kantor cabang (alamat)
hanya muncul satu kali di tabel Cabang, dan hanya
nomor cabang (noCabang) yang ditulis berulang di
tabel Staff.

Staff  Redundansi beresiko memunculkan anomali


Cabang update
 anomali/kejanggalan yang bisa terjadi saat
pemasukan, penghapusan, atau modifikasi data.
 Jenis Anomali Update :
Insert
Update
Page 5 Delete Page 6

Contoh Anomali Update NORMALISASI


Sebuah tabel dikatakan baik (efisien) atau normal
 Insert jika memenuhi 3 kriteria sbb:
Saat memasukkan data staf baru pada tabel StafCabang pada kantor
cabang B007, dimungkinkan terjadi kesalahan pemasukan data untuk 1. Jika ada dekomposisi (penguraian) tabel, maka
alamat kantor tersebut menjadi Jl Apel No. 30, padahal data yang dekomposisinya harus dijamin aman (Lossless-Join
ada sebelumnya beralamat di Jl Apel No. 3. Sehingga akan muncul Decomposition). Artinya, setelah tabel tersebut
inkonsistensi: manakah alamat kantor B007 yang benar: nomor 3 atau diuraikan / didekomposisi menjadi tabel-tabel baru,
nomor 30? tabel-tabel baru tersebut bisa menghasilkan tabel
semula dengan sama persis.
 Update
Saat alamat kantor cabang B003 diubah ke Jl Selamat No 1, maka 2. Terpeliharanya ketergantungan fungsional pada saat
perubahan data ini harus dilakukan terhadap semua pegawai yang perubahan data (Dependency Preservation).
berkantor di cabang B003.
3. Tidak melanggar Boyce-Code Normal Form (BCNF)
 Delete (akan dijelaskan kemudian)
Saat melakukan penghapusan terhadap data staf terakhir pada
sebuah cabang, maka detail informasi terkait cabang tersebut akan
terhapus otomatis. Misal jika staf SA9 (Ahmad) dihapus, menyebabkan
informasi alamat kantor B007 juga terhapus.
Page 7 Page 8

2
12-Apr-15

NORMALISASI Manfaat Normalisasi


a) Normalisasi memastikan bahwa setiap kolom
Jika kriteria ketiga (BCNF) tidak dapat milik tabel yang tepat yang mana telah ditetapkan
terpenuhi,
terpenuhi, maka paling tidak tabel tersebut dan bukan tabel lain.
tidak melanggar Bentuk Normal sampai dengan
tahap ketiga (3rd Normal Form / 3NF). b) Normalisasi menghilangkan penyimpanan
informasi yang redundan.

c) Normalisasi memastikan bahwa basisdata


memiliki satu kolom di satu tempat, dengan satu
nama, dengan satu nilai, pada satu waktu.

Page 9 Page 10

FUNCTIONAL DEPENDENCY FUNCTIONAL DEPENDENCY


(KETERGANTUNGAN FUNGSIONAL)

 Ketergantungan fungsional adalah hubungan antar


atribut dalam sebuah tabel. Contoh tabel nilai
 Notasi: A  B MK Nim Mhs_nama NilaiH
uruf
o A dan B adalah atribut dari sebuah tabel.
o Berarti secara fungsional A menentukan B atau B Basisdata 05001 Adi Wibowo A
tergantung secara fungsional pada A, jika setiap nilai Pemrograman Web 05230 Rusli Arianto
A bisa diasosiasikan langsung dengan 1 nilai B.
o Catatan: A atau B bisa berupa kumpulan atribut.
Pemrograman Web 05001 Adi Wibowo C
Basisdata 05230 Rusli Arianto A
 Definisi Formal
Sistem Operasi 05234 Dian Hapsari
If r1(A)=r2(A) then r1(B)=r2(B)
Basisdata 05112 Ani Wulandari B

Page 11 Page 12

3
12-Apr-15

FUNCTIONAL DEPENDENCY TABEL UNIVERSAL


Tabel Universal (Universal / Star Table)  sebuah tabel yang
Functional Dependency dari tabel nilai merangkum semua kelompok data yang saling berhubungan,
bukan merupakan tabel yang baik.
 NIM  mhs_nama
NIM Mhs_n mhs_ala Mhs_tgl MK_kode Mk_nam sks kodes nilaihuruf Dsn_na Dsn_alamat
Karena untuk setiap nilai NIM yang sama, maka nilai ama mat lahir a em ma
mhs_nama juga sama.
05001 Adi W Jakal 180387 52301 Basis 2 3 A Nur Wr Jakal 4,5
 {MK, NIM}  NilaiHuruf data

Karena attribut NilaiHuruf tergantung pada MK dan 05001 Adi W Jakal 180387 52302 PW 3 3 Hendrik Jakal 5.7
NIM secara bersama-sama. Dalam arti lain untuk
Namakul dan NIM yang sama, maka NilaiHuruf juga 05002 Adi W Jl. Solo 100588 52302 PW 3 3 A Hendrik Jakal 5.7

sama, karena MK dan NIM merupakan key (bersifat 05230 Rusli A Jamal 200687 52303 Basis 2 3 B Hendrik Jakal 5.7
unik). data

05230 Rusli A Jamal 200687 52302 PW 3 3 Hendrik Jakal 5.7


 MK  NIM
 NIM  NilaiHuruf 05234 Dian H Jokteng 111087 52301 Basis 2 3 A Nur Wr Jakal 4.5
data

05234 Dian H Jokteng 111087 52302 PW 3 3 Hendrik Jakal 5.7


Page 13 Page 14

JENIS NORMALISASI
EXERCISE
Normalisasi adalah teknik formal untuk menganalisis tabel
berdasarkan primary key (atau candidate key) dan
ketergantungan fungsional yang dimilikinya. - Prof. Codd
Dengan memperhatikan kesamaan dan
ketidaksamaan data antar baris data, Teknik ini berupa serangkaian aturan untuk mengetes setiap
tabel agar basisdata bisa ternormalisasi ke derajat tertentu.
tentukan FD-nya !
Jika hasil tes tidak terpenuhi, maka tabel harus
a. NIM  mhs_nama, mhs_alamat, mhs_tgllahir didekomposisi/dipecah menjadi tabel-tabel lebih kecil.
b. MK_kode  MK_nama, sks, kodesem, dsn_nama, Bentuk Normal mulai dari 1NF hingga 5NF. Persyaratan
dsn_alamat wajib sebuah basisdata adalah memenuhi 1NF, sedangkan
c. Dsn_nama  dsn_alamat bentuk lainnya adalah opsional.
d. NIM, mk_kode  nilaihuruf
1NF

2NF

3NF

BCNF

4NF

5NF
Page 15 up
Page 16

4
12-Apr-15

BENTUK-BENTUK NORMAL 1NF (First Normal Form)


1. Bentuk Normal Tahap Pertama (1st
Normal Form / 1NF)
1NF : Sebuah tabel yang memiliki satu dan tepat satu nilai dalam
2. Bentuk Normal Tahap Kedua (2nd irisan setiap baris dan kolomnya.
Normal Form / 2NF)
3. Bentuk Normal Tahap Ketiga (3rd Bentuk normal 1NF terpenuhi jika sebuah tabel tidak
Normal Form / 3NF) memiliki:
atribut bernilai banyak (multivalued attribute), atau
4. Boyce-Code Normal Form (BCNF) atribut composite atau kombinasinya dalam domain data
yang sama, atau
5. Bentuk Normal Tahap Keempat (4th perulangan kelompok data yang sama (contoh pada diktat)
Normal Form / 4NF)
Setiap atribut dalam tabel tersebut harus bernilai
6. Bentuk Normal Tahap Kelima (5th atomic (tidak dapat dibagi-bagi lagi)
Normal Form / 5NF)

Page 17 Page 18

1NF (First Normal Form) 1NF (First Normal Form)


CONTOH 1 CONTOH 1 - lanjutan

Pada tabel tersebut, Candidate Key-nya adalah noKlien, dan


didapatkan data yang berulang dengan pola :
(noProperti, alamat, mulaiSewa, akhirSewa,
sewa, noPemilik, namaP)
Hasil dekomposisi sudah memenuhi 1NF, tetapi masih memungkinkan adanya
Kondisi ini tidak memenuhi 1NF, sehingga tabel harus anomali update.
didekomposisi. Misal pada perubahan data sewa untuk properti PG4. Harus dinormalkan kembali.
Page 19 Page 20

5
12-Apr-15

1NF (First Normal Form) 1NF (First Normal Form)


CONTOH 2 CONTOH 2 - lanjutan

Misal data mahasiswa sbb: Didekomposisi menjadi:


 Tabel Mahasiswa

Atau:

 Tabel Hobi

Tabel-tabel di atas tidak memenuhi syarat 1NF.


Page 21 Page 22

1NF (First Normal Form) 2NF (First Normal Form)


CONTOH 3
(composite) 2NF : Sebuah tabel yang sudah memenuhi kaidah 1NF dan setiap
atribut non-primary key bersifat ketergantungan fungsional
penuh (full functional dependent) terhadap primary key-nya.
JadwalKuliah
MK_kode MK_nama Dosen Kelas Jadwal
Bentuk normal kedua terpenuhi, jika suatu tabel :
Sudah memenuhi 1NF
 Dimana nilai pada atribut jadwal berisi gabungan Setiap atribut non Primary Key memiliki ketergantungan
antara Hari dan Jam. fungsional secara penuh terhadap Primary Key-nya.
 Jika asumsi hari dan jam memegang peranan
penting dalam sistem basisdata, maka atribut Sebuah tabel tidak memenuhi 2NF, jika ada
Jadwal perlu dipisah sehingga menjadi JadwalHari atribut yang ketergantungannya (Functional
dan JadwalJam sbb: Dependency) hanya bersifat parsial saja (hanya
tergantung pada sebagian dari primary key).
JadwalKuliah Jika terdapat atribut yang tidak memiliki
MK_kod MK_nama Dosen Kelas Jadwal_Ha Jadwal_Ja ketergantungan terhadap primary key, maka
e ri m atribut tersebut harus dipindah atau dihilangkan.
Page 23 Page 24

6
12-Apr-15

2NF (First Normal Form) 2NF (First Normal Form)


CONTOH 1 CONTOH 1 - lanjutan

Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF: Functional dependencynya sbb:
NIM Mhs_nama mhs_alamat mk_kode mk_nama mk_sks nihuruf
{NIM, mk_kode}  nihuruf (fd1)
NIM  {mhs_nama, mhs_alamat} (fd2)
 Tidak memenuhi 2NF, karena {NIM, mk_kode} Mk_kode  {mk_nama, mk_sks} (fd3)
yang dianggap sebagai primary key, sedangkan:
{NIM, mk_kode}  mhs_nama NILAI
{NIM, mk_kode}  mhs_alamat NIM mk_kode nihuruf
{NIM, mk_kode}  mk_nama
MAHASISWA
{NIM, mk_kode}  mk_sks
NIM mhs_nama mhs_alamat
{NIM, mk_kode}  nihuruf
MATAKULIAH
 Tabel di atas perlu didekomposisi menjadi
beberapa tabel yang memenuhi syarat 2NF. mk_kode mk_nama mk_sks
Page 25 Page 26

2NF (First Normal Form) 3NF (First Normal Form)


CONTOH 2
3NF : Sebuah tabel yang telah berada di 1NF dan 2NF dan juga
Tabel PemilikPropertiSewaan pada kondisi 1NF memenuhi syarat dengan tidak adanya atribut non primary key
yang bergantung secara transitif pada primary key.
(contoh 1), didekomposisi menjadi 2 tabel lagi yakni
Rental dan PemilikProperti.
 Contoh ketergantungan transitif (memungkinkan
anomali modifikasi) adalah pada:
noPemilik  namaP

 Sebuah tabel dikatakan memenuhi 3NF, jika:


Telah memenuhi 2NF
Tidak ada atribut non PK yang memiliki
ketergantungan terhadap atribut non PK yang
lainnya.
Sudah dalam bentuk 2NF, tapi masih memungkinkan Contoh dalam kasus pada tabel
anomali update, misal jika ingin mengubah nama pemilik PemilikProperti, terdapat ketergantungan
C093 (Ilyas). Harus dilakukan dekomposisi kembali. transitif : noPemilik  namaP
Page 27 Harus dinormalkan menjadi bentuk ketiga Page 28

7
12-Apr-15

3NF (First Normal Form) 3NF (First Normal Form)


CONTOH 1
Untuk setiap Functional Dependency dengan notasi
X  A, maka:
Dari contoh sebelumnya, hasil normalisasi bentuk
 X harus menjadi superkey pada tabel tsb. ketiga:
 atau A merupakan bagian dari primary key pada
tabel tsb.

Page 29 Page 30

3NF (First Normal Form) 3NF (First Normal Form)


CONTOH 1 - SEBELUM Normalisasi vs SETELAH Normalisasi
CONTOH 2

Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:

Mahasiswa
NIM 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):

alm_kodepos  {alm_Provinsi, alm_kota}


 Sehingga tabel tersebut perlu didekomposisi menjadi:
Mahasiswa (NIM, nama, alm_jalan, alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi, alm_kota)
Page 31 Page 32

8
12-Apr-15

Latihan

Page 33

Anda mungkin juga menyukai