Teknik Normalisasi

Posted: Januari 13, 2010 in Sistem Basis Data

Normalization is a technique of designing databases to reduce the duplication of data.

It is achieved by linking table through joins. The linked field(s) are called keys. Normalization can be done to 5 stages, however practically it is only done till the third normal form of 3NF.

1NF : Repeating groups are removed

2NF: Functional dependency is removed

3NF: Transitive dependency is removed

4NF: Multi-value dependency is removed.

Contoh :
Duplikasi Data

SELECT nim, count(*) as jumlah FROM namatabel

GROUP BY nim ORDER BY jumlah DESC;

dihasilkan :

NIM Nama Mhs NIM Jumlah

001 A 001 2

002 B 002 2

001 C 003 1

003 D

002 E

Mendesain database relasional

terdiri dari tabel-tabel yang diharapkan :

berisi data yang diperlukan

memiliki sesedikit mungkin redundansi

mengakomodasi banyak nilai untuk tipe data yang diperlukan

mengefisiensikan update

menghindari kemungkinan kehilangan data secara tidak disengaja/tidak diketahui

Alasan Normalisasi

Alasan utama dari normalisasi database minimal sampai dengan bentuk normal ketiga adalah menghilangkan kemungkinan adanya

Insertion anomalies

Deletion anomalies

Update anomalies

Anomaly

Database anomalies are the problems in relations that occur due to redundancy in the relations.

These anomalies affect the process of inserting, deleting and modifying data in the relations.

Some important data may be lost if a elations is updated that contains database anomalies. It is important to remove these anomalies in order to perform different processing on the relations without any problem.

Insertion anomaly

Adalah sebuah kesalahan dalam penempatan informasi entry data baru ke seluruh tempat dalam database dimana informasi tersebut perlu disimpan.

Dalam database yang telah dinormalisasi proses pemasukan suatu informasi baru hanya perlu dimasukkan ke dalam satu tempat.

Deletion anomaly

adalah sebuah kesalahan dalam penghapusan suatu informasi dalam database harus dilakukan dengan penghapusan informasi tersebut dari beberapa tempat dalam database.

Dalam database yang telah dinormalisasi, penghapusan suatu informasi hanya perlu dilakukan dalam satu tempat dalam database tersebut.

Update anomaly

Sedangkan dalam melakukan update satu informasi, kesalahan juga dapat terjadi ketika kita harus melakukan update ke seluruh tempat yang menyimpan informasi tersebut.

Normalisasi

Merupakan cara pendekatan dalam membangun desain logika basis data relasional yang tidak secara langsung berkaitan dengan model data,

Menerapkan sejumlah aturan dan kriteria standar untuk menghasilkan struktur tabel yang normal.

Pada dasarnya desain logika basis data relasional dapat menggunakan prinsip normalisasi maupun transformasi dari model E-R ke bentuk fisik.

Dalam perspektif normalisasi sebuah database dikatakan baik jika setiap tabel yang membentuk basis data sudah berada dalam keadaan normal.

Suatu tabel dikatakan normal

Jika ada dekomposisi/penguraian tabel, maka dekomposisinya dijamin aman (lossless-join decomposition)

Terpeliharanya ketergantungan functional pada saat perubahan data (dependency preservation)

Tidak melanggar Boyce Code Normal Form (BCNF), jika tidak bisa minimal tidak melanggar bentuk normalisasi ketiga

Apa yang dimaksud dengan ketergantungan fungsional / functional dependency?

functional dependency

Diberikan sebuah tabel/relasi T. Atribut B dari T bergantung secara fungsi pada atribut A dari T jika dan hanya jika setiap nilai B dari T punya hubungan dengan tepat satu nilai A dalam T (dalam setiap satu waktu)

Kondisi yang di ujikan pada Proses Normalisasi

menambah data/insert

mengedit/mengupdate

menghapus/delete

membaca/retrieve

BENTUK NORMALISASI

1. Bentuk tidak normal

Bentuk ini merupakan kumpulan data yang akan direkam

tidak ada keharusan mengikuti format tertentu

dapat saja tidak lengkap dan terduplikasi

Data dikumpulkan apa adanya sesuai keadaannya

2. Bentuk normal tahap
pertama – 1st NF

Sebuah table disebut 1NF jika :

Tidak ada baris yang duplikat dalam tabel tersebut

Masing-masing cell bernilai tunggal

Catatan

Permintaan yang menyatakan tidak ada baris yang duplikat dalam sebuah tabel berarti tabel tersebut memiliki sebuah kunci, meskipun kunci tersebut dibuat dari kombinasi lebih dari satu kolom atau bahkan kunci tersebut merupakan kombinasi dari semua kolom.

Contoh

tabel Kuliah yang memiliki atribut :

kode_kul, nama_kul, sks, semester, waktu, tempat dan nama_dos.

Tabel Kuliah tidak memenuhi 1NF, karena terdapat

atribut waktu yang tergolong ke dalam atribut bernilai banyak.

Agar tabel tersebut dapat memenuhi 1NF, maka solusinya adalah dengan mendekomposisi tabel Kuliah menjadi :

1. Tabel Kuliah (kode_kul, nama_kul, sks, semester, nama_dos)

