Juarisman,M.Kom
• Atribut komposit: adalah atribut yang dapat diuraikan lagi menjadi sub-
sub atribut yang masing-masing masih mempunyai makna.
• Contoh pada tabel mahasiswa adalah atribut nama_mhs sederhana,
sedangkan alamat_mhs adalah atribut komposit.
• Jika ada tabel T yang berisi 2 buah atribut, yaitu A dan B. Kita dapat
menyatakan notasi berikut : A B
98001 Ali Akbar Jl. Merdeka No. 10, Jakarta 40121 2-Jan-79 KU-234 Bahasa Indoensia Rabu, 09.00 - 10.50 row 3
2 2 B
Selasa, 10.00 - 11.40 dan
98002 Budi Haryanto Jl. Gajah Mada No. 2, Jakarta 45123 6-Oct-78 IF-310 Basis Data row 4
4 3 Jumat, 08.00 - 09.40
Rabu, 13.00 - 14.40 dan
98002 Budi Haryanto Jl. Gajah Mada No. 2, Jakarta 45123 6-Oct-78 MA-115 Matematika I row 5
3 1 C Jumat, 14.00 - 14.50
Selasa, 10.00 - 11.40 dan
98004 Indah Sutanti Jl. Adil No.123, Bogor 43212 21-Jun-79 IF-310 Basis Data row 6
4 3 Jumat, 08.00 - 09.40
Senin, 08.00 - 09.40 dan
98004 Indah Sutanti Jl. Adil No.123, Bogor 43212 21-Jun-79 IF-110 Struktur Data row 7
3 1 B Kamis, 11.00 - 11.50
row 1 Ruang A Dr. Umar Hakim Jl. Garuda No.1, Jakarta 43212
row 2 Ruang B Dr. Umar Hakim Jl. Garuda No.1, Jakarta 43212
row 4 Ruang B Dr. Umar Hakim Jl. Garuda No.1, Jakarta 43212
row 5 Ruang C Ir. Taufik Ismail Perum Dosen Griya Indah C-5, Bogor 43111
row 6 Ruang B Dr. Umar Hakim Jl. Garuda No.1, Jakarta 43212
row 7 Ruang A Dr. Umar Hakim Jl. Garuda No.1, Jakarta 43212
• Pengulangan Informasi
• terjadi pada atribut nama_mhs, alamat_mhs dan tgl_lahir sesuai data nim. Dan juga pada
nama_kul, tempat, waktu dst.
• Potensi inkonsistensi data pada operasi pengubahan data
• Jika akan mengubah nama mahasiswa berarti perubahan harus dijalarkan pada setiap baris
yang nimnya sama. Jika tidak diterapkan seperti itu maka KF yang telah ditentukan akan
terganggu karena nantinya ada dua baris nim-nya sama tapi data lainnya berbeda.
• Tersembunyinya informasi tertentu
• Tabel diatas tidak dapat menampilkan data yang berlum ada kaitannya. Misalnya mahasiswa
yang tidak mengambil mata kuliah atau mata kuliah yang belum diselenggarakan atau dosen
yang tidak mengajar.
Dari kelemahan tersebut kita harus mendekomposisikan tabel tersebut menjadi
beberapa tabel dengan mempertimbangkan KF. Agar setiap tabel hanya memiliki satu KF
(KF yang minimum).
• Dengan memperhatikan:
• Kesamaan
• Ketidaksamaan
• Dan hubungan antar alamiah
• Dalam perpektif Normalisasi, suatu basis data dapat dikatakan baik jika
setiap tabel yang menjadi unsur pembentuk berada dalam keadaan
baik atau normal.
• Konsep:
• Candidate key adalah satu atau lebih kolom yang nilainya dapat digunakan
untuk memberi identitas unik sebuah baris dalam tabel.
• Sebuah Primary Key adalah satu atau lebih kolom yang nilainya untuk memberi
identitas unik sebuah baris dalam tabel. Primary key dipilih diantara candidate
key yang ada.
NoOrder NmCus AlmtCus TglOrder KdBrg NmBrg Qty HrgSat SubTotal Total
N001 Andi Sun Jl. Kaliurang No.90 Yk 12-Jul-06 B001 RINSO 4 5,000 20,000 22,000
N002 Sutikno Jl. Kali Ola No. 89 Solo 14-Jul-06 B003 DANCOW 5 7,000 35,000 55,000
NoOrder NmCus AlmtCus TglOrder KdBrg NmBrg Qty HrgSat SubTotal Total
N001 Andi Sun Jl. Kaliurang No.90 Yk 12-Jul-06 B001 RINSO 4 5,000 20,000 22,000
N001 Andi Sun Jl. Kaliurang No.90 Yk 12-Jul-06 B002 POLO 5 400 2,000 22,000
N002 Sutikno Jl. Kali Ola No. 89 Solo 14-Jul-06 B003 DANCOW 5 7,000 35,000 55,000
N002 Sutikno Jl. Kali Ola No. 89 Solo 14-Jul-06 B001 RINSO 3 5,000 15,000 55,000
N002 Sutikno Jl. Kali Ola No. 89 Solo 14-Jul-06 B004 MIE GORENG 5 1,000 5,000 55,000
• Syarat:
• Tidak ada baris yang duplikat dalam sebuah tabel.
• Tidak ada atribut yang duplikat dalam sebuah tabel.
• Tidak ada atribut multivalued, jadi nilai cell harus atomic
value (single value).
• Tidak ada pengulangan group data (pengulangan item
di kolom).
• Langkah:
• Hilangkan atribut yang duplikat.
• Buatlah menjadi tabel terpisah untuk masih-masing
group data dan buat atribut relasinya (jika ada).
• Identifikasi setiap set relasi data dengan satu atau
beberapa kolom unik (primary key)
PK
Order
FK item_Order
NoOrde HrgSa
KdBrg NmBrg Qty SubTotal
r t
N001 B001 RINSO 4 5000 20000
N001 B002 POLO 5 400 2000
N002 B003 DANCOW 5 7000 35000
N002 B001 RINSO 3 5000 15000
• Syarat:
• Sudah memenuhi 1NF
• Atribut non-key secara fungsi tergantung penuh pada primary key
• Tidak ada partial dependencies: tidak ada atribut yang tergantung
pada sebagian dari primary key (untuk kasus composite primary
key)
• Langkah:
• Jika ada atribut yang tergantung pada sebagian primary key, pecah
menjadi tabel sendiri.
FK
item_Order
FK
NoOrde
KdBrg Qty SubTotal
r
N001 B001 4 20000
N001 B002 5 2000
N002 B003 5 35000
N002 B001 3 15000
PK N002 B004 5 5000
• Syarat:
• Memenuhi 2NF
• Tidak ada atribut yang tergantung secara transitif pada
non-key lainnya
• Langkah:
• Hapus atau pisahkan menjadi tabel sendiri atribut yang
tergantung pada kolom non-key (biasanya pada atribut
turunan).
• Pastikan semua atribut non-key tergantung pada
primary key.
N001 Andi Sun Jl. Kaliurang No.90 Yk 12-Jul-07 B001 RINSO 5000
FK
FK item_Order
NoOrder KdBrg Qty
N001 B001 4
N001 B002 5
N002 B003 5
N002 B001 3
N002 B004 5
PK
Fakultas Ilmu Komputer 27
Example 3st Normal Form
FK
PK FK item_Order
PK
Fakultas Ilmu Komputer 28
BCNF vs. 3rd Normal Form
• Dalam perpektif Normalisasi, suatu basis data dapat dikatakan baik jika setiap tabel
yang menjadi unsur pembentuk berada dalam keadaan baik atau normal.
• Jika krtiteria BCNF tidak dapat dipenuhi, maka paling tidak tidak melanggar
Bentuk Normal tahap ketiga (3rd Normal Form / 3rdNF)
UnNormal
UnNormal
22ndndNormal
NormalForm
Form
No repeating elements
or groups of elements
No dependencies
on non-key attributes
11ststNormal
NormalForm
Form
33rdrdNormal
NormalForm
Form
No partial dependencies
on a concatenated key