Normalisasi

 NORMALISASI DATA

 

 

 

 

Perancangan basis data diperlukan, agar kita bisa memiliki basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data.

 

Dalam merancang basis data, kita dapat melakukannya dengan :

1.         Menerapkan normalisasi pada struktur table yang telah diketahui.

2.         Langsung membuat model ER (Entity Relationship)

 

Proses Normalisasi, merupakan proses pengelompokan data elemen menjadi table-table yang menunjukkan entity dan relasinya. Pada proses normalisasi selalu diuji pada beberapa kondisi, apakah ada kesulitan pada saat menambah / insert, menghapus / delete, mengubah / update, dan membaca / retrieve pada suatu Database.

 

Bila ada kesulitan pada pengujian tersebut, maka relasi tersebut dipecahkan menjadi beberapa table lagi, sehingga diperoleh database yang optimal.

 

4.1.  Atribut Table

Normalisasi lebih difokuskan pada tinjauan komprehensif terhadap setiap kelompok data (table) secara individual. Lebih jauh tinjauan tersebut dititikberatkan pada data di masing – masing kolom pembentuk tabel. Kita menggunakan istilah baru, yaitu atribut yang sebenarnya identik dengan pemakaian istilah kolom data atau field.

 

Sebagai contoh :

o    Table Dosen, memiliki 9 buah field / atribut, yaitu : nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota, kodepos, dan gajipokok.

o    Table Matakuliah, memiliki 4 buah atribut, yaitu : kdmk, nama_mk, sks dan semester.


o    Table Jurusan, memiliki 4 buah atribut, yaitu : kode_jur, nama_jur, jenjang, dan nama_kajur.

o    Table Mengajar, memiliki 9 buah atribut, yaitu : nid, thn_akademik, smt, hari, jam_ke, kdmk, waktu, kelas, dan kode_jur.

 

Dari 4 table di atas, masing-masing table memiliki field / atribut sebagai key, dan lainnya sebagai atribut deskriptif. Ada pula atribut yang tergolong atribut sederhana atau komposit dan lainnya.

 

4.1.1.   Key dan Atribut Deskriptif

Key, adalah satu atau gabungan beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik. Artinya adalah apabila suatu field / atribut dijadikan key, maka tidak boleh ada dua atau lebih baris data dengan nilai yang sama untuk field / atribut tersebut.

Sehubungan dengan pernyataan tersebut, maka kita dapat membedakan 3 (tiga) macam key

yang dapat diterapkan pada suatu tabel :

1.         Superkey.

2.         Candidate-Key.

3.         Key Primer (Primary-Key).

4.         Kunci tamu (Foreign Key)

 

a.    Superkey

Superkey adalah merupakan satu atau lebih field / atribut (kumpulan atribut) yang dapat membedakan setiap baris data dalam sebuah table secara unik. Bisa terjadi, ada lebih dari 1 kumpulan atribut yang bersifat seperti itu pada sebuah table.

Pada tabel Dosen yang memiliki 4 buah field / atribut tersebut, yang dapat menjadi superkey


adalah :


o    (nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota, kodepos, gajipokok)

o    (nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota, kodepos)

o    (nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota,)

o    (nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat,)

o    (nid, nama_d, tempat_lhr, tgl_lahir, jkelamin,)

o    (nid, nama_d, tempat_lhr, tgl_lahir)


o    (nid, nama_d, tempat_lhr)

o    (nid, nama_d,)

o    (nid)

o    (nama_d)

 

b.    Candidate-Key

Candidate_key adalah merupakan kumpulan field / atribut minimal yang dapat membedakan setiap baris data dalam sebuah table secara unik.Sebuah Candidate-key tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi superkey yang lain. Jadi sebuah Candidate-key pasti superkey, tapi belum tentu sebaliknya.

Pada table Dosen tersebut diatas, yang dapat menjadi Candidate-key adalah :

¨             (nid).

¨             (nama_d), jika kita bisa menjamin tidak ada nilai yang sama untuk atribut ini.

 

Pada sebuah table dimungkinkan ada lebih dari satu Candidate-key, seperti contoh diatas. Salah satu dari Candidate–key ini (jika memang lebih dari satu) dapat dijadikan sebagai Key Primer (Primary key).

 

c.    Primarye-Key

Primary_key adalah candidate-key yang dipilih untuk mengidentifikasi tupel secara unik pada suatu relasi. Kunci utama dapat terbentuk dari satu atribut atau lebih.

Pemilihan Key Primer dari sejumlah Candidate-key pada suatu table didasari pada ketiga hal berikut ini:

1.         Key tersebut lebih sering (natural) untuk dijadikan acuan.

2.         Key tersebut lebih ringkas.

3.         Jaminan keunikan Key tersebut lebih baik.

 

Dengan pertimbangan tersebut, kedua Candidate-key pada table dosen, yaitu nid dan nama_d, yang lebih cocok sebagai Key Primer adalah (nid). Hal ini dikarenakan bahwa jaminan keunikan daripada nid (nomor induk dosen) akan terjamin karena karena setiap nid pada suatu perguruan tinggi pastinya tidak akan sama nilainya, sedangkan kenapa tidak memilih nama_d, karena nama_d kemungkinan ada yang sama nilainya.



 

 

c. Foreign-Key

Kunci tamu adalah satu atribut (satu set atribut) yang melengkapi satu relationship (hubungan) yang menunjukkan ke induknya. Kunci tamu ditempatkan pada relasi anak dan sama dengan kunci primer induk direlasikan.

Hubungan antara relasi induk dengan anak adalah satu lawan banyak (one to many relationship).

 



Gambar 4.1. Relasi one to many

 

Kunci tamu dari table / relasi mengajar adalah : nid, kdmk dan kode_jur karena dalam table

ini membutuhkan data data yang ada dalam table dosen, matakuliah dan jurusan

Kunci primer untuk table / relasi mengajar adalah nid,thn_akademik,smt,hari,jam_kei, karena unik dan mewakili entity.

 

Dalam hal hubungan 2 buah relasi yang mempunyai relation banyak ke banyak (many to many), maka terdapat 2 buah kunci tamu pada relasi konektornya.




Contoh:

 


Gambar 4.2. Relasi many to many

 


Komentar