Kamis, 07 April 2016

Normalisasi Pada Database

Sistem Basis Data
Nama                    : I Made Surendra
Nim                       : 15101570
Kelas                     : N


Definisi Normalisasi Pada Database

Normalisasi adalah proses mendesain struktur database dan tehnik analisis data yang mengorganisasikan atribut data dengan cara mengelompokan sehingga terbentuk entitas yang berbentuk non-redundant, stabil, dan fleksibel sehingga menghasilkan sebuah tabel yang normal.

Normalisasi

  • Difungsikan untuk memastikan bahwa database yang dibuat berkualitas sangat baik.
  • Tahap normalisasi dibuat dari tahap paling ringan (1NF) hingga yang paling ketat(5NF).
  • Biasanya Hanya Sampai tingkat 3-NF (Bentuk normla ketiga), karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas sangat baik.



Tujuan Dilakukannya Normalisasi

  • Menghilangkan kerangkapan pada data/redudansi.
  • Mengurangi kompleksitas.
  • Mempermudah pemodikasian data.
  • Menghilangkan anomali data.

functional dependency


Functional Dependency merupakan relasi yang menggambarkan ketergantungan antar atribut dalam suatu relasai. Suatu atribut akan dikatakan functional dependency pada yang lain jika kita menggunakan harga atribut tesebut untuk menentukan harga atribut lain.

 

Sebagai Contoh :

Ketergantungan fungsional dari tabel nilai :

Nim => Nama=Mhs

Nim Menentukan nama mahasiswa karena nim menunjukan nama mahasiswa yang sama.

{Matakuliah,Nim} => Nilai Huruf

Kenapa harus matakulia dan nim, kenapa tidak nim atau mata kuliah saja, karena , jika hanya nim saja atau nim dapat memiliki 2 nila, jika matakuliah saja juga terdapat banyak nilai maka dari itu kita memakai mata kuliah dan nim untuk menentukan nilai huruf.

Macam-macam Functional Dependency :
  • Full Functional Dependency.
  • Partially Dependency.
  • Transitive Depedency.
Full Functional Dependency

ketergantungan penuh, menunjukan atribut A dan B dalam satu relasi , dimana B bergantung penuh dengan A , maksudnya penuh disini B  hanya di hanya ditentukan oleh A dan hanya A saja yang menentukan B bukan Subset dari A .

Contoh :
Dikatakan full dependency kalau hanya A yang menentukan B dalam hal ini adalah NIM  idRuang. Jika Nama dan NIM yang menentukan idRuang maka hal ini tidak dapat dikatakan sebagai full dependency.

PARTIALLY DEPENDENCY
Ketergantungan parsial atau sebagian. Partionally dependency ini memiliki 2 atribut dari A untuk menentukan B, namun untuk menentukan B tidak harus 2 atribut artinya jika salah satu atribut A yang menentukan B dapat dihilangkan namun tidak merubah arti relasi dan masih tetap berelasi ketergantungan.
Contoh :
Ketergantungan sebagian {NIM, Nama}  idRuang dimana jika Namadihilangkan maka ketergantungan tetap ada.

TRANSITIVE DEPENDENCY
Transitive dependency biasanya terjadi pada tabel hasil relasi, atau kondisi dimana terdapat tiga atribut A,B,C. Kondisinya adalah A  B dan B  C. Maka C dikatakan sebagai transitive dependency terhadap A melalui B.
Contoh :
·         NIP  {Nama, Jabatan, Gaji, kdCabang, almCabang}
·         kdCabang  almCabang


Bentuk-Bentuk Normalisasi Beserta Contohnya

