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