NORMALISASI
PRAKTIKUM BERKAS DAN BASIS DATA
2010/2011
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
Pentingnya Normalisasi
Bertujuan membuat desain basis data yang efisien (tidak ada pengulangan/redundansi data).
Basis data memuat semua sumber informasi yang dibutuhkan.
Basis data merupakan kesatuan data.
Untuk menghindari anomali insert, anomali delete dan anomali update.
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
Tahapan Normalisasi Conceptual
Design
Conceptual Schema
(ER Model)
Logical
Design
Logical Schema (Relational Model)
Analysis
of Schema
Normalized Schema
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
1NF (Bentuk Normal Pertama)
Dalam sebuah relasi tidak ada atribut komposit dan multivalued attribute.
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
Contoh 1NF (1)
Contoh relasi yang belum dalam bentuk 1NF pada tabel mahasiswa: nim, nama, tempat_lahir, tanggal_lahir,
jenis_kelamin, angkatan, program_studi, jurusan, fakultas
Hilangkan atribut komposit, sehingga: angkatan, niu, kode_fakultas, nif, nama,
tempat_lahir, tanggal_lahir, jenis_kelamin, program_studi, jurusan, fakultas
Rizki Arif Firdaus
http://haniki.wordpress.com/praktikum/
Contoh 1NF (2)
Tabel krs yang belum dalam bentuk 1NF.
kode_mk nama_mk
1 Annisa MMS101 Kalkulus GANJIL 2011
MMS102 Basisdata
MMS103 Jaringan
2 Bambang MMS102 Basisdata GANJIL 2011
MMS103 Jaringan
3 Candra MMS101 Kalkulus GANJIL 2011
MMS103 Jaringan
niu nama_mhs
matakuliah
semester tahun
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
Contoh 1NF (2)
Hilangkan atribut multivalue, sehingga:
niu nama_mhs kode_mk nama_mk semester tahun
1 Annisa MMS101 Kalkulus GANJIL 2011
1 Annisa MMS102 Basisdata GANJIL 2011
1 Annisa MMS103 Jaringan GANJIL 2011
2 Bambang MMS102 Basisdata GANJIL 2011
2 Bambang MMS103 Jaringan GANJIL 2011
3 Candra MMS101 Kalkulus GANJIL 2011
3 Candra MMS103 Jaringan GANJIL 2011
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
2NF (Bentuk Normal Kedua)
Functional Dependency (Ketergantungan Fungsional) Sebuah himpunan atribut X dikatakan menentukan secara
fungsional himpunan atribut Y jika nilai X menentukan nilai unik untuk Y.
Notasi X → Y jika terdapat dua tuple (baris) yang memiliki nilai yang sama untuk X, maka nilai untuk Y pada kedua tuple tersebut juga sama. IF t1[X] = t2[X] THEN t1[Y] = t2[Y] dalam relasi R.
nim → (nama, tanggal_lahir, program_studi, ...)
(kode_fakultas, nif) → (nama, tanggal_lahir, program_studi, ...)
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
2NF (Bentuk Normal Kedua)
Syarat 2NF :
Memenuhi 1NF.
Semua atribut yang bukan bagian dari primary key memiliki ketergantungan fungsional pada primary key secara utuh.
Tidak terpenuhi jika atribut yang bukan bagian dari primary key hanya tergantung secara fungsional pada sebagian dari primary key saja (partial dependency).
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
Contoh 2NF
Adakah partial dependency?
tabel krs niu nama_mhs kode_mk nama_mk semester tahun
1 Annisa MMS101 Kalkulus GANJIL 2011
1 Annisa MMS102 Basisdata GANJIL 2011
1 Annisa MMS103 Jaringan GANJIL 2011
2 Bambang MMS102 Basisdata GANJIL 2011
2 Bambang MMS103 Jaringan GANJIL 2011
3 Candra MMS101 Kalkulus GANJIL 2011
3 Candra MMS103 Jaringan GANJIL 2011
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
Contoh 2NF
Pisahkan atribut-atribut yang memiliki partial dependency tersebut pada tabel yang terpisah.
tabel mahasiswa tabel matakuliah
niu nama_mhs
1 Annisa
2 Bambang
3 Candra
kode_mk nama_mk
MMS101 Kalkulus
MMS102 Basisdata
MMS103 Jaringan
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
Contoh 2NF
tabel krs
niu semester tahun kode_mk
1 GANJIL 2011 MMS101
1 GANJIL 2011 MMS102
1 GANJIL 2011 MMS103
2 GANJIL 2011 MMS102
2 GANJIL 2011 MMS103
3 GANJIL 2011 MMS101
3 GANJIL 2011 MMS103
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
3NF (Bentuk Normal Ketiga)
Transitive Functional Depedency
terdapat himpunan atribut Z yang bukan merupakan bagian dari primary key kemudian X → Z dan Y → Z terpenuhi.
jadi sebenarnya X → Z karena X → Y → Z.
Contoh:
niu → jurusan merupakan transitive FD.
karena niu → program_studi dan program_studi → jurusan.
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
3NF (Bentuk Normal Ketiga)
Syarat 3NF :
Memenuhi 2NF.
Setiap atribut yang bukan bagian dari primary key tidak memiliki transitive functional depedency pada primary key.
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
Contoh 3NF
tabel mahasiswa
niu → program_studi → jurusan → fakultas
niu nama program_studi jurusan fakultas
1 Annisa Ilmu Komputer IKE MIPA
2 Bambang Geofisika Fisika MIPA
3 Candra Statistika Matematika MIPA
4 Dinda Teknologi Informasi TETI Teknik
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/
Contoh 3NF
tabel mahasiswa
tabel program_studi
niu nama kode_prodi ...
1 Annisa IK
2 Bambang GF
3 Candra ST
4 Dinda TI
kode_prodi nama kode_jurusan
IK Ilmu Komputer IKE
GF Geofisika FIS
ST Statistika MAT
TI Teknologi Informasi TEIRizki Arif Firdaus
http://haniki.wordpress.com/praktikum/
Contoh 3NF
tabel jurusan
tabel fakultas
kode_jurusan nama kode_fakultas
IKE Ilmu Komputer dan Elektronika PA
FIS Fisika PA
MAT Matematika PA
TEI Tek. Elektro dan Tek. Informasi TK
kode_fakultas nama
PA Matematika dan Ilmu Pengetahuan Alam
TK Teknik
Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/