Anda di halaman 1dari 32

Teknik Normalisasi

Sistem Basis Data

Juarisman,M.Kom

Fakultas Ilmu Komputer 1


Lecture Outline

1. Understand the Normalization Definition

2. Understand the Importance of Normalization

3. Understand the Process and Normalization Stages

4. Understand the Forms of Normalization

5. Understand Anomalies and Data Dependency

6. Can Normalize data into the most Normal form

Fakultas Ilmu Komputer 2


Simple and Composite Attributes

• Atribut sederhana: adalah atribut yang tidak dapat dipilah lagi.

• 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.

Fakultas Ilmu Komputer 3


Examples of Composite Attributes

• Contoh Atribut Komposit:


Nim Nama_Mhs Almt_Mhs TglLahir
… Ali Akbar Jl. Merdeka No. 10, Jakarta 40121 …
… Budi Haryanto Jl. Gajah Mada No. 2, Jakarta 45123 …
… … … …

Dapat diuraikan menjadi 3


atribut
Alamat Kota Kode_Pos
Jl. Merdeka No. 10 Jakarta 40121
Jl. Gajah Mada No. 2 Jakarta 45123
… … …

Fakultas Ilmu Komputer 4


Note Composite Attributes

• Jika dalam pengolahan data tidak melibatkan


sub-sub atribut secara khusus maka rancangan
atribut alamat_mhs dapat dikatakan atribut
sederhana.
• Tapi jika ada rencana penggunaan alamat_mhs
secara spesifik maka lebih baik dalam
rancangan database kita memisahnya menjadi
sub-sub atribut secara tegas

Fakultas Ilmu Komputer 5


Attributes Must Be Valuable and Null

• Atribut yang harus diisi disebut “Mandotary


Attribute”.
• Atribut yang boleh dikosongkan nilainya disebut
“Non Mandotary Atribute”.
• Nilai Null digunakan untuk menyatakan/mengisi
atribut-atribut yang nilainya belum siap atau
tidak ada.

Fakultas Ilmu Komputer 6


Child Attribute

• Adalah atribut yang diperoleh dari:


• pengolahan atau dapat diturunkan dari atribut atau
tabel lain yang berhubungan.
• Atribut turunan dapat dihilangkan dari tabel
karena nilainya bergantung dari atribut lain.

Fakultas Ilmu Komputer 7


Nim Nama_Mhs Almt_Mhs TglLahir Angkatan Ip
98001 Ali Akbar Jl. Merdeka No. 10, Jakarta 40121 2-Jan-79 1998 3.2
98002 Budi Haryanto Jl. Gajah Mada No. 2, Jakarta 45123 6-Oct-78 1998 3.42
… … … … …
99006 Imam Faisal Komp. Griya Asri Depok, 40151 13-May-78 1999 2.67
99006 Joni Iskandar Jl. A. Yani No 34, Bogor, 33341 4-Aug-19 1999 3.78
… … … … …

Yang termasuk atribut turunan adalah:


• Angkatan dapat diperoleh dari nim
• Ip dari perhitungan sks, nilai di tabel kuliah

Fakultas Ilmu Komputer 8


Functional Dependency (KF)

• Ketergantungan Fungsional (KF) atau (Functional Dependency)

• Jika ada tabel T yang berisi 2 buah atribut, yaitu A dan B. Kita dapat
menyatakan notasi berikut : A  B

• Berarti A secara fungsional menentukan B atau B fungsional tergantung


pada A, jika dan hanya jika untuk setiap kumpulan baris data (row) yang
ada di tabel T, pasti ada 2 baris (row) di tabel T dengan nilai untuk A
yang sama, maka untuk nilai B pasti juga sama.
NIM NamaMhs MataKuliah IndekNilai Kode Dokter Nama Dokter
row 1 98001 Ali Akbar Struktur Data A D001 Neisya
row 2 98004 Indah Sutanti Struktur Data B D002 Najwa
row 3 98001 Ali Akbar Basis Data D003 Naufal
row 4 98002 Budi Haryanto Basis Data
row 5 98004 Indah Sutanti Basis Data
row 6 98001 Ali Akbar Bahasa Indonesia B
row 7 98002 Budi Haryanto Matematika I C

Fakultas Ilmu Komputer 9


Transitive Dependency (QT)

Ketergantungan transitif terjadi jika terdapat atribut A, B,


C yang saling berhubungan, dimana atribut C mempunyai
tepat satu nilai pada atribut B dan atribut B mempunyai
tepat satu nilai pada atribut A, sehingga secara tidak
langsung atribut C mempunyai tepat satu nilai pada
atribut A. sebagai contoh skema tabel pemeriksaan
terdapat atribut no_pendaftaran, no_pasien dan
nama_pasien seperti pada tabel 2.37 berikut :

No Pendaftaran No Pasien Nama Pasien


R001 P001 Alex
R002 P002 Andrey
R003 P003 Lendra

Fakultas Ilmu Komputer 10


