Anda di halaman 1dari 29

Basis Data

Normalisasi Tabel
Normalisasi
• Salah satu pendekatan dalam merancang basis data relasional, selain
ERD
• Bertitik tolak dari data yang sudah dimiliki
• Istilah penting dalam normalisasi
• Atribut
• Key
• Domain, dan
• Ketergantungan Fungsional
Istilah Penting Dalam Normalisasi
• Atribut
• Key
• Domain, dan
• Ketergantungan Fungsional
Atribut Tabel
• Mahasiswa {nim, nama, alamat, tgl_lahir}
• Dosen {nip, nama_dos, alamat_dos}
• Kuliah {kode_kul, nama_kul, sks, semester}
• Nilai {nama_kul, nim, nama_mhs, indeks_nilai}
• Jadwal {nama_kul, tempat, waktu, nama_dos}
Istilah Penting Dalam Normalisasi
• Atribut
• Key
• Domain, dan
• Ketergantungan Fungsional
Key
• Super Key
• Candidate Key
• Primary Key
Super Key
• Satu atau lebih atribut yang dapat membedakan setiap baris data
dalam tabel secara unik.
• Pada tabel mahasiswa superkey-nya adalah
• (nim, nama, alamat, tgl_lahir)
• (nim, nama, alamat) nim nama alamat tgl_lahir
• (nim, nama) 001 Anto Jl. A. Yani No.20 01/01/1990
• (nama) 002 Budi Jl. Keruing No.35 20/12/1992
• (nim) 003 Caca Jl. Keruing No. 40 20/10/1993
Candidate Key
• Kumpulan atribut minimal yang dapat membedakan setiap baris data
dalam sebuah tabel secara unik.
• CK pasti masuk sebagai SK, namun tidak berlaku sebaliknya
• Pada tabel mahasiswa CK-nya adalah :
• (nama)
• (nim)
Primary Key
• Kunci yang dipilih dari Candidate Key, dengan syarat :
• Key tersebut lebih natural untuk dijadikan acuan
• Memiliki jaminan keunikan lebih baik
• Pada tabel mahasiswa PK-nya adalah :
• (nim)
Istilah Penting Dalam Normalisasi
• Atribut
• Key
• Domain, dan
• Ketergantungan Fungsional
Domain
• Domain pengertiannya hampir sama seperti tipe data
• Lebih ditekankan kepada batas-batas nilai yang diperbolehkan pada
setiap atribut.
• Misal, atribut nilai tidak boleh berisi <0 dan >100
Istilah Penting Dalam Normalisasi
• Atribut
• Key
• Domain, dan
• Ketergantungan Fungsional
Ketergantungan Fungsional
• Diberikan sebuah tabel T berisi paling sedikit 2 buah atribut, A dan B.
Dinyatakan notasi berikut :
AB
Artinya : A menentukan B.
Atau : jika r1(A) = r2(A), maka r1(B) = r2(B)
Contoh Ketergantungan Fungsional
• nim  nama_mhs
• nama_kul nim  indeks_nilai
nama_kul nim nama_mhs indeks_nilai
Struktur Data 001 Anto A
Struktur Data 002 Budi B
Basis Data 001 Anto A
Basis Data 003 Caca
Kalkulus 001 Anto E
Kalkulus 002 Budi A
NORMALISASI TABEL
• Basisdata dikatakan baik, jika memenuhi kriteria berikut :
• Jika ada dekomposisi, maka dekomposisinya dijamin aman (Lossless-Join
Decomposition)
• Ketergantungan Fungsionalnya terpelihara saat datanya berubah (Dependency
Preservation)
• Tidak melanggar BCNF (Boyce Codd Normal Form).
• Jika tidak bisa, diupayakan tidak melanggar 3NF
Langkah Normalisasi Tabel
• Cari Ketergantungan Fungsional
• Lakukan Dekomposisi

• Tabel dikatakan normal jika memenuhi BCNF


