Universitas Indraprasta PGRI
Fakultas FTMIPA
Teknik Informatika
Dosen: Nahot Frastian ,Skom
.............................................................................................................................................................................................
DATABASE RELATION
I.
Pendahuluan
Yang dimaksud dengan database relational atau
normalisasi adalah suatu proses untuk merelasikan field dari tabel lainnya,
dimana dalam salah satu tabel terdapat field yang bersifat primary key atau
foreign key. Normalisasi ditemukan pada tahun 1970 oleh E.F.Codd (seorang
penelitian IBM) sebagai ketidakpuasannya dengan metode penyimpanan data saat
itu. Lewat bukunya yang berjudul “A
relational model of data for large shared databanks” maka tercetus database
relational.
Pada dasarnya model
relational digunakan untuk mengatasi kesulitan dalam pengelolaan dan
pengaksesan data. Alasan yang melandasi mengapa dibutuhkan relasi tabel, yaitu
karena terdapatnya anomaly-anomali (error atau inkonsistensi data) yang harus
dihindari, agar keutuhan data dan kepastian data terjamin. Anomali-anomali itu
meliputi anomaly update, insert, dan delete.
Untuk memahami konsep relasi, perhatikan
daftar mahasiswa dan matakuliah berikut ini:
Nomor
|
Nim
|
Kode-mtk
|
Sks
|
1
|
99130012
|
101
|
2
|
2
|
99145021
|
105
|
4
|
3
|
99276521
|
103
|
4
|
4
|
99130012
|
102
|
2
|
5
|
98254123
|
103
|
4
|
6
|
99145021
|
104
|
2
|
7
|
99671204
|
106
|
4
|
8
|
99130012
|
105
|
4
|
9
|
99276521
|
102
|
2
|
10
|
99145021
|
103
|
4
|
11
|
98254123
|
101
|
2
|
1. Anomali
Inset
Kesalahan yang terjadi di saatproses
penyisipan record baru.
Contoh:
Jika Kampus akan mengadakan matakuliah baru
dengan kode matakuliah 107, maka proses penyisipan untuk kode matakuliah 107
tidak dapat dilakukan sampai ada mahasiswa yang mengambil matakuliah tersebut.
2. Anomali
Delete
Kesalahan yang terjadi disaat proses
penghapusan record atau tuple.
Contoh:
Mahasiswa yang memiliki Nim 99671204
memutuskan untuk membatalkan mengambil matakuliah 106, maka dengan demikian
jika di delete record tersebut, akan berakibat hilangnya informasi tentang kode
matakuliah 106.
3. Anomali
Update
Anomali atau kesalahan yang terjadi pada
saat proses suatu record.
Contoh:
Jika anda perhatikan pada tabel kuliahan,
terdapat banyak kode matakuliah yang diambil oleh mahasiswa dengan NIM ang
berbeda, Misalnya dilakukan perubahan SKS untuk kode matakuliah 103, maka akan
dilakukan proses update beberapa kali sesuai dengan banyaknya jummlah yang
mengambil kode matakuliah tersebut.
Dari
anomaly-anomali yang terjadi diatas maka daftar mahasiswa dan matakuliah bukan
termaksud Well-Structure relation (Sebuah relasi dengan jumlah kerangkapan
datanya sedikit).
Dari
kedua tabel tersebut akan dibentuk relasi yang saling terkait antara satu
dengan yang lainnya. Untuk melakukan proses relasi dibutuhkan field yang
memiliki primary key atau foreign key.
Sifat
field primary key, yaitu tidak boleh terdapat data sama dalam field tersebut.
Contoh: pada tabel kuliah field ‘Kode-mtk’ terdapat banyak data yang sama,
seperti kode matakuliah 103. Berati field ‘Kode-mtk’ pada tabel kuliah tidak
dapat dijadikan primary key. Jika Anda amati field matakuliah dapat dijadikan
primary key.
Kesimpulannya
field ‘Kode-mtk’ pada tabel matakuliah sebagai primary key, sedangkan
field ‘Kode-mtk’ pada tabel mata kuliah
sebagai foreign key. Untuk lebih jelasnya perhatikan skema disini:
Dari relasi kedua tabel ini, yaitu tabel
matakuliah dan kuliah dapat terbentuk daftar mahasiswa & matakuliah seperti
yang Nampak seperti berikut:
Daftar mahasiswa & matakuliah:
Nomor
|
Nim
|
Kode-mtk
|
Sks
|
1
|
99130012
|
101
|
2
|
2
|
99145021
|
105
|
4
|
-
|
-
|
-
|
-
|
2.
PEMBENTUKAN NORMALISASI
Perubahan
daftar mahasiswa & mataluliah menjadi 2 tabel, yaitu tabel matakuliah dan
kuliah adalah merupakan bentuk normalisasi. Dengan demikian terjadi suatu
kondisi dimana proses penginputan record bru untuk kode matakuliah dilakukan
pada tabel matakuliah, maka secara otomatis akan terlihat perubahan SKS atau
kode matakuliah, maka secara otomatis akan terlihat pula dalam daftar mahasiswa
& matakuliah.
Berikut
ini akan dijelaskan seputar pemberitahuan normalisaasi dari bentuk tidak normal
(Unnormalized Form).
a) Bentuk
tidak Normal (Unnormalized Form)
Pada bagian ini stiap record yang diinput tidak mengalami tahap
penyeleksian,sehingga akan terjadi kerangkapan data atau duplikasi data. Jadi
data yang diinput terlihat apa adanya sesuai dengan yang diinput.
Contoh:
Kobuk
|
Judul
|
Pengarang
|
RK1
|
RK2
|
RK3
|
101-K
|
Belajar Sendiri VB. 6
|
M.Bakri
|
001
|
003
|
001
|
103-C
|
Kisah Cinta Sang Penyair
|
Minolsta
|
003
|
001
|
|
110-S
|
Belajar Cepat Berhitung
|
Cokro S.
|
002
|
002
|
001
|
106-A
|
Bertauhid Yang Benar
|
Ust. Soleh
|
003
|
003
|
a) Bentuk
INF (First Normal Form)
Pada bentuk forn jenis pertama ini atau yang disebut INF harus bersifat
atomic. Atom yaitu zat terkecil yang masih dapat dipecah lagi.
Ciri-ciri INF:
-
Tiap field harus bernilai “atomic, yaitu setiap
recordnya hanya terdiri dari satu nilai.
-
Setiap field harus hanya memiliki satu
pengertian dan memiliki nama yang unik.
-
Tidak terdapat rcord yang sama atau bernilai
ganda.
Hasil
perubahan dari Unnormalized form menjadi INF adalah sebagai berikut:
Kobuk
|
Judul
|
Pengarang
|
Kode_RK
|
101-K
|
Belajar Sendiri VB. 6
|
M.Bakri
|
001
|
101-K
|
Belajar Sendiri VB.6
|
M.Bakri
|
003
|
103-C
|
Kisah Cinta Sang Penyair
|
Minolsta
|
001
|
103-C
|
Kisah Cinta Sang Penyair
|
Minolsta
|
003
|
110-S
|
Belajar Cepat Berhitung
|
Cokro S.
|
001
|
110-S
|
Belajar Cepat Berhitung
|
Cokro S.
|
002
|
106-A
|
Cara Cepat Belajar Database
|
Lina Marlina
|
003
|
a) Bentuk
2NF (Second) Normal Form)
a. Aabila
bentuk normal pertama atau INF terpenuhi, maka dapat menuju ke bentuk normal
kedua atau 2NF. Pada tahap ini tabel yang terdapat pada bentuk normal pertama
akan dibagi menjadi 2 bagian, yaitu:
Tabel Buku
Kobuk
|
Judul
|
Pengarang
|
101-K
|
Belajar Sendiri VB. 6
|
M.Bakri
|
103-C
|
Kisah Cinta Sang Penyair
|
Minolsta
|
110-S
|
Belajar Cepat Berhitung
|
Cokro S.
|
106-A
|
Cara Cepat Belajar Database
|
Lina Marlina
|
Tabel Rak Buku
Kobuk
|
Kode_RK
|
101-K
|
001
|
101-K
|
003
|
103-C
|
001
|
103-C
|
003
|
110-S
|
001
|
110-S
|
002
|
106-A
|
003
|
a) Bentuk
3NF (Third Normal Form)
Pada tahap bentuk normal ketiga, terjadi suatu relasi yang tredapat
dependency, yaitu
field yang bergantung dengan field yang lain pada tabel yang berbeda.
Seperti pada contoh bentuk normal kedua dimana field Kobuk (foreign key) pada
tabel rak buku bergantung kepada field Kobuk (primary key) pada tabel Buku.
Dengan demikian contoh bentuk normal kedua telah memenuhi
syarat untuk dijadikan bentuk normal ketiga.
3.
JENIS
RELASI TABEL
Terdapat 3 jenis tabel, yaitu One to One,
One to Many, Many to Many.
§
Relasi
One to One
Pada jenis relasi
One to One, setiap record pada tabel induk hanya memiliki satu relasi dengan
tabel anak.
Contoh:
Tabel Wali Kelas
Tabel Wali
Kelas
|
|
TD_WK
|
Nama
Wali Kelas
|
01
|
Suhendra
|
02
|
Samsusi
|
03
|
Zainab
|
Tabel Kelas
Tabel Kelas
|
||
Ko
Kelas
|
Kelas
|
ID_WK
|
A
|
1A
|
01
|
B
|
1B
|
02
|
C
|
1C
|
03
|
§
Relasi
One to Many
Relasi One to
Many, yaitu suatu jenis relasi tabel yang memberikan hak untuk berelasi dengan lebih dari satu baris.
Contoh:
Tabel Hewan
|
|
KdHwn
|
Jenis_Hewan
|
01
|
Kambing
|
02
|
Sapi
|
03
|
Kerbau
|
ID_Pemilik
|
Nama_Pemilik
|
Jumlah
|
Jenis_Hewan
|
A001
|
H.Bajuri
|
2
|
Kabing
|
A003
|
Zainal Sambri
|
1
|
Kambing
|
A002
|
Andi Solahudin
|
1
|
Kerbau
|
A003
|
Zainal Sambri
|
1
|
Sapi
|
A002
|
Andi Solahudin
|
2
|
Kambing
|
A004
|
Syamsudin
|
3
|
Kambing
|
A005
|
Diah Armintai
|
2
|
Kambing
|
A001
|
H.Bajuri
|
1
|
Sapi
|
A001
|
H.Bajuri
|
1
|
Kerbau
|
Contoh
relasi diatas menunjukan bahwa setiap pengqurban dapat berqurban dengan lebih
dari satu jenis hewan berbeda. Contoh seperti H.Bajuri yang berqurban
kambing,sapi, dan Kerbau.
§
Relasi
Many to Many
Pembentukan relasi many to many akan
terjadi apabila beberapa baris pada sebuah tabel berelasi ke beberapa jenis
pada tabel yang lain. Untuk merepresentasi relasi ini tidak cukup hanya
menggunakan dua table, melainkan memerlukan tabel perantara lain.
Contoh:
Tabel Penerbit
|
||
ID_Penerbit
|
Nama_Penerbit
|
Kota
|
01
|
CV. Pustaka Jaya
|
Jakarta
|
02
|
Setia Kawan
|
Jakarta
|
03
|
Alexander
|
Bandung
|
04
|
Surya Kencana
|
Padang
|
Tabel
Pengarang
|
||
ID_Pengarang
|
Nama_Pengarang
|
Alamat
|
A01
|
Dede Sunarya
|
Jakarta
|
A02
|
Drs. Amelia Anggoro
|
Jakarta
|
A03
|
Mohamad Suharto, S.H.
|
Subang
|
A04
|
Ust. Yudo Kuncoro
|
Bandung
|
A05
|
M. Zaidan Alwi
|
Medan
|
A06
|
Apriastuti Nur Komalasari
|
Jakarta
|
A07
|
Retno Yuniar
|
Subang
|
Tabel Toko
|
||
Nama_Pengarang
|
ID_Toko
|
Nama_Penerbit
|
Ust.
Yudo Kuncoro
|
1
|
CV.
Pustaka Jaya
|
Mohamad
Suharto, S.H.
|
2
|
Setia
Kawan
|
Dede
Sunarya
|
3
|
CV.
Pustaka Jaya
|
Ust.
Yudo Kuncoro
|
4
|
Surya
Kencana
|
Apriastuti
Nur Komalasari
|
5
|
Setia
Kawan
|
Mohamad
Suharto, S.H.
|
6
|
CV.
Pustaka Jaya
|
Retno
Yuniar
|
7
|
Surya
Kencana
|
Drs.
Amelia Anggoro
|
8
|
Alexander
|
Pada
Tabel Toko terlihat bahwa penerbit dapat
berhubungan dengan lebih dari satu pengarang, begitu juga halnya dengan
pengarang yang dapat berelasi dengan banyak penerbit.
3.
MASALAH
YANG AKAN TIMBUL AKIBAT NORMALISASI
Walaupun
normalisasi telah membantu dalam menghilangkan anomaly-anomali, baik itu anomaly
insert, update, atau delete. Ada hal yang ditumbulkan setelah proses
normalisasi itu berhasil, yaitu permasalahan tampilan tabel dan permasalah
integritas referensial.
Untuk memudahkan
memahai kedua permasalahan tersebut,. Perhatikan tabel Buku dan Rak Buku.
§
Permasalahan Tampilan tabel
Jika pada
sebelumnya hanya terdapat satu tabel, maka untuk menampilkan semua record,
cukup hanya dengan menggunakan perintah sql: SELECT*FROM nama_tabel. Sedangkan
untuk menampilkan beberapa record saja dapat menggunakan sintaks LIMIT dan
OFFSET.
Contoh:
-
Untuk menampilkan 5 record pertama dari tabel
buku.
Mysql>SELECT*FROM buku LIMIT 5;
-
Untuk menampilkan 3 baris pertama yang diurutkan
berdasarkan pengarang.
Mysql>SELECT*FROM buku ORDER BY pengarang LIMIT 3;
-
Untuk menampilkan 2 baris setelah melewati 2
baris pertama yang diurutkan berdasarkan kode buku.
Mysql>SELECT*FROM buku ORDER BY kodeuk LIMIT 2 OFFSET 2;
Setelah melalui proses
normalisasi, maka telah terbentuk dua tabel, yaitu tabel Buku dan tabel Rak
Buku. Pernyataan SQL untuk menampilkan
record tidak sama dengan sebelum proses normalisasi. Perintah SQL-nya
yaitu:
SELECT
nama_tabel.nama_field,… FROM nama_tabel.nama_field
Contoh:
Menampilkan judul buku
perngarang, dan rak buku yang kode rak bukunya 001.
Mysql>SELECT
Buku.Judul,Buku.Pengarang,Rakbuku.Kode_RK FROM Buku, Rak buku WHERE
->Rakbuku.Kode_RK=’001’;
§
Permasalahan
Integritas Referensial
Berupa Maintenance Consistency of Reference
antara 2 buah tabel relasi yang saling terkait.
Contoh:
-
Sebelum terjadi proses normalisasi, setiap
penambahan record dapat dilakukan pada tabel Relasi. Setelah normalisasi, untuk
menambahkan rak buku harus melalui proses pengecekan terlebih dahulu, apakah
buku yang akan ditampilkan pada suatu rak apakah sudah ada dalam tabel Buku
atau belum. Jika belum terdapat kode buku tersebut pada tabel Buku, maka proses
penginputan record pada tabel Rak Buku tidak dapat dilakukan.
-
Jika ingin melakukan penghapusan data pada tabel
Buku harus berhati-hati, karena akan berpengaruh pada tabel Rak Buku. Jika anda
menghapus pada bagian tabel Rak Buku saja, maka tidak akan berpengaruh pada
tabel Buku. Karena sifat field Kobuk pada tabel Buku bersifat primary key,
sedangkan field Kobuk pada tabel Rak Buku sebagai penghubung saja.
***
Tidak ada komentar:
Posting Komentar