Beberapa bentuk normal:
1.     1NF, 2NF, 3NF, BCNF
1NF Suatu relasi dikatakan bentuk normal pertama, jika dan hanya jika setiapatribut bernilai tunggal untuk setiap baris. Tiap field hanya satu pengertian, bukanmerupakan kumpulan kata yang mempunyai arti mendua, hanya satu arti saja dan juga bukanlah pecahan kata – kata sehingga artinya lain. Tidak ada set atribut yangberulang-ulang atau atribut bernilai ganda.
2NF Memenuhi bentuk 1 NF (normal pertama), Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama /primary key
3NF Memenuhi bentuk 2 NF (normal kedua),  Atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci utama / primarykey.
BCNF Memenuhi bentuk 3 NF (normal ketiga), Semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik) serta Setiap atribut harus bergantung fungsi pada atribut superkey.
2.     4NF, 5NF
Contoh:
1.     First Normal Form (1NF)
o    Suatu relasi disebut memenuhi bentuk normal pertama (1NF) jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki tunggal dan tidak ada pengulangan grup atribut dalam baris.
o    Bentuk 1NF tidak boleh mengandung grup atribut yang berulang.
o    Tujuan membentuk 1NF :
§  Semantik tabel menjadi lebih eksplisit (say anything once).
§  Semua operator aljabar relasional dapat diaplikasikan pada tabel.

Kasus yang Di Buat:
v  Pekerjaan
v  Sales
v  Mahasiswa

5.     Berikut adalah contoh data-data yang belum ternormalisasi:
NIP
Nama
Jabatan
Keahlian
Lama
001
Man
Analisis
Acces
6 tahun



Oracle
3 tahun
002
Rizal
Analisis
MySQL
2 tahun



Oracle
4 tahun
003
Hanif
Programer
C
4 tahun



VB
5 tahun



Java
8 tahun

Pada tabel di atas, contoh data belum ternormalisasi sehingga
dapat diubah ke dalam bentuk 1NF dengan cara membuat setiap baris
berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu
nilai.

NIP
Nama
Jabatan
Keahlian
Lama
001
Man
Analisis
Acces
6 tahun
001
Man
Analisis
Oracle
3 tahun
002
Rizal
Analisis
MySQL
2 tahun
002
Rizal
Analisis
Oracle
4 tahun
003
Hanif
Programer
C
4 tahun
003
Hanif
Programer
VB
5 tahun
003
Hanif
Programer
Java
8 tahun

Relasi Pekerjaan tersebut merupakan bentuk 1 NF, karena tidak ada atribut yang bernilai ganda, dan tiap atribut satu pengertian yang bernilai tunggal.

6.     Berikut adalah contoh data-data yang belum ternormalisasi:
Id_Sales
Nama_Sales
Telepon
S001
Ria
3513214, 3541245
S002
Anti
6548143, 5825143, 7563249
S003
Ani
085337732666
S004
Maya
6836592
S005
Wulan
6823928, 081234321454

Pada data tabel di atas, contoh data belum ternormalisasi sehingga
dapat diubah ke dalam bentuk 1NF dengan cara membuat setiap baris
berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu
nilai.
Id_Sales
Nama_Sales
Telepon
S001
Ria
3513214
S001
Ria
3541245
S002
Anti
6548143
S002
Anti
5825143
S002
Anti
7563249
S003
Ani
085337732666
S004
Maya
6836592
S005
Wulan
6823928
S005
Wulan
081234321454
Relasi Sales tersebut merupakan bentuk 1 NF, karena tidak ada atribut yang bernilai ganda, dan tiap atribut satu pengertian yang bernilai tunggal.

7.     Berikut adalah contoh data-data yang belum ternormalisasi:
NIM
Nama
Kode_Matkul
201010241
Siti
001, 004, 008
201010242
Beti
002, 005
201010243
Eli
005, 008
201010244
Rosi
003, 006
201010245
Eci
001, 007, 009

Pada data tabel di atas, contoh data belum ternormalisasi sehingga
dapat diubah ke dalam bentuk 1NF dengan cara membuat setiap baris
berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu
nilai.
NIM
Nama
Kode_Matkul
201010241
Siti
001
201010241
Siti
004
201010241
Siti
008
201010242
Beti
002
201010242
Beti
005
201010243
Eli
005
201010243
Eli
008
201010244
Rosi
003
201010244
Rosi
006
201010245
Eci
001
201010245
Eci
007
201010245
Eci
009