Examples of Universal Tables
Nim Nam a_M hs Alm t_M hs TglLahir Kode M ataKuliah SKS Sem es ter Indek s _nilai Wak tu
Senin, 08.00 - 09.40 dan
98001 Ali Akbar Jl. Merdeka No. 10, Jakarta 40121 2-Jan-79 IF-110 Struktur Data row 1
3 1 A Kamis, 11.00 - 11.50
Selasa, 10.00 - 11.40 dan
98001 Ali Akbar Jl. Merdeka No. 10, Jakarta 40121 2-Jan-79 IF-310 Basis Data row 2
4 3 Jumat, 08.00 - 09.40

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

Ruang Nam aDosen Alm tDose n

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 3 Ruang A Dew i Sundari, MA Jl. Gita No.14, Jakarta 40121

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

Fakultas Ilmu Komputer 11


Weaknesses of Universal Tables

• 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).

Fakultas Ilmu Komputer 12


The solution

• Dengan memperhatikan:
• Kesamaan
• Ketidaksamaan
• Dan hubungan antar alamiah

• Antar data kita dapat membentuk sejumlah KF:


• nim  nama_mhs
• nim  alamat_mhs
nim  nama_mhs, alamat_mhs,
• nim  tgl_lahir
tgl_lahir
• kode_kul  nama_kul
• kode_kul  sks
• kode_kul  semester
• kode_kul  waktu kode_kul  nama_kul, sks, semester,
• kode_kul  tempat waktu, tempat, nama_dos
• kode_kul  nama_dos
• nama_dosen  alamt_dos
• nim, kode_kul  indeks_nilai

Fakultas Ilmu Komputer 13


Good table

• Dalam perpektif Normalisasi, suatu basis data dapat dikatakan baik jika
setiap tabel yang menjadi unsur pembentuk berada dalam keadaan
baik atau normal.

• Tabel dikatakan baik jika memenuhi 3 kriteria:


1. Jika dekomposisi (penguraian tabel), maka dikompisisi dijamin aman (Lossless-Join
Decomposition)

2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency


Preservation)

3. Tidak melanggar Boyce-Codd Normal Form (BCNF)


• Jika krtiteria BCNF tidak dapat dipenuhi, maka paling tidak tidak melanggar Bentuk
Normal tahap ketiga (3rd Normal Form / 3rdNF)

Fakultas Ilmu Komputer 14


Practice questions

1. Apa Syarat Normalisasi:


a. 1st Normal Form ?
b. 2nd Normal Form ?
c. 3rd Normal Form ?

2. Tentukan KF untuk tabel berikut:


Bentuk Tidak Normal
No
Order NmCus AlmtCus TglOrder KdBrg NmBrg Qty HrgSat SubTotal Total
Jl. Kaliurang RINSO 4 5,000 20,000
N001 Andi Sun No.90 Yk 12-Jul-06 B001 22,000
Jl. Kaliurang POLO 5 400 2,000
N001 Andi Sun No.90 Yk 12-Jul-06 B002 22,000
Jl. Kali Ola No. DANCOW 5 7,000 35,000
N002 Sutikno 89 Solo 14-Jul-06 B003 55,000
Jl. Kali Ola No. RINSO 3 15,000
N002 Sutikno 89 Solo 14-Jul-06 B001 5,000 55,000
Jl. Kali Ola No. MIE
5 5,000
N002 Sutikno 89 Solo 14-Jul-06 B004 GORENG 1,000 55,000

Fakultas Ilmu Komputer 15


What is Normalization?

• Normalisasi adalah sebuah metode yang urut dalam penerapan aturan-


aturan untuk mendesain database dengan tujuan agar (tabel menjadi
normal):
• Meminimalkan redudancy dan pengulangan data
• Mempertahankan integritas data
• Menambah konsistensi dan stabilitas
• Menghilangkan potensi anomali ketika mengolah data
• Anomali yang dimaksud:
• insertion anomalies, deletion anomalies, update anomalies.

• Level-level dalam normalisasi disebut Normal Form (NF)


• Pengagas pertama: Edgar F. Codd

Fakultas Ilmu Komputer 16


Normalization Stages
1. Bentuk Normal tahap Pertama (1st Normal
Form/1NF)
2. Bentuk Normal tahap Kedua (2nd Normal
Form/2NF)
3. Bentuk Normal tahap Ketiga (3rd Normal
Form/3NF)
4. Bentuk Normal tahap Keempat (4th Normal
Form/4NF)
5. Bentuk Normal tahap Kelima (5th Normal
Form/5NF)

Fakultas Ilmu Komputer 17


Concepts and Terms Prepared

• 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.

• Istilah yang disepakati sebelum Normalisasi:

Formal Name Common Name Also Known As


Relation Table Entity, File
Tuple Row Record
Attribute Column Field

Fakultas Ilmu Komputer 18


Case of Normalization

Fakultas Ilmu Komputer 19


Multi Value and Repeating Column

Fakultas Ilmu Komputer 20


Abnormal shape

Bentuk Tidak Normal

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

        B002 POLO 5 400 2,000