• Jika tidak mungkin, usahakan memenuhi 3NF
Boyce-Codd Normal Form (BCNF)
• Syarat :
XY;
X harus merupakan Super Key pada tabel
Pertanyaan
• Apakah tabel berikut memenuhi aturan BCNF?
indeks
nim nama_mhs alamat_mhs tgl_lahir kode_kul nama_kul sks semester _nilai waktu tempat nama_dos alamat_dos
001 Ali Banjarbaru 14/12/1990 JFKK212 Struktur Data 3 2 A Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
001 Ali Banjarbaru 14/12/1990 JFKK213 Basis Data 3 3 B Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
001 Ali Banjarbaru 14/12/1990 JFKB111 Kalkulus 2 1 E Selasa, 11.00-13.00 Einstein Arif Banjarbaru
002 Budi Martapura 02/10/1991 JFKK212 Struktur Data 3 2 A Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
002 Budi Martapura 02/10/1991 JFKK213 Basis Data 3 3 D Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
003 Hasan Banjarmasin 04/12/1990 JFKK213 Basis Data 3 3 C Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
003 Hasan Banjarmasin 04/12/1990 JFKB111 Kalkulus 2 1 C Selasa, 11.00-13.00 Einstein Arif Banjarbaru
Contoh Kasus (Tabel Perkuliahan)
indeks
nim nama_mhs alamat_mhs tgl_lahir kode_kul nama_kul sks semester _nilai waktu tempat nama_dos alamat_dos
001 Ali Banjarbaru 14/12/1990 JFKK212 Struktur Data 3 2 A Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
001 Ali Banjarbaru 14/12/1990 JFKK213 Basis Data 3 3 B Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
001 Ali Banjarbaru 14/12/1990 JFKB111 Kalkulus 2 1 E Selasa, 11.00-13.00 Einstein Arif Banjarbaru
002 Budi Martapura 02/10/1991 JFKK212 Struktur Data 3 2 A Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
002 Budi Martapura 02/10/1991 JFKK213 Basis Data 3 3 D Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
003 Hasan Banjarmasin 04/12/1990 JFKK213 Basis Data 3 3 C Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
003 Hasan Banjarmasin 04/12/1990 JFKB111 Kalkulus 2 1 C Selasa, 11.00-13.00 Einstein Arif Banjarbaru

• Kelemahan Tabel tersebut :


• Informasi berulang
• Potensi inkonsistensi pada saat updating data
• Tersembunyinya informasi tertentu
• Mahasiswa yang tidak mengambil matkul tidak muncul pada tabel di atas
• Solusi :
• Lakukan Dekomposisi
Cari Ketergantungan Fungsionalnya
indeks
nim nama_mhs alamat_mhs tgl_lahir kode_kul nama_kul sks semester _nilai waktu tempat nama_dos alamat_dos
001 Ali Banjarbaru 14/12/1990 JFKK212 Struktur Data 3 2 A Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
001 Ali Banjarbaru 14/12/1990 JFKK213 Basis Data 3 3 B Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
001 Ali Banjarbaru 14/12/1990 JFKB111 Kalkulus 2 1 E Selasa, 11.00-13.00 Einstein Arif Banjarbaru
002 Budi Martapura 02/10/1991 JFKK212 Struktur Data 3 2 A Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
002 Budi Martapura 02/10/1991 JFKK213 Basis Data 3 3 D Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
003 Hasan Banjarmasin 04/12/1990 JFKK213 Basis Data 3 3 C Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
003 Hasan Banjarmasin 04/12/1990 JFKB111 Kalkulus 2 1 C Selasa, 11.00-13.00 Einstein Arif Banjarbaru
Ketergantungan Fungsionalnya
indeks
nim nama_mhs alamat_mhs tgl_lahir kode_kul nama_kul sks semester _nilai waktu tempat nama_dos alamat_dos
001 Ali Banjarbaru 14/12/1990 JFKK212 Struktur Data 3 2 A Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
001 Ali Banjarbaru 14/12/1990 JFKK213 Basis Data 3 3 B Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
001 Ali Banjarbaru 14/12/1990 JFKB111 Kalkulus 2 1 E Selasa, 11.00-13.00 Einstein Arif Banjarbaru
002 Budi Martapura 02/10/1991 JFKK212 Struktur Data 3 2 A Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
002 Budi Martapura 02/10/1991 JFKK213 Basis Data 3 3 D Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
003 Hasan Banjarmasin 04/12/1990 JFKK213 Basis Data 3 3 C Senin, 08.00-11.00 Al-Khawarizmi Dimas Gambut Raya
003 Hasan Banjarmasin 04/12/1990 JFKB111 Kalkulus 2 1 C Selasa, 11.00-13.00 Einstein Arif Banjarbaru

• nim  nama_mhs • kode_kul  nama_kul