2. Tabel Jadwal(kode_kul, waktu, ruang)

3. Bentuk normal tahap
kedua – 2nd NF

Bentuk Normal Kedua (2NF) terpenuhi jika pada sebuah tabel semua atribut yang tidak termasuk dalam primary key memiliki ketergantungan fungsional pada primary key secara utuh.

3. Bentuk normal tahap
kedua – 2nd NF

Sebuah tabel dikatakan tidak memenuhi 2NF, jika ketergantungannya hanya bersifat parsial (hanya tergantung pada sebagian dari primary key).

Contoh bentuk 2NF

Misal tabel Nilai terdiri dari atribut kode_kul, nim dan nilai.

Jika pada tabel Nilai, misalnya kita tambahkan sebuah atribut yang bersifat redundan yaitu nama_mhs, maka tabel Nilai ini dianggap melanggar 2NF.

Primary key pada tabel Nilai adalah [kode_kul,nim].

Penambahan atribut baru (nama_mhs) akan menyebabkan adanya ketergantungan fungsional yang baru yaitu nim->nama_mhs.

Karena atribut nama_mhs ini hanya memiliki ketergantungan parsial pada primary key secara utuh (hanya tergantung pada nim, padahal nim hanya bagian dari primary key).

Bentuk normal kedua ini dianggap belum memadai karena meninjau sifat ketergantungan atribut terhadap primary key saja.

4. Bentuk normal tahap
ketiga – 3rd NF

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

Misalkan pada tabel Mahasiswa, atribut alamat_mhs dipecah ke dalam alamat_jalan, nama_kota dan kode_pos.

Bentuk ini tidak memenuhi 3NF, karena terdapat ketergantungan fungsional baru yang muncul pada tabel tersebut, yaitu :

alamat_jalan, nama_kota -> kode_pos

Dalam hal ini (alamat_jalan, nama_kota) bukan superkey sementara kode_pos juga bukan bagian dari primary key pada tabel Mahasiswa.

Jika tabel Mahasiswa di-dekomposisi menjadi tabel Mahasiswa dan tabel Alamat, maka telah memenuhi 3NF.

Hal itu dapat dibuktikan dengan memeriksa dua ketergantungan fungsional pada tabel alamat tersebut yaitu :

alamat_jalan , nama_kota -> kode_pos

kode_pos -> nama_kota

Ketergantungan fungsional yang pertama tidak melanggar 3NF, karena (alamat_jalan, nama_kota) merupakan superkey (sekaligus sebagai primary key) dari tabel Alamat tersebut.

Demikian juga dengan ketergantungan fungsional yang kedua meskipun (kode_pos) bukan merupakan superkey,

tetapi nama_kota merupakan bagian dari primary key dari tabel Alamat.

Karena telah memenuhi 3NF, maka tabel tersebut tidak perlu di-dekomposisi lagi.

5. Bentuk Normal Tahap Keempat dan Kelima

Penerapan aturan normalisasi sampai bentuk normal ketiga sudah memadai untuk menghasilkan tabel berkualitas baik.

Namun demikian, terdapat pula bentuk normal keempat (4NF) dan kelima (5NF).

Bentuk Normal Keempat berkaitan dengan sifat ketergantungan banyak nilai (multivalued dependency) pada suatu tabel yang merupakan pengembangan dari ketergantungan fungsional.

Sedangkan bentuk normal tahap kelima merupakan nama lain dari Project Join Normal Form (PJNF)

6. Boyce Code Normal Form
(BCNF)

memenuhi 1st NF

relasi harus bergantung fungsi pada atribut superkey

Contoh Kasus

Berikut ini akan diberikan contoh proses perancangan database dengan teknik normalisasi.

Contoh(cont’)

Bentuk Normal ke dua(2NF) :

Contoh(cont’)

Bentuk Normal ke tiga(3NF) :

Kelemahan

Insert : ingin memasukkan supplier tanpa transaksi?

Delete : menghapus transaksi à supplier terhapus

Update : mengganti satu nama supplier à lainnya jadi tidak benar

Redundancy : jumlah <– hasil perhitungan qty * harga

Bentuk 2nd NF

KdFaktur à

Tgl, Jtempo, KodeSup, NamaSup

KdFaktur, Kodebrg à NamaBrg, Qty, Harga

Bentuk BCNF

KdFaktur à Tgl, Jtempo, KodeSup

KdSup à NamaSup

KdFaktur, Kodebrg à Qty, Harga

KodeBrg à NamaBrg

Latihan Soal

Buatlah rancangan basis data dengan menggunakan teknik normalisasi (bentuk tidak normal, normal 1, normal 2 dan bentuk BCNF) dengan dokumen dasar sebagai berikut:

Tinggalkan Jawapan

Masukkan butiran anda dibawah atau klik ikon untuk log masuk akaun:

WordPress.com Logo

Anda sedang menulis komen melalui akaun WordPress.com anda. Log Out / Tukar )

Twitter picture

Anda sedang menulis komen melalui akaun Twitter anda. Log Out / Tukar )

Facebook photo

Anda sedang menulis komen melalui akaun Facebook anda. Log Out / Tukar )

Google+ photo

Anda sedang menulis komen melalui akaun Google+ anda. Log Out / Tukar )

Connecting to %s