Relasi Mahasiswa tersebut merupakan bentuk 1 NF, karena tidak ada atribut yang bernilai ganda, dan tiap atribut satu pengertian yang bernilai tunggal.
8.     2NF
o    Memenuhi bentuk 1 NF (normal pertama).
o    Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama atau primary key.
Contoh:
Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)
dengan FD : A,B & C,D,E maka tabel R memenuhi 2NF sebab :
A,B & C,D,E berarti :
A,B & C,
A,B & D dan
A,B & E
Jadi semua atribut bukan kunci utama tergantung penuh pada (A,B).
Bagaimana bila R = (A,B,C,D,E) tetapi dengan FD :
(A,B) & (C,D) dan B & E. Apakah memenuhhi 2NF ?
Jelas bahwa R bukan 2NF karena ada atribut E yang bergantung
hanya pada atribut B saja dan bukan terhadap (A,B).
Dari FD : (A,B) Ã  (C,D) juga mencerminkan bahwa hanya C dan D saja yang bergantung secara fungsional terhadap (A,B), tidak untuk E.
Jadi bukan 2NF.
Untuk mengubah menjadi 2NF, lakukan dekomposisi menjadi :
R1 = (A,B,C,D) dan R2 = (B,E). Tampak R1 dan R2 memenuhi 2NF.

11. Untuk membentuk normal, kedua tiap tabel atau file haruslah ditentukan kunci-kunci atributnya. Kunci atribut harus unik dan dapat mewakili atribut lain yang menjadi anggotanya. Pada contoh tabel Pekerjaan yang memenuhi normal pertama (1 NF) , terlihat bahwa NIP merupakan Primery Key (PK).
NIP           Nama dan Jabatan: Artinya atribut Nama dan Jabatan bergantung pada NIP.
Tetapi NIP            Keahlian dan Lama: Artinya bahwa atribut Lama tidak tergantungpada NIP.

Belum Normal
NIP
Nama
Jabatan
Keahlian
Lama
001
Man
Analisis
Acces
6 tahun



Oracle
3 tahun
002
Rizal
Analisis
MySQL
2 tahun



Oracle
4 tahun
003
Hanif
Programer
C
4 tahun



VB
5 tahun



Java
8 tahun

Normal 1NF
NIP
Nama
Jabatan
Keahlian
Lama
001
Man
Analisis
Acces
6 tahun
001
Man
Analisis
Oracle
3 tahun
002
Rizal
Analisis
MySQL
2 tahun
002
Rizal
Analisis
Oracle
4 tahun
003
Hanif
Programer
C
4 tahun
003
Hanif
Programer
VB
5 tahun
003
Hanif
Programer
Java
8 tahun

Normal 2NF
NIP
Nama
Jabatan
001
Man
Analisis
002
Rizal
Analisis
003
Hanif
Programer

NIP
Keahlian
Lama
001
Acces
6 tahun
001
Oracle
3 tahun
002
MySQL
2 tahun
002
Oracle
4 tahun
003
C
4 tahun
003
VB
5 tahun
003
Java
8 tahun

12. Untuk membentuk normal, kedua tiap tabel atau file haruslah ditentukan kunci-kunci atributnya. Kunci atribut harus unik dan dapat mewakili atribut lain yang menjadi anggotanya. Pada contoh tabel Pekerjaan yang memenuhi normal pertama (1 NF) , terlihat bahwa Id_Sales merupakan Primery Key (PK).
Id_Sales    Nama_Sales: Artinya atribut Nama_Sales bergantung pada Id_Sales.
Tetapi Id_Sales     Telepon: Artinya bahwa atribut Telepon tidak tergantung pada Id_Sales.

Belum Normal
Id_Sales
Nama_Sales
Telepon
S001
Ria
3513214, 3541245
S002
Anti
6548143, 5825143, 7563249
S003
Ani
085337732666
S004
Maya
6836592
S005
Wulan
6823928, 081234321454