• nim  alamat_mhs • kode_kul  sks
• nim  tgl_lahir • kode_kul  semester
• nama_dos  alamat_dos • kode_kul  waktu
• nim kode_kul  indeks_nilai • kode_kul  tempat
• kode_kul  nama_dos
• KF pada Tabel Perkuliahan dapat disingkat menjadi
• nim  nama_mhs alamat_mhs tgl_lahir
• kode_kul  nama_kul sks semester waktu tempat nama_dos
• nama_dos  alamat_dos
• nim kode_kul  indeks_nilai
• Dari KF tersebut, tabel Perkuliahan bisa didekomposisi menjadi 4
tabel
• Semua tabel memenuhi BCNF karena sisi kiri merupakan Super Key
Hasil Dekomposisi
• Tabel I
• Atribut : nim, nama_mhs, alamat_mhs dan tgl_lahir
• Tabel II
• Atribut : kode_kul, nama_kul, sks, semester, waktu, tempat, nama_dos
• Tabel III
• Atribut : nama_dos, alamat_dos
• Tabel IV
• Atribut : nim, kode_kul, indeks_nilai
indeks
nim nama_mhs alamat_mhs tgl_lahir kode_kul nama_kul sks semester _nilai waktu tempat nip_dos nama_dos alamat_dos
001 Ali Banjarbaru 14/12/1990 JFKK212 Struktur Data 3 2 A Senin, 08.00-11.00 Al-Khawarizmi DS001 Dimas Gambut Raya
001 Ali Banjarbaru 14/12/1990 JFKK213 Basis Data 3 3 B Senin, 08.00-11.00 Al-Khawarizmi DS001 Dimas Gambut Raya
001 Ali Banjarbaru 14/12/1990 JFKB111 Kalkulus 2 1 E Selasa, 11.00-13.00 Einstein DS002 Arif Banjarbaru
002 Budi Martapura 02/10/1991 JFKK212 Struktur Data 3 2 A Senin, 08.00-11.00 Al-Khawarizmi DS001 Dimas Gambut Raya
002 Budi Martapura 02/10/1991 JFKK213 Basis Data 3 3 D Senin, 08.00-11.00 Al-Khawarizmi DS001 Dimas Gambut Raya
003 Hasan Banjarmasin 04/12/1990 JFKK213 Basis Data 3 3 C Senin, 08.00-11.00 Al-Khawarizmi DS001 Dimas Gambut Raya
003 Hasan Banjarmasin 04/12/1990 JFKB111 Kalkulus 2 1 C Selasa, 11.00-13.00 Einstein DS002 Arif Banjarbaru

kode_kul nama_kul sks semester waktu tempat nama_dos


JFKK212 Struktur Data 3 2 Senin, 08.00-11.00 Al-Khawarizmi Dimas
nim nama_mhs alamat_mhs tgl_lahir JFKK213 Basis Data 3 3 Senin, 08.00-11.00 Al-Khawarizmi Dimas
001 Ali Banjarbaru 14/12/1990 JFKB111 Kalkulus 2 1 Selasa, 11.00-13.00 Einstein Arif
002 Budi Martapura 02/10/1991
003 Hasan Banjarmasin 04/12/1990

nim kode_kul indeks_nilai


001 JFKK212 A
nama_dos alamat_dos 001 JFKK213 B
Dimas Gambut Raya 001 JFKB111 E
Arif Banjarbaru 002 JFKK212 A
002 JFKK213 D
003 JFKK213 C
003 JFKB111 C
Bentuk Normalisasi
• 1NF
• 2NF
• 3NF
• BCNF
• 4NF
• 5NF
3rd Normal Form (3NF)
• Untuk setiap KF :
XA
A adl semua atribut tunggal dalam tabel yang tidak ada dalam X,
maka :
X haruslah Super Key, atau
A adl bagian dari Primary Key
3rd Normal Form (3NF)
• Relasi R :
R (A, B, C);
PK (A)
BC
• Dekomposisinya :
R1 (B, C)
PK (B)
R2 (A, B)
PK (A)
Contoh Kasus
alamat_jalan nama_kota kode_pos
Jl. Lanan Banjarbaru 70713
2nd Normal Form (2NF)
• Relasi R :
R (A, B, C, D)
PK (A, B)
AD
• Dekomposisinya :
R1 (A, D)
PK (A)
R2 (A, B, C)
PK (A, B)
FK (A) ref R1

Anda mungkin juga menyukai