N002 Sutikno Jl. Kali Ola No. 89 Solo 14-Jul-06 B003 DANCOW 5 7,000 35,000 55,000

        B001 RINSO 3 5,000 15,000

        B004 MIE GORENG 5 1,000 5,000

Bentuk Flat File

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

Fakultas Ilmu Komputer 21


First Normal Form (1st NF)

• 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)

Fakultas Ilmu Komputer 22


1st Form Normal Form

• Bentuk 1st Normal Form.

PK
Order

NoOrder NmCus AlmtCus TglOrder Total

N001 Andi Sun Jl. Kaliurang No.90 Yk 12-Jul-07 22000

N002 Sutikno Jl. Kali Ola No. 89 Solo 14-Jul-07 55000

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

PK N002 B004 MIE GORENG 5 1000 5000


Fakultas Ilmu Komputer 23
Second Normal Form (2nd NF)

• 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.

Fakultas Ilmu Komputer 24


Example of Form 2st Normal Form

• Bentuk 2nd Normal Form.


PK
Orders
PK
Barang
NoOrder NmCus AlmtCus TglOrder Total
KdBrg NmBrg HrgSat
Andi Jl. Kaliurang
N001 12-Jul-07 B001 RINSO 5000
Sun No.90 Yk 22000
Jl. Kali Ola B002 POLO 400
N002 Sutikno 14-Jul-07
No. 89 Solo 55000 B003 DANCOW 7000
B004 MIE GORENG 1000

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

Fakultas Ilmu Komputer 25


Third Normal Form (3rd NF)

• 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.

Fakultas Ilmu Komputer 26


Example 3st Normal Form

• Bentuk 3rd Normal Form.


PK
PK Orders FK Barang

NoOrder NmCus AlmtCus TglOrder KdBrg NmBrg HrgSat

N001 Andi Sun Jl. Kaliurang No.90 Yk 12-Jul-07 B001 RINSO 5000

Jl. Kali Ola No. 89 B002 POLO 400


N002 Sutikno 14-Jul-07
Solo B003 DANCOW 7000
N003 Andi Sun Jl. Kaliurang No.90 Yk 2-Aug-07
B004 MIE GORENG 1000

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

• Bentuk 3rd Normal PK


Form. FK Barang
PK Orders KdBrg NmBrg HrgSat
NoOrde KdCu B001 RINSO 5000
TglOrder
r s
B002 POLO 400
N001 12-Jul-07 C001
B003 DANCOW 7000
N002 14-Jul-07 C002
B004 MIE GORENG 1000

FK
PK FK item_Order

Customer NoOrder KdBrg Qty

KdCus NmCus AlmtCus N001 B001 4

C001 Andi Sun Jl. Kaliurang No.90 Yk N001 B002 5


Jl. Kali Ola No. 89 N002 B003 5
Sutikno
C002 Solo
N002 B001 3
N002 B004 5

PK
Fakultas Ilmu Komputer 28
BCNF vs. 3rd Normal Form

• Boyce-Codd Normal Form (BCNF)


• Sebuah tabel dikatakan memenuhi BCNF jika untuk
semua dengan notasi X ->Y, maka X harus merupakan
superkey pada tabel tersebut.
• Jika belum demikian maka tabel tersebut harus di
dekomposisikan ulang berdasar KF yang ada,
sedemikian hingga X menjadi superkey dari tabel hasil
dekomposisi.
• Sebuah tabel dikatakan memenuhi bentuk normal ketiga (3NF), jika untuk
setiap ketergantungan fungsional dengan notasi X -> A, dimana A mewakili
semua atribut tunggal di dalam tabel yang tidak ada di dalam X, maka :
• X haruslah superkey pada tabel tersebut
• Atau A merupakan bagian dari primary key pada tabel
tersebut

Fakultas Ilmu Komputer 29


Good table

• Dalam perpektif Normalisasi, suatu basis data dapat dikatakan baik jika setiap tabel
yang menjadi unsur pembentuk berada dalam keadaan baik atau normal.

• Tabel dikatakan baik jika memenuhi 3 kriteria:

1. Jika dekomposisi (penguraian tabel), maka dikompisisi dijamin aman (Lossless-Join


Decomposition)

2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency


Preservation)

3. Tidak melanggar Boyce-Codd Normal Form (BCNF)

• Jika krtiteria BCNF tidak dapat dipenuhi, maka paling tidak tidak melanggar
Bentuk Normal tahap ketiga (3rd Normal Form / 3rdNF)

Fakultas Ilmu Komputer 30


Normalization Process

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

Fakultas Ilmu Komputer 31


About Training

Normalkan tabel berikut dengan Normalisasi !

Project Project Employee Employee Rate Hourly


number name number name category rate

1023 Madagascar travel site 11 Vincent Radebe A $60

12 Pauline James B $50

16 Charles Ramoraz C $40

1056 Online estate agency 11 Vincent Radebe A $60

17 Monique Williams B $50

Fakultas Ilmu Komputer 32

Anda mungkin juga menyukai