Normal 1NF
Id_Sales
Nama_Sales
Telepon
S001
Ria
3513214
S001
Ria
3541245
S002
Anti
6548143
S002
Anti
5825143
S002
Anti
7563249
S003
Ani
085337732666
S004
Maya
6836592
S005
Wulan
6823928
S005
Wulan
081234321454

Normal 2NF
Id_Sales
Nama_Sales
S001
Ria
S002
Anti
S003
Ani
S004
Maya
S005
Wulan

Id_Sales
Telepon
S001
3513214
S001
3541245
S002
6548143
S002
5825143
S002
7563249
S003
085337732666
S004
6836592
S005
6823928
S005
081234321454

13. Untuk membentuk normal, kedua tiap tabel atau file haruslah ditentukan kunci-kunci atributnya. Kunci atribut harus unik dan dapat mewakili atribut lain yang menjadi anggotanya. Pada contoh tabel Pekerjaan yang memenuhi normal pertama (1 NF) , terlihat bahwa NIM  merupakan Primery Key (PK).
NIM          Nama: Artinya atribut Nama bergantung pada NIM.
MatkulTetapi NIM            Kode_Matkul: Artinya bahwa atribut Kode_m tidak tergantung pada NIM.

Belum Normal
NIM
Nama
Kode_Matkul
201010241
Siti
001, 004, 008
201010242
Beti
002, 005
201010243
Eli
005, 008
201010244
Rosi
003, 006
201010245
Eci
001, 007, 009

Normal 1NF
NIM
Nama
Kode_Matkul
201010241
Siti
001
201010241
Siti
004
201010241
Siti
008
201010242
Beti
002
201010242
Beti
005
201010243
Eli
005
201010243
Eli
008
201010244
Rosi
003
201010244
Rosi
006
201010245
Eci
001
201010245
Eci
007
201010245
Eci
009

Normal 2NF
NIM
Nama
201010241
Siti
201010242
Beti
201010243
Eli
201010244
Rosi
201010245
Eci

NIM
Kode_Matkul
201010241
001
201010241
004
201010241
008
201010242
002
201010242
005
201010243
005
201010243
008
201010244
003
201010244
006
201010245
001
201010245
007
201010245
009

14. 3NF
Suatu relasi disebut memenuhi bentuk normal ketiga (3NF) jika dan hanya jika :
o    Memenuhi 2NF
o    Setiap atribut yang bukan kunci tidak tergantung secara fungsional terhadap atribut bukan kunci yang lain dalam relasi tsb (tidak terdapat ketergantungan transitif pada atribut bukan kunci).
o    Jika dan hanya jika setiap FD nontrivial : X & A, dimana X dan A atribut (atau kompositnya), memenuhi salah satu kondisi :
1.     X adalah superkey
2.     A merupakan anggota candidate key (A disebut prime attribute)

Jika suatu relasi sudah memenuhi 2NF tapi tidak memenuhi 3 NF, maka untuk normalisasi ke bentuk 3NF, tabel 2NF didekomposisi menjadi beberapa tabel hingga masing-masing memenuhi 3NF.

Tujuan membentuk 3NF :
ü  Semantik tabel 3NF menjadi lebih eksplisit (fully FD hanya pada primary key).
ü  Menghindari update anomali yang masih mungkin terjadi pada 2NF.

Jika suatu relasi memenuhi 2NF dan hanya memiliki tepat satu atribut yang bukan kunci utama maka relasi tersebut memenuhi 3NF

Contoh :
Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)
dengan FD : A,B & C,D,E dan C & D,E maka R bukan 3NF sebab :
Atribut D dan E (bukan kunci utama) bergantung secara fungsional
pada C (yang juga bukan kunci utama).
Melalui FD :
Diketahui A,B & C,D,E. Karena sifat refleksif maka A,B & A,B. Sehingga A,B & A,B,C,D,E (A,B) : Superkey.
Diketahui C & D,E. Karena sifat refleksif maka C & C. Sehingga C & C,D,E. Karena C> A,B,C,D,E maka C bukan superkey.
Tidak memenuhi definisi 3NF. Jadi R bukan 3NF. Agar R memenuhi 3NF maka didekomposisi menjadi :
R1=(A,B,C) dan R2=(C,D,E) sehingga R1 dan R2 memenuhi 3NF.
3.     Tabel Pekerjaan
Belum Normal:
NIP
Nama
Jabatan
Keahlian
Lama
001
Man
Analisis
Acces
6 tahun



