NORMALISASI 1NF, 2NF dan 3NF
Nama : Reihan Fariza
NIM : 2101301076
Kelas : 1D
Prodi : Teknologi Informasi
NORMALISASI 1NF, 2NF dan 3NF
Normalisasi
Basis Data Bentuk Normal Pertama (1NF)
Normalisasi
pangkalan data merupakan cara lain untuk merancang basis data yang bertujuan
memastikan dependensi data pada sistem basis data, normalisasi memiliki
aturan-aturan tahapan wajib di lalu satu persatu agar basis data dapat
dikatakan baik dan efisien. 1NF merupakan singkatan dari 1st (first) Normal
Form bahasa indonesia dikenal dengan Bentuk Normal Pertama.
Normalisasi Bentuk Normal Pertama (1NF) merupakan proses
dekomposisi atau penguraian data berdasarkan sampel star table/universal. star
table atau universal merupakan tabel atau relasi berisikan kumpulan item data
yang masih memiliki indikasi relasi redudansi dan atribut bernilai ganda
(Multivalued Attribute) ataupun tidak, memiliki indikasi tersebut merupakan
kelemahan fatal dalam sebuah sistem basis data. Star tabel/universal dapat berupa output record dari sebuah
sistem informasi, baik itu berupa nota, kwitansi, invoice yang dapat
digunakan untuk megontruksi ulang ralasi menjadi basis data relasional
yang baik.
Edgard F. Codd mendefinisikan
normalisasi bentuk pertama (1NF) di dalam konferensi makalahnya berjudul
"A Relational Model of Data for Large Shared Data Banks" atau Sebuah
Model Data Relasional untuk Bank Data Besar Bersama pada tahun 1971. Di Dalam
makalah itu bertuliskan kalimat "defined a relation to be in first normal
form when none of its domains have any sets as elements", kurang lebih
definisi normalisasi bentuk normal pertama (1NF) adalah ditetapkan sebuah tabel
berbentuk normal pertama ketika tidak ada relasi (relasi) yang domainnya
memiliki himpunan sebagai elem. Domain diatas dimaksudkan himpunan nilai, nama,
tipe data dan ukuran yang diberikan pada suatu atribut dalam tabel, sedangkan
elemen disini dimaksudkan nilai data yang dapat dipisah atau dapat dijadikan
sub atribut.
Ketentuan Normalisasi Database Bentuk Pertama (1NF)
Sebuah
relasi dalam pangkalan data dikatakan memenuhi bentuk normal pertama, jika
relasi tersebut telah memenuhi kriteria-kriteria Normalisasi Bentuk Pertama
(1NF) sebagai berikut:
- Mendefinisikan atribut
kunci (key attribute), dimana ketentuan Normalisasi bentuk pertama
(1NF) harus mengidentifikasikan atribut-atribut ke dalam kata kunci.
Atribut kunci adalah satu atau kumpulan atribut yang membedakan baris data
record satu dengan baris data record lainnya agar menjadikan baris data
record tersebut menjadi unik (unique) pada sebuah tabel. Terutama megiden
tifikasikan atribut kunci primer (primary key).
- Tidak
adanya atribut bernilai banyak (multivalued attribute).
Artinya bentuk normal 1nf adalah dimana setiap relasi tidak memiliki nilai
atribut dengan jenis yang sama, contoh multivalued attribute adalah ketika
hobi dijadikan sebagai atribut, seorang mahasiswa memiliki banyak
nilai/jenis hobi (hobi berenang, tenggelam, mancing dan bulutangkis per
seorang mahasiswa).
- Setiap
atribut dalam tabel tersebut harus bernilai atomic. Dimana
Ketentuan normalisasi bentuk normal pertama (1NF) atribut tersebut tidak
boleh atribut komposit (composite attribute) harus
bernilai terkecil tunggal dan bukan atribut yang dapat dipilah menjadi
subatribut (tidak memiliki kemungkinan sub-sub atribut). Contoh atribut
kompisit adalh terdapat artribut alamat didalam sebuah tabel, atribut
alamat dalam amatan normalisasi bentuk tahap pertama (1NF), dimungkan kan
untuk didekomposisi (diuraikan)menjadi beberapa subatribut. subatribut
dari alamat adalah kode pos, desa, kecamatan, kabupaten, provinsi, dan
negara.
Contoh sederhana normalisasi database bentuk normal pertama
(1NF)
Untuk
memudahkan dalam pemahaman tentang normalisasi database 1NF (1st Normal form),
mari perhatikan contoh normalisasi database Bentuk pertama sederhana dibawah.
Ketergantungan Fungsional (Functional Dependency)
Untuk
memudahkan dalam pendekomposisian tabel diatas, kita dapat menggunakan teknik
dekomposisi Ketergantungan
Fungsional (Functional Dependency). Dimana jika diberikan
tabel dengan A berisikan 2 atribut dengan nama B dan C, yang berarti secara
fungsional B menentukan C atau C tergantung pada B (B → C), jika dan hanya jika
ada 2 baris data (row) dengan nilai B yang sama, maka nilai C juga sama (B
=> C). Cara menentukan Ketergantungan Fungsional (Functional Dependency)
dari gambar tabel mata kuliah per mahasiswa di atas adalah dengan mencari
atribut dengan nilai unik (tidak sama). Atribut unik ini juga merupakan atribut
kandidat key (Candidate-Key) atau bakal calon primary key.
Berdasarkan gambar
belum normal (unnormalized) diatas, ditemukan dua buah atribut bersifat unik
nim dan kode-matkul.
- nim → merupakan Ketergantungan
Fungsional nama.
- kode_matkul → merupakan Ketergantungan
Fungsional matkul, waktu1, dan waktu2
Kembali Lagi dalam ketentuan bentuk Normal pertama (1NF).
Setelah Ketergantungan Fungsional (Functional Dependency) telah
diidentifikasikan, tercipta tabel mahasiswa yang terdiri dari
atribut nim dan nama dan tabel mata_kuliah dengan
atribut kode_mtkul, matkul, waktu1 dan waktu2.
Selanjutnya mendekomposisikan tabel belum normal tersebut seperti gambar
dibawah.
Ternyata Gambar diatas belum memenuhi bentuk normal pertama (1NF), karena didalamnya terdapat ambiguity perulangan grup atau pengulangan banyak nilai (Multivalued Attribute) yang terdapat atribut waktu1 dan waktu2 pada tabel mata_kuliah. Sehingga memungkinkan terjadinya anomali (insert, delete, dan update anomaly).
Pada situasi seperti ini kita diharuskan mengulangi lagi
dekomposisi tabel mata_kuliah dengan
mencari lagi ketergantungan fungsional pada tabel tersebut. Ketergantungan
fungsional dari tabel mata_kuliah tersebut
adalah nim, kode_matkul → merupakan Ketergantungan
Fungsional waktu1 dan waktu2. permasalahan ini
mengharuskan untuk menguraikan atribut baru sehingga didapatkan entri data unik
dan dapat menjadi kunci primer (primary key). Tabel mata_kuliah diatas dapat
didekomposisikan lagi menjadi tabel_jadual dan
memberi atribut kode_jadwal dan jam. Perhatikan
gambar dibawah.
Dekomposisi
dari Tabel Belum Normal (Unnormalized) Mata Kuliah |
|
Tabel
Normalisasi Basis Data Bentuk Normal Pertama (1NF) |
Jika dan hanya jika domain dari setiap atribut pada tabel database mahasiswa
diatas hanya berisi nilai bersifat atom (elemen terkecil) atau tidak dapat
diuraikan lagi, maka tabel tersebut telah memenuhi bentuk normalisasi basis
data bentuk pertama (1NF) dan dapat dilanjutkan ke bentuk normal kedua (2NF)
jika diperlukan. Artinya, dalam Aturan dan tahapan perancangan basis data
dengan pendekatan teknik normalisasi basis data tidak harus memenuhi semua
tahapan bentuk awal hingga akhir normalisasi. Dimana jika Normalisasi basis
data pada bentuk normal tertentu dapat memenuhi aturan BCNF (Boyce-Codd Normal
Form), maka basis data tersebut dikatakan efisien dan baik.
1NF
Suatu tabel dikatakan 1NF jika dan hanya jika setiap setiap atribut dari data tersebut hanya memiliki nilai tunggal dalam satu baris.
Jadi
tabel yang belum normal tadi perlu diubah, sehingga bentuk 1NF menjadi seperti
ini:
Intinya
pada tahap 1NF ini tidak diperbolehkan ada grouping data
ataupun duplikasi data.
2NF
Syarat
2NF adalah tidak diperkenankan adanya partial “functional dependency” kepada
primary key dalam sebuah tabel.
Apa
itu “functional dependency”?
Itu
adalah batasan keterkaitan antara 2 attribut dalam suatu tabel (pasti banyak
yang bingung).
Intinya adalah pada 2NF ini tabel tersebut harus dipecah berdasarkan primary key. Sehingga bentuk 2NF dari tabel tersebut ialah sebagai berikut.
Setelah
dinormalisasi 2NF, tabelnya terpecah menjadi 4. Tahap selanjutnya ialah 3NF.
3NF
Pada
3NF tidak diperkenankan adanya partial “transitive dependency” dalam sebuah
tabel.
Apa
itu “transitive dependency”?
Transitive
dependency merupakan functional dependency yang berdasarkan sifat
transitifitas. (pasti bingung juga).
Intinya
adalah pada 3NF ini, jika terdapat suatu atribut yang tidak bergantung pada
primary key tapi bergantung pada field yang lain maka atribut-atribut tersebut
perlu dipisah ke tabel baru.
Contohnya
ada pada atribut “keterangan_member”, field tersebut bergantung pada yang bukan
merupakan primary key field “tipe_member”. Jadi setelah di normalisasi 3NF
ialah sebagai berikut:
DAFTAR PUSTAKA
Normalisasi
Database 1NF, 2NF & 3NF | by Ahmad Rusadi Muslim | dycode | Medium
Komentar
Posting Komentar