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