Oracle
3 tahun
002
Rizal
Analisis
MySQL
2 tahun



Oracle
4 tahun
003
Hanif
Programer
C
4 tahun



VB
5 tahun



Java
8 tahun

Normal 2NF
NIP
Nama
Jabatan
001
Man
Analisis
002
Rizal
Analisis
003
Hanif
Programer

NIP
Keahlian
Lama
001
Acces
6 tahun
001
Oracle
3 tahun
002
MySQL
2 tahun
002
Oracle
4 tahun
003
C
4 tahun
003
VB
5 tahun
003
Java
8 tahun

Normal 3NF
NIP
Nama
Jabatan
001
Man
Analisis
001
Man
Analisis
002
Rizal
Analisis
002
Rizal
Analisis
003
Hanif
Programer
003
Hanif
Programer
003
Hanif
Programer

Jabatan
Lama
Analisis
6 tahun
Analisis
3 tahun
Analisis
2 tahun
Analisis
4 tahun
Programer
4 tahun
Programer
5 tahun
Programer
8 tahun

NIP
Jabatan
Keahlian
001
Analisis
Acces
001
Analisis
Oracle
002
Analisis
MySQL
002
Analisis
Oracle
003
Programer
C
003
Programer
VB
003
Programer
Java

4.     Tabel Sales
Belum Normal
Id_Sales
Nama_Sales
Telepon
S001
Ria
3513214, 3541245
S002
Anti
6548143, 5825143, 7563249
S003
Ani
085337732666
S004
Maya
6836592
S005
Wulan
6823928, 081234321454

Normal 2NF
Id_Sales
Nama_Sales
S001
Ria
S002
Anti
S003
Ani
S004
Maya
S005
Wulan

Id_Sales
Telepon
S001
3513214
S001
3541245
S002
6548143
S002
5825143
S002
7563249
S003
085337732666
S004
6836592
S005
6823928
S005
081234321454

Normal 3NF
Id_Sales
Nama_Sales
S001
Ria
S002
Anti
S003
Ani
S004
Maya

Nama_Sales
Telepon

S001
3513214

S001
3541245

S002
6548143

S002
5825143

S002
7563249

S003
085337732666

S004
6836592

S005
6823928

S005
081234321454

Id_Sales
Nama_Sales
Telepon
S001
Ria
3513214
S001
Ria
3541245
S002
Anti
6548143
S002
Anti
5825143
S002
Anti
7563249
S003
Ani
085337732666
S004
Maya
6836592
S005
Wulan
6823928
S005
Wulan
081234321454

5.     Tabel Mahasiswa
Belum Normal
NIM
Nama
Kode_Matkul
201010241
Siti
001, 004, 008
201010242
Beti
002, 005
201010243
Eli
005, 008
201010244
Rosi
003, 006
201010245
Eci
001, 007, 009

Normal 2NF
NIM
Nama
201010241
Siti
201010242
Beti
201010243
Eli
201010244
Rosi
201010245
Eci

NIM
Kode_Matkul
201010241
001
201010241
004
201010241
008
201010242
002
201010242
005
201010243
005
201010243
008
201010244
003
201010244
006
201010245
001
201010245
007
201010245
009

3NF
NIM
Nama
201010241
Siti
201010242
Beti
201010243
Eli
201010244
Rosi
201010245
Eci

Nama
Kode_Matkul
Siti
001
Siti
004
Siti
008
Beti
002
Beti
005
Eli
005
Eli
008
Rosi
003
Rosi
006
Eci
001
Eci
007
Eci
009

NIM
Nama
Kode_Matkul
201010241
Siti
001
201010241
Siti
004
201010241
Siti
008
201010242
Beti
002
201010242
Beti
005
201010243
Eli
005
201010243
Eli
008
201010244
Rosi
003
201010244
Rosi
006
201010245
Eci
001
201010245
Eci
007
201010245
Eci
009


6.     BCNF
o    Suatu relasi disebut memenuhi BCNF jika dan hanya jika setiap determinan yang ada pada relasi tersebut adalah candidate key.
o    Definisi yang lain : Suatu relasi disebut memenuhi BCNF jika untuk setiap FD nontrivial : X Ã  A atribut X adalah superkey.
o    Untuk normalisasi ke bentuk BCNF, maka tabel 3NF didekomposisi menjadi beberapa tabel yang masing-masing memenuhi BCNF.
o    Tujuan membentuk BCNF : multiple candidate key menjadi lebih eksplisit (FD hanya pada candidate key). Menghindari update anomali yang masih mungkin terjadi pada 3NF.

Dari definisi 3NF dan BCNF, maka apabila suatu relasi memenuhi BCNF pasti memenuhi 3NF, tetapi belum tentu sebaliknya.

Contoh :
Diketahui tabel R=(A,B,C) dengan FD : A & B dan B & C maka R bukan BCNF, sebab :
v  A Superkey ?
AàB (diketahui)
AàB dan B & C maka A & C (transitif)
AàA (refleksif)
Sehingga A & (A,B,C) atau A & R. Jadi A superkey.
v  B Superkey ?
B & C (diketahui)
B & B     (refleksif)
Tapi BA. Sehingga B & A,B,C atau B bukan superkey. Agar R memenuhi BCNF maka didekomposisi menjadi :
R1=(A,B) ; FD : A & B dan
R2=(B,C) ; FD : B & C. Sehingga R1 dan R2 masing-masing memenuhi BCNF.  Sebab A dan B dua-duanya sekarang menjadi superkey.
4.     Tabel Pekerjaan
Belum Normal
NIP
Nama
Jabatan
Keahlian
Lama
001
Man
Analisis
Acces
6 tahun



Oracle
3 tahun
002
Rizal
Analisis
MySQL
2 tahun



Oracle
4 tahun
003
Hanif
Programer
C
4 tahun



VB
5 tahun
Normal BCNF
NIP
Nama
Jabatan
Keahlian
001
Man
Analisis

002
Rizal
Analisis

003
Hanif
Programer


Nama
Lama
Man
6 tahun
Man
3 tahun
Rizal
2 tahun
Rizal
4 tahun
Hanif
4 tahun
Hanif
5 tahun
Hanif
8 tahun

5.     Tabel Sales
Belum Normal
Id_Sales
Nama_Sales
Telepon
S001
Ria
3513214, 3541245
S002
Anti
6548143, 5825143, 7563249
S003
Ani
085337732666
S004
Maya
6836592
S005
Wulan
6823928, 081234321454

Normal BCNF
Id_Sales
Nama_Sales
S001
Ria
S002
Anti
S003
Ani
S004
Maya
S005
Wulan

Nama_Sales
Telepon
S001
3513214
S001
3541245
S002
6548143
S002
5825143
S002
7563249
S003
085337732666
S004
6836592
S005
6823928
S005
081234321454

6.     Table Mahasiswa
Belum Normal
NIM
Nama
Kode_Matkul
201010241
Siti
001, 004, 008
201010242
Beti
002, 005
201010243
Eli
005, 008
201010244
Rosi
003, 006
201010245
Eci
001, 007, 009



Normal BCNF
NIM
Nama
201010241
Siti
201010242
Beti
201010243
Eli
201010244
Rosi
201010245
Eci

Nama
Kode_Matkul
Siti
001
Siti
004
Siti
008
Beti
002
Beti
005
Eli
005
Eli
008
Rosi
003
Rosi
006
Eci
001
Eci
007
Eci
009